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