Răsfoiți Sursa

用户execl导入优化

duy 2 zile în urmă
părinte
comite
e7aba60264
3 a modificat fișierele cu 186 adăugiri și 152 ștergeri
  1. 1 1
      public/version.json
  2. 149 134
      src/api/system/user.js
  3. 36 17
      src/views/system/user.vue

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20251203115937"
+  "value": "20251204181620"
 }

+ 149 - 134
src/api/system/user.js

@@ -1,170 +1,185 @@
-import request from '@/router/axios';
-
+import request from "@/router/axios";
 
 export const getList = (current, size, params, deptId) => {
-    return request({
-        url: '/api/blade-user/page',
-        method: 'get',
-        params: {
-            ...params,
-            current,
-            size,
-            deptId,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/page",
+    method: "get",
+    params: {
+      ...params,
+      current,
+      size,
+      deptId,
+    },
+  });
+};
 
 export const remove = (ids) => {
-    return request({
-        url: '/api/blade-user/remove',
-        method: 'post',
-        params: {
-            ids,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/remove",
+    method: "post",
+    params: {
+      ids,
+    },
+  });
+};
 
 export const add = (row) => {
-    return request({
-        url: '/api/blade-user/submit2',
-        method: 'post',
-        data: row
-    })
-}
+  return request({
+    url: "/api/blade-user/submit2",
+    method: "post",
+    data: row,
+  });
+};
 
 export const update = (row) => {
-    return request({
-        url: '/api/blade-user/update2',
-        method: 'post',
-        data: row
-    })
-}
+  return request({
+    url: "/api/blade-user/update2",
+    method: "post",
+    data: row,
+  });
+};
 
 export const updatePlatform = (userId, userType, userExt) => {
-    return request({
-        url: '/api/blade-user/update-platform',
-        method: 'post',
-        params: {
-            userId,
-            userType,
-            userExt,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/update-platform",
+    method: "post",
+    params: {
+      userId,
+      userType,
+      userExt,
+    },
+  });
+};
 
 export const getUser = (id) => {
-    return request({
-        url: '/api/blade-user/detail',
-        method: 'get',
-        params: {
-            id,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/detail",
+    method: "get",
+    params: {
+      id,
+    },
+  });
+};
 
 export const getUserPlatform = (id) => {
-    return request({
-        url: '/api/blade-user/platform-detail',
-        method: 'get',
-        params: {
-            id,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/platform-detail",
+    method: "get",
+    params: {
+      id,
+    },
+  });
+};
 
 export const getUserInfo = () => {
-    return request({
-        url: '/api/blade-user/info',
-        method: 'get',
-    })
-}
+  return request({
+    url: "/api/blade-user/info",
+    method: "get",
+  });
+};
 
 export const resetPassword = (userIds) => {
-    return request({
-        url: '/api/blade-user/reset-password',
-        method: 'post',
-        params: {
-            userIds,
-        }
-    })
-}
-
-export const updatePassword = (oldPassword, newPassword, newPassword1, plaintextPassword) => {
-    return request({
-        url: '/api/blade-user/update-password',
-        method: 'post',
-        params: {
-            oldPassword,
-            newPassword,
-            newPassword1,
-            plaintextPassword,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/reset-password",
+    method: "post",
+    params: {
+      userIds,
+    },
+  });
+};
+
+export const updatePassword = (
+  oldPassword,
+  newPassword,
+  newPassword1,
+  plaintextPassword
+) => {
+  return request({
+    url: "/api/blade-user/update-password",
+    method: "post",
+    params: {
+      oldPassword,
+      newPassword,
+      newPassword1,
+      plaintextPassword,
+    },
+  });
+};
 
 export const updateInfo = (row) => {
-    return request({
-        url: '/api/blade-user/update-info',
-        method: 'post',
-        data: row
-    })
-}
+  return request({
+    url: "/api/blade-user/update-info",
+    method: "post",
+    data: row,
+  });
+};
 
 export const grant = (userIds, roleIds) => {
-    return request({
-        url: '/api/blade-user/grant',
-        method: 'post',
-        params: {
-            userIds,
-            roleIds,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/grant",
+    method: "post",
+    params: {
+      userIds,
+      roleIds,
+    },
+  });
+};
 
 export const unlock = (userIds) => {
-    return request({
-        url: '/api/blade-user/unlock',
-        method: 'post',
-        params: {
-            userIds,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/unlock",
+    method: "post",
+    params: {
+      userIds,
+    },
+  });
+};
 
 export const lock = (userIds) => {
   return request({
-    url: '/api/blade-user/lock',
-    method: 'post',
+    url: "/api/blade-user/lock",
+    method: "post",
     params: {
       userIds,
-    }
-  })
-}
+    },
+  });
+};
 
 export const getUserList = (params) => {
-    return request({
-        url: '/api/blade-user/user-list',
-        method: 'get',
-        params: {
-            ...params,
-        }
-    })
-}
+  return request({
+    url: "/api/blade-user/user-list",
+    method: "get",
+    params: {
+      ...params,
+    },
+  });
+};
 
 //删除参建项目整个项目
 export const removeUserProjectInfoAndRoleById = (params) => {
-    return request({
-        url: '/api/blade-manager/contractInfo/remove-userProjectInfo-role-byId',
-        method: 'post',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/contractInfo/remove-userProjectInfo-role-byId",
+    method: "post",
+    params,
+  });
+};
 //获取用户
 export const getListBySearch = (params) => {
-    return request({
-        url: '/api/blade-user/search/user',
-        method: 'get',
-        params
-    })
-}
-
+  return request({
+    url: "/api/blade-user/search/user",
+    method: "get",
+    params,
+  });
+};
+
+// 上传用户excel文件
+export const importUserExcel = (row) => {
+  return request({
+    headers: {
+      "Content-Type": "multipart/form-data",
+    },
+    url: "/api/blade-user/import-user_new",
+    method: "post",
+    data: row,
+  });
+};

+ 36 - 17
src/views/system/user.vue

@@ -143,7 +143,7 @@
           </span>
         </el-dialog>
         <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
-          <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" ref="excelForm">
+          <avue-form :option="excelOption" v-model="excelForm" ref="excelForm">
             <template slot="excelTemplate">
               <el-button type="primary" @click="handleTemplate">
                 点击下载<i class="el-icon-download el-icon--right"></i>
@@ -185,8 +185,9 @@ import {
   lock,
   unlock,
   removeUserProjectInfoAndRoleById,
+  importUserExcel
 } from "@/api/system/user";
-import { getProjectList, getProjectListPage } from "@/api/manager/projectinfo";
+import { getProjectListPage } from "@/api/manager/projectinfo";
 
 import {
   findContractByProjectId,
@@ -729,6 +730,7 @@ export default {
           {
             label: "模板上传",
             prop: "excelFile",
+            accept: ".xls,.xlsx",
             type: "upload",
             drag: true,
             loadText: "模板上传中,请稍等",
@@ -737,7 +739,25 @@ export default {
               res: "data",
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/blade-user/import-user_new",
+            action: "#",
+            httpRequest: async (file) => {
+              const formData = new FormData();
+              formData.append("file", file.file);
+
+              const { data: res } = await importUserExcel(formData);
+              if (res.code === 200) {
+                this.excelBox = false;
+                // 刷新数据列表
+                this.refreshChange();
+                if (res.error) {
+                  this.$message.error(res.msg);
+                } else {
+                  this.$message.success(res.msg);
+                }
+              } else {
+                this.$message.error(res.msg);
+              }
+            }
           },
           // {
           //   label: "数据覆盖",
@@ -1494,20 +1514,19 @@ export default {
         isCovered: 0,
       };
     },
-    uploadAfter(res, done, loading, column) {
-      // window.console.log(column);
-      // this.excelBox = false;
-      // this.refreshChange();
-      // done();
-      // 关闭导入弹窗
-      this.excelBox = false;
-      // 刷新数据列表
-      this.refreshChange();
-      // 重置上传表单中的文件字段
-      // 方法1:重置整个表单
-
-      done();
-    },
+    // uploadAfter(res, done, loading, column) {
+    //   console.log(res, '111');
+    //   console.log(done, '222');
+    //   console.log(loading, '333');
+    //   console.log(column, '444');
+    //   if (!res) {
+    //     this.excelBox = false;
+    //     // 刷新数据列表
+    //     this.refreshChange();
+    //     this.$message.success("导入成功!");
+    //   }
+    //   done();
+    // },
     handleExport() {
       this.$confirm("是否导出用户数据?", "提示", {
         confirmButtonText: "确定",