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