From ebdee541df438f35ae291bf136c91afc2c1fffae Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 10 九月 2025 20:45:58 +0800
Subject: [PATCH] 设备归还功能调整

---
 src/views/eam/dispose/modules/EamEquipmentLeanOutModal.vue |  123 +++++++++++++++++++++++++++++-----------
 1 files changed, 88 insertions(+), 35 deletions(-)

diff --git a/src/views/eam/dispose/modules/EamEquipmentLeanOutModal.vue b/src/views/eam/dispose/modules/EamEquipmentLeanOutModal.vue
index 196ce87..66e73b0 100644
--- a/src/views/eam/dispose/modules/EamEquipmentLeanOutModal.vue
+++ b/src/views/eam/dispose/modules/EamEquipmentLeanOutModal.vue
@@ -3,65 +3,60 @@
     :title="title"
     :width="800"
     :visible="visible"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
     :confirmLoading="confirmLoading"
     switchFullscreen
     @ok="handleOk"
     @cancel="handleCancel"
     cancelText="鍏抽棴">
-    
+
     <a-spin :spinning="confirmLoading">
       <a-form-model ref="form" :model="model" :rules="validatorRules">
-      
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="鍒犻櫎鏍囪">
-          <a-input-number v-model="model.delFlag"/>
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧ID">
-          <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="model.equipmentId" />
-        </a-form-model-item>
         <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="鍗曟嵁鍙�">
-          <a-input placeholder="璇疯緭鍏ュ崟鎹彿" v-model="model.code" />
+          <a-input placeholder="缂栫爜绯荤粺鑷姩鐢熸垚" v-model="model.code" disabled />
         </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanDepartId" label="鍊熷叆閮ㄩ棬">
-          <a-input placeholder="璇疯緭鍏ュ�熷叆閮ㄩ棬" v-model="model.leanDepartId" />
+        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栧彿">
+          <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" :disabled="disableSubmit"
+                                      v-model="model.equipmentId"></lx-search-equipment-select>
         </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanPerson" label="鍊熷叆璐d换浜�">
-          <a-input placeholder="璇疯緭鍏ュ�熷叆璐d换浜�" v-model="model.leanPerson" />
+
+        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanDepartId" label="鍊熷叆杞﹂棿">
+          <a-tree-select v-model="model.leanDepartId"
+                         :disabled="disableSubmit"
+                         style="width: 100%"
+                         :tree-data="treeDataAlias"
+                         :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                         placeholder="璇烽�夋嫨鍊熷叆杞﹂棿"
+                         allow-clear
+                         tree-default-expand-all
+          >
+          </a-tree-select>
         </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanStatus" label="鍊熷嚭鐘舵��">
-          <a-input placeholder="璇疯緭鍏ュ�熷嚭鐘舵��" v-model="model.leanStatus" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanStartTime" label="鍊熷嚭寮�濮嬫椂闂�">
-          <a-input placeholder="璇疯緭鍏ュ�熷嚭寮�濮嬫椂闂�" v-model="model.leanStartTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanEndTime" label="鍊熷嚭褰掕繕鏃堕棿">
-          <a-input placeholder="璇疯緭鍏ュ�熷嚭褰掕繕鏃堕棿" v-model="model.leanEndTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalUser" label="瀹℃牳浜�">
-          <a-input placeholder="璇疯緭鍏ュ鏍镐汉" v-model="model.approvalUser" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalTime" label="瀹℃牳鏃堕棿">
-          <a-input placeholder="璇疯緭鍏ュ鏍告椂闂�" v-model="model.approvalTime" />
+        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanReason" label="鍊熺敤鍘熷洜">
+          <a-textarea placeholder="璇疯緭鍏ュ�熺敤鍘熷洜" :disabled="disableSubmit" v-model="model.leanReason" />
         </a-form-model-item>
         <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="澶囨敞">
-          <a-input placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" />
+          <a-textarea placeholder="璇疯緭鍏ュ娉�" :disabled="disableSubmit" v-model="model.remark" />
         </a-form-model-item>
-		
       </a-form-model>
     </a-spin>
   </j-modal>
 </template>
 
 <script>
-  import { httpAction } from '@/api/manage'
+import { getAction, httpAction } from '@/api/manage'
   import moment from "moment"
+  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
 
   export default {
     name: "EamEquipmentLeanOutModal",
+    components: { LxSearchEquipmentSelect },
     data () {
       return {
         title:"鎿嶄綔",
         visible: false,
         model: {},
+        editable: false,
         labelCol: {
           xs: { span: 24 },
           sm: { span: 5 },
@@ -70,27 +65,45 @@
           xs: { span: 24 },
           sm: { span: 16 },
         },
-
         confirmLoading: false,
+        treeData: [],
+        treeDataAlias: [],
         validatorRules:{
+          equipmentId: [
+            { required: true, message: '璇烽�夋嫨璁惧锛�' }
+          ],
+          leanDepartId: [
+            { required: true, message: '璇烽�夋嫨杞﹂棿锛�' }
+          ],
+          leanReason: [
+            { required: true, message: '璇疯緭鍏ュ�熺敤鍘熷洜锛�' }
+          ],
         },
         url: {
           add: "/eam/eamEquipmentLeanOut/add",
           edit: "/eam/eamEquipmentLeanOut/edit",
+          loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions',
         },
       }
     },
     created () {
+      this.loadAllProductionTree();
     },
     methods: {
       add () {
         //鍒濆鍖栭粯璁ゅ��
-        this.edit({});
+        //鍒濆鍖栭粯璁ゅ��
+        this.model = {}
+        this.visible = true
+        this.editable = false
       },
       edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
+        this.model = Object.assign({}, record)
+        this.visible = true
+        this.editable = true
+        // this.loadDetail(record.id)
       },
+
       close () {
         this.$emit('close');
         this.visible = false;
@@ -115,12 +128,12 @@
               if(res.success){
                 that.$message.success(res.message);
                 that.$emit('ok');
+                that.close();
               }else{
                 that.$message.warning(res.message);
               }
             }).finally(() => {
               that.confirmLoading = false;
-              that.close();
             })
           }else{
              return false;
@@ -130,8 +143,48 @@
       handleCancel () {
         this.close()
       },
+      loadAllProductionTree() {
+        //鍔犺浇杞﹂棿閫夋嫨鏍�
+        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