From 2f5227a8f37b5c9be090a20253555411cfa9548c Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 18 八月 2025 10:27:47 +0800
Subject: [PATCH] 维修时长  故障时长

---
 src/views/eam/repair/modules/EamReportProductHazardsModal.vue |  150 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 117 insertions(+), 33 deletions(-)

diff --git a/src/views/eam/repair/modules/EamReportProductHazardsModal.vue b/src/views/eam/repair/modules/EamReportProductHazardsModal.vue
index 780c21d..30a967d 100644
--- a/src/views/eam/repair/modules/EamReportProductHazardsModal.vue
+++ b/src/views/eam/repair/modules/EamReportProductHazardsModal.vue
@@ -1,60 +1,144 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel"
-    cancelText="鍏抽棴">
-    <eam-report-product-hazards-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></eam-report-product-hazards-form>
+  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
+           @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+    <a-spin :spinning="confirmLoading">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
+        <a-row>
+          <a-col :span="customSpan">
+            <a-form-model-item label="鎵规鍙�" prop="batchNumber">
+              <a-input placeholder="璇疯緭鍏ユ壒娆″彿" v-model="model.batchNumber"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="customSpan">
+            <a-form-model-item label="鍔犲伐闆朵欢鍙�" prop="processingPart">
+              <a-input placeholder="璇疯緭鍏ュ姞宸ラ浂浠跺彿"
+                       v-model="model.processingPart"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="customSpan">
+            <a-form-model-item label="浠舵暟" prop="quantity">
+              <a-input-number  placeholder="璇疯緭鍏ヤ欢鏁�" v-model="model.quantity"
+                              :min="0" style="width: 100%"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="customSpan">
+            <a-form-model-item prop="productLoss" label="浜у搧鎹熷け鎯呭喌">
+            <j-dict-select-tag dict-code="yn" type="radio"
+                               placeholder="璇疯緭鍏ヤ骇鍝佹崯澶辨儏鍐�"
+                               v-model="model.productLoss"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item :labelCol="labelColLong"
+                               :wrapperCol="wrapperColLong" prop="qualityAnalysis" label="浜у搧鎹熷け璐ㄩ噺褰卞搷鍒嗘瀽">
+              <a-textarea placeholder="璇疯緭鍏ヤ骇鍝佹崯澶辫川閲忓奖鍝嶅垎鏋�" v-model="model.qualityAnalysis"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </a-spin>
   </j-modal>
 </template>
 
 <script>
+  import { httpAction } from '@/api/manage'
+  import moment from "moment"
 
-  import EamReportProductHazardsForm from './EamReportProductHazardsForm'
   export default {
-    name: 'EamReportProductHazardsModal',
-    components: {
-      EamReportProductHazardsForm
-    },
+    name: "EamReportProductHazardsModal",
     data () {
       return {
-        title:'',
-        width:800,
+        title:"鎿嶄綔",
         visible: false,
-        disableSubmit: false
+        customSpan: 6,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 9 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 12 }
+        },
+        labelColLong: {
+          xs: { span: 24 },
+          sm: { span: 6 }
+        },
+        wrapperColLong: {
+          xs: { span: 24 },
+          sm: { span: 17 }
+        },
+
+        confirmLoading: false,
+        validatorRules:{
+          batchNumber: [{ required: true, message: '璇疯緭鍏ユ壒娆″彿', trigger: 'change' }],
+          processingPart: [{ required: true, message: '璇疯緭鍏ュ姞宸ラ浂浠跺彿', trigger: 'change' }],
+          quantity: [{ required: true, message: '璇疯緭鍏ヤ欢鏁�', trigger: 'change' }],
+          productLoss: [{ required: true, message: '璇疯緭鍏ヤ骇鍝佹崯澶辨儏鍐�', trigger: 'change' }],
+          qualityAnalysis: [{ required: true, message: '璇疯緭鍏ヤ骇鍝佹崯澶辫川閲忓奖鍝嶅垎鏋�', trigger: 'change' }],
+        },
+        url: {
+          add: "/eam/eamReportProductHazards/add",
+          edit: "/eam/eamReportProductHazards/edit",
+        },
       }
+    },
+    created () {
     },
     methods: {
       add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
+        //鍒濆鍖栭粯璁ゅ��
+        this.edit({});
       },
       edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
+        this.model = Object.assign({}, record);
+        this.visible = true;
       },
       close () {
         this.$emit('close');
         this.visible = false;
+        this.$refs.form.clearValidate();
       },
       handleOk () {
-        this.$refs.realForm.submitForm();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
+        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';
+            }
+            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();
+            })
+          }else{
+             return false;
+          }
+        })
       },
       handleCancel () {
         this.close()
-      }
+      },
+
+
     }
   }
-</script>
\ No newline at end of file
+</script>
+
+<style lang="less" scoped>
+
+</style>
\ No newline at end of file

--
Gitblit v1.9.3