lyfO_o
2022-05-09 c6b68c458af980e71c4a331ccd589d45c3652d93
src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue
@@ -12,11 +12,11 @@
            <div class="basic_search">
                <span>巡检任务类型:</span>
                <el-select v-model="listQuery.type">
                    <el-option
                        v-for="item in departmentList"
                   <el-option
                        v-for="item in typeList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
@@ -24,43 +24,43 @@
                <span>巡检任务状态:</span>
                <el-select v-model="listQuery.status">
                    <el-option
                        v-for="item in departmentList"
                        v-for="item in statusList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>巡检任务创建人员:</span>
                <el-select v-model="listQuery.createUid">
                <el-select v-model="listQuery.createUid" filterable clearable>
                    <el-option
                        v-for="item in departmentList"
                        v-for="item in userList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        :value="item.id"
                        :label="item.realname"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>异常通知人员:</span>
                <el-select v-model="listQuery.noticeUid">
                    <el-option
                        v-for="item in departmentList"
                <el-select v-model="listQuery.noticeUid" filterable clearable>
                   <el-option
                        v-for="item in userList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        :value="item.id"
                        :label="item.realname"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>执行巡检人员:</span>
                <el-select v-model="listQuery.execUid">
                <el-select v-model="listQuery.execUid" filterable clearable>
                    <el-option
                        v-for="item in departmentList"
                        v-for="item in userList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        :value="item.id"
                        :label="item.realname"
                    ></el-option>
                </el-select>
            </div>
@@ -114,16 +114,16 @@
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="currentPage"
                :current-page="listQuery.page"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="pageSize"
                :page-size="listQuery.pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            />
            <br>
        </div>
@@ -143,7 +143,7 @@
                        </el-col>
                        <el-col :span="12">
                            <el-form-item label="巡检任务类型" prop="type">
                                <el-select v-model="inspectionTaskForm.type" class="analyseUnit_input">
                                <el-select v-model="inspectionTaskForm.type" class="analyseUnit_input" :disabled="ifShow">
                                    <el-option
                                        v-for="item in typeList"
                                        :key="item.id"
@@ -262,8 +262,8 @@
            <div class="inspectionTask_point">
                <el-tabs class="active" v-model="activeName">
                    <el-tab-pane label="巡检点信息" name="inspectionPoint">
                        <inspection-point @giveToForm="receiveToForm" ref="inspectionPoint"></inspection-point>
                    <el-tab-pane label="检查项信息" name="inspectionPoint">
                        <inspection-point @giveToForm="receiveToForm" ref="inspectionPoint" :title="title" :inspectionTaskForm="inspectionTaskForm"></inspection-point>
                    </el-tab-pane>
                </el-tabs>
            </div>
@@ -319,12 +319,14 @@
        data() {
            return {
                tableKey: 0,
                ifShow:true,
                activeName:'inspectionPoint',
                inspectionTaskData: [],
                departmentList:[],
                userList:[],
                noticeUidList:[],
                execUidList:[],
                statusList:[{name:'任务开启',id:1},{id:2,name:'任务关闭'}],
                intervalSecondsList:[{id:7200,name:'2小时'},{id:21600,name:'6小时'},{id:43200,name:'12小时'},{id:86400,name:'1天'},{id:17280,name:'2天'}],
                noticeSecondsList:[{id:600,name:'10分'},{id:3600,name:'1小时'},{id:7200,name:'2小时'},{id:21600,name:'6小时'},{id:43200,name:'12小时'},{id:86400,name:'1天'}],
                effectSecondsList:[{id:1800,name:'30分'},{id:3600,name:'1小时'},{id:7200,name:'2小时'},{id:21600,name:'6小时'},{id:43200,name:'12小时'},{id:86400,name:'1天'}],
@@ -341,10 +343,14 @@
                execDepartment:'',
                inspectionTaskVisible:false,
                inspectionTaskFormRules:{
                    hazardDep: [{ required: true, message: '责任部门不能为空', trigger: 'change' }],
                    hazardLiablePerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }],
                    hazardCode: [{ required: true, message: '安全风险分析对象编码不能为空', trigger: 'blur' }],
                    riskUnitName: [{ required: true, message: '安全风险分析单元名称不能为空', trigger: 'blur' }],
                    title: [{ required: true, message: '任务名称不能为空', trigger: 'blur' }],
                    type: [{ required: true, message: '检查类型不能为空', trigger: 'change' }],
                    intervalSeconds: [{ required: true, message: '检查频次不能为空', trigger: 'change' }],
                    noticeSeconds: [{ required: true, message: '提前通知时间不能为空', trigger: 'change' }],
                    startTime: [{ required: true, message: '周期开始时间不能为空', trigger: 'change' }],
                    effectSeconds: [{ required: true, message: '任务有效时间不能为空', trigger: 'change' }],
                    noticeUid: [{ required: true, message: '异常通知人员不能为空', trigger: 'change' }],
                    execUid: [{ required: true, message: '执行巡检人员不能为空', trigger: 'change' }],
                },
                inspectionTaskForm:{
                    type:null,
@@ -366,7 +372,10 @@
                    noticeUid: "",
                    startTime: "",
                    status:"",
                    type: ""
                    type: "",
                    page: 1,
                    pageSize: 10,
                },
            }
        },
@@ -380,10 +389,7 @@
                this.listLoading = true
                let res = await getInspectionTask(this.listQuery)
                if(res.data.code === '200'){
                    this.recordTotal = res.data.result.total
                    this.pageSize = res.data.result.size
                    this.pageTotal = computePageCount(res.data.result.total, res.data.result.size)
                    this.currentPage = res.data.result.current
                    this.recordTotal = JSON.parse(res.data.message).total
                    this.inspectionTaskData = res.data.result
                }else if(res.data.code === '300'){
                    this.inspectionTaskData = []
@@ -433,13 +439,15 @@
                }
            },
            showAnalyseUnitForm(value,type){
                debugger
                this.inspectionTaskVisible = true
                this.$nextTick(() =>{
                    this.$refs["inspectionTaskForm"].clearValidate()
                })
                if(type === '新增'){
                    this.ifShow = false
                    this.title = '新建巡检计划设定'
                    this.noticeDepartment = ''
                    this.execDepartment = ''
                    this.inspectionTaskForm = {
                        type:null,
                        createUid: parseInt(Cookies.get('userId')),
@@ -455,55 +463,101 @@
                    }
                    setTimeout(() => {
                        this.$refs.inspectionPoint.inspectionPointData = []
                        this.$refs.inspectionPoint.ifEdit = false
                    });
           }else{
                }else{
                    this.ifShow = true
                    this.title = '编辑巡检计划设定'
                    this.noticeDepartment = this.handleDepartment(JSON.parse(JSON.stringify(value)).noticeUid)
                    this.changeNotice()
                    this.execDepartment = this.handleDepartment(JSON.parse(JSON.stringify(value)).execUid)
                    this.changeExec()
                    this.inspectionTaskForm = JSON.parse(JSON.stringify(value))
                    // this.inspectionTaskForm.execUid = value.execUname
                    // this.inspectionTaskForm.noticeUid = value.noticeUname
                     setTimeout(() => {
                        this.$refs.inspectionPoint.inspectionPointData =  this.inspectionTaskForm.checkContents
                    });
                        this.$refs.inspectionPoint.ifEdit = true
                    });
                }
            },
            handleDepartment(value){
                let department = ''
                for(let i in this.userList){
                    if(this.userList[i].id === value){
                        department = this.userList[i].department
                    }
                }
                department = this.departmentList.find(item => item.department === department)
                return department.department
            },
            submitAnalyseUnit(){
                this.$refs["inspectionTaskForm"].validate((valid) =>{
                    if(valid){
                        if(this.title === '新建巡检计划设定'){
                            addInspectionTask(this.inspectionTaskForm).then((res)=>{
                                if(res.data.code === '200'){
                                    this.inspectionTaskVisible = false
                                    this.getInspectionTaskData()
                                    this.$notify({
                                        type:'success',
                                        duration:2000,
                                        message:'新增成功',
                                        title:'成功'
                                    })
                                }else{
                                    this.$message({
                                        type:'warning',
                                        message:res.data.message
                                    })
                                }
                        if(this.inspectionTaskForm.noticeSeconds >= this.inspectionTaskForm.intervalSeconds){
                            this.$message({
                                type:'warning',
                                 message:'提前通知时间不能大于检查频次'
                            })
                        }else if(this.inspectionTaskForm.intervalSeconds <= this.inspectionTaskForm.effectSeconds){
                                this.$message({
                                type:'warning',
                                 message:'任务持续时间不能大于检查频次'
                            })
                        }else if(this.justifyTime(this.inspectionTaskForm.startTime,this.inspectionTaskForm.noticeSeconds)){
                                this.$message({
                                type:'warning',
                                message:'周期开始时间减去当前时间和提前通知时间要大于等于半小时'
                            })
                        }else{
                            updateInspectionTask(this.inspectionTaskForm).then((res)=>{
                                if(res.data.code === '200'){
                                    this.inspectionTaskVisible = false
                                    this.getInspectionTaskData()
                                    this.$notify({
                                        type:'success',
                                        duration:2000,
                                        title:'成功',
                                        message:'编辑成功'
                                    })
                                }else{
                                    this.$message({
                                        type:'warning',
                                        message:res.data.message
                                    })
                                }
                            })
                            if(this.title === '新建巡检计划设定'){
                                addInspectionTask(this.inspectionTaskForm).then((res)=>{
                                    if(res.data.code === '200'){
                                        this.inspectionTaskVisible = false
                                        this.getInspectionTaskData()
                                        this.$notify({
                                            type:'success',
                                            duration:2000,
                                            message:'新增成功',
                                            title:'成功'
                                        })
                                    }else{
                                        this.$message({
                                            type:'warning',
                                            message:res.data.message
                                        })
                                    }
                                })
                            }else{
                                updateInspectionTask({
                                    effectSeconds: this.inspectionTaskForm.effectSeconds,
                                    execUid: this.inspectionTaskForm.execUid,
                                    intervalSeconds: this.inspectionTaskForm.intervalSeconds,
                                    noticeSeconds: this.inspectionTaskForm.noticeSeconds,
                                    noticeUid: this.inspectionTaskForm.noticeUid,
                                    startTime: this.inspectionTaskForm.startTime,
                                    status: this.inspectionTaskForm.status,
                                    workId: this.inspectionTaskForm.workId
                                    }).then((res)=>{
                                    if(res.data.code === '200'){
                                        this.inspectionTaskVisible = false
                                        this.getInspectionTaskData()
                                        this.$notify({
                                            type:'success',
                                            duration:2000,
                                            title:'成功',
                                            message:'编辑成功'
                                        })
                                    }else{
                                        this.$message({
                                            type:'warning',
                                            message:res.data.message
                                        })
                                    }
                                })
                            }
                        }
                    }else{
                        this.$message({
                            type:'warning',
@@ -512,6 +566,18 @@
                    }
                })
            },
            justifyTime(time,interval) {
                debugger
                let timeStr = new Date(time.replace(/-/g,'/'))
                let date = parseInt(timeStr.getTime()/1000)
                let newTimeStr = new Date()
                let newDate = parseInt(newTimeStr.getTime()/1000)
                if(date - newDate - interval - 1800 >= 0){
                    return false
                }else{
                    return true
                }
            },
            deleteById(val){
                this.$confirm('删除此条信息,是否继续','提示',{
@@ -531,11 +597,11 @@
                })
            },
            receiveToForm(value) {
                debugger
                this.inspectionTaskForm.riskControlMeasureIdList = []
                this.inspectionTaskForm.riskControlMeasureIdList = value.map( item => {
                    return item.id
                })
                // this.inspectionTaskForm.riskControlMeasureIdList = []
                // this.inspectionTaskForm.riskControlMeasureIdList = value.map( item => {
                //     return item.id
                // })
                this.inspectionTaskForm.riskControlMeasureIdList.push({id:value.id})
            },
            refreshHandle(){
                this.getInspectionTaskData()
@@ -545,7 +611,7 @@
                this.getInspectionTaskData()
            },
            handleCurrentChange(val){
                this.listQuery.pageIndex = val
                this.listQuery.page = val
                this.getInspectionTaskData()
            },
        }