马宇豪
2024-08-01 81e6577d11920a45284936f591bd8d076006a919
src/views/Admin/contactBook/contactors.vue
@@ -28,13 +28,13 @@
          <a-button  type="primary" @click="massImport()">批量导入</a-button>
        </div>
        <div class="table-cont">
          <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id" bordered>
          <a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id.toString()" bordered>
            <template #index="text,record,index">
              {{ index + 1 }}
            </template>
            <template #orgName="text,record,index">
              {{currentKey.length>0?currentKey[0].split('-')[1]: ''}}
            </template>
<!--            <template #orgStructureName="text,record,index">-->
<!--              {{currentKey.length>0?currentKey[0].split('-')[1]: ''}}-->
<!--            </template>-->
            <template #orgUserTypes="text,record,index">
              {{record.orgUserTypes?record.orgUserTypes.map(i=>i.typeName + '(' + i.orgUserTags.map(j=>j.tagName).join('/') +')').join(','): ''}}
            </template>
@@ -82,8 +82,7 @@
import contactorsMod from "@/views/Admin/components/contactorsMod"
import {importUser} from "@/api/user";
import importNew from "@/assets/importNew.xlsx";
import exampleFile from "@/assets/example.xlsx";
import JSONBig from 'json-bigint'
export default {
  name: 'sameLevel',
  components: {
@@ -128,10 +127,8 @@
        },
        {
          title: '所属组织架构',
          dataIndex: 'orgName',
          scopedSlots: {
            customRender: 'orgName'
          }
          dataIndex: 'orgStructureName',
          key: 'orgStructureName'
        },
        {
          title: '所属单位',
@@ -192,9 +189,9 @@
    const t = this
    t.unittype = getUserInfo().unittype
    t.districtId = getUserInfo().districtId
    t.getStructure()
    t.getUserList()
    t.getUpdataData()
    t.getStructure()
  },
  mounted() {
@@ -207,7 +204,7 @@
  methods:{
    downloadFile(){
      const link = document.createElement('a')
      link.href = exampleFile
      link.href = importNew
      link.target = '_blank'
      link.download = '通讯录导入模板.xlsx'
      link.click()
@@ -262,20 +259,31 @@
      const t = this
      const res = await getStructure()
      if(res.data.code == 100){
        t.treeData = res.data.data
        const firstItem = this.firstIdWithOrgStructures(res.data.data[0])
        if(firstItem){
          t.openKeys =  [firstItem.id +'-'+  firstItem.name]
          t.currentId = firstItem.id
          t.currentKey = [firstItem.orgStructures[0].id +'-'+  firstItem.orgStructures[0].orgName]
        }else{
          t.$message.warning('暂无可操作的单位,请先进入“组织架构维护页面”新建相应的本级单位')
        }
        t.treeData = t.filterBranches(res.data.data,['自治区直辖县级行政区划'])
        // const firstItem = this.firstIdWithOrgStructures(res.data.data[0])
        // if(firstItem){
        //   t.openKeys =  [firstItem.id +'-'+  firstItem.name]
        //   t.currentId = firstItem.id
        //   t.currentKey = [firstItem.orgStructures[0].id +'-'+  firstItem.orgStructures[0].orgName]
        // }else{
        //   t.$message.warning('暂无可操作的单位,请先进入“组织架构维护页面”新建相应的本级单位')
        // }
      }else{
        t.$message.warning(res.data.msg)
      }
    },
    filterBranches(branches, targetNames) {
      return branches.filter(branch => {
        if (targetNames.includes(branch.name)) {
          return false; // 过滤掉当前分支
        }
        if (branch.children && branch.children.length > 0) {
          branch.children = this.filterBranches(branch.children, targetNames);
        }
        return true; // 保留当前分支
      });
    },
    firstIdWithOrgStructures(node) {
      if (node.orgStructures && node.orgStructures.length > 0) {
@@ -349,14 +357,19 @@
    editData(type,data){
      const t = this
      if(type == 'add' && (!t.currentId || !t.currentKey)){
        t.$message.warning('暂无可操作的单位,请先进入“组织架构维护页面”新建相应的本级单位')
        return
      if(type == 'add'){
        if(!t.currentId || !t.currentKey){
          t.$message.warning('请先在左侧选择单位再进行新增')
          return
        }else {
          const areaId = t.currentId
          const orgName = t.currentKey.length>0?t.currentKey[0].split('-')[1]: ''
          const orgId = t.currentKey.length>0?t.currentKey[0].split('-')[0]: null
          t.$refs.contactMod.openDialog(type,data,areaId,orgName,orgId)
        }
      }else{
        t.$refs.contactMod.openDialog(type,data,data.districtId,data.orgStructureName,data.orgStructureId)
      }
      const areaId = t.currentId
      const orgName = t.currentKey.length>0?t.currentKey[0].split('-')[1]: ''
      const orgId = t.currentKey.length>0?t.currentKey[0].split('-')[0]: null
      t.$refs.contactMod.openDialog(type,data,areaId,orgName,orgId)
    },
    async delData(row){