From fe2617a36f52c16f83e7d3cb19d911bb91a3b79f Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期一, 13 六月 2022 09:00:28 +0800
Subject: [PATCH] 删除固定菜单

---
 src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue |  399 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 268 insertions(+), 131 deletions(-)

diff --git a/src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue b/src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue
index 748b8be..3bbd25f 100644
--- a/src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue
+++ b/src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue
@@ -12,55 +12,55 @@
             <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>
             <div class="basic_search">
                 <span>巡检任务状态:</span>
-                <el-select v-model="listQuery.status">
+                <el-select v-model="listQuery.status" clearable>
                     <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"
-                        :key="item.id"
-                        :value="item.department"
-                        :label="item.department"
-                    ></el-option>
-                </el-select>
-            </div>
+<!--            <div class="basic_search">-->
+<!--                <span>异常通知人员:</span>-->
+<!--                <el-select v-model="listQuery.noticeUid" filterable clearable>-->
+<!--                   <el-option-->
+<!--                        v-for="item in userList"-->
+<!--                        :key="item.id"-->
+<!--                        :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>
@@ -96,27 +96,38 @@
                 </el-table-column>
                 <el-table-column label="任务开始时间" prop="startTime" align="center">
                 </el-table-column>
-                <el-table-column label="异常通知人" prop="noticeUname" align="center">
-                </el-table-column>
+<!--                <el-table-column label="异常通知人" prop="noticeUname" align="center">-->
+<!--                </el-table-column>-->
                 <el-table-column label="巡检人" prop="execUname" align="center">
                 </el-table-column>
                 <el-table-column label="创建人" prop="createUname" align="center">
                 </el-table-column>
                 <el-table-column label="创建时间" prop="createTime" align="center">
                 </el-table-column>
+                <el-table-column label="状态" prop="createTime" align="center">
+                    <template slot-scope="scope">
+                        <div v-for="item in statusList">
+                            <div v-show="scope.row.status === item.id">
+                                <el-tag :type="scope.row.status === 1 ? 'primary' : (scope.row.status === 2 ? 'warning' : (scope.row.status === 3 ? 'danger' : 'info'))">{{item.name}}</el-tag>
+                            </div>
+                        </div>
+                    </template>
+                </el-table-column>
                 <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                     <template slot-scope="scope">
                         <el-button type="text" @click="showAnalyseUnitForm(scope.row,'编辑')">编辑</el-button>
                         <el-button type="text" style="color: red" @click="deleteById(scope.row)">删除</el-button>
+                        <el-button type="text" @click="openTask(scope.row,'编辑')">开启</el-button>
+                        <el-button type="text" style="color: red" @click="closeTask(scope.row)">关闭</el-button>
                     </template>
                 </el-table-column>
             </el-table>
             <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
@@ -143,7 +154,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"
@@ -202,32 +213,32 @@
                             </el-form-item>
                         </el-col>
                     </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="异常通知部门" prop="noticeDepartment">
-                                <el-select v-model="noticeDepartment" class="analyseUnit_input" filterable clearable @change="changeNotice">
-                                    <el-option
-                                        v-for="item in departmentList"
-                                        :key="item.id"
-                                        :value="item.department"
-                                        :label="item.department"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                        <el-form-item label="异常通知人员" prop="noticeUid">
-                            <el-select v-model="inspectionTaskForm.noticeUid" filterable clearable class="analyseUnit_input">
-                                <el-option
-                                    v-for="item in noticeUidList"
-                                    :key="item.id"
-                                    :value="item.id"
-                                    :label="item.realname"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
+<!--                    <el-row>-->
+<!--                        <el-col :span="12">-->
+<!--                            <el-form-item label="异常通知部门" prop="noticeDepartment">-->
+<!--                                <el-select v-model="noticeDepartment" class="analyseUnit_input" filterable clearable @change="changeNotice">-->
+<!--                                    <el-option-->
+<!--                                        v-for="item in departmentList"-->
+<!--                                        :key="item.id"-->
+<!--                                        :value="item.department"-->
+<!--                                        :label="item.department"-->
+<!--                                    ></el-option>-->
+<!--                                </el-select>-->
+<!--                            </el-form-item>-->
+<!--                        </el-col>-->
+<!--                        <el-col :span="12">-->
+<!--                        <el-form-item label="异常通知人员" prop="noticeUid">-->
+<!--                            <el-select v-model="inspectionTaskForm.noticeUid" filterable clearable class="analyseUnit_input">-->
+<!--                                <el-option-->
+<!--                                    v-for="item in noticeUidList"-->
+<!--                                    :key="item.id"-->
+<!--                                    :value="item.id"-->
+<!--                                    :label="item.realname"-->
+<!--                                ></el-option>-->
+<!--                            </el-select>-->
+<!--                        </el-form-item>-->
+<!--                    </el-col>-->
+<!--                    </el-row>-->
                     <el-row>
                         <el-col :span="12">
                             <el-form-item label="执行巡检部门" prop="execDepartment">
@@ -262,8 +273,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>
@@ -281,7 +292,12 @@
     import { mapGetters } from 'vuex'
     import { computePageCount } from '@/utils'
     import inspectionPoint from './components/inpectionPoint'
-    import { getInspectionTask , addInspectionTask, updateInspectionTask} from "../../../../api/inspectionTask";
+    import {
+        getInspectionTask,
+        addInspectionTask,
+        updateInspectionTask,
+        deleteInspectionTask, closeInspectionTask
+    } from "../../../../api/inspectionTask";
     import {getAllDepartment, getDepartmentList} from "../../../../api/departmentManage";
     import {safetyInspectionItemName} from "../../../../api/safetySelfInspection";
     export default {
@@ -319,13 +335,15 @@
         data() {
             return {
                 tableKey: 0,
+                ifShow:true,
                 activeName:'inspectionPoint',
                 inspectionTaskData: [],
                 departmentList:[],
                 userList:[],
-                noticeUidList:[],
+                // noticeUidList:[],
                 execUidList:[],
-                intervalSecondsList:[{id:7200,name:'2小时'},{id:21600,name:'6小时'},{id:43200,name:'12小时'},{id:86400,name:'1天'},{id:17280,name:'2天'}],
+                statusList:[{name:'任务开启',id:1},{id:2,name:'任务关闭'},{id:3,name:'删除'},{id:4,name:'过期'}],
+                intervalSecondsList:[{id:3600,name:'1小时'},{id:7200,name:'2小时'},{id:21600,name:'6小时'},{id:28800,name:'8小时'},{id:43200,name:'12小时'},{id:86400,name:'1天'},{id:17280,name:'2天'},{id:604800,name:'每周'},{id:2592000,name:'每月'},{id:7862400,name:'每季度'}],
                 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天'}],
                 typeList:[{id:1,name:'日常检查'},{id:2,name:'周期检查'}],
@@ -337,14 +355,18 @@
                 title:'',
                 company:'',
                 code:'',
-                noticeDepartment:'',
+                // noticeDepartment:'',
                 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,
@@ -353,7 +375,7 @@
                     execUid: null,
                     intervalSeconds: null,
                     noticeSeconds: null,
-                    noticeUid: null,
+                    // noticeUid: null,
                     title:'',
                     riskControlMeasureIdList: [
                     ],
@@ -363,13 +385,12 @@
                     createUid: "",
                     endTime: "",
                     execUid: "",
-                    noticeUid: "",
                     startTime: "",
                     status:"",
                     type: "",
-                    page: 10,
-                    pageSize: 1,
- 
+                    page: 1,
+                    pageSize: 10,
+
                 },
             }
         },
@@ -383,10 +404,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 = []
@@ -410,13 +428,13 @@
                     })
                 }
             },
-            changeNotice(){
-                if(this.noticeDepartment === '') {
-                    this.noticeUidList = []
-                    this.inspectionTaskForm.noticeUid = ''
-                }
-                this.noticeUidList = this.userList.filter( item => item.department === this.noticeDepartment)
-            },
+            // changeNotice(){
+            //     if(this.noticeDepartment === '') {
+            //         this.noticeUidList = []
+            //         this.inspectionTaskForm.noticeUid = ''
+            //     }
+            //     this.noticeUidList = this.userList.filter( item => item.department === this.noticeDepartment)
+            // },
             changeExec(){
                 if(this.execDepartment === '') {
                     this.execUidList = []
@@ -436,13 +454,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')),
@@ -450,7 +470,7 @@
                         execUid: null,
                         intervalSeconds: null,
                         noticeSeconds: null,
-                        noticeUid: null,
+                        // noticeUid: null,
                         title:'',
                         riskControlMeasureIdList: [
                         ],
@@ -458,55 +478,102 @@
                     }
                     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.execUid
+                    // 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,
+                                    title: this.inspectionTaskForm.title
+                                    }).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',
@@ -516,29 +583,99 @@
                 })
 
             },
+            justifyTime(time,interval) {
+                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
+                }
+            },
+
+            openTask(val,type){
+                if(val.status !== 2){
+                    this.$message({
+                        type:'warning',
+                        message:'当前状态不可开启'
+                    })
+                    return
+                }
+                this.showAnalyseUnitForm(val,type)
+                this.inspectionTaskForm.status = 1
+            },
+
+            closeTask(val){
+                if(val.status !== 1){
+                    this.$message({
+                        type:'warning',
+                        message:'当前状态不可关闭'
+                    })
+                    return
+                }
+                this.$confirm('关闭此条任务,是否继续','提示',{
+                    confirmButtonText:'确定',
+                    cancelButtonText:'取消',
+                    type:'warning',
+                }).then(()=> {
+                    closeInspectionTask(val.workId).then( (res)=>{
+                        if(res.data.code === '200'){
+                            this.getInspectionTaskData()
+                            this.$notify({
+                                title:'成功',
+                                message:'关闭成功',
+                                type:'success',
+                                duration:2000,
+                            })
+                        }else{
+                            this.$message({
+                                type:'warning',
+                                message:res.data.message
+                            })
+                        }
+                    })
+                })
+            },
+
             deleteById(val){
+                if(val.status !== 2){
+                    this.$message({
+                        type:'warning',
+                        message:'当前状态不可删除'
+                    })
+                    return
+                }
                 this.$confirm('删除此条信息,是否继续','提示',{
                     confirmButtonText:'确定',
                     cancelButtonText:'取消',
                     type:'warning',
                 }).then(()=> {
-                    deleteAnalyseUnit({id:val.id}).then( ()=>{
-                        this.getInspectionTaskData()
-                        this.$notify({
-                            title:'成功',
-                            message:'删除成功',
-                            type:'success',
-                            duration:2000,
-                        })
+                    deleteInspectionTask(val.workId).then( (res)=>{
+                        if(res.data.code === '200'){
+                            this.getInspectionTaskData()
+                            this.$notify({
+                                title:'成功',
+                                message:'删除成功',
+                                type:'success',
+                                duration:2000,
+                            })
+                        }else{
+                            this.$message({
+                                type:'warning',
+                                message:res.data.message
+                            })
+                        }
                     })
                 })
             },
             receiveToForm(value) {
-                debugger
                 this.inspectionTaskForm.riskControlMeasureIdList = []
                 this.inspectionTaskForm.riskControlMeasureIdList = value.map( item => {
                     return item.id
                 })
+                // this.inspectionTaskForm.riskControlMeasureIdList.push({id:value.id})
             },
             refreshHandle(){
                 this.getInspectionTaskData()
@@ -548,7 +685,7 @@
                 this.getInspectionTaskData()
             },
             handleCurrentChange(val){
-                this.listQuery.pageIndex = val
+                this.listQuery.page = val
                 this.getInspectionTaskData()
             },
         }

--
Gitblit v1.9.2