From 5bb5c0c4cc1227b0a3f7f4ae926a3e8324022bf9 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 19 七月 2024 14:37:01 +0800
Subject: [PATCH] 新增导入
---
config/env.development.js | 4 +-
src/views/Admin/contactBook/contactors.vue | 77 +++++++++++++++++++++++++++++++++++++-
src/api/user.js | 12 ++++++
src/assets/importNew.xlsx | 0
4 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/config/env.development.js b/config/env.development.js
index edca358..3f00d8e 100644
--- a/config/env.development.js
+++ b/config/env.development.js
@@ -1,5 +1,5 @@
module.exports = {
NODE_ENV: "development",
- // baseUrl: 'http://192.168.0.70:8087',
- baseUrl: 'http://sms.sinanoaq.cn/api',
+ baseUrl: 'http://192.168.2.11:8087',
+ // baseUrl: 'http://sms.sinanoaq.cn/api',
};
\ No newline at end of file
diff --git a/src/api/user.js b/src/api/user.js
index e50b681..61f21c0 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -200,6 +200,18 @@
})
}
+// 导入通讯录
+export function importUser(data){
+ return request({
+ headers: {
+ "Content-Type": "multipart/form-data",
+ },
+ url: '/org/user/import',
+ method: 'post',
+ data: data
+ })
+}
+
//下载区划对照表
export function downLoadArea(){
return request({
diff --git a/src/assets/importNew.xlsx b/src/assets/importNew.xlsx
new file mode 100644
index 0000000..145dbcd
--- /dev/null
+++ b/src/assets/importNew.xlsx
Binary files differ
diff --git a/src/views/Admin/contactBook/contactors.vue b/src/views/Admin/contactBook/contactors.vue
index 9dc8b3c..42e7129 100644
--- a/src/views/Admin/contactBook/contactors.vue
+++ b/src/views/Admin/contactBook/contactors.vue
@@ -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,6 +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 exampleFile from "@/assets/example.xlsx";
export default {
name: 'sameLevel',
@@ -77,6 +92,12 @@
},
data () {
return {
+ visible: false,
+ uploadLoading: false,
+ fileList: [],
+ labelCol: { span: 8 },
+ wrapperCol: { span: 14 },
+ importNew,
openKeys: [],
areaVal: [],
unittype: null,
@@ -184,6 +205,59 @@
}
},
methods:{
+ downloadFile(){
+ const link = document.createElement('a')
+ link.href = exampleFile
+ 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()
@@ -231,7 +305,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 +334,7 @@
},
massImport(){
- this.$message.warning('批量导入请联系管理人员')
+ this.visible = true
},
resetSearch(){
--
Gitblit v1.9.2