Bläddra i källkod

fix: 解决上传成功后批量导入点不动的问题

kuanghua liu 1 år sedan
förälder
incheckning
fa126bfa42
2 ändrade filer med 77 tillägg och 52 borttagningar
  1. 53 42
      src/views/system/user/component/AddUser.vue
  2. 24 10
      src/views/system/user/user.vue

+ 53 - 42
src/views/system/user/component/AddUser.vue

@@ -40,11 +40,11 @@
           <el-icon :size="18" style="margin-top: 7px; margin-left: auto">
             <Download />
           </el-icon>
-          <el-tooltip content="点击下载组织/用户id信息" placement="top" effect="light">
+          <el-tooltip content="点击下载组织/角色id信息" placement="top" effect="light">
             <span
               style="color: #409efc; margin-top: 6px; margin-right: 12px; cursor: pointer"
               @click="handleDownloadInfoForm"
-              >组织/用户id信息</span
+              >组织/角色id信息查询</span
             >
           </el-tooltip>
 
@@ -203,7 +203,7 @@
   // const sucCount = ref<number>(0);
   const errorCount = ref<number>(0);
 
-  const props = defineProps<{ modelValue: boolean }>();
+  const props = defineProps<{ modelValue: boolean; colseAddUser: () => unknown }>();
   const emits = defineEmits(['update:modelValue', 'change']);
 
   const updateValue = (value) => {
@@ -256,7 +256,7 @@
       let downloadLink: HTMLAnchorElement | null = document.createElement('a');
       const url = window.URL.createObjectURL(blob);
       downloadLink.href = url;
-      downloadLink.download = '组织/用户id信息模板.xlsx';
+      downloadLink.download = '组织/角色id信息模板.xlsx';
       downloadLink.click();
       // 移除下载链接
       window.URL.revokeObjectURL(url);
@@ -284,48 +284,59 @@
   };
 
   const handleUploadSuccess = (response, _file, _fileList) => {
-    // console.log(response);
-    // isSuc.value = response.data.isSuc;
-    errDetail.value = response.data.errorList;
-    successCount.value = response.data.successCount || 0;
-    errorCount.value = response.data.errorCount || 0;
-
-    try {
-      if (errDetail.value.length > 0) {
-        errDetail.value.forEach((item, index) => {
-          if (item.indexOf('【添加失败】') >= 0) {
-            errDetail.value[index] = item.replace(
-              '【添加失败】',
-              '<span style="color: #ff4d4f">【添加失败】</span>',
-            );
-          } else if (item.indexOf('【添加成功】') >= 0) {
-            errDetail.value[index] = item.replace(
-              '【添加成功】',
-              '<span style="color: #52c41a">【添加成功】</span>',
-            );
-          }
-        });
-      }
-
-      if (successCount.value != 0 && errorCount.value === 0 && errDetail.value.length === 0) {
-        ElMessage({
-          message: '添加成功', // 1.全部添加成功 —— failCount === 0
-          type: 'success',
-        });
-        emits('update:modelValue', true);
-        emits('change');
-        // window.location.reload();
-      } else {
-        DialogVisible.value = true;
-      }
-      cardVisible.value = false;
-    } catch (error) {
+    console.log(response);
+    if (response.code == 400) {
       ElMessage({
-        // console.log(res),
-        message: response.data.msg,
+        message: response.message,
         type: 'error',
       });
       emits('update:modelValue', false);
+    } else {
+      // isSuc.value = response.data.isSuc;
+      errDetail.value = response.data.errorList;
+      successCount.value = response.data.successCount || 0;
+      errorCount.value = response.data.errorCount || 0;
+
+      try {
+        if (errDetail.value.length > 0) {
+          errDetail.value.forEach((item, index) => {
+            if (item.indexOf('【添加失败】') >= 0) {
+              errDetail.value[index] = item.replace(
+                '【添加失败】',
+                '<span style="color: #ff4d4f">【添加失败】</span>',
+              );
+            } else if (item.indexOf('【添加成功】') >= 0) {
+              errDetail.value[index] = item.replace(
+                '【添加成功】',
+                '<span style="color: #52c41a">【添加成功】</span>',
+              );
+            }
+          });
+        }
+
+        if (successCount.value != 0 && errorCount.value === 0 && errDetail.value.length === 0) {
+          ElMessage({
+            message: '添加成功', // 1.全部添加成功 —— failCount === 0
+            type: 'success',
+          });
+          emits('update:modelValue', true);
+          emits('change');
+          //把上一级的AddUser窗口关掉
+          props.colseAddUser();
+          // window.location.reload();
+        } else {
+          console.log('code500');
+          DialogVisible.value = true;
+        }
+        cardVisible.value = false;
+      } catch (error) {
+        // console.log('code200'),
+        ElMessage({
+          message: response.message,
+          type: 'error',
+        });
+        emits('update:modelValue', false);
+      }
     }
 
     // if (isSuc.value) {

+ 24 - 10
src/views/system/user/user.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="user-page">
-    <UserQuery  :departmentList="departmentList" />
+    <UserQuery :departmentList="departmentList" />
     <div class="user-list">
       <BasicTable
         :columns="columns"
@@ -56,7 +56,12 @@
         </template>
       </BasicTable>
     </div>
-    <CreateDrawer ref="createDrawerRef" :title="drawerTitle" @change="reloadTable" :departmentList="departmentList" />
+    <CreateDrawer
+      ref="createDrawerRef"
+      :title="drawerTitle"
+      @change="reloadTable"
+      :departmentList="departmentList"
+    />
     <ResetCodeDrawer ref="ResetCodeDrawerRef" :title="drawerTitle" @change="reloadTable" />
     <CreateAdminDrawer
       v-if="userStore?.info?.username === ROOT_USER"
@@ -67,6 +72,7 @@
     />
     <AddUser
       v-if="showAddPopover"
+      :colseAddUser="setShowAddPopoverFalse"
       v-model="showAddPopover"
       class="add-popover"
       @change="reloadTable"
@@ -95,12 +101,11 @@
   import { EditType } from './types';
   import { ROOT_USER } from './types';
   import { deptTreeList } from '@/api/auth/dept';
-import useSceneInfos from '@/hooks/useSceneInfos';
-// import { TreeProps,ElTreeItem } from 'element-plus/es/components/tree-v2/src/types';
-
-const sceneInfos = useSceneInfos();
-  const {calculateTreeData } = sceneInfos;
+  import useSceneInfos from '@/hooks/useSceneInfos';
+  // import { TreeProps,ElTreeItem } from 'element-plus/es/components/tree-v2/src/types';
 
+  const sceneInfos = useSceneInfos();
+  const { calculateTreeData } = sceneInfos;
 
   const useUserDetail = useUser();
   const { userList, page, pageSize, totalCount } = storeToRefs(useUserDetail);
@@ -141,7 +146,7 @@ const sceneInfos = useSceneInfos();
     key: 'action',
     fixed: 'right',
     render(record) {
-      return h(ActionColomns as any,{
+      return h(ActionColomns as any, {
         space: 20,
         color: '#629bf9',
         style: 'img',
@@ -200,6 +205,11 @@ const sceneInfos = useSceneInfos();
     console.log('showAddPopover', showAddPopover.value);
   };
 
+  //传个方法到子组件,当上传成功后把showAddPopover的值改为false;
+  const setShowAddPopoverFalse = () => {
+    showAddPopover.value = false;
+  };
+
   function handleEdit(record: Recordable) {
     console.log('点击了编辑', record);
     drawerTitle.value = '编辑用户';
@@ -210,7 +220,7 @@ const sceneInfos = useSceneInfos();
   function handleResetCode(record: Recordable) {
     drawerTitle.value = '重置密码';
     const { openDrawer } = ResetCodeDrawerRef.value;
-    openDrawer(record.username,record.userId);
+    openDrawer(record.username, record.userId);
   }
 
   function handleDelete(record: Recordable) {
@@ -225,7 +235,11 @@ const sceneInfos = useSceneInfos();
   onMounted(async () => {
     getList();
     deptTreeList().then((res) => {
-      departmentList.value = calculateTreeData(res, { level: 3, valueKey: 'deptId', labelKey: 'deptName' }, 1);
+      departmentList.value = calculateTreeData(
+        res,
+        { level: 3, valueKey: 'deptId', labelKey: 'deptName' },
+        1,
+      );
     });
     const res = await roleAllList();
     roleData.value = res.list.map((item: any) => {