From 81e6577d11920a45284936f591bd8d076006a919 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Thu, 01 Aug 2024 13:09:57 +0800
Subject: [PATCH] 修改通讯录
---
src/views/Admin/contactBook/contactors.vue | 142 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 114 insertions(+), 28 deletions(-)
diff --git a/src/views/Admin/contactBook/contactors.vue b/src/views/Admin/contactBook/contactors.vue
index 9dc8b3c..6a07c56 100644
--- a/src/views/Admin/contactBook/contactors.vue
+++ b/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>
@@ -53,6 +53,18 @@
</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>
@@ -68,7 +80,9 @@
} 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: {
@@ -77,6 +91,12 @@
},
data () {
return {
+ visible: false,
+ uploadLoading: false,
+ fileList: [],
+ labelCol: { span: 8 },
+ wrapperCol: { span: 14 },
+ importNew,
openKeys: [],
areaVal: [],
unittype: null,
@@ -107,10 +127,8 @@
},
{
title: '所属组织架构',
- dataIndex: 'orgName',
- scopedSlots: {
- customRender: 'orgName'
- }
+ dataIndex: 'orgStructureName',
+ key: 'orgStructureName'
},
{
title: '所属单位',
@@ -171,9 +189,9 @@
const t = this
t.unittype = getUserInfo().unittype
t.districtId = getUserInfo().districtId
+ t.getStructure()
t.getUserList()
t.getUpdataData()
- t.getStructure()
},
mounted() {
@@ -184,24 +202,88 @@
}
},
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) {
@@ -231,7 +313,6 @@
handleClick(e) {
- console.log(e)
this.currentId = e.keyPath[1]?e.keyPath[1].split('-')[0]:e.keyPath[0].split('-')[0]
this.search = {
pageIndex: 1,
@@ -261,7 +342,7 @@
},
massImport(){
- this.$message.warning('批量导入请联系管理人员')
+ this.visible = true
},
resetSearch(){
@@ -276,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){
--
Gitblit v1.9.2