| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-if="userPower!=0&&!isNoAlarm"> |
| | | <div class="subBtn" @click="startHandle" v-if="alarmInfo.status==1">开始处理</div> |
| | | <div class="card" v-if="alarmInfo.status==2"> |
| | | <div class="commonTitle cardTitle"> |
| | | 订单状态: |
| | | </div> |
| | | <van-steps :active="stepsActive"> |
| | | <van-step>处理中</van-step> |
| | | <van-step>待审核</van-step> |
| | | <van-step>已完成</van-step> |
| | | </van-steps> |
| | | <!-- 如果是处理中状态 --> |
| | | <div class="card" v-if="alarmInfo.status==2||alarmInfo.status==3"> |
| | | <div class="commonTitle cardTitle"> |
| | | 订单状态: |
| | | </div> |
| | | <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2&&stepsActive==0">继续处理</div> |
| | | <div class="card" v-else-if="alarmInfo.status==2&&stepsActive==1||alarmInfo.status==2&&stepsActive==2"> |
| | | <div class="commonTitle cardTitle"> |
| | | 告警处理: |
| | | <van-steps :active="stepsActive"> |
| | | <van-step>处理中</van-step> |
| | | <van-step>待审核</van-step> |
| | | <van-step>已完成</van-step> |
| | | </van-steps> |
| | | </div> |
| | | <!-- 如果是进入审核状态 --> |
| | | <div class="card" |
| | | v-if="alarmInfo.status==2&&stepsActive==1||alarmInfo.status==2&&stepsActive==2||alarmInfo.status==3"> |
| | | <div class="commonTitle cardTitle"> |
| | | 告警处理: |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 问题描述: |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 问题描述: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.description}} |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.description}} |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理前照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" |
| | | v-if="handleInfo.imageBefore&&handleInfo.imageBefore.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageBefore.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageBefore.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理前照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" |
| | | v-if="handleInfo.imageBefore&&handleInfo.imageBefore.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageBefore.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageBefore.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理方法: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workWay}} |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理方法: |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理后照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" |
| | | v-if="handleInfo.imageAfter&&handleInfo.imageAfter.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageAfter.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageAfter.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workWay}} |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理后照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" v-if="handleInfo.imageAfter&&handleInfo.imageAfter.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageAfter.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageAfter.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 意见建议: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workSuggest}} |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 意见建议: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workSuggest}} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 如果是维护员并且有实时告警 --> |
| | | <div v-if="userPower!=0&&!isNoAlarm"> |
| | | <div class="subBtn" @click="startHandle" v-if="alarmInfo.status==1">开始处理</div> |
| | | <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2&&stepsActive==0">继续处理</div> |
| | | </div> |
| | | <!-- 如果是维护员并且实时告警已自动消除 --> |
| | | <div class="subBtn" @click="completeAlarm" v-else-if="userPower!=0&&isNoAlarm">确认告警自动消除</div> |
| | | <div class="" v-else-if="userPower==0&&alarmInfo.status==0"> |
| | | <!-- 如果是管理员未派发 --> |
| | | <div v-if="userPower==0&&alarmInfo.status==0"> |
| | | <div class="card"> |
| | | <div class="commonTitle cardTitle"> |
| | | 指派人员: |
| | |
| | | </div> |
| | | <div class="subBtn" @click="toAssign">确认指派</div> |
| | | </div> |
| | | <!-- 如果是管理员待审核 --> |
| | | <div v-if="userPower==0&&alarmInfo.status==2&&stepsActive==1"> |
| | | <div class="card"> |
| | | <van-field v-model="handleInfo.note" rows="2" autosize label="审核意见" type="textarea" placeholder="请输入审核意见…" |
| | | show-word-limit /> |
| | | </div> |
| | | <div class="btnCon"> |
| | | <div class="subBtn" @click="suggest(3)">通过</div> |
| | | <div class="subBtn" @click="suggest(-1)">不通过</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <van-image-preview v-model="showImgPreview" :images="ImgPreviewList"> |
| | | </van-image-preview> |
| | |
| | | updateWorkAlarm, |
| | | searchStatusById, |
| | | dispatchTask, |
| | | updateUserWork, |
| | | } from '@/assets/js/api' |
| | | import { |
| | | mapState, |
| | |
| | | }, |
| | | mounted() { |
| | | this.alarmInfo = JSON.parse(this.$route.query.alarmData); |
| | | console.log(this.alarmInfo) |
| | | let assignUser = sessionStorage.getItem('assignUser') |
| | | if (assignUser) { |
| | | this.assignUser = JSON.parse(assignUser) |
| | |
| | | path: '/alarmHandle', |
| | | query: { |
| | | id: this.alarmInfo.id, |
| | | type: type |
| | | type: type, |
| | | managerId: this.alarmInfo.managerId |
| | | } |
| | | }) |
| | | }, |
| | |
| | | if (resData.data.dispatchTime) { |
| | | this.alarmInfo.dispatchTime = resData.data.dispatchTime; |
| | | } |
| | | if (resData.data.userWorkList.length > 0) { |
| | | this.handleInfo = resData.data.userWorkList[0]; |
| | | this.stepsActive = this.handleInfo.checkStatus |
| | | if (resData.data.managerId) { |
| | | this.alarmInfo.managerId = resData.data.managerId; |
| | | } |
| | | if (this.alarmInfo.status != 3) { |
| | | if (resData.data.userWorkList && resData.data.userWorkList.length > 0) { |
| | | this.handleInfo = resData.data.userWorkList[0]; |
| | | this.stepsActive = this.handleInfo.checkStatus - 1 |
| | | } |
| | | if (this.alarmInfo.status != 3 && resData.data.flg == 0) { |
| | | this.isNoAlarm = true |
| | | } else { |
| | | this.isNoAlarm = false |
| | |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | this.toPage('add') |
| | | } |
| | | }).catch((err) => { |
| | | console.log(err) |
| | | }); |
| | | }, |
| | | suggest(checkStatus) { |
| | | this.handleInfo.checkStatus = checkStatus; |
| | | let endTime = this.$units.timeFormat(new Date().getTime, 'yyyy-mm-dd hh:MM:ss'); |
| | | this.handleInfo.endTime = endTime; |
| | | if (this.handleInfo.note == '') { |
| | | this.$toast('请输入审核意见…') |
| | | return |
| | | } |
| | | updateUserWork(this.handleInfo).then((res) => { |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | this.$toast('审核成功!') |
| | | this.loadStatus() |
| | | } |
| | | }).catch((err) => { |
| | | console.log(err) |
| | |
| | | font-size: 36px; |
| | | margin-top: 48px; |
| | | } |
| | | |
| | | .btnCon { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .btnCon .subBtn { |
| | | flex: 1; |
| | | height: 98px; |
| | | background: #07c160; |
| | | border-radius: 8px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | color: #FFFFFF; |
| | | font-size: 36px; |
| | | margin-top: 48px; |
| | | margin-right: 24px; |
| | | } |
| | | |
| | | .btnCon .subBtn:last-of-type { |
| | | margin-right: 0; |
| | | background: #f9534b; |
| | | } |
| | | </style> |