Your Name
2022-08-22 f12c45e54d27f27886d8bc9ee96624979fa7de2e
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,13 +27,15 @@
                            </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 === 2">
                        <el-form-item label="巡检周期" prop="checkCycle">
                            <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>
@@ -42,9 +44,11 @@
                        <el-form-item label="提前通知时间" prop="noticeTime">
                            <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>
@@ -53,16 +57,18 @@
                        <el-form-item label="有效时间" prop="validTime">
                            <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>
@@ -130,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">
@@ -196,11 +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;
@@ -284,6 +291,7 @@
    name: 'inspectTaskDialog',
    setup(props: any, context: any) {
        const inspectTaskFormRef = ref();
        const inspectPointFormRef = ref();
        const data = reactive<dataState>({
            title: '',
            pointTitle: '',
@@ -332,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: [],
@@ -461,61 +479,69 @@
            }
        };
        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 === '修改巡检点') {
                debugger;
                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);
        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.execSequence === data.inspectPointForm.execSequence);
                    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 === '新增巡检点') {
@@ -612,6 +638,7 @@
            deleteFlow,
            giveQuotaUnit,
            giveClassGroup,
            inspectPointFormRef,
            onVerifiyNumberInteger,
            submitInspectTask,
            submitInspectPoint,