Admin
2022-07-23 61c9a9b2d21d64c1e2bc910a2f9e1ac0c017bddd
src/views/IntelligentXjSys/inspectionTaskManagement/inspectionTask/index.vue
@@ -4,8 +4,7 @@
      <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="巡检人" />
@@ -111,43 +110,80 @@
      </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>
@@ -237,8 +273,9 @@
                                 <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>
@@ -298,6 +335,9 @@
      </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" />
@@ -305,8 +345,13 @@
                  <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>
@@ -515,6 +560,7 @@
         })
         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)
@@ -547,9 +593,20 @@
                  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,'-')
@@ -560,13 +617,22 @@
                  }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
                     }
                  }
@@ -650,8 +716,13 @@
            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)
@@ -667,7 +738,12 @@
            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)