From c3c585edd4d3cf269a307ba48ac2abb11bf0b640 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 25 二月 2025 14:13:06 +0800
Subject: [PATCH] 故障报修添加工具类型选择,初步完成故障报修模块

---
 eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx                                             |   27 +++++++++++--
 eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue                                            |    7 +++
 eims-ui/apps/web-antd/src/constants/dict/index.ts                                                    |   19 ++++++---
 eims-ui/packages/@core/base/typings/src/basic.d.ts                                                   |    5 ++
 eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue                                |   45 ++++++++++++++++++++--
 eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx                                              |    2 
 eims-ui/apps/web-antd/src/store/auth.ts                                                              |    3 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java |    1 
 8 files changed, 90 insertions(+), 19 deletions(-)

diff --git a/eims-ui/apps/web-antd/src/constants/dict/index.ts b/eims-ui/apps/web-antd/src/constants/dict/index.ts
index 47501d8..e43f742 100644
--- a/eims-ui/apps/web-antd/src/constants/dict/index.ts
+++ b/eims-ui/apps/web-antd/src/constants/dict/index.ts
@@ -2,16 +2,23 @@
  * 鎿嶄綔绫诲瀷
  */
 export enum SYS_OPER_TYPE {
-  ADD = '1',
-  EDIT = '2'
+  ADD = '1', // 鏂板
+  EDIT = '2' // 缂栬緫
 }
-
 
 /**
  * 宸ュ叿鍊熺敤璁板綍琛ㄤ腑鍊熺敤璁板綍鐘舵��
  */
-export enum FIXTURE_BORROW_RECORD_STATUS{
-  BORROW = '0',
-  RERURN = '1'
+export enum FIXTURE_BORROW_RECORD_STATUS {
+  BORROW = '0', // 鍊熷嚭
+  RERURN = '1' // 褰掕繕
+}
+/**
+ * 鎶ヤ慨绫诲瀷
+ */
+export enum REPAIR_REQ_TYPE {
+  EQU = '1', // 璁惧鏁呴殰
+  FIXTURE = '2', // 宸ュ叿鏁呴殰
+  OTHER = '3' // 鍏朵粬鏁呴殰
 
 }
diff --git a/eims-ui/apps/web-antd/src/store/auth.ts b/eims-ui/apps/web-antd/src/store/auth.ts
index 7f678e5..b3aa537 100644
--- a/eims-ui/apps/web-antd/src/store/auth.ts
+++ b/eims-ui/apps/web-antd/src/store/auth.ts
@@ -114,7 +114,8 @@
       realName: user.nickName,
       roles,
       userId: user.userId,
-      username: user.userName,
+      deptId: user.deptId,
+      username: user.userName
     };
     userStore.setUserInfo(userInfo);
     /**
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx b/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
index 8bb9259..d858d78 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
@@ -116,7 +116,7 @@
   {
     component: 'DatePicker',
     componentProps: {
-      format: 'YYYY-MM-DD',
+      format: 'YYYY-MM-DD HH:mm:ss',
       showTime: false,
       valueFormat: 'YYYY-MM-DD HH:mm:ss',
       getPopupContainer
diff --git a/eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx b/eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx
index 329226a..fd16d8a 100644
--- a/eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx
@@ -3,9 +3,14 @@
 import { DictEnum } from '@vben/constants';
 import { getPopupContainer } from '@vben/utils';
 
+import dayjs from 'dayjs';
+
 import { type FormSchemaGetter } from '#/adapter/form';
+import { REPAIR_REQ_TYPE } from '#/constants/dict';
 import { getDictOptions } from '#/utils/dict';
 import { renderDict } from '#/utils/render';
+
+const curDateTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
 
 export const querySchema: FormSchemaGetter = () => [
   {
@@ -27,7 +32,7 @@
     // 鍦╠rawer閲屾洿鏂� 杩欓噷涓嶉渶瑕侀粯璁ょ殑componentProps
     defaultValue: undefined,
     fieldName: 'reqDept',
-    label: '鎶ヤ慨閮ㄩ棬',
+    label: '鎶ヤ慨閮ㄩ棬'
     // rules: 'selectRequired',
   },
   {
@@ -108,10 +113,20 @@
     minWidth: 200
   },
   {
-    title: '璁惧鍚嶇О',
-    field: 'equName',
+    title: '璁惧(宸ュ叿)鍚嶇О',
     sortable: true,
-    minWidth: 120
+    minWidth: 150,
+    slots: {
+      default: ({ row }) => {
+        if (row.reqType === REPAIR_REQ_TYPE.EQU) {
+          return row.equName;
+        } else if (row.reqType === REPAIR_REQ_TYPE.FIXTURE) {
+          return row.fixtureName;
+        } else {
+          return '';
+        }
+      }
+    }
   },
   {
     title: '鏁呴殰绫诲埆',
@@ -159,7 +174,7 @@
   {
     component: 'Select',
     componentProps: {
-      getPopupContainer,
+      getPopupContainer
     },
     fieldName: 'reqType',
     label: '鎶ヤ慨绫诲瀷',
@@ -213,6 +228,7 @@
       options: getDictOptions(DictEnum.REPAIR_REQ_STATUS)
     },
     fieldName: 'status',
+    defaultValue: '0',
     label: '澶勭悊鐘舵��'
   },
   {
@@ -223,6 +239,7 @@
       valueFormat: 'YYYY-MM-DD HH:mm:ss',
       getPopupContainer
     },
+    defaultValue: curDateTime,
     fieldName: 'reqTime',
     label: '鎶ヤ慨鏃堕棿'
   },
diff --git a/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue b/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue
index 52487f2..92d996d 100644
--- a/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue
@@ -16,6 +16,11 @@
 
 import { columns, querySchema } from './data';
 import repairReqDrawer from './repair-req-drawer.vue';
+import { useUserStore } from '@vben/stores';
+
+const userStore = useUserStore();
+const userId = userStore.userInfo?.userId;
+const deptId = userStore.userInfo?.deptId;
 
 const formOptions: VbenFormProps = {
   commonConfig: {
@@ -82,7 +87,7 @@
 });
 
 function handleAdd() {
-  repairReqDrawerApi.setData({});
+  repairReqDrawerApi.setData({ reqUser: userId, reqDept: deptId });
   repairReqDrawerApi.open();
 }
 
diff --git a/eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue
index a5ead90..5314997 100644
--- a/eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue
@@ -15,6 +15,7 @@
 import { getDictOptions } from '#/utils/dict';
 import CodeInput from '#/views/eims/components/code-input.vue';
 import equModal from '#/views/eims/components/equ-modal.vue';
+import fixtureModal from '#/views/eims/components/fixture-modal.vue';
 
 import { drawerSchema } from './data';
 
@@ -90,10 +91,17 @@
     ]);
     drawerApi.drawerLoading(true);
     const { id } = drawerApi.getData() as { id?: number | string };
+    const { reqUser } = drawerApi.getData() as { reqUser?: number | string };
+    const { reqDept } = drawerApi.getData() as { reqDept?: number | string };
     isUpdate.value = !!id;
     // 鍒濆鍖�
     await setupDeptSelect();
     await setupEquTypeSelect();
+    // 鏂板鏃堕粯璁ゅ~鍏呯櫥褰曚汉涓烘姤淇汉
+    if (!isUpdate.value && reqUser !== null && reqDept !== null) {
+      await formApi.setValues({ 'reqUser': reqUser, 'reqDept': reqDept });
+      await setupUserOptions(reqDept);
+    }
     // 鏇存柊 && 璧嬪��
     if (isUpdate.value && id) {
       const record = await getRepairReq(id);
@@ -121,7 +129,6 @@
       ]);
     }
 
-
     drawerApi.drawerLoading(false);
   }
 });
@@ -132,9 +139,20 @@
   title: '閫夋嫨璁惧'
 });
 
-function handleOpenModal() {
+const [FixtureModal, fixtureModalApi] = useVbenModal({
+  connectedComponent: fixtureModal,
+  draggable: true,
+  title: '閫夋嫨宸ュ叿'
+});
+
+function handleEquModal() {
   equModalApi.setData({});
   equModalApi.open();
+}
+
+function handleFixtureModal() {
+  fixtureModalApi.setData({});
+  fixtureModalApi.open();
 }
 
 /**
@@ -256,7 +274,14 @@
  * 鎵撳紑鏌ヨ璁惧
  */
 function onSearchEqu() {
-  handleOpenModal();
+  handleEquModal();
+}
+
+/**
+ * 鎵撳紑鏌ヨ宸ュ叿
+ */
+function onSearchFixture() {
+  handleFixtureModal();
 }
 
 /**
@@ -265,6 +290,13 @@
  */
 async function updateEqu(equ: any) {
   await formApi.setValues({ 'equId': equ.equId, 'equName': equ.equName });
+}
+/**
+ * 鏇存柊閫夋嫨鐨勫伐鍏�
+ * @param fixture
+ */
+async function updateFixture(fixture: any) {
+  await formApi.setValues({ 'fixtureId': fixture.id, 'fixtureName': fixture.fixtureName });
 }
 </script>
 
@@ -275,10 +307,13 @@
         <CodeInput v-bind="slotProps" :disabled="isUpdate" prefix="BXD" />
       </template>
       <template #equName="slotProps">
-        <InputSearch :enter-button="true" placeholder="璇烽�夋嫨璁惧" @search="onSearchEqu" v-bind="slotProps"
-                     :disabled="isUpdate" />
+        <InputSearch :enter-button="true" placeholder="璇烽�夋嫨璁惧" @search="onSearchEqu" v-bind="slotProps" :disabled="isUpdate" />
+      </template>
+      <template #fixtureName="slotProps">
+        <InputSearch :enter-button="true" placeholder="璇烽�夋嫨宸ュ叿" @search="onSearchFixture" v-bind="slotProps" :disabled="isUpdate" />
       </template>
     </BasicForm>
     <EquModal class="w-[1200px]" @update-equ="updateEqu" />
+    <FixtureModal class="w-[1200px]" @update-select="updateFixture" />
   </BasicDrawer>
 </template>
diff --git a/eims-ui/packages/@core/base/typings/src/basic.d.ts b/eims-ui/packages/@core/base/typings/src/basic.d.ts
index bbe1eb0..56c3a7a 100644
--- a/eims-ui/packages/@core/base/typings/src/basic.d.ts
+++ b/eims-ui/packages/@core/base/typings/src/basic.d.ts
@@ -13,6 +13,10 @@
    */
   avatar: string;
   /**
+   * 閮ㄩ棬id
+   */
+  deptId: number;
+  /**
    * 鐢ㄦ埛鏉冮檺
    */
   permissions: string[];
@@ -28,6 +32,7 @@
    * 鐢ㄦ埛id
    */
   userId: number | string;
+
   /**
    * 鐢ㄦ埛鍚�
    */
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
index b191443..55d1561 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
@@ -94,6 +94,7 @@
 
         qw.eq(bo.getCreateBy()!=null, "a.create_by", bo.getCreateBy());
         qw.eq(StringUtils.isNotEmpty(bo.getStatus()), "a.status", bo.getStatus());
+        qw.orderByDesc("a.create_time");
 
         /**
          * 鏌ヨ閮ㄩ棬涓嬫墍鏈夊瓙閮ㄩ棬

--
Gitblit v1.9.3