From dd882d827e101e85cf1806284d1e3e76d3466ecb Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 11 七月 2025 20:18:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue |  358 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 202 insertions(+), 156 deletions(-)

diff --git a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
index da01900..b1dea0d 100644
--- a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
+++ b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
@@ -1,194 +1,240 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="800"
-    :visible="visible"
-    :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="orderNum" label="宸ュ崟鍙�">
-          <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="model.orderNum" />
-        </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="standardId" label="瑙勮寖ID">
-          <a-input placeholder="璇疯緭鍏ヨ鑼僆D" v-model="model.standardId" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationDate" label="璁″垝閴村畾鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�">
-          <a-input placeholder="璇疯緭鍏ヨ鍒掗壌瀹氭棩鏈�;鎻愬墠70澶╃敓鎴愬伐鍗�" v-model="model.evaluationDate" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="freezeOrderDate" label="閿佸畾宸ュ崟鏃ユ湡;鎻愬墠55澶╅攣瀹氬伐鍗�">
-          <a-input placeholder="璇疯緭鍏ラ攣瀹氬伐鍗曟棩鏈�;鎻愬墠55澶╅攣瀹氬伐鍗�" v-model="model.freezeOrderDate" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderExpirationDate" label="宸ュ崟杩囨湡鏃ユ湡;鍒版湡鏈仛鐩存帴杩囨湡锛屽苟淇敼璁惧鎶�鏈姸鎬佷负绂佺敤">
-          <a-input placeholder="璇疯緭鍏ュ伐鍗曡繃鏈熸棩鏈�;鍒版湡鏈仛鐩存帴杩囨湡锛屽苟淇敼璁惧鎶�鏈姸鎬佷负绂佺敤" v-model="model.orderExpirationDate" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualStartTime" label="瀹為檯寮�濮嬫椂闂�">
-          <a-input placeholder="璇疯緭鍏ュ疄闄呭紑濮嬫椂闂�" v-model="model.actualStartTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualEndTime" label="瀹為檯缁撴潫鏃堕棿">
-          <a-input placeholder="璇疯緭鍏ュ疄闄呯粨鏉熸椂闂�" v-model="model.actualEndTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluator" label="閴村畾浜�">
-          <a-input placeholder="璇疯緭鍏ラ壌瀹氫汉" v-model="model.evaluator" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationStatus" label="閴村畾鐘舵��;寰呴壌瀹氥�侀壌瀹氫腑銆佺淮淇涓讳换绛惧瓧銆佸伐鑹轰汉鍛樼瀛椼�佹妧鏈富绠$瀛椼�佽澶囨楠屽憳绛惧瓧銆佸凡瀹屾垚銆佸凡閿佸畾銆佸彉鏇翠腑銆佸凡杩囨湡">
-          <a-input placeholder="璇疯緭鍏ラ壌瀹氱姸鎬�;寰呴壌瀹氥�侀壌瀹氫腑銆佺淮淇涓讳换绛惧瓧銆佸伐鑹轰汉鍛樼瀛椼�佹妧鏈富绠$瀛椼�佽澶囨楠屽憳绛惧瓧銆佸凡瀹屾垚銆佸凡閿佸畾銆佸彉鏇翠腑銆佸凡杩囨湡" v-model="model.evaluationStatus" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="creationMethod" label="鍒涘缓鏂瑰紡">
-          <a-input placeholder="璇疯緭鍏ュ垱寤烘柟寮�" v-model="model.creationMethod" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="safetyEquipmentCheckResult" label="瀹夊叏瑁呯疆妫�鏌ョ粨鏋�;鏄�佸惁">
-          <a-input placeholder="璇疯緭鍏ュ畨鍏ㄨ缃鏌ョ粨鏋�;鏄�佸惁" v-model="model.safetyEquipmentCheckResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="precisionCheckResult" label="绮惧害鍙傛暟妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤">
-          <a-input placeholder="璇疯緭鍏ョ簿搴﹀弬鏁版鏌ョ粨鏋�;鏄�佸惁銆佹棤" v-model="model.precisionCheckResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionalCheckResult" label="鍔熻兘鐘舵�佹鏌ョ粨鏋�;鏄�佸惁">
-          <a-input placeholder="璇疯緭鍏ュ姛鑳界姸鎬佹鏌ョ粨鏋�;鏄�佸惁" v-model="model.functionalCheckResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="otherCheckResult" label="鍏朵粬妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤">
-          <a-input placeholder="璇疯緭鍏ュ叾浠栨鏌ョ粨鏋�;鏄�佸惁銆佹棤" v-model="model.otherCheckResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignature" label="缁翠慨瀹や富浠荤瀛�">
-          <a-input placeholder="璇疯緭鍏ョ淮淇涓讳换绛惧瓧" v-model="model.repairManagerSignature" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignatureTime1" label="缁翠慨瀹や富浠荤瀛楁椂闂�">
-          <a-input placeholder="璇疯緭鍏ョ淮淇涓讳换绛惧瓧鏃堕棿" v-model="model.repairManagerSignatureTime1" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sampleCheckResult" label="璇曚欢妫�鏌ョ粨鏋�;鍚堟牸銆佷笉鍚堟牸">
-          <a-input placeholder="璇疯緭鍏ヨ瘯浠舵鏌ョ粨鏋�;鍚堟牸銆佷笉鍚堟牸" v-model="model.sampleCheckResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignature" label="宸ヨ壓鍛樼瀛�">
-          <a-input placeholder="璇疯緭鍏ュ伐鑹哄憳绛惧瓧" v-model="model.processTechnicianSignature" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignatureTime" label="宸ヨ壓鍛樼瀛楁椂闂�">
-          <a-input placeholder="璇疯緭鍏ュ伐鑹哄憳绛惧瓧鏃堕棿" v-model="model.processTechnicianSignatureTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationResult" label="閴村畾缁撴灉;鍚堟牸銆侀檺鐢ㄣ�佺鐢�">
-          <a-input placeholder="璇疯緭鍏ラ壌瀹氱粨鏋�;鍚堟牸銆侀檺鐢ㄣ�佺鐢�" v-model="model.evaluationResult" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationReason" label="闄怽绂佺敤鍘熷洜(澶氶��);瀹夊叏瑁呯疆銆佽澶囧姛鑳姐�佺簿搴︺�佽瘯浠躲�佸叾浠�">
-          <a-input placeholder="璇疯緭鍏ラ檺\绂佺敤鍘熷洜(澶氶��);瀹夊叏瑁呯疆銆佽澶囧姛鑳姐�佺簿搴︺�佽瘯浠躲�佸叾浠�" v-model="model.evaluationReason" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignature" label="璁惧妫�鏌ヤ汉绛惧瓧">
-          <a-input placeholder="璇疯緭鍏ヨ澶囨鏌ヤ汉绛惧瓧" v-model="model.inspectorSignature" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignatureTime" label="璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿">
-          <a-input placeholder="璇疯緭鍏ヨ澶囨鏌ヤ汉绛惧瓧鏃堕棿" v-model="model.inspectorSignatureTime" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeA" label="闄勫綍A HF缂栫爜">
-          <a-input placeholder="璇疯緭鍏ラ檮褰旳 HF缂栫爜" v-model="model.hfCodeA" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeB" label="闄勫綍B HF缂栫爜">
-          <a-input placeholder="璇疯緭鍏ラ檮褰旴 HF缂栫爜" v-model="model.hfCodeB" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeC" label="闄勫綍C HF缂栫爜">
-          <a-input placeholder="璇疯緭鍏ラ檮褰旵 HF缂栫爜" v-model="model.hfCodeC" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeD" label="闄勫綍D HF缂栫爜">
-          <a-input placeholder="璇疯緭鍏ラ檮褰旸 HF缂栫爜" v-model="model.hfCodeD" />
-        </a-form-model-item>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="澶囨敞">
-          <a-input placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" />
-        </a-form-model-item>
-		
+  <j-modal :title="title" :width="1300" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
+           @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+    <a-spin :spinning="spinning">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
+        <a-row>
+          <a-col :span="8">
+            <a-form-model-item label="宸ュ崟鍙�">
+              <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
+            </a-form-model-item>
+          </a-col>
+
+          <a-col :span="8">
+            <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+              <technical-status-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId"
+                                                 @autocompleteForm="getDetailDataByOrderId" :allowClear="false"/>
+            </a-form-model-item>
+          </a-col>
+
+          <a-col :span="8">
+            <a-form-model-item prop="evaluationDate" label="璁″垝閴村畾鏃ユ湡">
+              <a-date-picker v-model="model.evaluationDate" value-format="YYYY-MM-DD" :allowClear="false"
+                             style="width: 100%"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item :labelCol="{span:2}" :wrapperCol="{span:21}" label="澶囨敞">
+              <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
       </a-form-model>
+
+      <a-tabs default-active-key="1" v-if="model.equipmentId">
+        <a-tab-pane tab="瀹夊叏瑁呯疆妫�鏌�" key="1" v-if="detail.safetyEquipmentCheckList.length>0">
+          <j-vxe-table ref="editableDetailTable1" rowNumber bordered keep-source :height="300"
+                       :dataSource="detail.safetyEquipmentCheckList" :columns="detail.columns"/>
+        </a-tab-pane>
+
+        <a-tab-pane tab="璁惧绮惧害妫�鏌�" key="2" v-if="detail.precisionCheckList.length>0">
+          <j-vxe-table ref="editableDetailTable2" rowNumber bordered keep-source :height="300"
+                       :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns"/>
+        </a-tab-pane>
+
+        <a-tab-pane tab="鍏朵粬妫�鏌�" key="3" v-if="detail.otherCheckList.length>0">
+          <j-vxe-table ref="editableDetailTable3" rowNumber bordered keep-source :height="300"
+                       :dataSource="detail.otherCheckList" :columns="detail.columns"/>
+        </a-tab-pane>
+      </a-tabs>
     </a-spin>
   </j-modal>
 </template>
 
 <script>
-  import { httpAction } from '@/api/manage'
-  import moment from "moment"
+  import { httpAction, getAction } from '@/api/manage'
+  import TechnicalStatusEquipmentSelect from '../../equipment/modules/TechnicalStatusEquipmentSelect'
+  import { JVXETypes } from '@/components/jeecg/JVxeTable'
+  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
 
   export default {
-    name: "EamTechnicalStatusEvaluationOrderModal",
-    data () {
+    name: 'EamTechnicalStatusEvaluationOrderModal',
+    components: {
+      TechnicalStatusEquipmentSelect
+    },
+    mixins: [JVxeTableModelMixin],
+    data() {
       return {
-        title:"鎿嶄綔",
+        title: '鎿嶄綔',
         visible: false,
         model: {},
         labelCol: {
           xs: { span: 24 },
-          sm: { span: 5 },
+          sm: { span: 6 }
         },
         wrapperCol: {
           xs: { span: 24 },
-          sm: { span: 16 },
+          sm: { span: 15 }
         },
-
         confirmLoading: false,
-        validatorRules:{
+        spinning: false,
+        validatorRules: {
+          equipmentId: [{ required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }],
+          evaluationDate: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }]
+        },
+        detail: {
+          safetyEquipmentCheckList: [],
+          precisionCheckList: [],
+          otherCheckList: [],
+          columns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'standardId',
+              key: 'standardId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '椤圭洰搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              align: 'center',
+              width: 150
+            },
+            {
+              title: '妫�鏌ラ」鐩�',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            }
+          ],
+          precisionCheckColumns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'standardId',
+              key: 'standardId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '椤圭洰搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              align: 'center',
+              width: 150
+            },
+            {
+              title: '妫�鏌ラ」鐩�',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '妫�鏌ュ瓙椤圭洰',
+              key: 'subItemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '鍏佸樊鍊�',
+              key: 'toleranceValue',
+              type: JVXETypes.normal,
+              align: 'center'
+            }
+          ]
         },
         url: {
-          add: "/eam/eamTechnicalStatusEvaluationOrder/add",
-          edit: "/eam/eamTechnicalStatusEvaluationOrder/edit",
-        },
+          add: '/eam/eamTechnicalStatusEvaluationOrder/add',
+          edit: '/eam/eamTechnicalStatusEvaluationOrder/edit',
+          detail: '/eam/eamTechnicalStatusEvaluationStandardDetail/queryList'
+        }
       }
     },
-    created () {
-    },
     methods: {
-      add () {
+      add() {
         //鍒濆鍖栭粯璁ゅ��
-        this.edit({});
+        this.edit({})
       },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
+
+      edit(record) {
+        this.model = Object.assign({}, record)
+        this.visible = true
       },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.$refs.form.clearValidate();
-      },
-      handleOk () {
-        const that = this;
-        // 瑙﹀彂琛ㄥ崟楠岃瘉
-         this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
+
+      getDetailDataByOrderId({ id }) {
+        this.model.standardId = id
+        this.spinning = true
+        getAction(this.url.detail, { standardId: id })
+          .then(res => {
+            if (res.success) {
+              this.detail.safetyEquipmentCheckList = res.result.filter(item => item.checkCategory == 'SAFETY_EQUIPMENT_CHECK')
+              this.detail.precisionCheckList = res.result.filter(item => item.checkCategory == 'PRECISION_CHECK')
+              this.detail.otherCheckList = res.result.filter(item => item.checkCategory == 'OTHER_CHECK')
             }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
+          })
+          .finally(() => {
+            this.spinning = false
+          })
+      },
+
+      handleOk() {
+        const that = this
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = that.spinning = true
+            let httpUrl = ''
+            let method = ''
+            if (!this.model.id) {
+              httpUrl += this.url.add
+              method = 'post'
+            } else {
+              httpUrl += this.url.edit
+              method = 'put'
+            }
+            this.model.tableDetailList = [...this.detail.safetyEquipmentCheckList, ...this.detail.precisionCheckList, ...this.detail.otherCheckList]
+            httpAction(httpUrl, this.model, method)
+              .then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.$emit('ok')
+                  that.close()
+                } else {
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              }).finally(() => {
+              that.confirmLoading = that.spinning = false
             })
-          }else{
-             return false;
+          } else {
+            return false
           }
         })
       },
-      handleCancel () {
+
+      handleCancel() {
         this.close()
       },
 
-
+      close() {
+        this.$emit('close')
+        this.visible = false
+        this.$refs.form.clearValidate()
+      }
     }
   }
 </script>

--
Gitblit v1.9.3