From 8905bdd0a74c4bd6cabc206c36a299341488041e Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期四, 11 九月 2025 11:00:26 +0800
Subject: [PATCH] 合并设备借出与归还流程,增加借出归还列表详情功能

---
 src/views/eam/equipment/modules/EamEquipmentModal.vue |  203 +++++++++++++++++++++++++++++---------------------
 1 files changed, 117 insertions(+), 86 deletions(-)

diff --git a/src/views/eam/equipment/modules/EamEquipmentModal.vue b/src/views/eam/equipment/modules/EamEquipmentModal.vue
index 63a550d..94365ba 100644
--- a/src/views/eam/equipment/modules/EamEquipmentModal.vue
+++ b/src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -12,7 +12,7 @@
     cancelText="鍏抽棴">
     <a-spin :spinning="confirmLoading">
       <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 璁惧鍩虹淇℃伅
+        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鍩虹淇℃伅
         </a-divider>
 
         <a-row :gutter="24">
@@ -44,38 +44,34 @@
               </a-col>
               <a-col :span="8">
                 <a-form-model-item prop="equipmentCategory"
-                                   label="璁惧鍒嗙被">
-                  <j-dict-select-tag dict-code="equipment_category" placeholder="璇烽�夋嫨璁惧鍒嗙被"
+                                   label="璁惧绫诲埆">
+                  <j-dict-select-tag dict-code="equipment_category" placeholder="璇烽�夋嫨璁惧绫诲埆"
                                      v-model="model.equipmentCategory" :disabled="disableSubmit" />
                 </a-form-model-item>
               </a-col>
               <a-col :span="8">
-                <a-form-model-item prop="operationSystem"
-                                   label="鎿嶄綔绯荤粺">
-                  <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ搷浣滅郴缁�'" v-model="model.operationSystem" :disabled="disableSubmit" />
+                <a-form-model-item prop="equipmentType"
+                                   label="璁惧绉嶇被">
+                  <j-tree-dict placeholder="璇烽�夋嫨璁惧绉嶇被" v-model="model.equipmentType" parent-code="equipment_category" field="code" :async="true" :disabled="disableSubmit"></j-tree-dict>
                 </a-form-model-item>
               </a-col>
             </a-row>
             <a-row>
               <a-col :span="8">
                 <a-form-model-item prop="equipmentImportance"
-                                   label="鍏抽敭璁惧鏍囪瘑">
-                  <lx-switch
-                    checked-children='鏄�'
-                    un-checked-children='鍚�'
-                    v-model="model.equipmentImportance"
-                    :disabled="disableSubmit"
-                  />
+                                   label="绠$悊鍒嗙被">
+                  <j-dict-select-tag dict-code="equipment_abc_flag" placeholder="璇烽�夋嫨绠$悊鍒嗙被"
+                                     v-model="model.equipmentImportance" :disabled="disableSubmit" />
                 </a-form-model-item>
               </a-col>
               <a-col :span="8">
-                <a-form-model-item prop="equipmentPower" label="鎬诲姛鐜�">
-                  <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ�诲姛鐜�'" v-model="model.equipmentPower" :disabled="disableSubmit"/>
+                <a-form-model-item prop="originalValue" label="鍘熷��(鍏�)">
+                  <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ュ師鍊�'" v-model="model.originalValue" :disabled="disableSubmit"/>
                 </a-form-model-item>
               </a-col>
               <a-col :span="8">
-                <a-form-model-item prop="cardNumber" label="绔嬮」鍗″彿">
-                  <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ョ珛椤瑰崱鍙�'" v-model="model.cardNumber" :disabled="disableSubmit"/>
+                <a-form-model-item prop="fundingSource" label="璧勯噾鏉ユ簮">
+                  <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ヨ祫閲戞潵婧�'" v-model="model.fundingSource" :disabled="disableSubmit"/>
                 </a-form-model-item>
               </a-col>
             </a-row>
@@ -84,27 +80,62 @@
             <j-image-upload text="璁惧鍥剧墖" bizPath="eam_equipment_image" v-model="model.equipmentImage"></j-image-upload>
           </a-col>
         </a-row>
-
         <a-row :gutter="24">
           <a-col :span="6">
-            <a-form-model-item prop="equipmentWeight" label="閲嶉噺">
+            <a-form-model-item prop="motorsNumber"
+                               label="鐢垫満鍙版暟">
+              <a-input-number :placeholder="disableSubmit?'':'璇疯緭鍏ョ數鏈哄彴鏁�'" v-model="model.motorsNumber" :disabled="disableSubmit" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="equipmentPower" label="鎬诲姛鐜�(KW)">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ�诲姛鐜�'" v-model="model.equipmentPower" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="equipmentWeight" label="閲嶉噺(鍚�)">
               <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ラ噸閲�'" v-model="model.equipmentWeight" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
-            <a-form-model-item prop="equipmentPort" label="璁惧绔彛">
-              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ヨ澶囩鍙�'" v-model="model.equipmentPort" :disabled="disableSubmit"/>
+            <a-form-model-item prop="overallDimensions" label="澶栧舰灏哄">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ュ褰㈠昂瀵�'" v-model="model.overallDimensions" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <a-form-model-item prop="technologyStatus" label="鎶�鏈姸鎬�">
+              <j-dict-select-tag dict-code="technology_status" placeholder="璇烽�夋嫨鎶�鏈姸鎬�"
+                                 v-model="model.technologyStatus" :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
-            <a-form-model-item prop="coordinateNum" label="鍧愭爣鏁伴噺">
-              <a-input-number :placeholder="disableSubmit?'':'璇疯緭鍏ュ潗鏍囨暟閲�'" v-model="model.coordinateNum" style="width: 100%" :disabled="disableSubmit"/>
+            <a-form-model-item prop="functionUse" label="鍔熻兘鐢ㄩ��">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ュ姛鑳界敤閫�'" v-model="model.functionUse" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="performanceIndicators" label="鎬ц兘鎸囨爣">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ�ц兘鎸囨爣'" v-model="model.performanceIndicators" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
             <a-form-model-item prop="assetStatus" label="璧勪骇鐘舵��">
               <j-dict-select-tag dict-code="asset_status" v-model="model.assetStatus"
                                  disabled/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="equipmentUse" label="璁惧鐢ㄩ��">
+              <j-dict-select-tag dict-code="equipment_use" v-model="model.equipmentUse"
+                                 placeholder="璇烽�夋嫨璁惧鐢ㄩ��" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="operator" label="鎿嶄綔宸�">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ搷浣滃伐'" v-model="model.operator" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -119,41 +150,41 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
+            <a-form-model-item prop="originCountry" label="鏉ユ簮鍥藉">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ潵婧愬浗瀹�'" v-model="model.originCountry" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="supplier" label="璁惧渚涘簲鍟�">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ヨ澶囦緵搴斿晢'" v-model="model.supplier" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="manufacturingEnterprise" label="鏈哄簥鍘傚">
+              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ満搴婂巶瀹�'" v-model="model.manufacturingEnterprise" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="6">
             <a-form-model-item prop="leaveFactoryDate" label="鍑哄巶鏃ユ湡">
               <a-date-picker placeholder="璇烽�夋嫨鍑哄巶鏃ユ湡" v-model="model.leaveFactoryDate" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
-            <a-form-model-item prop="acceptanceCheckDate" label="楠屾敹鏃ユ湡">
-              <a-date-picker placeholder="璇烽�夋嫨楠屾敹鏃ユ湡" v-model="model.acceptanceCheckDate" :disabled="disableSubmit"/>
+            <a-form-model-item prop="acceptanceCheckDate" label="鎶曠敤鏃ユ湡">
+              <a-date-picker placeholder="璇烽�夋嫨鎶曠敤鏃ユ湡" v-model="model.acceptanceCheckDate" :disabled="disableSubmit"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-model-item prop="bookingTime" label="鍏ヨ处鏃堕棿">
+              <a-date-picker placeholder="璇烽�夋嫨鍏ヨ处鏃堕棿" v-model="model.bookingTime" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
             <a-form-model-item prop="installationPosition" label="瀹夎浣嶇疆">
               <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ュ畨瑁呬綅缃�'" v-model="model.installationPosition" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-
-        <a-row :gutter="24">
-          <a-col :span="6">
-            <a-form-model-item prop="spindleConnectDimension" label="涓昏酱杩炴帴灏哄">
-              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ヤ富杞磋繛鎺ュ昂瀵�'" v-model="model.spindleConnectDimension" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="specialEquipment" label="鏄惁鐗圭璁惧">
-              <lx-switch checked-children='鏄�' un-checked-children='鍚�' v-model="model.specialEquipment" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="manufacturingEnterprise" label="鍒堕�犲巶瀹�">
-              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ュ埗閫犲巶瀹�'" v-model="model.manufacturingEnterprise" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="originCountry" label="鏉ユ簮鍥藉">
-              <a-input :placeholder="disableSubmit?'':'璇疯緭鍏ユ潵婧愬浗瀹�'" v-model="model.originCountry" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -166,7 +197,7 @@
             <a-form-model-item prop="orgId" label="浣跨敤杞﹂棿">
               <a-tree-select v-model="model.orgId"
                              style="width: 100%"
-                             :tree-data="treeData"
+                             :tree-data="treeDataAlias"
                              :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                              placeholder="璇烽�夋嫨浣跨敤杞﹂棿"
                              allow-clear
@@ -177,37 +208,8 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
-            <a-form-model-item prop="equipmentManager" label="璁惧绠$悊鍛�">
-              <j-search-select-tag  placeholder="璇烽�夋嫨璁惧绠$悊鍛�" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and post='PCR0004' and status=1" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="technologyStatus" label="鎶�鏈姸鎬�">
-              <j-dict-select-tag dict-code="technology_status" placeholder="璇烽�夋嫨鎶�鏈姸鎬�"
-                                 v-model="model.technologyStatus" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="mdcFlag" label="鏄惁瀹炴柦MDC">
-              <lx-switch checked-children='鏄�' un-checked-children='鍚�' v-model="model.mdcFlag" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6" v-if="model.mdcFlag === '1'">
-            <a-form-model-item prop="deviceType" label="MDC璁惧绫诲瀷">
-              <j-search-select-tag placeholder="璇烽�夋嫨璁惧绫诲瀷" v-model="model.deviceType" dict="mdc_equipment_type,equipment_type_name, equipment_type_name, equipment_type_states='Y'" :disabled="disableSubmit" />
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-
-        <a-row :gutter="24">
-          <a-col :span="6">
-            <a-form-model-item prop="warrantyStartDate" label="璐ㄤ繚寮�濮嬫棩鏈�">
-              <a-date-picker :placeholder="disableSubmit?'':'璇烽�夋嫨寮�濮嬫棩鏈�'" v-model="model.warrantyStartDate" :disabled="disableSubmit"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="6">
-            <a-form-model-item prop="warrantyEndDate" label="璐ㄤ繚缁撴潫鏃ユ湡">
-              <a-date-picker :placeholder="disableSubmit?'':'璇烽�夋嫨缁撴潫鏃ユ湡'" v-model="model.warrantyEndDate" :disabled="disableSubmit"/>
+            <a-form-model-item prop="equipmentManager" label="璁惧璐d换浜�">
+              <j-search-select-tag  placeholder="璇烽�夋嫨璁惧璐d换浜�" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and post='PCR0004' and status=1" :disabled="disableSubmit"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
@@ -221,7 +223,6 @@
             </a-form-model-item>
           </a-col>
         </a-row>
-
         <a-row :gutter="24">
           <a-col :span="24">
             <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
@@ -278,7 +279,7 @@
           { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�' }
         ],
         equipmentCategory: [
-          { required: true, message: '璇烽�夋嫨璁惧鍒嗙被' }
+          { required: true, message: '璇烽�夋嫨璁惧绫诲埆' }
         ],
         leaveFactoryDate: [
           { required: true, message: '璇烽�夋嫨鍑哄巶鏃ユ湡' }
@@ -286,14 +287,11 @@
         acceptanceCheckDate: [
           { required: false, message: '璇烽�夋嫨楠屾敹鏃ユ湡' }
         ],
-        technologyStatus: [
-          { required: true, message: '璇烽�夋嫨鎶�鏈姸鎬�' }
-        ],
         orgId: [
           { required: true, message: '璇烽�夋嫨浣跨敤杞﹂棿' }
         ],
         equipmentManager: [
-          { required: true, message: '璇烽�夋嫨璁惧绠$悊鍛�' }
+          { required: true, message: '璇烽�夋嫨璁惧璐d换浜�' }
         ],
         deviceType: [
           { required: false, message: '璇烽�夋嫨璁惧绫诲瀷' }
@@ -305,6 +303,7 @@
         loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions'
       },
       treeData: [],
+      treeDataAlias: []
     }
   },
   created() {
@@ -366,11 +365,43 @@
       getAction(this.url.loadProductionOptions).then(res => {
         if (res.success) {
           this.treeData = [...res.result]
+          this.treeDataAlias = this.deepCopyAndModify(res.result)
         }else {
           that.$message.warning(res.message)
         }
       })
     },
+    deepCopyAndModify(arr) {
+      // 濡傛灉褰撳墠鍏冪礌涓嶆槸鏁扮粍鎴栧璞★紝鐩存帴杩斿洖
+      if (!Array.isArray(arr) && typeof arr !== 'object' || arr === null || arr.length === 0) {
+        return arr;
+      }
+
+      // 濡傛灉鏄暟缁勶紝鍒涘缓涓�涓柊鏁扮粍骞堕�掑綊澶勭悊姣忎釜鍏冪礌
+      if (Array.isArray(arr)) {
+        const newArray = [];
+        for (let i = 0; i < arr.length; i++) {
+          newArray.push(this.deepCopyAndModify(arr[i]));
+        }
+        return newArray;
+      }
+
+      // 濡傛灉鏄璞★紝鍒涘缓涓�涓柊瀵硅薄骞堕�掑綊澶勭悊姣忎釜灞炴��
+      const newObj = {};
+      for (const key in arr) {
+        if (arr.hasOwnProperty(key)) {
+          if(key === 'selectable') {
+            newObj[key] = true;
+          } else if(key === 'children') {
+            newObj[key] = this.deepCopyAndModify(arr[key]);
+          }else {
+            newObj[key] = arr[key];
+          }
+
+        }
+      }
+      return newObj;
+    }
   }
 }
 </script>

--
Gitblit v1.9.3