| | |
| | | <el-row class="homeCard"> |
| | | <el-col :span="12"> |
| | | <div class="grid-content topInfo"> |
| | | <el-select v-model="searchType" @change="changeSearch"> |
| | | <el-option label="任务名称" value="任务名称" /> |
| | | <el-select v-model="searchType" @change="changeSearch" placeholder="任务名称"> |
| | | <el-option label="巡检任务类型" value="巡检任务类型" /> |
| | | <el-option label="创建人" value="创建人" /> |
| | | <el-option label="巡检人" value="巡检人" /> |
| | |
| | | </el-scrollbar> |
| | | <el-dialog v-model="dialogDetails" title="巡检任务"> |
| | | <el-form :model="details" label-width="120px"> |
| | | <el-form-item label="名称"> |
| | | <el-form-item label="任务名称"> |
| | | <el-input |
| | | v-model="details.name" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="排班类型"> |
| | | <el-form-item label="任务类型"> |
| | | <el-input |
| | | v-model="details.type" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="自定义循环班" v-if="JSON.parse(JSON.stringify(details.type)) == '循环班'"> |
| | | <div> |
| | | <el-form-item label="执行巡检人员"> |
| | | <el-input |
| | | v-model="details.inspector" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="检查频次"> |
| | | <el-input |
| | | v-model="details.inspector" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="检查频次" prop="frequency"> |
| | | <el-input |
| | | v-model="details.frequency" |
| | | readonly |
| | | > |
| | | <template #append> |
| | | <el-input |
| | | v-model="details.unit" |
| | | readonly |
| | | /> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="周期开始时间"> |
| | | <el-input |
| | | v-model="details.startTime" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="周期有效时间"> |
| | | <el-input |
| | | v-model="details.validTime" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="巡检链"> |
| | | <div style="width: 100%;margin-left: -30px"> |
| | | <div v-for="(item,index) in details.shiftSteps" class="stepItem"> |
| | | <div class="stepNum">{{index+1}}</div> |
| | | <div class="stepCard"> |
| | | <el-card class="box-card" shadow="hover"> |
| | | <template #header> |
| | | <div class="card-header"> |
| | | <div>第<span>{{index+1}}</span>班</div> |
| | | <div>{{item.name}}</div> |
| | | </div> |
| | | </template> |
| | | <div class="text item">排班名称:<span>{{item.name}}</span></div> |
| | | <div class="text item">工作天数:<span>{{item.days}}</span></div> |
| | | <div class="text item">休息天数:<span>{{item.rest}}</span></div> |
| | | <div class="text item">工作时段:<span>{{item.timeRange}}</span></div> |
| | | <div> |
| | | <el-table :data="item.inspectorData" style="width: 100%" :default-sort="{ prop: 'sort', order: 'ascending'}" :header-cell-style="{background: '#fafafa',padding: '5px'}"> |
| | | <el-table-column property="sort" sortable label="排序"/> |
| | | <el-table-column property="name" label="巡检点名称"/> |
| | | <el-table-column property="section" label="所属设备区域"/> |
| | | <el-table-column property="rfid" label="关联RFID"/> |
| | | <el-table-column property="norm" label="巡检指标"/> |
| | | <el-table-column property="reference" label="数据参考值"/> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="工作时段" prop="timeRange" v-if="JSON.parse(JSON.stringify(details.type)) == '固定班'"> |
| | | <el-input |
| | | v-model="details.timeRange" |
| | | readonly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> |
| | |
| | | <el-table-column property="rfid" label="关联RFID"/> |
| | | <el-table-column property="norm" label="巡检指标"/> |
| | | <el-table-column property="reference" label="数据参考值"/> |
| | | <el-table-column fixed="right" label="操作" align="center" width="80"> |
| | | <el-table-column fixed="right" label="操作" align="center" width="100"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" :icon="Edit" @click="editInspection(index,scope.$index ,scope.row)">修改</el-button> |
| | | <el-button link type="danger" size="small" :icon="Delete" @click="deleteInspection(index,scope.$index)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogAddInspection" title="新增巡检点" @close="closeAddInspection"> |
| | | <el-form :model="addInspection" label-width="120px" ref="addInspectionRef" :rules="addInspectionRules"> |
| | | <el-form-item label="输入巡检点排序" prop="sort"> |
| | | <el-input-number v-model="addInspection.sort" :min="1" :max="999" placeholder="巡检点排序"/> |
| | | </el-form-item> |
| | | <el-form-item label="选择巡检点" prop="name"> |
| | | <el-select v-model="addInspection.name"> |
| | | <el-option label="73011" value="73011" /> |
| | |
| | | <el-option label="73013" value="73013" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="输入巡检点排序" prop="sort"> |
| | | <el-input-number v-model="addInspection.sort" :min="1" :max="999" placeholder="请输入用于确定该巡检点位置的序号"/> |
| | | <el-form-item label="选择巡检指标" prop="norm"> |
| | | <el-select v-model="addInspection.norm"> |
| | | <el-option label="风机声音" value="风机声音" /> |
| | | <el-option label="设备温度" value="设备温度" /> |
| | | <el-option label="压力" value="压力" /> |
| | | <el-option label="震动" value="震动" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="warning" @click="dialogAddInspection = false" size="default" plain>取消</el-button> |
| | |
| | | }) |
| | | const addInspectionRules = reactive<FormRules>({ |
| | | name:[{required: true, message: '该内容不能为空',trigger:'blur'}], |
| | | norm:[{required: true, message: '该内容不能为空',trigger:'blur'}], |
| | | sort:[{required: true, message: '该内容不能为空',trigger:'blur'}] |
| | | }) |
| | | const dialogDetails = ref(false) |
| | |
| | | if(chosenIndex.value == -1){ |
| | | if(!addRecord.value.shiftSteps || addRecord.value.shiftSteps.length == 0){ |
| | | ElMessage({ |
| | | message: '请先设置自定义排班后再提交', |
| | | message: '请先设置巡检链后再提交', |
| | | type: 'warning', |
| | | }) |
| | | return |
| | | // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 |
| | | }else if(addRecord.value.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length==0)){ |
| | | for(let i =0;i<addRecord.value.shiftSteps.length;i++){ |
| | | if(!addRecord.value.shiftSteps[i].inspectorData||addRecord.value.shiftSteps[i].inspectorData.length==0){ |
| | | ElMessage({ |
| | | message: '请为'+ addRecord.value.shiftSteps[i].name +'设置巡检点', |
| | | type: 'warning', |
| | | }) |
| | | } |
| | | } |
| | | return |
| | | }else{ |
| | | addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') |
| | |
| | | }else{ |
| | | if(addRecord.value.shiftSteps.length == 0){ |
| | | ElMessage({ |
| | | message: '请先设置自定义排班后再提交', |
| | | message: '请先设置巡检链后再提交', |
| | | type: 'warning', |
| | | }) |
| | | return |
| | | // 判断每个区域是否都设置了至少一个巡检点,没有的话提示设置 |
| | | }else if(addRecord.value.shiftSteps.some(i => !i.inspectorData || i.inspectorData.length==0)){ |
| | | for(let i =0;i<addRecord.value.shiftSteps.length;i++){ |
| | | if(!addRecord.value.shiftSteps[i].inspectorData||addRecord.value.shiftSteps[i].inspectorData.length==0){ |
| | | ElMessage({ |
| | | message: '请为'+ addRecord.value.shiftSteps[i].name +'设置巡检点', |
| | | type: 'warning', |
| | | }) |
| | | } |
| | | } |
| | | return |
| | | }else{ |
| | | if(addRecord.value.type == '固定班'){delete addRecord.value.shiftSteps} |
| | | console.log(addRecord.value,'addRecord') |
| | | tableData[chosenIndex.value] = addRecord.value |
| | | } |
| | | } |
| | |
| | | await formEl.validate((valid, fields) => { |
| | | if (valid) { |
| | | if(addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData){ |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.unshift(addInspection.value) |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.sort(compare('sort')) |
| | | if(chosenInspectionIndex.value == -1){ |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.unshift(addInspection.value) |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.sort(compare('sort')) |
| | | }else{ |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData[chosenInspectionIndex.value] = addInspection.value |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.sort(compare('sort')) |
| | | } |
| | | }else{ |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData = [] |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.unshift(addInspection.value) |
| | |
| | | chosenShiftIndex.value = i |
| | | chosenInspectionIndex.value = index |
| | | deleteInspectionDialog.value = true |
| | | console.log(chosenShiftIndex.value,chosenInspectionIndex.value) |
| | | } |
| | | const editInspection =(i,index, row)=>{ |
| | | chosenShiftIndex.value = i |
| | | chosenInspectionIndex.value = index |
| | | dialogAddInspection.value = true |
| | | addInspection.value = JSON.parse(JSON.stringify(row)) |
| | | } |
| | | const conFirmInspectionDelete=()=>{ |
| | | addRecord.value.shiftSteps[chosenShiftIndex.value].inspectorData.splice( chosenInspectionIndex.value,1) |