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/eims/equ/equ-drawer.vue |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
index eafef4a..8533537 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
@@ -1,14 +1,17 @@
 <script setup lang="ts">
 import { computed, ref } from 'vue';
 
-import { useVbenDrawer } from '@vben/common-ui';
+import { useVbenDrawer, useVbenModal } from '@vben/common-ui';
 import { $t } from '@vben/locales';
 import { addFullName, cloneDeep, getPopupContainer, listToTree } from '@vben/utils';
+
+import { InputSearch } from 'ant-design-vue';
 
 import { useVbenForm } from '#/adapter/form';
 import { addEqu, getEqu, updateEqu } from '#/api/eims/equ';
 import { getEquType, listEquType } from '#/api/eims/equ-type';
 import { getDeptTree, userList } from '#/api/system/user';
+import userModal from '#/views/eims/components/user-modal.vue';
 
 import { drawerSchema } from './data';
 
@@ -51,10 +54,9 @@
     if (isUpdate.value && id) {
       const record = await getEqu(id);
       await formApi.setValues(record);
-      if(isUpdate.value && record.deptUsed){
-        await setupUserOptions(record.deptUsed)
+      if (isUpdate.value && record.deptUsed) {
+        await setupUserOptions(record.deptUsed);
       }
-
     }
 
     // 鍔犺浇璁惧绫诲瀷鏍戦�夋嫨
@@ -70,6 +72,38 @@
   }
 });
 
+// user modal
+const [UserModal, userModalApi] = useVbenModal({
+  connectedComponent: userModal,
+  draggable: true,
+  title: '閫夋嫨鎴愬憳'
+});
+
+function handleOpenModal() {
+  userModalApi.setData({});
+  userModalApi.open();
+}
+
+/**
+ * 鎵撳紑閫夋嫨鎴愬憳
+ */
+const column = ref<string>();
+function onOpenSelectUser(type: any) {
+  column.value = type;
+  handleOpenModal();
+}
+
+/**
+ * 鏇存柊閫夋嫨鐨勬垚鍛�
+ * @param user
+ */
+async function selectUser(user: any) {
+  if (column.value === 'purchaseUser') {
+    await formApi.setValues({ 'purchaseUser': user.userId, 'purchaseUserName': user.nickName });
+  } else if (column.value === 'handleUserName') {
+    await formApi.setValues({ 'handleUser': user.userId, 'handleUserName': user.nickName });
+  }
+}
 
 async function setupEquTypeSelect() {
   // status-0 鍙煡璇㈡湭鍋滅敤璁惧
@@ -83,8 +117,8 @@
     {
       equTypeId: 0,
       typeName: $t('menu.root'),
-      children: equTree,
-    },
+      children: equTree
+    }
   ];
   addFullName(fullEquTree, 'typeName', ' / ');
   formApi.updateSchema([
@@ -92,7 +126,7 @@
       componentProps: {
         fieldNames: {
           label: 'typeName',
-          value: 'equTypeId',
+          value: 'equTypeId'
         },
         getPopupContainer,
         // 璁剧疆寮圭獥婊氬姩楂樺害 榛樿256
@@ -106,10 +140,10 @@
         treeLine: { showLeafIcon: false },
         // 绛涢�夌殑瀛楁
         treeNodeFilterProp: 'typeName',
-        treeNodeLabelProp: 'fullName',
+        treeNodeLabelProp: 'fullName'
       },
-      fieldName: 'equTypeId',
-    },
+      fieldName: 'equTypeId'
+    }
   ]);
 }
 
@@ -135,7 +169,7 @@
   const placeholder = options.length > 0 ? '璇烽�夋嫨' : '璇ラ儴闂ㄤ笅鏆傛棤鐢ㄦ埛';
   formApi.updateSchema([
     {
-      componentProps: { options, placeholder ,filterOption },
+      componentProps: { options, placeholder, filterOption },
       fieldName: 'respPerson'
     }
   ]);
@@ -206,6 +240,14 @@
 
 <template>
   <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]">
-    <BasicForm />
+    <BasicForm>
+      <template #purchaseUserName="slotProps">
+        <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="onOpenSelectUser('purchaseUser')" v-bind="slotProps" />
+      </template>
+      <template #handleUserName="slotProps">
+        <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="onOpenSelectUser('handleUserName')" v-bind="slotProps" />
+      </template>
+    </BasicForm>
+    <UserModal class="w-[1200px]" @select-user="selectUser" />
   </BasicDrawer>
 </template>

--
Gitblit v1.9.3