From 2c3d6ae9d456ad2cf0b3047d6421ef6f36d216d0 Mon Sep 17 00:00:00 2001 From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local> Date: 星期一, 17 二月 2025 16:01:55 +0800 Subject: [PATCH] 新增工具治具模块 --- eims-ui/apps/web-antd/src/views/eims/equ/index.vue | 73 +++++++++++++++++++++--------------- 1 files changed, 43 insertions(+), 30 deletions(-) diff --git a/eims-ui/apps/web-antd/src/views/eims/equ/index.vue b/eims-ui/apps/web-antd/src/views/eims/equ/index.vue index 5a5a5ea..febbba8 100644 --- a/eims-ui/apps/web-antd/src/views/eims/equ/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/equ/index.vue @@ -4,21 +4,27 @@ import { ref } from 'vue'; import { useRouter } from 'vue-router'; -import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; +import { Page, useVbenDrawer, useVbenModal, type VbenFormProps } from '@vben/common-ui'; +import { $t } from '@vben/locales'; import { getVxePopupContainer } from '@vben/utils'; -import { Dropdown, Menu, MenuItem, Modal, Popconfirm, Space } from 'ant-design-vue'; +import { Modal, Popconfirm, Space } from 'ant-design-vue'; -import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps } from '#/adapter/vxe-table'; +import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; import { delEqu, equExport, listEqu } from '#/api/eims/equ'; import { commonDownloadExcel } from '#/utils/file/download'; import { columns, querySchema } from './data'; import equDrawer from './equ-drawer.vue'; +import equImportModal from './equ-import-modal.vue'; import EquTypeTree from './equ-type-tree.vue'; // 宸﹁竟閮ㄩ棬鐢� const selectDeptId = ref<string[]>([]); + +defineExpose({ + tableSelect +}); const formOptions: VbenFormProps = { commonConfig: { @@ -76,19 +82,37 @@ isHover: true, keyField: 'equId' }, + sortConfig: { + // 杩滅▼鎺掑簭 + remote: true, + // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴 + multiple: true + }, id: 'eims-equ-index' }; const [BasicTable, tableApi] = useVbenVxeGrid({ formOptions, - gridOptions + gridOptions, + gridEvents: { + sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams) + } }); const [EquDrawer, equDrawerApi] = useVbenDrawer({ connectedComponent: equDrawer }); +/** + * 瀵煎叆 + */ +const [EquImportModal, equImportModalApi] = useVbenModal({ + connectedComponent: equImportModal +}); +function handleImport() { + equImportModalApi.open(); +} function handleAdd() { equDrawerApi.setData({}); @@ -126,35 +150,30 @@ } - const router = useRouter(); function handleDetail(record: Recordable<any>) { router.push(`/equ/detail/${record.equId}`); +} +// 閫変腑鏁版嵁 +function tableSelect() { + return tableApi.grid.getCheckboxRecords(); } </script> <template> <Page :auto-content-height="true"> <div class="flex h-full gap-[8px]"> - <EquTypeTree - v-model:select-dept-id="selectDeptId" - class="w-[260px]" - @reload="() => tableApi.reload()" - @select="() => tableApi.reload()" - /> + <EquTypeTree 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="['eims:equ:export']" @click="handleDownloadExcel"> {{ $t('pages.common.export') }} </a-button> - <a-button - :disabled="!vxeCheckboxChecked(tableApi)" - danger - type="primary" - v-access:code="['eims:equ:remove']" - @click="handleMultiDelete" - > + <a-button v-access:code="['eims:equ:import']" @click="handleImport"> + {{ $t('pages.common.import') }} + </a-button> + <a-button :disabled="!vxeCheckboxChecked(tableApi)" danger type="primary" v-access:code="['eims:equ:remove']" @click="handleMultiDelete"> {{ $t('pages.common.delete') }} </a-button> <a-button type="primary" v-access:code="['eims:equ:add']" @click="handleAdd"> @@ -171,28 +190,22 @@ <template #action="{ row }"> <Space> - <ghost-button v-access:code="['system:role:edit']" @click.stop="handleEdit(row)"> + <ghost-button v-access:code="['eims:equ:edit']" @click.stop="handleEdit(row)"> {{ $t('pages.common.edit') }} </ghost-button> + <ghost-button v-if="row.menuType !== 'F'" class="btn-success" v-access:code="['eims:equ:list']" @click="handleDetail(row)"> + {{ $t('pages.common.info') }} + </ghost-button> <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)"> - <ghost-button danger v-access:code="['system:role:remove']" @click.stop=""> + <ghost-button danger v-access:code="['eims:equ:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> </Popconfirm> </Space> - <Dropdown :get-popup-container="getVxePopupContainer" placement="bottomRight"> - <template #overlay> - <Menu> - <MenuItem key="1" @click="handleDetail(row)"> 璇︽儏 </MenuItem> - </Menu> - </template> - <a-button size="small" type="link"> - {{ $t('pages.common.more') }} - </a-button> - </Dropdown> </template> </BasicTable> </div> <EquDrawer @reload="tableApi.query()" /> + <EquImportModal @reload="tableApi.query()" /> </Page> </template> -- Gitblit v1.9.3