From b8e09a7ab8d7a2765e4a55c23a7a57ce09c29b3f Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期五, 26 八月 2022 13:36:34 +0800
Subject: [PATCH] Default Changelist

---
 src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue |  246 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 162 insertions(+), 84 deletions(-)

diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue
index fcbddcf..642567c 100644
--- a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue
+++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="system-add-menu-container">
-        <el-dialog v-model="ifShowInspectTaskDialog" :title="title">
+        <el-dialog v-model="ifShowInspectTaskDialog" :title="title" :close-on-click-modal="false">
             <el-form :model="inspectTaskForm" label-width="120px" ref="inspectTaskFormRef" :rules="inspectTaskFormRules">
                 <el-row>
                     <el-col :span="12" style="margin-bottom: 20px">
@@ -27,42 +27,48 @@
                             </el-select>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="12" style="margin-bottom: 20px">
+                    <el-col :span="12" style="margin-bottom: 20px" v-if="inspectTaskForm.workType === 1">
                         <el-form-item label="巡检周期" prop="checkCycle">
-                            <el-input v-model="inspectTaskForm.checkCycle" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add">
+                            <el-input v-model="inspectTaskForm.checkCycle" @input="onVerifiyNumberInteger($event, 'checkCycle')" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add">
                                 <template #append>
-                                    <el-select v-model="inspectTaskForm.checkCycleUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
-                                        <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                                    </el-select>
+                                    <el-form-item prop="checkCycleUnit">
+                                        <el-select v-model="inspectTaskForm.checkCycleUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
+                                            <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                                        </el-select>
+                                    </el-form-item>
                                 </template>
                             </el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12" style="margin-bottom: 20px">
                         <el-form-item label="提前通知时间" prop="noticeTime">
-                            <el-input v-model="inspectTaskForm.noticeTime" :disabled="!inspectPointConfirm" placeholder="请输入提前通知时间" class="input-add">
+                            <el-input @input="onVerifiyNumberInteger($event, 'noticeTime')" v-model="inspectTaskForm.noticeTime" :disabled="!inspectPointConfirm" placeholder="请输入提前通知时间" class="input-add">
                                 <template #append>
-                                    <el-select v-model="inspectTaskForm.noticeTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
-                                        <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                                    </el-select>
+                                    <el-form-item prop="noticeTimeUnit">
+                                        <el-select v-model="inspectTaskForm.noticeTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
+                                            <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                                        </el-select>
+                                    </el-form-item>
                                 </template>
                             </el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12" style="margin-bottom: 20px">
                         <el-form-item label="有效时间" prop="validTime">
-                            <el-input v-model="inspectTaskForm.validTime" :disabled="!inspectPointConfirm" placeholder="请输入有效时间" class="input-add">
+                            <el-input v-model="inspectTaskForm.validTime" @input="onVerifiyNumberInteger($event, 'validTime')" :disabled="!inspectPointConfirm" placeholder="请输入有效时间" class="input-add">
                                 <template #append>
-                                    <el-select v-model="inspectTaskForm.validTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
-                                        <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                                    </el-select>
+                                    <el-form-item prop="noticeTimeUnit">
+                                        <el-select v-model="inspectTaskForm.validTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位">
+                                            <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                                        </el-select>
+                                    </el-form-item>
                                 </template>
                             </el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12" style="margin-bottom: 20px">
-                        <el-form-item label="周期开始时间" prop="firstStartTime">
-                            <el-date-picker v-model="inspectTaskForm.firstStartTime" :disabled="!inspectPointConfirm" placeholder="请选择周期开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" />
+                        <el-form-item label="任务开始时间" prop="firstStartTime">
+                            <el-date-picker v-model="inspectTaskForm.firstStartTime" :disabled="!inspectPointConfirm" placeholder="请选择任务开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" />
                         </el-form-item>
                     </el-col>
 
@@ -77,22 +83,44 @@
                                     <div class="stepCard">
                                         <el-card class="box-card">
                                             <template #header>
-                                                <div class="card-header">
-                                                    <div>{{ item.pointId }}</div>
+                                                <div class="card-header" v-for="i in inspectPointAllList">
+                                                    <div v-if="i.id == item.pointId">
+                                                        <span>{{ i.code }}</span>
+                                                    </div>
                                                 </div>
                                             </template>
-                                            <div class="text item">
-                                                所属设备区域:<span>{{ item.regionId }}</span>
+                                            <div class="text item" v-for="i in regionNameList">
+                                                <div v-if="i.id == item.regionId">
+                                                    所属设备区域:<span>{{ i.region }}</span>
+                                                </div>
                                             </div>
-                                            <div class="text item">
-                                                关联RFID:<span>{{ item.rfidId }}</span>
+                                            <!--                                            <div class="text item">-->
+                                            <!--                                                所属设备区域:<span>{{ item.regionId }}</span>-->
+                                            <!--                                            </div>-->
+                                            <div class="text item" v-for="i in RFIDList">
+                                                <div v-if="i.id == item.rfidId">
+                                                    所属设备区域:<span>{{ i.rfidName }}</span>
+                                                </div>
                                             </div>
-                                            <div class="text item">
-                                                巡检指标:<span>{{ item.quotaId }}</span>
+                                            <!--                                            <div class="text item">-->
+                                            <!--                                                关联RFID:<span>{{ item.rfidId }}</span>-->
+                                            <!--                                            </div>-->
+                                            <div class="text item" v-for="i in quotaList">
+                                                <div v-if="i.id == item.quotaId">
+                                                    所属设备区域:<span>{{ i.type }}</span>
+                                                </div>
                                             </div>
-                                            <div class="text item">
-                                                数据填报类型:<span>{{ item.dataReportType }}</span>
+                                            <!--                                            <div class="text item">-->
+                                            <!--                                                巡检指标:<span>{{ item.quotaId }}</span>-->
+                                            <!--                                            </div>-->
+                                            <div class="text item" v-for="i in dataReportTypeList">
+                                                <div v-if="i.id == item.dataReportType">
+                                                    所属设备区域:<span>{{ i.name }}</span>
+                                                </div>
                                             </div>
+                                            <!--                                            <div class="text item">-->
+                                            <!--                                                数据填报类型:<span>{{ item.dataReportType }}</span>-->
+                                            <!--                                            </div>-->
                                             <div class="text item">
                                                 数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span>
                                             </div>
@@ -108,13 +136,15 @@
                         </el-form-item>
                     </el-col>
                 </el-row>
-                <div align="right" v-show="inspectPointConfirm">
-                    <el-button type="warning" @click="inspectPointDialog = false" size="default" plain>取消</el-button>
+            </el-form>
+            <template #footer>
+                <div v-if="inspectPointConfirm" class="dialog-footer">
+                    <el-button type="warning" @click="ifShowInspectTaskDialog = false" size="default" plain>取消</el-button>
                     <el-button type="primary" @click="submitInspectTask()" size="default">确认</el-button>
                 </div>
-            </el-form>
+            </template>
         </el-dialog>
-        <el-dialog v-model="inspectPointDialog" :title="pointTitle">
+        <el-dialog v-model="inspectPointDialog" :title="pointTitle" :close-on-click-modal="false">
             <el-form :model="inspectPointForm" label-width="150px" ref="inspectPointFormRef" :rules="inspectPointFormRules">
                 <el-form-item label="选择巡检点" prop="pointId">
                     <el-select v-model="inspectPointForm.pointId" @change="giveRegionAndRFID" class="input-add">
@@ -174,10 +204,10 @@
 
 <script lang="ts">
 import { reactive, toRefs, ref } from 'vue';
-import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
 import { ElMessage } from 'element-plus/es';
 import { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask';
-import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
+import { verifiyNumberInteger } from '/@/utils/toolsValidate';
+
 interface dataState {
     title: string;
     pointTitle: string;
@@ -215,12 +245,16 @@
     classGroup: Array<classGroup>;
     quotaList: Array<quota>;
     inspectPointAllList: Array<inspectPointAllState>;
+    regionNameList: Array<inspectPointAllState>;
+    RFIDList: Array<inspectPointAllState>;
 }
 interface inspectPointAllState {
     id: number;
     code: string;
     regionId: number;
     rfidId: number;
+    rfidName: string;
+    region: string;
 }
 interface classGroup {
     depId: number;
@@ -257,6 +291,7 @@
     name: 'inspectTaskDialog',
     setup(props: any, context: any) {
         const inspectTaskFormRef = ref();
+        const inspectPointFormRef = ref();
         const data = reactive<dataState>({
             title: '',
             pointTitle: '',
@@ -305,11 +340,21 @@
                 execClassgroupId: [{ required: true, message: '请选择巡检班组', trigger: 'change' }],
                 execDepId: [{ required: true, message: '请选择巡检部门', trigger: 'blur' }],
                 checkCycle: [{ required: true, message: '请填写巡检周期', trigger: 'blur' }],
+                checkCycleUnit: [{ required: true, message: '请选择巡检周期单位', trigger: 'change' }],
                 noticeTime: [{ required: true, message: '请填写提前通知时间', trigger: 'blur' }],
+                noticeTimeUnit: [{ required: true, message: '请选择提前通知时间单位', trigger: 'change' }],
                 validTime: [{ required: true, message: '请填写有效时间', trigger: 'blur' }],
+                validTimeUnit: [{ required: true, message: '请选择有效时间单位', trigger: 'change' }],
                 firstStartTime: [{ required: true, message: '请选择周期开始时间', trigger: 'change' }]
             },
-            inspectPointFormRules: {},
+            inspectPointFormRules: {
+                pointId: [{ required: true, message: '请选择巡检点', trigger: 'change' }],
+                regionId: [{ required: true, message: '', trigger: 'change' }],
+                rfidId: [{ required: true, message: '', trigger: 'change' }],
+                quotaId: [{ required: true, message: '请选择巡检指标', trigger: 'change' }],
+                quotaUnit: [{ required: true, message: '请填写巡检指标单位', trigger: 'blur' }],
+                dataReportType: [{ required: true, message: '请选择巡检指标单位', trigger: 'change' }]
+            },
             workTypeList: [],
             departmentList: [],
             timeList: [],
@@ -317,6 +362,8 @@
             classGroup: [],
             quotaList: [],
             inspectPointAllList: [],
+            regionNameList: [],
+            RFIDList: [],
             dataReportTypeList: [
                 { id: 1, name: '选择' },
                 { id: 2, name: '填空' },
@@ -365,7 +412,9 @@
             }
         };
 
-        const showInspectTaskDialog = (type: string, value: { id: number; uuid: string }, workTypeList: [], department: [], timeType: [], classGroupList: [], quotaList: [], inspectPointAllList: []) => {
+        const showInspectTaskDialog = (type: string, value: { id: number; uuid: string }, workTypeList: [], department: [], timeType: [], classGroupList: [], quotaList: [], inspectPointAllList: [], regionNameList: [], RFIDList: []) => {
+            data.regionNameList = regionNameList;
+            data.RFIDList = RFIDList;
             data.quotaList = JSON.parse(JSON.stringify(quotaList));
             data.timeList = JSON.parse(JSON.stringify(timeType));
             data.inspectPointAllList = JSON.parse(JSON.stringify(inspectPointAllList));
@@ -404,6 +453,10 @@
                             giveClassGroup();
                             data.inspectTaskForm = JSON.parse(JSON.stringify(res.data.data));
                         } else {
+                            ElMessage({
+                                type: 'warning',
+                                message: res.data.msg
+                            });
                         }
                     })
                     .catch((error) => {});
@@ -416,66 +469,79 @@
                         if (res.data.code === '200') {
                             data.inspectTaskForm = JSON.parse(JSON.stringify(res.data.data));
                         } else {
+                            ElMessage({
+                                type: 'warning',
+                                message: res.data.msg
+                            });
                         }
                     })
                     .catch((error) => {});
             }
         };
 
-        const submitInspectPoint = async () => {
-            if (data.title === '新增巡检任务' && data.pointTitle === '新增巡检点') {
-                if (data.inspectTaskForm.points.length === 0) {
-                    data.inspectPointForm.execSequence = 1;
-                } else {
-                    data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;
-                }
-                data.inspectTaskForm.points.push(data.inspectPointForm);
-                data.inspectPointDialog = false;
-            } else if (data.title === '新增巡检任务' && data.pointTitle === '修改巡检点') {
-                let result = data.inspectTaskForm.points.findIndex((item) => item.id === data.inspectPointForm.id);
-                data.inspectTaskForm.points[result] = data.inspectPointForm;
-                data.inspectPointDialog = false;
-            } else if (data.title === '修改巡检任务' && data.pointTitle === '新增巡检点') {
-                data.inspectPointForm.unitId = data.inspectTaskForm.id;
-                if (data.inspectTaskForm.points.length === 0) {
-                    data.inspectPointForm.execSequence = 1;
-                } else {
-                    data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;
-                }
-                let res = await inspectTaskApi().addChainOfInspectTask(data.inspectPointForm);
-                if (res.data.code === '200') {
-                    ElMessage({
-                        type: 'success',
-                        message: '巡检点新增成功',
-                        duration: 2000
-                    });
-                    data.inspectPointDialog = false;
-                    data.inspectTaskForm.points.push(data.inspectPointForm);
+        const submitInspectPoint = () => {
+            inspectPointFormRef.value.validate(async (valid: Boolean) => {
+                if (valid) {
+                    if (data.title === '新增巡检任务' && data.pointTitle === '新增巡检点') {
+                        if (data.inspectTaskForm.points.length === 0) {
+                            data.inspectPointForm.execSequence = 1;
+                        } else {
+                            data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;
+                        }
+                        data.inspectTaskForm.points.push(data.inspectPointForm);
+                        data.inspectPointDialog = false;
+                    } else if (data.title === '新增巡检任务' && data.pointTitle === '修改巡检点') {
+                        let result = data.inspectTaskForm.points.findIndex((item) => item.execSequence === data.inspectPointForm.execSequence);
+                        data.inspectTaskForm.points[result] = data.inspectPointForm;
+                        data.inspectPointDialog = false;
+                    } else if (data.title === '修改巡检任务' && data.pointTitle === '新增巡检点') {
+                        data.inspectPointForm.unitId = data.inspectTaskForm.id;
+                        if (data.inspectTaskForm.points.length === 0) {
+                            data.inspectPointForm.execSequence = 1;
+                        } else {
+                            data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;
+                        }
+                        let res = await inspectTaskApi().addChainOfInspectTask(data.inspectPointForm);
+                        if (res.data.code === '200') {
+                            ElMessage({
+                                type: 'success',
+                                message: '巡检点新增成功',
+                                duration: 2000
+                            });
+                            data.inspectPointDialog = false;
+                            data.inspectTaskForm.points.push(data.inspectPointForm);
+                        } else {
+                            ElMessage({
+                                type: 'warning',
+                                message: res.data.msg
+                            });
+                        }
+                    } else {
+                        data.inspectPointForm.unitId = data.inspectTaskForm.id;
+                        let res = await inspectTaskApi().modChainOfInspectTask(data.inspectPointForm);
+                        if (res.data.code === '200') {
+                            ElMessage({
+                                type: 'success',
+                                message: '巡检点修改成功',
+                                duration: 2000
+                            });
+                            let result = data.inspectTaskForm.points.findIndex((item) => item.execSequence === data.inspectPointForm.execSequence);
+                            data.inspectTaskForm.points[result] = data.inspectPointForm;
+                            data.inspectPointDialog = false;
+                        } else {
+                            ElMessage({
+                                type: 'warning',
+                                message: res.data.msg
+                            });
+                        }
+                    }
                 } else {
                     ElMessage({
                         type: 'warning',
-                        message: res.data.msg
+                        message: '请完善基本信息'
                     });
                 }
-            } else {
-                data.inspectPointForm.unitId = data.inspectTaskForm.id;
-                let res = await inspectTaskApi().modChainOfInspectTask(data.inspectPointForm);
-                if (res.data.code === '200') {
-                    ElMessage({
-                        type: 'success',
-                        message: '巡检点修改成功',
-                        duration: 2000
-                    });
-                    let result = data.inspectTaskForm.points.findIndex((item) => item.id === data.inspectPointForm.id);
-                    data.inspectTaskForm.points[result] = data.inspectPointForm;
-                    data.inspectPointDialog = false;
-                } else {
-                    ElMessage({
-                        type: 'warning',
-                        message: res.data.msg
-                    });
-                }
-            }
+            });
         };
         const deleteFlow = async (index: number, item: { id: number }) => {
             if (data.pointTitle === '新增巡检点') {
@@ -556,12 +622,24 @@
             });
         };
 
+        const onVerifiyNumberInteger = (val: number, title: string) => {
+            if (title === 'noticeTime') {
+                data.inspectTaskForm.noticeTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));
+            } else if (title === 'checkCycle') {
+                data.inspectTaskForm.checkCycle = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));
+            } else {
+                data.inspectTaskForm.validTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));
+            }
+        };
+
         return {
             ...toRefs(data),
             inspectTaskFormRef,
             deleteFlow,
             giveQuotaUnit,
             giveClassGroup,
+            inspectPointFormRef,
+            onVerifiyNumberInteger,
             submitInspectTask,
             submitInspectPoint,
             giveRegionAndRFID,
@@ -575,7 +653,7 @@
 <style scoped lang="scss">
 $homeNavLengh: 8;
 .home-container {
-    height: calc(100vh - 114px);
+    height: calc(100vh - 144px);
     box-sizing: border-box;
     overflow: hidden;
     .homeCard {

--
Gitblit v1.9.2