<template>
  <div class="wrap">
    <div class="tree" v-if="$route.query.viewType === '1'" style="flex:0.18">
      <BaseMenuTree
          :menuData="treeData"
          :filterShow="false"
          :Allshow="false"
          :treeButton="false"
          :filterButtonShow="false"
          style="height: 100%"
          :treeProps="treeProps"
          @handleNodeClick="homeHandleNodeClick"
          ref="menuTree"
      ></BaseMenuTree>
    </div>
    <div class="main" :style="{flex:$route.query.viewType === '1'?0.82:1}" v-loading="mainLoading">
      <div class="top">
        <div class="search">
          <BaseNewForm
              v-loading="searchLoading"
              refName="searchForm"
              :formRow="searchFormRow"
              :formRule="false"
              :ruleForm="searchForm"
              :newFlag="true"
              :treeSelectInfo="treeSelectInfo"
              :isFunBtn="false"
          ></BaseNewForm>
        </div>
        <div class="btnList">
          <div class="btnItem" v-for="item in searchButton" :key="item.buttonType">
            <el-button
                type="primary"
                size="mini"
                @click="buttonHandle(item)"
                v-btnPermission="{ btnID: item.buttonType, routeId: $route.meta.id }"
            >{{ item.buttonName }}
            </el-button>
          </div>
        </div>
      </div>
      <div class="table">
        <BaseTable
            ref="mainTable"
            :treeSelectInfo="treeSelectInfo"
            :tableData="tableData"
            :tableColumn="tableColumn"
            :funData="mainFunData"
            :funWidth="funWidth"
            :showIndex="true"
            :tabLoading="mainTabLoading"
            @onFunc="tableButtonHandle"
            @selectValueGeT="selectValueGeTHandle"
            :tableHeight="'67vh'"
            :border="false"
        >
          <template #data_status="{row}">
            {{ data_status_dist[row.data_status] }}
          </template>
        </BaseTable>
        <div class="nextPage">
          <BasePage
              :pageModel="pageModel"
              @update:pageModel="currentChangeHandle"
          ></BasePage>
        </div>
      </div>
    </div v->
    <baseDialog title="数据设置" v-model="dialogShow" @confirm="dialogConfirm" :lookFlag="lookFlag" width="78%">
      <h1 style="margin: 20px 10px; font-size: 18px; font-weight: 700">
        基本信息
      </h1>
      <div class="dialogForm" v-if="dialogShow" style="padding: 0 20px">
        <BaseNewForm
            :treeSelectInfo="treeSelectInfo"
            :loading="dialogCommitLoading"
            :formRow="formRow"
            :ruleForm="ruleForm"
            :lookFlag="lookFlag"
            :newFlag="newFlag"
            @onSubmit="onSubmitHandele"
            :isFunBtn="false"
            ref="dialogForm"
        ></BaseNewForm>
      </div>
      <template v-for="(item, index) in dialogTabaleInfo">
        <div class="sonTable">
          <h1 style="margin: 20px 0; font-size: 20px; font-weight: 700">
            {{ item.title }}
          </h1>
          <BaseTableForm
              :lookflag="lookFlag"
              :showIndex="true"
              :treeSelectInfo="treeSelectInfo"
              :indexOperate="true"
              :tableInfo="item"
              @newRow="dialogTableAddHandle"
              @onFunc="dialogTableDeleHandle"
              :funData="dialogfunData"
              :border="false"
              :formIndex="index"
              table-height="30vh"
          ></BaseTableForm>
        </div>

      </template>
    </baseDialog>
    <!--    分发任务dialog-->
    <baseDialog width="30%" v-model="sendShow" :footerShow="false" title="分发任务">
      <div class="sendBox">
        <div class="chunk" style="display: flex;align-items: center;margin: 20px 0;font-size: 16px">
          <div class="title">分发</div>
          <div class="value" style="margin-left: 20px">
            <el-select
                v-model="sendCheckboxList"
                placeholder="请选择"
            >
              <el-option
                  v-for="item in sendTableData"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
              >
              </el-option>
            </el-select>
          </div>
        </div>
        <div class="chunk" style="display: flex;align-items: center;font-size: 16px">
          <div class="title">类型</div>
          <div class="value" style="margin-left: 20px">
            <el-select
                v-model="sendCheckboxType"
                placeholder="请选择"
            >
              <el-option
                  v-for="item in sendTableTypeOptions"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
              >
              </el-option>
            </el-select>
          </div>
        </div>
        <div class="btn" style="display: flex;justify-content: flex-end">
          <el-button type="primary" @click="sendRowHandle()">下发
          </el-button>
        </div>
      </div>
      <!--      <baseTable-->
      <!--        :tableData="sendTableData"-->
      <!--        :tableColumn="sendTableColumn"-->
      <!--      >-->
      <!--        <template v-slot:status="{row}">-->
      <!--          {{ sendDist[row.status] }}-->
      <!--        </template>-->
      <!--        <template v-slot:fun="{row}">-->
      <!--          <el-button v-if="row.status === '1'||row.status === '2'" type="danger" @click="sendRowHandle(row)">删除-->
      <!--          </el-button>-->
      <!--          <el-button v-if="row.status === '3'||row.status === '4'" type="primary" @click="sendRowHandle(row)">下发-->
      <!--          </el-button>-->
      <!--        </template>-->
      <!--      </baseTable>-->
    </baseDialog>
  </div>
</template>
<script>
import { deepClone } from '@/utils/index.js'
import { getUserModuleApi } from '@/api/integrationOption/integrationOption.js'
import BaseNewForm from './compoments/baseNewForm'
import BaseTable from './compoments/baseTable'
import BasePage from './compoments/basePage.vue'
import baseDialog from '@/views/integrationOption/compoments/baseDialog'
import BaseTableForm from './compoments/baseTableForm_v2.vue'
import BaseMenuTree from '@/views/intergrationTask/compoments/baseMenuTree.vue'
import { getInfo } from '@/utils/auth'
import { authApi } from '@/api/apis/auth'

export default {
  data() {
    return {
      treeObj: {
        label: '',
        upId: ''
      },
      sendDist: {
        '1': '发送成功',
        '2': '发送中',
        '3': '发送失败',
        '4': '未发送'
      },
      sendShow: false,//分发任务dialog
      sendTableColumn: [
        {
          id: 'name',
          title: '应用'
        },
        {
          id: 'status',
          title: '状态'
        },
        {
          id: 'msg',
          title: '信息'
        },
        {
          id: 'fun',
          title: '操作'
        }

      ],
      sendTableData: [],
      //搜索相关
      searchFormRow: [],
      searchForm: {},
      searchLoading: false,
      //按钮相关
      searchButton: [
        {
          'buttonType': 'new',
          'buttonName': '新建'
        },
        {
          'buttonType': 'resize',
          'buttonName': '重置'
        },
        {
          'buttonType': 'search',
          'buttonName': '查询'
        }
      ],
      mainTableName: '',
      // 主表按钮
      mainLoading: false,
      mainFunData: [
        {
          'text': '修改',
          'type': 'edit'
        },
        {
          'text': '删除',
          'type': 'dele'
        },
        {
          'text': '查看',
          'type': 'view'
        },
        {
          'text': '下发',
          'type': 'send'
        }
      ],
      mainActiveRow: {},
      mainTabLoading: false,
      tableData: [],
      tableColumn: [],
      // 分页器
      pageModel: {
        total: 0,
        pageIndex: 1,
        limit: 10
      },
      //dialog相关
      dialogShow: false,
      dialogCommitLoading: false,
      formRow: [],
      ruleForm: {},
      lookFlag: false,
      newFlag: false,
      dialogTabaleInfo: [],
      dialogfunData: [{ text: '删除', type: 'dele', color: 'red' }],
      dialogTableLoading: false,
      dialogFormName: '',
      //树相关
      treeProps: {
        children: 'children',
        label: 'label'
      },
      treeData: [],
      treeActiveRow: {},
      treeSelectInfo: {},
      data_status_dist: {
        'Y': '正常',
        'F': '修改',
        'N': '删除'
      },
      sendCheckboxList: '',//下发弹窗分发
      sendCheckboxType: '',
      sendTableTypeOptions: [
        {
          id: 1,
          name: '新增'
        },
        {
          id: 2,
          name: '修改'
        },
        {
          id: 3,
          name: '删除'
        }
      ],
      rowId: ''
    }
  },
  methods: {
    // 拿按钮顺序
    async getBtn() {
      let userId = JSON.parse(getInfo()).id
      const res = await authApi('sysButtonConfigService', '', 'getUserButton', '', {
        menuId: this.$route.meta.id,
        userId: userId
      })
      let dist_arr = ['new', 'resize', 'search']
      console.log(res, 'res')
      this.searchButton = []
      this.mainFunData = []
      res.attribute.forEach(item => {
        if (dist_arr.includes(item.nameEn)) {
          this.searchButton.push({
            buttonType: item.nameEn,
            buttonName: item.nameCh
          })
        } else {
          this.mainFunData.push({
            text: item.nameCh,
            type: item.nameEn
          })
        }
      })
    },
    async init() {
      this.mainLoading = true
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShow'
      }, { mdmCode: this.$route.meta.mdmCode })
      // 树处理

      if (this.$route.query.viewType === '1') {
        this.treeObj.label = res.attribute.mdmModuleViewEntity.viewFiled
        this.treeObj.upId = res.attribute.mdmModuleViewEntity.upIdFiled
        this.initTree(res.attribute.mdmModuleViewEntity.viewFiled, res.attribute.mdmModuleViewEntity.upIdFiled)
      }
      //搜索数据处理
      res.attribute.queryList.forEach(item => {
        item.ruleList.forEach(ele => {
          item[ele.ruleCode] = ele.ruleValue
          item['id'] = item.enName
        })
      })
      this.searchFormRow = []
      res.attribute.queryList.forEach((item) => {
        item.id = item.dbName + '.' + item.id
      })
      this.baseFormRowDispose(res.attribute.queryList, this.searchFormRow)
      console.log(res.attribute.queryList, 'this.searchFormRow')
      //按钮框处理
      let funDataBtn = {
        edit: true,
        view: true,
        dele: true,
        send: true
      }
      //动态按钮相关 （v3版本不再走这套逻辑）
      // this.searchButton = []
      // this.mainFunData = []
      // res.attribute.buttonList.forEach(item => {
      //   if (funDataBtn[item.buttonType]) {
      //     this.mainFunData.push({
      //       text: item.buttonName,
      //       type: item.buttonType
      //     })
      //     console.log(this.mainFunData, 'this.mainFunData')
      //   } else {
      //     this.searchButton.push(item)
      //     console.log(this.searchButton, 'this.searchButton')
      //   }
      // })
      //主表处理
      console.log(res, 'res')
      //将所有tableColumn预处理
      res.attribute.listList.forEach(item => {
        this.mainTableName = item.dbName
        item.ruleList.forEach(ele => {
          item[ele.ruleCode] = ele.ruleValue
          item['id'] = item.enName
        })
      })
      this.tableColumn = res.attribute.listList
      this.initTableData(this.mainTableName)
      this.mainLoading = false
    },
    async initTree(label, upId, obj = {}) {
      if (this.$route.query.viewType !== '1') return
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowTreeData'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        label,
        upId
      })

      if (res.status === '200') {
        this.treeData = res.attribute
      }
    },
    async initTableData(name, obj = {}) {
      this.mainTabLoading = true
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowData'
      }, {
        pageNum: this.pageModel.pageIndex,
        pageSize: this.pageModel.limit,
        tableName: name,
        ...obj
      })
      this.mainTabLoading = false
      this.pageModel.total = res.attribute.total
      this.tableData = []
      this.$nextTick(() => {
        this.tableData = res.attribute.list
      })
    },
    // 列表处理（算row）
    baseFormRowDispose(arr, resultArr) {
      let searchSpan = 0
      let tempArr = []
      arr.forEach(item => {
        let spanNum = item.row * 1 || 12
        searchSpan += spanNum
        if (searchSpan > 24) {
          resultArr.push({ elCol: tempArr })
          searchSpan = spanNum
          tempArr = []
          tempArr.push(item)
        } else {
          tempArr.push(item)
        }
      })
      if (tempArr.length) {
        resultArr.push({ elCol: tempArr })
      }
    },
    //按钮事件
    async buttonHandle(item) {
      if (item.buttonType === 'search') {
        this.pageModel.pageIndex = 1
        this.searchHandle()
      } else if (item.buttonType === 'resize') {
        this.searchForm = {}
      } else if (item.buttonType === 'new') {
        this.newDialogHandle()
      } else if (item.buttonType === 'contrast') {

      }
    },
    //主表相关事件
    //主表下拉找值
    selectValueGeTHandle(item, row, data) {
      this.$set(this.tableData[row.index], item.id, data)
      this.$set(this.tableData[row.index], 'selectflag', true)
    },
    //主表按钮
    async tableButtonHandle(row, item) {
      if (item.type === 'edit') {
        this.editDialogHanlde(row.id)
      } else if (item.type === 'view') {
        this.viewDIalogHandle(row.id)
      } else if (item.type === 'dele') {
        this.$confirm('是否删除此行?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
            .then(() => {
              this.deleRowHanlde(row.id)

            })
            .catch((error) => {
            })
      } else if (item.type === 'send') {
        this.sendHandle(row.id)
      }
    },
    // 分页器更新数据
    currentChangeHandle(pageModel) {
      this.pageModel = pageModel
      this.$nextTick(() => {
        this.searchHandle()
      })
    },
    //dialog表单通过验证准备提交
    async onSubmitHandele() {
      //新增
      if (this.newFlag) {
        let params = {
          mdmCode: this.$route.meta.mdmCode,
          data: {}
        }
        params.data[this.dialogFormName] = deepClone(this.ruleForm)
        this.dialogTabaleInfo.forEach(item => {
          params.data[item.name] = item.tableData.slice(0, -1)
        })
        const res = await getUserModuleApi({
          tl: 'mdmService',
          as: 'mdmService',
          dj: 'saveMdmShowDetailsData'
        }, params)
        if (res.status === '200') {
          this.initTree(this.treeObj.label, this.treeObj.upId)
          this.$vmNews('新建成功', 'success')
          this.searchHandle()
          this.dialogShow = false
        }
      } else {
        //修改
        let params = {
          mdmCode: this.$route.meta.mdmCode,
          data: {}
        }
        params.data[this.dialogFormName] = deepClone(this.ruleForm)
        this.dialogTabaleInfo.forEach(item => {
          params.data[item.name] = item.tableData.slice(0, -1)
        })
        const res = await getUserModuleApi({
          tl: 'mdmService',
          as: 'mdmService',
          dj: 'updateMdmShowDetailsData'
        }, params)
        if (res.status === '200') {
          this.initTree(this.treeObj.label, this.treeObj.upId)
          this.$vmNews('修改成功', 'success')
          this.searchHandle()
          this.dialogShow = false
        }
      }

    },
    dialogTableAddHandle(info, index) {
      this.dialogTabaleInfo[index].tableData.push({})
    },
    dialogTableDeleHandle(row, item, tableInfo, index) {
      if (item.type === 'dele') {
        this.$confirm('是否删除此行?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
            .then(() => {
              this.dialogTabaleInfo[index].tableData.splice(row.index, 1)
              this.$message({
                type: 'success',
                message: '删除成功!'
              })
            })
            .catch((error) => {
            })
      }
    },
    //dialog表格提交
    dialogConfirm() {
      this.$refs.dialogForm.submitForm()
    },
    //点击新增dialog处理事件
    async newDialogHandle() {
      this.ruleForm = {}
      this.newFlag = true
      this.lookFlag = false
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowDetails'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        showType: '3'
      })
      // 主表数据处理
      res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds.forEach(item => {
        item.mdmModuleDbFiledsRules.forEach(ele => {
          if (ele.ruleCode === 'required' || ele.ruleCode === 'disabled') {
            if (!ele.ruleValue) {
              item[ele.ruleCode] = false
            } else {
              item[ele.ruleCode] = JSON.parse(ele.ruleValue)
            }
          } else {
            item[ele.ruleCode] = ele.ruleValue
          }
          item['id'] = item.enName
        })
      })
      this.dialogFormName = res.attribute.mainMdmModuleDb.dbName
      this.formRow = []
      this.baseFormRowDispose(res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds, this.formRow)
      console.log(this.formRow, 'this.formRow')
      //子表处理
      this.dialogTabaleInfo = []
      res.attribute.sublistMdmModuleDb.forEach(table => {
        table.sublistMdmModuleDbFileds.forEach(item => {
          item.mdmModuleDbFiledsRules.forEach(ele => {
            if (ele.ruleCode === 'required' || ele.ruleCode === 'disabled') {
              if (!ele.ruleValue) {
                item[ele.ruleCode] = false
              } else {
                item[ele.ruleCode] = JSON.parse(ele.ruleValue)
              }

            } else {
              item[ele.ruleCode] = ele.ruleValue
            }
            item['id'] = item.enName
          })
        })
        table.tableData = {}
        table.detailFields = []
        let tempObj = {
          tableData: [{}],
          detailFields: deepClone(table.sublistMdmModuleDbFileds),
          title: table.remark,
          name: table.dbName
        }
        this.dialogTabaleInfo.push({ ...tempObj })
      })
      this.dialogShow = true
    },
    searchHandle() {
      let tempSearch = JSON.parse(JSON.stringify(this.searchForm))
      Object.keys(tempSearch).forEach((key) => {
        tempSearch[key.split('.')[1]] = tempSearch[key]
      })
      console.log(tempSearch, 'tempSearch')
      let obj = {}
      this.searchFormRow.forEach(item => {
        item.elCol.forEach(ele => {
          if (this.searchForm[ele.id]) {
            if (obj[ele.dbName]) {
              obj[ele.dbName].push({
                fields: ele.enName,
                fieldsType: ele.filedType,
                values: this.searchForm[ele.id]
              })
            } else {
              obj[ele.dbName] = [{
                fields: ele.enName,
                fieldsType: ele.filedType,
                values: this.searchForm[ele.id]
              }]
            }
          }
        })
      })
      let params = {
        queryCondition: [],
        detailQueryCondition: []
      }
      Object.keys(obj).forEach(key => {
        if (key === this.mainTableName) {
          params.queryCondition = obj[key]
        } else {
          let temp = {
            tableName: key,
            queryCondition: obj[key]
          }
          params.detailQueryCondition.push(temp)
        }
      })
      if (this.treeActiveRow.id) {
        let obj = {
          fields: 'id',
          values: this.treeActiveRow.arrId,
          fieldsType: '5'
        }
        params.queryCondition.push(obj)
      }
      this.initTableData(this.mainTableName, params)
    },
    //编辑dialog处理事件
    async editDialogHanlde(id) {
      this.newFlag = false
      this.lookFlag = false
      //初始化模版
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowDetails'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        showType: '4'
      })
      res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds.forEach(item => {
            item.mdmModuleDbFiledsRules.forEach(ele => {
              if (ele.ruleCode === 'required' || ele.ruleCode === 'disabled') {
                if (!ele.ruleValue) {
                  item[ele.ruleCode] = false
                } else {
                  item[ele.ruleCode] = JSON.parse(ele.ruleValue)
                }
              } else {
                item[ele.ruleCode] = ele.ruleValue
              }

              item['id'] = item.enName
            })
          }
      )
      this.dialogFormName = res.attribute.mainMdmModuleDb.dbName
      this.formRow = []
      this.baseFormRowDispose(res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds, this.formRow)
      console.log(this.formRow, 'formRow')
//子表处理
      this.dialogTabaleInfo = []
      res.attribute.sublistMdmModuleDb.forEach(table => {
        table.sublistMdmModuleDbFileds.forEach(item => {
          item.mdmModuleDbFiledsRules.forEach(ele => {
            item[ele.ruleCode] = ele.ruleValue
            item['id'] = item.enName
          })
        })
        table.tableData = {}
        table.detailFields = []
        let tempObj = {
          tableData: [{}],
          detailFields: deepClone(table.sublistMdmModuleDbFileds),
          title: table.remark,
          name: table.dbName
        }
        this.dialogTabaleInfo.push({ ...tempObj })
      })
//初始化数据
      const data = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowDetailsData'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        id: id
      })
      if (data.status === '200') {
        this.ruleForm = data.attribute[this.mainTableName]
        console.log(this.ruleForm,
            '123'
        )
        console.log(this.ruleForm, this.mainTableName, data.attribute, '123')
        this.dialogTabaleInfo.forEach(table => {
          table.tableData = []
          table.tableData = data.attribute[table.name]
          table.tableData.push({})
        })
      }
      this.dialogShow = true
    },
//查看dialog处理事件
    async viewDIalogHandle(id) {
      this.newFlag = false
      this.lookFlag = true
      //初始化模版
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowDetails'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        showType: '5'
      })
      res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds.forEach(item => {
        item.mdmModuleDbFiledsRules.forEach(ele => {
          if (ele.ruleCode === 'required' || ele.ruleCode === 'disabled') {
            if (!ele.ruleValue) {
              item[ele.ruleCode] = false
            } else {
              item[ele.ruleCode] = JSON.parse(ele.ruleValue)
            }
          } else {
            item[ele.ruleCode] = ele.ruleValue
          }
          item['id'] = item.enName
        })
      })
      this.dialogFormName = res.attribute.mainMdmModuleDb.dbName
      this.formRow = []
      this.baseFormRowDispose(res.attribute.mainMdmModuleDb.sublistMdmModuleDbFileds, this.formRow)
      //子表处理
      this.dialogTabaleInfo = []
      res.attribute.sublistMdmModuleDb.forEach(table => {
        table.sublistMdmModuleDbFileds.forEach(item => {
          item.mdmModuleDbFiledsRules && item.mdmModuleDbFiledsRules.forEach(ele => {
            item[ele.ruleCode] = ele.ruleValue
            item['id'] = item.enName
          })
        })
        table.tableData = {}
        table.detailFields = []
        let tempObj = {
          tableData: [{}],
          detailFields: deepClone(table.sublistMdmModuleDbFileds),
          title: table.remark,
          name: table.dbName
        }
        this.dialogTabaleInfo.push({ ...tempObj })
      })
      console.log(this.dialogTabaleInfo, 'dialogTabaleInfo')
      //初始化数据
      const data = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'queryMdmShowDetailsData'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        id: id
      })
      if (data.status === '200') {
        this.ruleForm = data.attribute[this.mainTableName]
        this.dialogTabaleInfo.forEach(table => {
          table.tableData = []
          table.tableData = data.attribute[table.name] || []
        })
        console.log(this.dialogTabaleInfo, 'dialogTabaleInfo')
      }
      this.dialogShow = true
    }
    ,
//删除此行
    async deleRowHanlde(id) {
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: 'mdmService',
        dj: 'deleteMdmShowDetailsData'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        id: id
      })
      if (res.status === '200') {
        this.$vmNews('删除成功！', 'success')
        this.searchHandle()
        this.initTree(this.treeObj.label, this.treeObj.upId)
      }
    }
    ,
    homeHandleNodeClick(data) {
      let arrId = []
      arrId.push(data.id)
      if (data.children) {
        this.treeIdHandle(data.children, arrId)
      }
      this.pageModel.pageIndex = 1
      this.pageModel.total = 0
      this.pageModel.limit = 10
      this.searchForm = {}
      this.tableData = []
      this.lookFlag = false
      this.newFlag = false
      this.treeActiveRow = { ...data, arrId: arrId }
      this.searchHandle()
    }
    ,
    //树点击
    treeIdHandle(data, arr) {
      data.forEach(item => {
        arr.push(item.id)
        if (item.children) {
          this.treeIdHandle(item.children, arr)
        }
      })
    },
    //下发方法
    async sendHandle(id) {
      console.log(id)
      const res = await getUserModuleApi({
        tl: 'mdmModuleService',
        as: '',
        dj: 'queryMdmDistributeByMdmCode'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        'enabledState': '1',//固定值
        'enabledType': '0'//固定值
      })
      this.sendTableData = res.attribute
      console.log(this.sendTableData, 'this.sendTableData')
      this.sendTableData.forEach(item => {
        this.$set(item, 'rowId', id)
        this.appSearch(item.appId, item)
      })
      this.rowId = id
      this.sendCheckboxType = ''
      this.sendCheckboxList = ''
      this.sendShow = true
    },
    //应用名查找
    async appSearch(id, row) {
      const res = await getUserModuleApi({
        tl: 'sysApplicationService',
        as: 'application',
        dj: 'getApp'
      }, {
        id: id
      })
      this.$set(row, 'name', res.attribute.name)
    },
    //下发dialog行按钮
    async sendRowHandle(row) {
      // let status = row.status === '1' ? 1 : 2
      // if (row.status === '2') {
      //   this.$vmNews('发送中，请等待发送完成，再删除', 'warning')
      //   return
      // }
      // console.log(row)
      const res = await getUserModuleApi({
        tl: 'mdmService',
        as: '',
        dj: 'doMdmDistribute'
      }, {
        mdmCode: this.$route.meta.mdmCode,
        id: this.rowId,
        distributeId: this.sendCheckboxList,
        type: this.sendCheckboxType
      })
      this.$vmNews(`${res.msg}`, 'success')
      this.sendCheckboxList = ''
      this.sendCheckboxType = ''
      this.sendShow = false
      this.rowId = ''
      // this.sendHandle(row.rowId)
    }
  },
  created() {
    this.init()
    this.getBtn()
  }
  ,
  components: {
    BaseMenuTree,
    BaseTableForm,
    BasePage,
    BaseTable,
    BaseNewForm,
    baseDialog
  }
  ,
  computed: {
    funWidth() {
      return this.mainFunData.length * 70
    }

  }
  ,
  watch: {
    $route(to) {
      this.init()
    }
  }
}
</script>

<style scoped lang="scss">
.wrap {
  display: flex;
  background-color: #fafafa;

  .tree {
    margin-right: 15px;
    background-color: #fff;
    border-radius: 8px;
    overflow: auto;
  }

  .main {
    overflow: auto;

    .top {
      padding: 20px;
      background-color: #fff;
      border-radius: 8px;

      > .btnList {
        display: flex;
        justify-content: flex-end;

        > .btnItem {
          margin-right: 15px;
        }
      }
    }

    .table {
      background-color: #fff;
      border-radius: 8px;
      margin-top: 15px;
      padding: 15px;

      > .nextPage {
        margin-top: 20px;
      }
    }

  }
}

.sonTable {
  border: 1px #cccccc dashed;
  padding: 5px 15px;
  margin-bottom: 5px;
  border-radius: 8px;
}
</style>

