瀏覽代碼

安全检查添加检查开始和检查结束时间

xujie 1 年之前
父節點
當前提交
db7068b67c

+ 73 - 17
src/views/safetycheck/task/components/checkRegister.vue

@@ -41,8 +41,6 @@
               ></el-option>
             </el-select> </el-form-item
         ></el-col>
-      </el-row>
-      <el-row>
         <el-col :span="6">
           <el-form-item label="受检机构" prop="beCheckedOrgId">
             <orgDropDown
@@ -53,6 +51,26 @@
             />
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6">
+          <el-form-item prop="startTime" label="检查开始时间">
+            <el-date-picker style="width: 100%;" required v-model="taskInfo.startTime"
+                            :picker-options="startDatepickerOptions"
+                            format="yyyy-MM-dd HH:mm"
+                            type="datetime" placeholder="选择日期" @change="startDateChanged">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item prop="endTime" label="检查结束时间">
+            <el-date-picker style="width: 100%;" required v-model="taskInfo.endTime"
+                            :picker-options="endDatepickerOptions" @change="endDateChanged"
+                            format="yyyy-MM-dd HH:mm"
+                            type="datetime" placeholder="选择日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
         <el-col :span="6">
           <el-form-item label="检查组成员" prop="checkTeam">
             <el-input
@@ -62,19 +80,7 @@
               maxlength="100"
               clearable
             ></el-input> </el-form-item
-        ></el-col>
-        <el-col :span="6">
-          <el-form-item label="检查日期" prop="planStartTime">
-            <el-date-picker
-              style="width: 100%"
-              v-model="taskInfo.planStartTime"
-              type="date"
-              placeholder="选择检查日期"
-              clearable
-            >
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
+          ></el-col>
       </el-row>
     </el-form>
     <div style="margin-left: 42px">
@@ -257,7 +263,9 @@ export default {
         planStartTime: new Date(),
         checkTeam: null,
         checkList: [],
-        signImg:null
+        signImg:null,
+        startTime:null,
+        endTime:null
       },
       roleOptions: [],
       prevCheckOrgType: null, //上一个选中检查机构的类型
@@ -271,10 +279,20 @@ export default {
         checkOrgId: [{ required: true, message: "请选择检查主体" }],
         checkRoleId: [{ required: true, message: "请选择检查人员" }],
         beCheckedOrgId: [{ required: true, message: "请选择受检机构" }],
-        planStartTime: [{ required: true, message: "请选择检查日期" }],
+        //planStartTime: [{ required: true, message: "请选择检查日期" }],
+        startTime: [{required: true, message: "请选择检查开始时间"}],
+        endTime: [{required: true, message: "请选择检查结束时间"}],
       },
       pointIdsWhenAdd: [],
       mode: null,
+      startDatepickerOptions: {
+        disabledDate(time) {
+          return false;
+        },
+      },
+      endDatepickerOptions: {
+        disabledDate: this.endDisabledDate,
+      },
     };
   },
   dicts: ["rectification_deadline", "sys_user_is_lock"],
@@ -444,8 +462,20 @@ export default {
         }
       }
       if (isOk) {
+        //判断startTime大于endTime就返回
+        if (dayjs(this.taskInfo.startTime).isAfter(dayjs(this.taskInfo.endTime))) {
+          this.$message.error("检查开始时间不能大于检查结束时间!");
+          return;
+        }
         this.taskInfo.isSubmit = 1;
         let data = { ...this.taskInfo };
+        if (data.startTime){
+          data.startTime = dayjs(data.startTime).format("YYYY-MM-DD HH:mm:ss");
+        }
+        if (data.endTime){
+          data.endTime = dayjs(data.endTime).format("YYYY-MM-DD HH:mm:ss");
+        }
+
         data.checkRoles = [{ id: this.taskInfo.checkRoleId }];
         api.tempSubmit(data).then((r) => {
           this.$message.info("提交成功");
@@ -453,6 +483,32 @@ export default {
         });
       }
     },
+    endDisabledDate(time) {
+      //小于开始日期禁止选择
+      let startDate = new Date();
+      startDate.setTime(startDate.getTime() - 3600 * 1000 * 24);
+      if (this.taskInfo.startTime) {
+        startDate = new Date(
+          dayjs(this.taskInfo.startTime).format("YYYY-MM-DD")
+        );
+        startDate.setTime(startDate.getTime() - 3600 * 1000 * 24);
+      }
+      return time.getTime() < new Date(startDate).getTime();
+    },
+    endDateChanged(time) {
+      if (dayjs(this.taskInfo.startTime).isAfter(dayjs(this.taskInfo.endTime))) {
+        this.taskInfo.startTime = this.taskInfo.endTime;
+      }
+    },
+    startDateChanged(time) {
+      if (
+        dayjs(this.taskInfo.startTime).isAfter(
+          dayjs(this.taskInfo.endTime)
+        )
+      ) {
+        this.taskInfo.endTime = this.taskInfo.startTime;
+      }
+    },
   },
 };
 </script>

+ 17 - 10
src/views/safetycheck/task/components/detail.vue

@@ -22,7 +22,7 @@
       }}</el-descriptions-item>
       <el-descriptions-item label="检查主体">{{
         taskInfo.checkOrgName
-      }}</el-descriptions-item>      
+      }}</el-descriptions-item>
       <el-descriptions-item label="检查人员"
         >{{
           taskInfo.checkRoles
@@ -30,22 +30,29 @@
             : ""
         }}
       </el-descriptions-item>
-      <el-descriptions-item label="检查时间"
+      <el-descriptions-item label="隐患问题数"
+      >{{ taskInfo.exceptionCount }}
+      </el-descriptions-item>
+      <el-descriptions-item label="检查开始时间"
         >{{
-          taskInfo.submitTime
-            ? dayjs(taskInfo.submitTime).format("YYYY年MM月DD日")
+          taskInfo.startTime
+            ? dayjs(taskInfo.startTime).format("YYYY年MM月DD日 HH时mm分")
             : ""
         }}
       </el-descriptions-item>
-       
-      <el-descriptions-item label="隐患问题数"
-        >{{ taskInfo.exceptionCount }}
+      <el-descriptions-item label="检查结束时间"
+      >{{
+          taskInfo.endTime
+            ? dayjs(taskInfo.endTime).format("YYYY年MM月DD日 HH时mm分")
+            : ""
+        }}
       </el-descriptions-item>
-      <el-descriptions-item label="检查组成员" :span="2"
+
+      <el-descriptions-item label="检查组成员"
         >{{ taskInfo.checkTeam }}
       </el-descriptions-item>
-     
-      
+
+
     </el-descriptions>
 
     <div class="itemDetail">

+ 68 - 0
src/views/safetycheck/task/components/register.vue

@@ -27,6 +27,20 @@
             : ""
         }}
       </el-descriptions-item>
+      <el-descriptions-item label="检查开始时间" prop="startTime">
+        <el-date-picker style="width: 100%;" required v-model="taskInfo.startTime"
+                        :picker-options="startDatepickerOptions"
+                        format="yyyy-MM-dd HH:mm"
+                        type="datetime" placeholder="选择日期" @change="startDateChanged">
+        </el-date-picker>
+      </el-descriptions-item>
+      <el-descriptions-item label="检查结束时间" prop="endTime">
+        <el-date-picker style="width: 100%;" required v-model="taskInfo.endTime"
+                        :picker-options="endDatepickerOptions" @change="endDateChanged"
+                        format="yyyy-MM-dd HH:mm"
+                        type="datetime" placeholder="选择日期">
+        </el-date-picker>
+      </el-descriptions-item>
       <el-descriptions-item label="检查组成员"
         ><el-input
           style="width: 80%; margin-top: -8px"
@@ -218,8 +232,18 @@ export default {
       exceptionRules: {
         remark: [{ required: true, message: "请输入情况描述" }],
         rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
+        startTime: [{required: true, message: "请选择检查开始时间"}],
+        endTime: [{required: true, message: "请选择检查结束时间"}],
       },
       pointIdsWhenAdd: [],
+      startDatepickerOptions: {
+        disabledDate(time) {
+          return false;
+        },
+      },
+      endDatepickerOptions: {
+        disabledDate: this.endDisabledDate,
+      },
     };
   },
   dicts: ["rectification_deadline", "sys_user_is_lock", "safety_check_status"],
@@ -452,6 +476,24 @@ export default {
         }
       }
       if (isOk) {
+        //判断startTime大于endTime就返回
+        if (dayjs(this.taskInfo.startTime).isAfter(dayjs(this.taskInfo.endTime))) {
+          this.$message.error("检查开始时间不能大于检查结束时间!");
+          return;
+        }
+        if (this.taskInfo.startTime){
+          this.taskInfo.startTime = dayjs(this.taskInfo.startTime).format("YYYY-MM-DD HH:mm:ss");
+        }else {
+          this.$message.error("检查开始时间不能为空!");
+          return;
+        }
+
+        if (this.taskInfo.endTime){
+          this.taskInfo.endTime = dayjs(this.taskInfo.endTime).format("YYYY-MM-DD HH:mm:ss");
+        }else {
+          this.$message.error("检查结束时间不能为空!");
+          return;
+        }
         this.taskInfo.signImg = this.signImg;
         this.taskInfo.isSubmit = 1;
         api.submit(this.taskInfo).then((r) => {
@@ -460,6 +502,32 @@ export default {
         });
       }
     },
+    endDisabledDate(time) {
+      //小于开始日期禁止选择
+      let startDate = new Date();
+      startDate.setTime(startDate.getTime() - 3600 * 1000 * 24);
+      if (this.taskInfo.startTime) {
+        startDate = new Date(
+          dayjs(this.taskInfo.startTime).format("YYYY-MM-DD")
+        );
+        startDate.setTime(startDate.getTime() - 3600 * 1000 * 24);
+      }
+      return time.getTime() < new Date(startDate).getTime();
+    },
+    endDateChanged(time) {
+      if (dayjs(this.taskInfo.startTime).isAfter(dayjs(this.taskInfo.endTime))) {
+        this.taskInfo.startTime = this.taskInfo.endTime;
+      }
+    },
+    startDateChanged(time) {
+      if (
+        dayjs(this.taskInfo.startTime).isAfter(
+          dayjs(this.taskInfo.endTime)
+        )
+      ) {
+        this.taskInfo.endTime = this.taskInfo.startTime;
+      }
+    },
   },
 };
 </script>