| | |
| | | <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> |
| | |
| | | </a-col> |
| | | <contactors-mod ref="contactMod" @refresh="getUserList()"></contactors-mod> |
| | | </a-row> |
| | | <a-modal v-model="visible" title="导入通讯录" ok-text="导入通讯录" :confirmLoading="uploadLoading" cancel-text="取消" @ok="uploadFile" centered :afterClose="clearMod"> |
| | | <a-form-model ref="ruleForm" :label-col="labelCol" :wrapper-col="wrapperCol" :colon="false"> |
| | | <a-form-model-item label="通讯录表格模板" extra="导入通讯录须依据此模板"> |
| | | <a-button type="primary" @click="downloadFile">下载模板</a-button> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="通讯录表格文件"> |
| | | <a-upload :file-list="fileList" :remove="handleRemove" :before-upload="beforeUpload" accept=".xlsx,.xls"> |
| | | <a-button> <a-icon type="upload"/> 点击上传 </a-button> |
| | | </a-upload> |
| | | </a-form-model-item> |
| | | </a-form-model> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | } from "@/api/contactBook"; |
| | | import subMenu from "@/views/Admin/contactBook/subMenu"; |
| | | import contactorsMod from "@/views/Admin/components/contactorsMod" |
| | | |
| | | import {importUser} from "@/api/user"; |
| | | import importNew from "@/assets/importNew.xlsx"; |
| | | import JSONBig from 'json-bigint' |
| | | export default { |
| | | name: 'sameLevel', |
| | | components: { |
| | |
| | | }, |
| | | data () { |
| | | return { |
| | | visible: false, |
| | | uploadLoading: false, |
| | | fileList: [], |
| | | labelCol: { span: 8 }, |
| | | wrapperCol: { span: 14 }, |
| | | importNew, |
| | | openKeys: [], |
| | | areaVal: [], |
| | | unittype: null, |
| | |
| | | }, |
| | | { |
| | | title: '所属组织架构', |
| | | dataIndex: 'orgName', |
| | | scopedSlots: { |
| | | customRender: 'orgName' |
| | | } |
| | | dataIndex: 'orgStructureName', |
| | | key: 'orgStructureName' |
| | | }, |
| | | { |
| | | title: '所属单位', |
| | |
| | | const t = this |
| | | t.unittype = getUserInfo().unittype |
| | | t.districtId = getUserInfo().districtId |
| | | t.getStructure() |
| | | t.getUserList() |
| | | t.getUpdataData() |
| | | t.getStructure() |
| | | }, |
| | | mounted() { |
| | | |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | downloadFile(){ |
| | | const link = document.createElement('a') |
| | | link.href = importNew |
| | | link.target = '_blank' |
| | | link.download = '通讯录导入模板.xlsx' |
| | | link.click() |
| | | }, |
| | | |
| | | handleRemove(file) { |
| | | const index = this.fileList.indexOf(file) |
| | | const newFileList = this.fileList.slice() |
| | | newFileList.splice(index, 1) |
| | | this.fileList = newFileList; |
| | | }, |
| | | beforeUpload(file) { |
| | | this.fileList = [...this.fileList, file] |
| | | this.fileList = this.fileList.slice(-1) |
| | | return false; |
| | | }, |
| | | |
| | | async uploadFile(){ |
| | | if(!this.currentId || !this.search.searchParams.orgStructureId){ |
| | | this.$message.warning('请先在页面左侧单位架构处选择需要导入人员的单位') |
| | | return |
| | | } |
| | | if(this.fileList.length == 0){ |
| | | this.$message.warning('请先上传通讯录表格'); |
| | | return |
| | | }else{ |
| | | this.uploadLoading = true |
| | | const { fileList } = this; |
| | | const formData = new FormData(); |
| | | fileList.forEach((file) => { |
| | | formData.append('file', file) |
| | | }) |
| | | formData.append('districtId', this.currentId) |
| | | formData.append('orgStructureId', this.search.searchParams.orgStructureId) |
| | | const res = await importUser(formData) |
| | | if(res.data.code == 100){ |
| | | this.$message.success(res.data.msg,2); |
| | | this.fileList = [] |
| | | this.uploadLoading = false |
| | | this.visible = false |
| | | await this.getUserList() |
| | | }else{ |
| | | this.$message.warning(res.data.msg); |
| | | this.uploadLoading = false |
| | | } |
| | | } |
| | | }, |
| | | clearMod(){ |
| | | this.fileList = [] |
| | | }, |
| | | async getStructure(){ |
| | | 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) { |
| | |
| | | |
| | | |
| | | handleClick(e) { |
| | | console.log(e) |
| | | this.currentId = e.keyPath[1]?e.keyPath[1].split('-')[0]:e.keyPath[0].split('-')[0] |
| | | this.search = { |
| | | pageIndex: 1, |
| | |
| | | }, |
| | | |
| | | massImport(){ |
| | | this.$message.warning('批量导入请联系管理人员') |
| | | this.visible = true |
| | | }, |
| | | |
| | | resetSearch(){ |
| | |
| | | |
| | | 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){ |