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/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue |  288 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 246 insertions(+), 42 deletions(-)

diff --git a/src/views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue b/src/views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue
index c0f5b68..1f19d3f 100644
--- a/src/views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue
+++ b/src/views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue
@@ -9,70 +9,258 @@
     @ok="handleOk"
     @cancel="handleCancel"
     centered
-    cancelText="鍏抽棴">
+    cancelText="鍏抽棴"
+  >
 
     <a-spin :spinning="spinning">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 褰掑睘淇℃伅
+      <a-form-model
+        ref="form"
+        :model="model"
+        :rules="validatorRules"
+      >
+        <a-divider
+          orientation="center"
+          style="font-size: large;font-style: italic;color: #66aeed;"
+        > 璋冩嫧淇℃伅
         </a-divider>
         <a-row :gutter="24">
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="鍗曟嵁鍙�">
-              <a-input v-model="model.code" disabled />
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="code"
+              label="鍗曟嵁鍙�"
+            >
+              <a-input
+                v-model="model.code"
+                disabled
+              />
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栫爜">
-              <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储"
-                                          v-model="model.equipmentId" disabled></lx-search-equipment-select>
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="equipmentId"
+              label="璁惧缂栫爜"
+            >
+              <lx-search-equipment-select
+                placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储"
+                v-model="model.equipmentId"
+                disabled
+              ></lx-search-equipment-select>
             </a-form-model-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="newDepartId_dictText" label="璋冨叆閮ㄩ棬">
-              <a-input v-model="model.newDepartId_dictText" disabled />
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="newDepartId_dictText"
+              label="璋冨叆閮ㄩ棬"
+            >
+              <a-input
+                v-model="model.newDepartId_dictText"
+                disabled
+              />
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="oldDepartId_dictText" label="璋冨嚭閮ㄩ棬">
-              <a-input v-model="model.oldDepartId_dictText" disabled />
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="oldDepartId_dictText"
+              label="璋冨嚭閮ㄩ棬"
+            >
+              <a-input
+                v-model="model.oldDepartId_dictText"
+                disabled
+              />
             </a-form-model-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportUser_dictText" label="鐢宠浜�">
-              <a-input v-model="model.reportUser_dictText" disabled />
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="reportUser_dictText"
+              label="鐢宠浜�"
+            >
+              <a-input
+                v-model="model.reportUser_dictText"
+                disabled
+              />
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="transferReason" label="鍙樺姩鍘熷洜">
-              <a-input v-model="model.transferReason" disabled />
+            <a-form-model-item
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="transferReason"
+              label="鍙樺姩鍘熷洜"
+            >
+              <a-input
+                v-model="model.transferReason"
+                disabled
+              />
             </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="澶囨敞">
-              <a-textarea v-model="model.remark" disabled />
+            <a-form-model-item
+              :labelCol="labelColLong"
+              :wrapperCol="wrapperColLong"
+              prop="remark"
+              label="澶囨敞"
+            >
+              <a-textarea
+                v-model="model.remark"
+                disabled
+              />
             </a-form-model-item>
           </a-col>
         </a-row>
-        <div v-if="approvalDisable">
-          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 绠$悊鍛樺皝瀛樺鏍�
+        <div v-if="useApprovalDisable">
+          <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 浣跨敤鍗曚綅棰嗗瀹℃壒
           </a-divider>
           <a-row :gutter="24">
             <a-col :span="12">
-              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalDealType" label="瀹℃壒绫诲瀷">
-                <j-dict-select-tag type="radio" v-model="model.approvalDealType" dictCode="approved_rejected"
-                                   placeholder="璇烽�夋嫨澶勭悊绫诲瀷" :disabled="disableSubmit || initialAcceptanceDisable" />
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="useLeaderApprovalDealType"
+                label="瀹℃壒绫诲瀷"
+              >
+                <j-dict-select-tag
+                  type="radio"
+                  v-model="model.useLeaderApprovalDealType"
+                  dictCode="approved_rejected"
+                  placeholder="璇烽�夋嫨澶勭悊绫诲瀷"
+                  :disabled="disableSubmit || leanOutApprovalDisable"
+                />
               </a-form-model-item>
             </a-col>
             <a-col :span="12">
-              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalComment" label="瀹℃壒鎰忚">
-                <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.approvalComment"
-                            :disabled="disableSubmit || returnDisable" />
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="useLeaderApprovalComment"
+                label="瀹℃壒鎰忚"
+              >
+                <a-textarea
+                  placeholder="璇疯緭鍏ユ剰瑙�"
+                  v-model="model.useLeaderApprovalComment"
+                  :disabled="disableSubmit || leanOutApprovalDisable"
+                />
+              </a-form-model-item>
+            </a-col>
+          </a-row>
+        </div>
+        <div v-if="leanOutApprovalDisable">
+          <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 璋冨叆鍗曚綅棰嗗瀹℃壒
+          </a-divider>
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="transferLeaderApprovalDealType"
+                label="瀹℃壒绫诲瀷"
+              >
+                <j-dict-select-tag
+                  type="radio"
+                  v-model="model.transferLeaderApprovalDealType"
+                  dictCode="approved_rejected"
+                  placeholder="璇烽�夋嫨澶勭悊绫诲瀷"
+                  :disabled="disableSubmit || externalConfirmDisable"
+                />
+              </a-form-model-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="transferLeaderApprovalComment"
+                label="瀹℃壒鎰忚"
+              >
+                <a-textarea
+                  placeholder="璇疯緭鍏ユ剰瑙�"
+                  v-model="model.transferLeaderApprovalComment"
+                  :disabled="disableSubmit || externalConfirmDisable"
+                />
+              </a-form-model-item>
+            </a-col>
+          </a-row>
+        </div>
+        <div v-if="externalConfirmDisable">
+          <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 鏈哄姩鍔炵‘璁�
+          </a-divider>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="companyLeaderCheck"
+                label="鏄惁闇�瑕佸叕鍙搁瀵煎鎵�"
+              >
+                <j-dict-select-tag
+                  type="radio"
+                  v-model="model.companyLeaderCheck"
+                  dictCode="yn"
+                  placeholder="璇烽�夋嫨鏄惁"
+                  :disabled="disableSubmit || companyApprovalDisable"
+                />
+              </a-form-model-item>
+            </a-col>
+          </a-row>
+        </div>
+        <div v-if="companyApprovalDisable">
+          <a-divider
+            orientation="center"
+            style="font-size: large;font-style: italic;color: #66aeed;"
+          > 鍏徃棰嗗瀹℃壒
+          </a-divider>
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="companyLeaderApprovalDealType"
+                label="瀹℃壒绫诲瀷"
+              >
+                <j-dict-select-tag
+                  type="radio"
+                  v-model="model.companyLeaderApprovalDealType"
+                  dictCode="approved_rejected"
+                  placeholder="璇烽�夋嫨澶勭悊绫诲瀷"
+                  :disabled="disableSubmit"
+                />
+              </a-form-model-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-model-item
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="companyLeaderApprovalComment"
+                label="瀹℃壒鎰忚"
+              >
+                <a-textarea
+                  placeholder="璇疯緭鍏ユ剰瑙�"
+                  v-model="model.companyLeaderApprovalComment"
+                  :disabled="disableSubmit"
+                />
               </a-form-model-item>
             </a-col>
           </a-row>
@@ -105,41 +293,44 @@
       treeData: [],
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 5 }
+        sm: { span: 6 }
       },
       wrapperCol: {
         xs: { span: 24 },
-        sm: { span: 18 }
+        sm: { span: 16 }
       },
       labelColLong: {
         xs: { span: 24 },
-        sm: { span: 2 }
+        sm: { span: 3 }
       },
       wrapperColLong: {
         xs: { span: 24 },
-        sm: { span: 21 }
+        sm: { span: 20 }
       },
       confirmLoading: false,
       spinning: false,
       imageSrc: null,
       validatorRules: {
-        approvalDealType: [
+        useLeaderApprovalDealType: [
           { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' }
         ],
-        unsealApprovalDealType: [
+        transferLeaderApprovalDealType: [
           { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' }
         ],
-        approvalComment: [
+        companyLeaderCheck: [
+          { required: true, message: '璇烽�夋嫨鏄垨鍚�!' }
+        ],
+        companyLeaderApprovalDealType: [
+          { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' }
+        ],
+        useLeaderApprovalComment: [
           { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!' }
         ],
-        unsealApprovalComment: [
+        transferLeaderApprovalComment: [
           { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!' }
         ],
-        returnComment: [
-          { required: true, message: '璇疯緭鍏ュ綊杩樺娉�!' }
-        ],
-        confirmComment: [
-          { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' }
+        companyLeaderApprovalComment: [
+          { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!' }
         ]
       },
       url: {
@@ -154,8 +345,21 @@
     this.loadAllProductionTree()
   },
   computed: {
-    approvalDisable: function() {
-      return ['WAIT_CHECK'].includes(this.model.transferStatus)
+    //浣跨敤鍗曚綅棰嗗瀹℃壒
+    useApprovalDisable: function () {
+      return ['WAIT_SUBMIT', 'WAIT_USE_LEADER_CHECK', 'WAIT_TRANSFER_LEADER_CHECK', 'WAIT_EXTERNAL_CONFIRM', 'WAIT_COMPANY_LEADER_CHECK', 'REJECT', 'COMPLETE'].includes(this.model.transferStatus)
+    },
+    //璋冨叆鍗曚綅棰嗗瀹℃壒WAIT_USE_LEADER_CHECK
+    leanOutApprovalDisable: function () {
+      return ['WAIT_TRANSFER_LEADER_CHECK', 'WAIT_EXTERNAL_CONFIRM', 'WAIT_COMPANY_LEADER_CHECK', 'REJECT', 'COMPLETE'].includes(this.model.transferStatus)
+    },
+    //鏈哄姩鍔炵‘璁�
+    externalConfirmDisable: function () {
+      return ['WAIT_EXTERNAL_CONFIRM', 'WAIT_COMPANY_LEADER_CHECK', 'REJECT', 'COMPLETE'].includes(this.model.transferStatus)
+    },
+    // 鍏徃棰嗗瀹℃壒
+    companyApprovalDisable: function () {
+      return ['WAIT_COMPANY_LEADER_CHECK', 'REJECT', 'COMPLETE'].includes(this.model.transferStatus)
     },
   },
   methods: {
@@ -176,6 +380,7 @@
       console.log('record', record)
       this.initParams()
       this.model = Object.assign({}, record)
+      this.spinning = false
     },
 
     initParams() {
@@ -231,5 +436,4 @@
 </script>
 
 <style lang="less" scoped>
-
 </style>
\ No newline at end of file

--
Gitblit v1.9.3