lct
Your Name
2022-08-09 8b7c2fe49917d670eb2a03cecda23ea50961c494
src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
@@ -12,11 +12,7 @@
                  <el-option label="开始时间" value="开始时间" />
               </el-select>
               <el-input v-model="searchContent" v-if="searchType == '任务名称'" placeholder="请输入任务名称"></el-input>
               <el-input
                     v-else-if="searchType == '检查频次'"
                     v-model="searchContent"
                     placeholder="请输入检查频次"
               >
                        <el-input v-else-if="searchType == '检查频次'" v-model="searchContent" placeholder="请输入检查频次">
                  <template #append>
                     <el-select v-model="searchUnit" placeholder="选择单位">
                        <el-option label="分钟" value="分钟" />
@@ -34,14 +30,7 @@
               <el-select v-model="searchContent" v-else-if="searchType == '巡检班组'" placeholder="请选择巡检班组">
                  <el-option v-for="(item,index) in inspectorOptions" :label="item.name" :value="item.value" :key="index"/>
               </el-select>
               <el-date-picker
                     v-model="searchContent"
                     type="date"
                     v-else
                     :placeholder="'请选择' + searchType"
                     size="large"
                     style="margin-right: 20px"
               />
                        <el-date-picker v-model="searchContent" type="date" v-else :placeholder="'请选择' + searchType" size="large" style="margin-right: 20px" />
               <el-button type="primary">查询</el-button>
               <el-button plain>重置</el-button>
            </div>
@@ -56,14 +45,7 @@
               </el-col>
               <el-button type="primary" :icon="Refresh" size="default"/>
            </el-row>
            <el-table
                  ref="multipleTableRef"
                  :data="tableData"
                  style="width: 100%"
                  height="calc(100% - 100px)"
                  :header-cell-style="{background: '#fafafa'}"
                  @selection-change="handleSelectionChange"
            >
                    <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="55" />
               <el-table-column property="name" label="任务名称" width="200"/>
               <el-table-column property="type" label="任务类型"/>
@@ -80,31 +62,13 @@
                  <template #default="scope">
                     <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                     <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
                     <el-switch
                           v-model="scope.row.status"
                           inline-prompt
                           active-text="开"
                           inactive-text="关"
                           active-value="开启"
                           inactive-value="关闭"
                           style="margin: 0 10px"
                     />
                                <el-switch v-model="scope.row.status" inline-prompt active-text="开" inactive-text="关" active-value="开启" inactive-value="关闭" style="margin: 0 10px" />
                     <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
                  </template>
               </el-table-column>
            </el-table>
            <div class="pageBtn">
               <el-pagination
                     v-model:currentPage="currentPage"
                     v-model:page-size="pageSize"
                     :page-sizes="[10, 15]"
                     small=false
                     background
                     layout="total, sizes, prev, pager, next, jumper"
                     :total="100"
                     @size-change="handleSizeChange"
                     @current-change="handleCurrentChange"
               />
                        <el-pagination v-model:currentPage="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
            </div>
         </div>
      </div>
@@ -115,73 +79,46 @@
            <el-row>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="任务名称">
               <el-input
                     v-model="details.name"
                     readonly
               />
                            <el-input v-model="details.name" readonly />
            </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="任务类型">
               <el-input
                     v-model="details.type"
                     readonly
               />
                            <el-input v-model="details.type" readonly />
            </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
               <el-form-item label="巡检部门">
                  <el-input
                        v-model="details.execDepId"
                        readonly
                  />
                            <el-input v-model="details.execDepId" readonly />
               </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
               <el-form-item label="巡检班组">
                  <el-input
                        v-model="details.execClassgroup"
                        readonly
                  />
                            <el-input v-model="details.execClassgroup" readonly />
               </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="检查频次" prop="frequency">
               <el-input
                     v-model="details.frequency"
                     readonly
               >
                            <el-input v-model="details.frequency" readonly>
                  <template #append>
                     <el-input
                           v-model="details.unit"
                           readonly
                     />
                                    <el-input v-model="details.unit" readonly />
                  </template>
               </el-input>
            </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
               <el-form-item label="提前通知时间">
                  <el-input
                        v-model="details.noticeTime"
                        readonly
                  />
                            <el-input v-model="details.noticeTime" readonly />
               </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
               <el-form-item label="任务开始时间">
                  <el-input
                        v-model="details.startTime"
                        readonly
                  />
                            <el-input v-model="details.startTime" readonly />
               </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="周期有效时间">
               <el-input
                     v-model="details.validTime"
                     readonly
               />
                            <el-input v-model="details.validTime" readonly />
            </el-form-item>
            </el-col>
            <el-col :span="24" style="margin-bottom: 20px">
@@ -196,11 +133,21 @@
                                 <div>{{item.pointId}}</div>
                              </div>
                           </template>
                           <div class="text item">所属设备区域:<span>{{item.regionUuid}}</span></div>
                           <div class="text item">关联RFID:<span>{{item.rfidId}}</span></div>
                           <div class="text item">巡检指标:<span>{{item.quotaId}}</span></div>
                           <div class="text item">数据填报类型:<span>{{item.dataReportType}}</span></div>
                           <div class="text item">数据参考值:<span>{{item.firstReferenceValue?item.firstReferenceValue:(item.secondReferenceValue?item.secondReferenceValue:item.thirdReferenceValue)}}</span></div>
                                            <div class="text item">
                                                所属设备区域:<span>{{ item.regionUuid }}</span>
                                            </div>
                                            <div class="text item">
                                                关联RFID:<span>{{ item.rfidId }}</span>
                                            </div>
                                            <div class="text item">
                                                巡检指标:<span>{{ item.quotaId }}</span>
                                            </div>
                                            <div class="text item">
                                                数据填报类型:<span>{{ item.dataReportType }}</span>
                                            </div>
                                            <div class="text item">
                                                数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span>
                                            </div>
                        </el-card>
                     </div>
                  </div>
@@ -219,10 +166,7 @@
            <el-row>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="任务名称" prop="name">
               <el-input
                     v-model="addRecord.name"
               >
               </el-input>
                            <el-input v-model="addRecord.name"> </el-input>
            </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
@@ -252,10 +196,7 @@
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="检查频次" prop="frequency">
            <el-input
               v-model="addRecord.frequency"
               placeholder="请输入检查频次"
            >
                            <el-input v-model="addRecord.frequency" placeholder="请输入检查频次">
               <template #append>
                  <el-select v-model="addRecord.unit" placeholder="选择单位">
                     <el-option label="分钟" value="分钟" />
@@ -280,11 +221,7 @@
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
            <el-form-item label="周期开始时间" prop="startTime">
               <el-date-picker
                     v-model="addRecord.startTime"
                     type="datetime"
                     format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
               />
                            <el-date-picker v-model="addRecord.startTime" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" />
            </el-form-item>
            </el-col>
            <el-col :span="12" style="margin-bottom: 20px">
@@ -314,11 +251,21 @@
                                 <div>{{item.pointId}}</div>
                              </div>
                           </template>
                           <div class="text item">所属设备区域:<span>{{item.regionUuid}}</span></div>
                           <div class="text item">关联RFID:<span>{{item.rfidId}}</span></div>
                           <div class="text item">巡检指标:<span>{{item.quotaId}}</span></div>
                           <div class="text item">数据填报类型:<span>{{item.dataReportType}}</span></div>
                           <div class="text item">数据参考值:<span>{{item.firstReferenceValue?item.firstReferenceValue:(item.secondReferenceValue?item.secondReferenceValue:item.thirdReferenceValue)}}</span></div>
                                            <div class="text item">
                                                所属设备区域:<span>{{ item.regionUuid }}</span>
                                            </div>
                                            <div class="text item">
                                                关联RFID:<span>{{ item.rfidId }}</span>
                                            </div>
                                            <div class="text item">
                                                巡检指标:<span>{{ item.quotaId }}</span>
                                            </div>
                                            <div class="text item">
                                                数据填报类型:<span>{{ item.dataReportType }}</span>
                                            </div>
                                            <div class="text item">
                                                数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span>
                                            </div>
                        </el-card>
                     </div>
                     <div>
@@ -364,16 +311,10 @@
               </el-select>
            </el-form-item>
            <el-form-item label="所属设备区域">
               <el-input
                     v-model="addShift.regionId"
                     readonly
               />
                    <el-input v-model="addShift.regionId" readonly />
            </el-form-item>
            <el-form-item label="关联RFID">
               <el-input
                     v-model="addShift.rfidId"
                     readonly
               />
                    <el-input v-model="addShift.rfidId" readonly />
            </el-form-item>
            <el-form-item label="选择巡检指标" prop="quotaId">
               <el-input v-model="addShift.quotaId" placeholder="Please input">
@@ -394,11 +335,7 @@
               </el-select>
            </el-form-item>
            <el-form-item v-if="addShift.dataReportType == '填空' || addShift.dataReportType == '选择并填空'" label="数据参考值">
               <el-input
                     v-model="addShift.secondReferenceValue"
                     type="number"
                     placeholder="请根据需求选择前方符号后再填写参考值,非必填"
               >
                    <el-input v-model="addShift.secondReferenceValue" type="number" placeholder="请根据需求选择前方符号后再填写参考值,非必填">
                  <template #prepend>
                     <el-select v-model="addShift.secondReferenceSign" placeholder="Select" style="width: 115px">
                        <el-option label=">" value=">" />
@@ -408,11 +345,7 @@
               </el-input>
            </el-form-item>
            <el-form-item v-if="addShift.dataReportType == '填空' || addShift.dataReportType == '选择并填空'" label="">
               <el-input
                     v-model="addShift.thirdReferenceValue"
                     type="number"
                     placeholder="请根据需求选择前方符号后再填写参考值,非必填"
               >
                    <el-input v-model="addShift.thirdReferenceValue" type="number" placeholder="请根据需求选择前方符号后再填写参考值,非必填">
                  <template #prepend>
                     <el-select v-model="addShift.thirdReferenceSign" placeholder="Select" style="width: 115px">
                        <el-option label="<" value="<"/>
@@ -434,29 +367,27 @@
   import { toRefs, reactive, ref } from 'vue';
   import { storeToRefs } from 'pinia';
   import { initBackEndControlRoutes } from '/@/router/backEnd';
   import {useUserInfo} from "/@/stores/userInfo";
import { useUserInfo } from '/@/stores/userInfo';
   import { Session } from '/@/utils/storage';
   import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
   import { ElTable, ElMessage } from 'element-plus'
   import { FormInstance, FormRules } from 'element-plus'
import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
import { ElTable, ElMessage } from 'element-plus';
import { FormInstance, FormRules } from 'element-plus';
   let global: any = {
      homeChartOne: null,
      homeChartTwo: null,
      homeCharThree: null,
      dispose: [null, '', undefined],
    dispose: [null, '', undefined]
   };
   interface stateType {
      homeOne: Array <type>
    homeOne: Array<type>;
   }
   interface type {
   }
interface type {}
   export default {
      name: 'workingHoursSet',
    name: 'index',
      components: {},
      setup() {
         const userInfo = useUserInfo()
        const userInfo = useUserInfo();
         const {userInfos} = storeToRefs(userInfo);
         const state = reactive({
@@ -504,74 +435,7 @@
            deleteShiftDialog: false,
            deleteInspectionDialog: false,
            dialogAddShift: false,
            tableData: [
               {
                  name: '甲醛装置()列现场岗位巡检',
                  type: '周期检查',
                  creater: '管理员A',
                  execClassgroup: '张三',
                  frequency: 2,
                  unit: '小时',
                  noticeTime: '2022-07-02 13:01:37',
                  startTime: '2022-07-02 13:01:37',
                  validTime: '30分钟',
                  createTime: '2022-07-02 12:03:47',
                  chainLength: 20,
                  status: '开启',
                  shiftSteps: [
                     {
                        pointId: 73011,
                        regionUuid: '风机系统',
                        rfidId: 21054,
                        quotaId: '压力',
                        dataReportType: '选择'
                     },
                     {
                        name: 'A场所',
                        inspectorData: [
                           {
                              sort: 1,
                              name: '73021',
                              section: '风机系统',
                              rfid: '风机系统1标签',
                              norm: '风机声音',
                              reference: '10<正常<50'
                           },
                           {
                              sort: 2,
                              name: '73022',
                              section: '风机系统',
                              rfid: '风机系统2标签',
                              norm: '设备温度',
                              reference: '20<正常<50'
                           },
                           {
                              sort: 3,
                              name: '73023',
                              section: '风机系统',
                              rfid: '风机系统3标签',
                              norm: '风机震动',
                              reference: '30<正常<50'
                           }
                        ]
                     }
                  ]
               },
               {
                  name: 'A车间日常巡检',
                  type: '日常检查',
                  creater: '管理员B',
                  execClassgroup: '李四',
                  frequency: 4,
                  unit: '小时',
                  noticeTime: '2022-07-02 13:01:37',
                  startTime: '2022-07-02 12:45:37',
                  validTime: '30分钟',
                  createTime: '2022-07-02 08:15:41',
                  chainLength: 15,
                  status: '开启'
               }
            ],
            tableData: [],
            addRecord: {
               name: '',
               type: '',
@@ -591,19 +455,22 @@
               thirdReferenceSign: '<'
            },
            details: {}
         })
        });
        //获取巡检任务数据
        const getInspectionTask = () => {};
         // 顶部筛选搜索
         const changeSearch = () => {
            state.searchContent = ''
         }
            state.searchContent = '';
        };
         const handleSizeChange = (val: number) => {
            console.log(`${val} items per page`)
         }
            console.log(`${val} items per page`);
        };
         const handleCurrentChange = (val: number) => {
            console.log(`current page: ${val}`)
         }
            console.log(`current page: ${val}`);
        };
         // 时间格式化
         const timeForm = {
@@ -614,14 +481,14 @@
            hour: '2-digit',
            minute: '2-digit',
            second: '2-digit'
         }
        };
         const handleChange = (value) => {
            state.addRecord.content = []
            console.log(JSON.parse(JSON.stringify(value)))
         }
         const addRef = ref<FormInstance>()
         const addShiftRef = ref<FormInstance>()
         const addInspectionRef = ref<FormInstance>()
            state.addRecord.content = [];
            console.log(JSON.parse(JSON.stringify(value)));
        };
        const addRef = ref<FormInstance>();
        const addShiftRef = ref<FormInstance>();
        const addInspectionRef = ref<FormInstance>();
         // 表单校验
         const addRules = reactive<FormRules>({
@@ -633,90 +500,89 @@
            noticeTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
            startTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
            validTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
         })
        });
         const addShiftRules = reactive<FormRules>({
            pointId: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
            quotaId: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
            dataReportType: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
            firstReferenceValue: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
         })
        });
         // 查看记录
         const viewRecord = (row) => {
            state.details = JSON.parse(JSON.stringify(row))
            state.dialogDetails = true
         }
            state.details = JSON.parse(JSON.stringify(row));
            state.dialogDetails = true;
        };
         // 删除记录
         const deleteRecord = (index) => {
            state.chosenIndex = index
            state.deleteDialog = true
         }
            state.chosenIndex = index;
            state.deleteDialog = true;
        };
         const conFirmDelete = () => {
            state.tableData.splice(state.chosenIndex, 1)
            state.deleteDialog = false
         }
            state.tableData.splice(state.chosenIndex, 1);
            state.deleteDialog = false;
        };
         // 修改添加记录
         const editRecord = (index, row) => {
            state.chosenIndex = index
            state.dialogAddRecord = true
            state.addRecord = JSON.parse(JSON.stringify(row))
         }
            state.chosenIndex = index;
            state.dialogAddRecord = true;
            state.addRecord = JSON.parse(JSON.stringify(row));
        };
         const confirmAddRecord = async (formEl: FormInstance | undefined) => {
            if (!formEl) return
            if (!formEl) return;
            await formEl.validate((valid, fields) => {
               if (valid) {
                  if (state.chosenIndex == null) {
                     if (!state.addRecord.shiftSteps || state.addRecord.shiftSteps.length == 0) {
                        ElMessage({
                           message: '请先设置巡检链后再提交',
                           type: 'warning',
                        })
                        return
                                type: 'warning'
                            });
                            return;
                     } else {
                        state.addRecord.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-')
                        state.addRecord.chainLength = state.addRecord.shiftSteps.length
                        state.addRecord.status = '开启'
                        state.tableData.unshift(state.addRecord)
                            state.addRecord.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-');
                            state.addRecord.chainLength = state.addRecord.shiftSteps.length;
                            state.addRecord.status = '开启';
                            state.tableData.unshift(state.addRecord);
                     }
                  } else {
                     if (state.addRecord.shiftSteps.length == 0) {
                        ElMessage({
                           message: '请先设置巡检链后再提交',
                           type: 'warning',
                        })
                        return
                                type: 'warning'
                            });
                            return;
                     } else {
                        state.tableData[state.chosenIndex] = state.addRecord
                            state.tableData[state.chosenIndex] = state.addRecord;
                     }
                  }
                  state.dialogAddRecord = false
                    state.dialogAddRecord = false;
               } else {
                  console.log('error submit!', fields)
                    console.log('error submit!', fields);
               }
            })
         }
            });
        };
         // 添加弹窗打开前预操作
         const openAdd = () => {
            state.addRecord.unit = '小时'
         }
            state.addRecord.unit = '小时';
        };
         // 弹窗关闭后判断数据初始化
         const closeAdd = () => {
            state.addRecord = {}
            state.chosenIndex = null
            state.addShift = {}
            state.chosenShiftIndex = null
         }
            state.addRecord = {};
            state.chosenIndex = null;
            state.addShift = {};
            state.chosenShiftIndex = null;
        };
         const indexClear = () => {
            state.chosenIndex = null
         }
            state.chosenIndex = null;
        };
         const indexShiftClear = () => {
            state.chosenShiftIndex = null
         }
            state.chosenShiftIndex = null;
        };
         // 排序
         // function compare(key) {
@@ -735,48 +601,43 @@
         // 编辑巡检点
         const editFlow = (index) =>{
            state.chosenShiftIndex = index
            state.addShift = JSON.parse(JSON.stringify(state.addRecord.shiftSteps[index]))
            state.dialogAddShift = true
         }
            state.chosenShiftIndex = index;
            state.addShift = JSON.parse(JSON.stringify(state.addRecord.shiftSteps[index]));
            state.dialogAddShift = true;
        };
         // 删除巡检点
         const deleteFlow = (index) => {
            state.deleteShiftDialog = true
            state.chosenShiftIndex = index
         }
            state.deleteShiftDialog = true;
            state.chosenShiftIndex = index;
        };
         const conFirmShiftDelete = () => {
            state.addRecord.shiftSteps.splice(state.chosenShiftIndex, 1)
            state.deleteShiftDialog = false
         }
            state.addRecord.shiftSteps.splice(state.chosenShiftIndex, 1);
            state.deleteShiftDialog = false;
        };
         // 增加修改巡检点
         const confirmAddShift = async (formEl: FormInstance | undefined) => {
            if (!formEl) return
            if (!formEl) return;
            await formEl.validate((valid, fields) => {
               if (valid) {
                  if(state.chosenShiftIndex == null){
                     if(!state.addRecord.shiftSteps){state.addRecord.shiftSteps = []}
                     state.addRecord.shiftSteps.push(state.addShift)
                        if (!state.addRecord.shiftSteps) {
                            state.addRecord.shiftSteps = [];
                        }
                        state.addRecord.shiftSteps.push(state.addShift);
                  }else{
                     state.addRecord.shiftSteps[state.chosenShiftIndex] = state.addShift
                        state.addRecord.shiftSteps[state.chosenShiftIndex] = state.addShift;
                  }
                  state.dialogAddShift = false
                    state.dialogAddShift = false;
               } else {
                  console.log('error submit!', fields)
                    console.log('error submit!', fields);
               }
            })
         }
            });
        };
         const closeAddShift = () => {
            state.addShift = {}
            state.chosenShiftIndex = null
         }
         // 折线图
         const renderMenu = async (value: string) => {
            Session.set('projectId', value)
            userInfos.value.projectId = value
            await initBackEndControlRoutes();
            state.addShift = {};
            state.chosenShiftIndex = null;
         };
         return {
@@ -808,11 +669,10 @@
            deleteFlow,
            indexClear,
            indexShiftClear,
            renderMenu,
            ...toRefs(state)
        };
         }
      }
   }
};
</script>
<style scoped lang="scss">
@@ -918,7 +778,7 @@
         .box-card {
            width: 100%;
            &:deep(.el-card__header){
               padding: 10px 15px
                padding: 10px 15px;
            }
            .card-header {
               width: 100%;
@@ -934,11 +794,11 @@
         }
      }
      &:hover .card-header{
         color: #0098F5;
        color: #0098f5;
      }
      &:hover .stepNum{
         border: 2px solid #0098F5;
         color: #0098F5;
        border: 2px solid #0098f5;
        color: #0098f5;
      }
   }
   .el-input{