From ba09ccd7346a2e0aa8a1ac55b5cc46eb9cb057af Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Fri, 02 Aug 2024 08:39:53 +0800
Subject: [PATCH] 责任人
---
src/views/Admin/contactBook/contactors.vue | 88 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 83 insertions(+), 5 deletions(-)
diff --git a/src/views/Admin/contactBook/contactors.vue b/src/views/Admin/contactBook/contactors.vue
index 6a07c56..f2e574f 100644
--- a/src/views/Admin/contactBook/contactors.vue
+++ b/src/views/Admin/contactBook/contactors.vue
@@ -23,10 +23,19 @@
<a-button type="danger" @click="deliverTask" v-if="!unittype || unittype == 1">下发更新任务</a-button>
</div>
</div>
- <div style="margin: 20px 0">
- <a-button type="primary" style="margin-right: 10px" @click="editData('add',{})">新增</a-button>
- <a-button type="primary" @click="massImport()">批量导入</a-button>
+ <div style="margin: 20px 0;display: flex;justify-content: space-between">
+ <div>
+ <a-button type="primary" style="margin-right: 10px" @click="editData('add',{})">新增</a-button>
+ <a-button type="primary" @click="massImport()">批量导入</a-button>
+ </div>
+ <a-button type="primary" @click="openExport">批量导出</a-button>
+
+<!-- <download-excel :data="json_data" :fields="json_fields" name="责任人导出.xlsx" >-->
+<!-- <a-button type="primary">批量导出</a-button>-->
+<!-- </download-excel>-->
+
</div>
+
<div class="table-cont">
<a-table :columns="columns" :data-source="tableData" :pagination="pagination" :rowKey="record=>record.id.toString()" bordered>
<template #index="text,record,index">
@@ -65,6 +74,28 @@
</a-form-model-item>
</a-form-model>
</a-modal>
+ <a-modal v-model="exportDialog" title="导出通讯录" :footer="null" centered :afterClose="closeDialog">
+ <a-form-model ref="ruleForm" :label-col="labelCol" :wrapper-col="wrapperCol" :colon="false">
+ <a-form-model-item label="行政区划" >
+ <a-tree-select
+ v-model="exportAreaId"
+ style="width: 100%"
+ :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+ :tree-data="treeData"
+ placeholder="请选择行政区划"
+ :replaceFields="replaceFields"
+ @change="changeArea"
+ />
+ </a-form-model-item>
+ <div v-if=" json_data.length>0">
+ <download-excel :data="json_data" :fields="json_fields" name="责任人导出.xlsx" style="display: flex;justify-content: flex-end">
+ <a-button type="primary">批量导出</a-button>
+ </download-excel>
+ </div>
+ <div v-else style="text-align: center;color: salmon">暂无人员导出</div>
+
+ </a-form-model>
+ </a-modal>
</div>
</template>
@@ -80,7 +111,7 @@
} from "@/api/contactBook";
import subMenu from "@/views/Admin/contactBook/subMenu";
import contactorsMod from "@/views/Admin/components/contactorsMod"
-import {importUser} from "@/api/user";
+import {getExportData, importUser} from "@/api/user";
import importNew from "@/assets/importNew.xlsx";
import JSONBig from 'json-bigint'
export default {
@@ -182,7 +213,34 @@
value: 'id',
children: 'children'
},
- currentId: null
+ currentId: null,
+ exportDialog: false,
+ areaId: null,
+ areaData: [],
+ exportAreaId: null,
+ replaceFields: {
+ children:'children',
+ title:'name',
+ key:'id',
+ value: 'code'
+ },
+ json_fields: {
+ 'ID': 'id',
+ '姓名': 'name',
+ '所属当前级别行政区划': 'districtName',
+ '区划编号': 'districtCode',
+ '组织架构': 'orgStructureName',
+ '单位': 'company',
+ '职务': 'post',
+ '电话号码': 'phone',
+ '责任类型': {
+ field: 'orgUserTypes',
+ callback: (value) => {
+ return value?value.map(i=>i.typeName + '(' + i.orgUserTags.map(j=>j.tagName).join('/') +')').join(','): ''
+ }
+ },
+ },
+ json_data: []
}
},
created() {
@@ -255,6 +313,11 @@
clearMod(){
this.fileList = []
},
+ closeDialog(){
+ this.exportAreaId = null;
+ this.json_data = [];
+ this.exportDialog = false;
+ },
async getStructure(){
const t = this
const res = await getStructure()
@@ -272,6 +335,7 @@
t.$message.warning(res.data.msg)
}
},
+
filterBranches(branches, targetNames) {
return branches.filter(branch => {
@@ -311,6 +375,9 @@
}
},
+ openExport() {
+ this.exportDialog = true
+ },
handleClick(e) {
this.currentId = e.keyPath[1]?e.keyPath[1].split('-')[0]:e.keyPath[0].split('-')[0]
@@ -395,6 +462,17 @@
},
});
},
+ changeArea(value){
+ console.log('val',this.exportAreaId)
+ getExportData(this.exportAreaId).then(res => {
+ if(res.data.code == 100){
+ this.json_data = res.data.data
+ }else{
+ this.$message.warning(res.data.msg);
+ }
+ })
+ console.log('this.json_data',this.json_data)
+ },
async deliverTask(){
const t = this
--
Gitblit v1.9.2