From fc76b6c4a7ccd2d875b0fb998a868fe4bea188f7 Mon Sep 17 00:00:00 2001
From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local>
Date: 星期五, 14 二月 2025 09:19:18 +0800
Subject: [PATCH] 新增设备台账导入

---
 eims-ui/apps/web-antd/src/views/system/user/index.vue |  128 ++++++++++++------------------------------
 1 files changed, 38 insertions(+), 90 deletions(-)

diff --git a/eims-ui/apps/web-antd/src/views/system/user/index.vue b/eims-ui/apps/web-antd/src/views/system/user/index.vue
index 24b0ed1..b11e5a9 100644
--- a/eims-ui/apps/web-antd/src/views/system/user/index.vue
+++ b/eims-ui/apps/web-antd/src/views/system/user/index.vue
@@ -4,34 +4,16 @@
 import { ref } from 'vue';
 
 import { useAccess } from '@vben/access';
-import {
-  Page,
-  useVbenDrawer,
-  useVbenModal,
-  type VbenFormProps,
-} from '@vben/common-ui';
+import { Page, useVbenDrawer, useVbenModal, type VbenFormProps } from '@vben/common-ui';
 import { $t } from '@vben/locales';
 import { preferences } from '@vben/preferences';
 import { getVxePopupContainer } from '@vben/utils';
 
-import {
-  Avatar,
-  Dropdown,
-  Menu,
-  MenuItem,
-  Modal,
-  Popconfirm,
-  Space,
-} from 'ant-design-vue';
+import { Avatar, Dropdown, Menu, MenuItem, Modal, Popconfirm, Space } from 'ant-design-vue';
 
 import { useVbenVxeGrid, type VxeGridProps } from '#/adapter/vxe-table';
 import { vxeCheckboxChecked } from '#/adapter/vxe-table';
-import {
-  userExport,
-  userList,
-  userRemove,
-  userStatusChange,
-} from '#/api/system/user';
+import { userExport, userList, userRemove, userStatusChange } from '#/api/system/user';
 import { TableSwitch } from '#/components/table';
 import { commonDownloadExcel } from '#/utils/file/download';
 
@@ -46,7 +28,7 @@
  * 瀵煎叆
  */
 const [UserImpotModal, userImportModalApi] = useVbenModal({
-  connectedComponent: userImportModal,
+  connectedComponent: userImportModal
 });
 
 function handleImport() {
@@ -55,14 +37,17 @@
 
 // 宸﹁竟閮ㄩ棬鐢�
 const selectDeptId = ref<string[]>([]);
+defineExpose({
+  tableSelect
+});
 
 const formOptions: VbenFormProps = {
   schema: querySchema(),
   commonConfig: {
     labelWidth: 80,
     componentProps: {
-      allowClear: true,
-    },
+      allowClear: true
+    }
   },
   wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
   handleReset: async () => {
@@ -75,13 +60,7 @@
     await reload(formValues);
   },
   // 鏃ユ湡閫夋嫨鏍煎紡鍖�
-  fieldMappingTime: [
-    [
-      'createTime',
-      ['params[beginTime]', 'params[endTime]'],
-      ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59'],
-    ],
-  ],
+  fieldMappingTime: [['createTime', ['params[beginTime]', 'params[endTime]'], ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59']]]
 };
 
 const gridOptions: VxeGridProps = {
@@ -92,7 +71,7 @@
     reserve: true,
     // 鐐瑰嚮琛岄�変腑
     trigger: 'default',
-    checkMethod: ({ row }) => row?.userId !== 1,
+    checkMethod: ({ row }) => row?.userId !== 1
   },
   columns,
   height: 'auto',
@@ -111,25 +90,25 @@
         return await userList({
           pageNum: page.currentPage,
           pageSize: page.pageSize,
-          ...formValues,
+          ...formValues
         });
-      },
-    },
+      }
+    }
   },
   rowConfig: {
     isHover: true,
     keyField: 'userId',
-    height: 48,
+    height: 48
   },
-  id: 'system-user-index',
+  id: 'system-user-index'
 };
 const [BasicTable, tableApi] = useVbenVxeGrid({
   formOptions,
-  gridOptions,
+  gridOptions
 });
 
 const [UserDrawer, userDrawerApi] = useVbenDrawer({
-  connectedComponent: userDrawer,
+  connectedComponent: userDrawer
 });
 
 function handleAdd() {
@@ -157,18 +136,18 @@
     onOk: async () => {
       await userRemove(ids);
       await tableApi.query();
-    },
+    }
   });
 }
 
 function handleDownloadExcel() {
   commonDownloadExcel(userExport, '鐢ㄦ埛绠$悊', tableApi.formApi.form.values, {
-    fieldMappingTime: formOptions.fieldMappingTime,
+    fieldMappingTime: formOptions.fieldMappingTime
   });
 }
 
 const [UserInfoModal, userInfoModalApi] = useVbenModal({
-  connectedComponent: userInfoModal,
+  connectedComponent: userInfoModal
 });
 function handleUserInfo(row: Recordable<any>) {
   userInfoModalApi.setData({ userId: row.userId });
@@ -176,12 +155,17 @@
 }
 
 const [UserResetPwdModal, userResetPwdModalApi] = useVbenModal({
-  connectedComponent: userResetPwdModal,
+  connectedComponent: userResetPwdModal
 });
 
 function handleResetPwd(record: Recordable<any>) {
   userResetPwdModalApi.setData({ record });
   userResetPwdModalApi.open();
+}
+
+// 閫変腑鏁版嵁
+function tableSelect() {
+  return tableApi.grid.getCheckboxRecords();
 }
 
 const { hasAccessByCodes } = useAccess();
@@ -190,25 +174,14 @@
 <template>
   <Page :auto-content-height="true">
     <div class="flex h-full gap-[8px]">
-      <DeptTree
-        v-model:select-dept-id="selectDeptId"
-        class="w-[260px]"
-        @reload="() => tableApi.reload()"
-        @select="() => tableApi.reload()"
-      />
+      <DeptTree v-model:select-dept-id="selectDeptId" class="w-[260px]" @reload="() => tableApi.reload()" @select="() => tableApi.reload()" />
       <BasicTable class="flex-1 overflow-hidden" table-title="鐢ㄦ埛鍒楄〃">
         <template #toolbar-tools>
           <Space>
-            <a-button
-              v-access:code="['system:user:export']"
-              @click="handleDownloadExcel"
-            >
+            <a-button v-access:code="['system:user:export']" @click="handleDownloadExcel">
               {{ $t('pages.common.export') }}
             </a-button>
-            <a-button
-              v-access:code="['system:user:import']"
-              @click="handleImport"
-            >
+            <a-button v-access:code="['system:user:import']" @click="handleImport">
               {{ $t('pages.common.import') }}
             </a-button>
             <a-button
@@ -220,11 +193,7 @@
             >
               {{ $t('pages.common.delete') }}
             </a-button>
-            <a-button
-              type="primary"
-              v-access:code="['system:user:add']"
-              @click="handleAdd"
-            >
+            <a-button type="primary" v-access:code="['system:user:add']" @click="handleAdd">
               {{ $t('pages.common.add') }}
             </a-button>
           </Space>
@@ -237,49 +206,28 @@
           <TableSwitch
             v-model="row.status"
             :api="() => userStatusChange(row)"
-            :disabled="
-              row.userId === 1 || !hasAccessByCodes(['system:user:edit'])
-            "
+            :disabled="row.userId === 1 || !hasAccessByCodes(['system:user:edit'])"
             :reload="() => tableApi.query()"
           />
         </template>
         <template #action="{ row }">
           <template v-if="row.userId !== 1">
             <Space>
-              <ghost-button
-                v-access:code="['system:user:edit']"
-                @click.stop="handleEdit(row)"
-              >
+              <ghost-button v-access:code="['system:user:edit']" @click.stop="handleEdit(row)">
                 {{ $t('pages.common.edit') }}
               </ghost-button>
-              <Popconfirm
-                :get-popup-container="getVxePopupContainer"
-                placement="left"
-                title="纭鍒犻櫎锛�"
-                @confirm="handleDelete(row)"
-              >
-                <ghost-button
-                  danger
-                  v-access:code="['system:user:remove']"
-                  @click.stop=""
-                >
+              <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
+                <ghost-button danger v-access:code="['system:user:remove']" @click.stop="">
                   {{ $t('pages.common.delete') }}
                 </ghost-button>
               </Popconfirm>
             </Space>
-            <Dropdown
-              :get-popup-container="getVxePopupContainer"
-              placement="bottomRight"
-            >
+            <Dropdown :get-popup-container="getVxePopupContainer" placement="bottomRight">
               <template #overlay>
                 <Menu>
-                  <MenuItem key="1" @click="handleUserInfo(row)">
-                    鐢ㄦ埛淇℃伅
-                  </MenuItem>
+                  <MenuItem key="1" @click="handleUserInfo(row)"> 鐢ㄦ埛淇℃伅 </MenuItem>
                   <span v-access:code="['system:user:resetPwd']">
-                    <MenuItem key="2" @click="handleResetPwd(row)">
-                      閲嶇疆瀵嗙爜
-                    </MenuItem>
+                    <MenuItem key="2" @click="handleResetPwd(row)"> 閲嶇疆瀵嗙爜 </MenuItem>
                   </span>
                 </Menu>
               </template>

--
Gitblit v1.9.3