From db6cd4593985acc5c7be4822e8925ca19db63259 Mon Sep 17 00:00:00 2001
From: liuyiliang <azc78910>
Date: Fri, 26 Jul 2024 15:10:44 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=A0=A1=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/smart/workorder.vue       | 54 ++++++++++++++++++++---------
 src/views/smart/workorderDetail.vue | 13 +++++--
 2 files changed, 48 insertions(+), 19 deletions(-)

diff --git a/src/views/smart/workorder.vue b/src/views/smart/workorder.vue
index 5bd0291..02dd325 100644
--- a/src/views/smart/workorder.vue
+++ b/src/views/smart/workorder.vue
@@ -49,7 +49,7 @@
       </template>
     </avue-crud>
     <el-dialog title="上传处理结果" width="35%" :visible.sync="dialogFormVisible" :before-close="closeDialog">
-      <el-form :model="dialogForm" ref="dialogForm">
+      <el-form :model="dialogForm" ref="dialogForm" :rules="dialogFormRules">
         <el-form-item label="处理时间" :label-width="formLabelWidth">
           <el-col :span="24">
             <el-date-picker v-model="dialogForm.processingTime" type="datetime" placeholder="选择日期时间" size="small" autocomplete="off" style="width: 350px"></el-date-picker>
@@ -60,7 +60,7 @@
             <el-input v-model="dialogForm.description" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="400" show-word-limit size="small" autocomplete="off" style="width: 350px"></el-input>
           </el-col>
         </el-form-item>
-        <el-form-item label="结束时间" :label-width="formLabelWidth">
+        <el-form-item label="结束时间" :label-width="formLabelWidth" prop="endTime">
           <el-col :span="24">
            <el-date-picker v-model="dialogForm.endTime" type="datetime" placeholder="选择日期时间" size="small" autocomplete="off" style="width: 350px"></el-date-picker>
           </el-col>
@@ -100,6 +100,13 @@
 
   export default {
     data() {
+      var checkEndTime = (rule, value, callback) => {
+        if (value && this.dialogForm.processingTime && new Date(value) < new Date(this.dialogForm.processingTime)) {
+          callback(new Error('结束时间不可小于处理时间'));
+        } else {
+          callback();
+        }
+      };
       return {
         form: {},
         search:{},
@@ -372,7 +379,12 @@
           processingTime: null
         },
         formLabelWidth: '120px',
-        processResOptions: []
+        processResOptions: [],
+        dialogFormRules: {
+          endTime: [
+            { validator: checkEndTime, trigger: 'blur' }
+          ],
+        }
       };
     },
     created() {
@@ -613,20 +625,28 @@
           });
       },
       submitForm() {
-        this.loading = true;
-        var formData = {...this.dialogForm};
-        update(formData).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          this.loading = false;
-          this.dialogFormVisible = false;
-        }, error => {
-          window.console.log(error);
-          this.loading = false;
-          this.dialogFormVisible = false;
+        debugger
+        this.$refs['dialogForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true;
+            var formData = {...this.dialogForm};
+            update(formData).then(() => {
+              this.onLoad(this.page);
+              this.$message({
+                type: "success",
+                message: "操作成功!"
+              });
+              this.loading = false;
+              this.dialogFormVisible = false;
+            }, error => {
+              window.console.log(error);
+              this.loading = false;
+              this.dialogFormVisible = false;
+            });
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
         });
       }
     }
diff --git a/src/views/smart/workorderDetail.vue b/src/views/smart/workorderDetail.vue
index 654694d..f9b2bb7 100644
--- a/src/views/smart/workorderDetail.vue
+++ b/src/views/smart/workorderDetail.vue
@@ -38,6 +38,13 @@
   export default {
     name: "operationticketDetail",
     data() {
+      var checkEndTime = (rule, value, callback) => {
+        if (value && this.tab1_form.processingTime && new Date(value) < new Date(this.tab1_form.processingTime)) {
+          callback(new Error('结束时间不可小于处理时间'));
+        } else {
+          callback();
+        }
+      };
       return {
         frame_class: '',
         type: {},
@@ -279,7 +286,8 @@
               label: "结束时间",
               prop: "endTime",
               type: 'datetime',
-              span: 8
+              span: 8,
+              rules: [{required: true, validator: checkEndTime, trigger: 'change' }]
             }, {
               label: "处理结果",
               prop: "handlingResult",
@@ -333,9 +341,10 @@
     methods: {
       handleFormSubmit() {
         const form = this.$refs.tab1_form;
-        form.validate((valid) => {
+        form.validate((valid,done) => {
           if (valid) {
             this.submitForm();
+            done()
           } else {
             this.$message({
               type: "warning",