From c01aab181d94e87645470b5f159c093e77ae79d3 Mon Sep 17 00:00:00 2001 From: whyczyk <525500596@qq.com> Date: 星期五, 10 九月 2021 14:08:30 +0800 Subject: [PATCH] 优化图片显示问题 --- src/pages/alarm-details.vue | 988 +++++++++++++++++++++++++--------------------- src/assets/units/index.js | 6 src/assets/units/function/getStationSrc.js | 12 src/components/v-upload.vue | 195 ++++---- 4 files changed, 646 insertions(+), 555 deletions(-) diff --git a/src/assets/units/function/getStationSrc.js b/src/assets/units/function/getStationSrc.js new file mode 100644 index 0000000..4e9f55d --- /dev/null +++ b/src/assets/units/function/getStationSrc.js @@ -0,0 +1,12 @@ +function getStationSrc(url) { + let src = ""; + if (process.env.NODE_ENV == 'dev') { + src = "http://localhost:8920/stationsrc"; + } else { + src = window.location.origin + "/stationsrc"; + } + url = src + url.split('stationsrc')[1] + return url; +} + +export default getStationSrc; \ No newline at end of file diff --git a/src/assets/units/index.js b/src/assets/units/index.js index 404566f..44ec1d4 100644 --- a/src/assets/units/index.js +++ b/src/assets/units/index.js @@ -34,6 +34,9 @@ //璁$畻鎬婚〉鏁� import convertToPinyin from './function/convertToPinyin' +//鏇挎崲涓婁紶鏂囦欢鍦板潃澶撮儴 +import getStationSrc from './function/getStationSrc' + export default { deepClone, deepMerge, @@ -46,5 +49,6 @@ splitString, toThousands, pageTotal, - convertToPinyin + convertToPinyin, + getStationSrc } \ No newline at end of file diff --git a/src/components/v-upload.vue b/src/components/v-upload.vue index 9259d87..644fe61 100644 --- a/src/components/v-upload.vue +++ b/src/components/v-upload.vue @@ -1,101 +1,108 @@ <template> - <van-uploader :after-read="afterRead" v-model="getFileList" accept="image/png, image/jpeg" - :max-size="10 * 1024 * 1024" @oversize="oversize" :disabled="disabled" :readonly="readonly" /> + <van-uploader + :after-read="afterRead" + v-model="getFileList" + accept="image/png, image/jpeg" + :max-size="10 * 1024 * 1024" + @oversize="oversize" + :disabled="disabled" + :readonly="readonly" + /> </template> <script> - import { - uploadAlarmFile - } from '@/assets/js/api' - export default { - name: "v-upload", - props: { - value: { - type: String, - default: "" - }, - disabled: { - type: Boolean, - default: false - }, - readonly: { - type: Boolean, - default: false - }, - afterOrBefore: { - type: String, - default: 'before' - } - }, - data() { - return { - fileList: this.value - } - }, - model: { - prop: "value", - event: "valChange" - }, - watch: { - value(newValue) { - this.fileList = newValue; - }, - fileList(newValue) { - this.$emit("valChange", newValue); - } - }, - computed: { - getFileList: { - get() { - if (this.fileList) { - return this.fileList.split(",").map(item => { - return { - url: item - }; - }); - } - return []; - }, - set(newValue) { - var fileList = []; - newValue.forEach(item => { - if (item.url) { - fileList.push(item.url); - } - }); - this.fileList = fileList.join(","); - } - } - }, - methods: { - // 涓婁紶鍥剧墖 - afterRead(file) { - var formData = new FormData(); - let json = JSON.stringify({ - afterOrBefore: this.afterOrBefore - }) - formData.append("file", file.file); - formData.append("json", json); - //涓婁紶鍥剧墖鎺ュ彛 - uploadAlarmFile(formData).then(res => { - let resData = JSON.parse(res.data.result); - if (resData.code == 1) { - if (this.fileList) { - var arr = this.fileList.split(","); - arr.push(resData.data[0]); - this.fileList = arr.join(","); - return false; - } - this.fileList = resData.data[0]; - } - }); - }, - // 鏂囦欢杩囧ぇ - oversize(e) { - this.$toast.fail("鍥剧墖杩囧ぇ锛�"); - } - } - } +import { uploadAlarmFile } from "@/assets/js/api" +export default { + name: "v-upload", + props: { + value: { + type: String, + default: "", + }, + disabled: { + type: Boolean, + default: false, + }, + readonly: { + type: Boolean, + default: false, + }, + afterOrBefore: { + type: String, + default: "before", + }, + }, + data() { + return { + fileList: this.value, + } + }, + model: { + prop: "value", + event: "valChange", + }, + watch: { + value(newValue) { + this.fileList = newValue + }, + fileList(newValue) { + this.$emit("valChange", newValue) + }, + }, + computed: { + getFileList: { + get() { + if (this.fileList) { + return this.fileList.split(",").map((item) => { + console.log(this.$units.getStationSrc(item)) + return { + url: this.$units.getStationSrc(item), + url1: item, + } + }) + } + return [] + }, + set(newValue) { + var fileList = [] + newValue.forEach((item) => { + if (item.url1) { + fileList.push(item.url1) + } + }) + this.fileList = fileList.join(",") + }, + }, + }, + methods: { + // 涓婁紶鍥剧墖 + afterRead(file) { + var formData = new FormData() + let json = JSON.stringify({ + afterOrBefore: this.afterOrBefore, + }) + formData.append("file", file.file) + formData.append("json", json) + //涓婁紶鍥剧墖鎺ュ彛 + uploadAlarmFile(formData).then((res) => { + let resData = JSON.parse(res.data.result) + if (resData.code == 1) { + if (this.fileList) { + var arr = this.fileList.split(",") + arr.push(resData.data[0]) + this.fileList = arr.join(",") + return false + } + this.fileList = resData.data[0] + } + }) + }, + // 鏂囦欢杩囧ぇ + oversize(e) { + this.$toast.fail("鍥剧墖杩囧ぇ锛�") + }, + }, +} </script> <style scoped> diff --git a/src/pages/alarm-details.vue b/src/pages/alarm-details.vue index 66c0dc6..d9d900c 100644 --- a/src/pages/alarm-details.vue +++ b/src/pages/alarm-details.vue @@ -1,21 +1,26 @@ <template> - <div class="alarm-details"> - <van-nav-bar title="鍛婅璇︽儏" @click-left="$router.back()" left-arrow fixed safe-area-inset-top placeholder> - </van-nav-bar> - <div class="detailsCon"> - <div class="card"> - <div class="commonTitle cardTitle"> - {{alarmInfo.alarmName}} - </div> - <div class="commonTitle"> - <div class="label"> - 绔欑偣鍚嶇О锛� - </div> - <div class="text"> - {{alarmInfo.stationName}} - </div> - </div> - <!-- <div class="commonTitle"> + <div class="alarm-details"> + <van-nav-bar + title="鍛婅璇︽儏" + @click-left="$router.back()" + left-arrow + fixed + safe-area-inset-top + placeholder + > + </van-nav-bar> + <div class="detailsCon"> + <div class="card"> + <div class="commonTitle cardTitle"> + {{ alarmInfo.alarmName }} + </div> + <div class="commonTitle"> + <div class="label">绔欑偣鍚嶇О锛�</div> + <div class="text"> + {{ alarmInfo.stationName }} + </div> + </div> + <!-- <div class="commonTitle"> <div class="label"> 鐢垫睜缁勶細 </div> @@ -23,463 +28,526 @@ {{alarmInfo.alarmData.battGroupName}} </div> </div> --> - <div class="commonTitle"> - <div class="label"> - 鍛婅绫诲瀷锛� - </div> - <div class="text" v-if="alarmInfo.battGroupId==0"> - 璁惧鍛婅 - </div> - <div class="text" v-else> - 鐢垫睜鍛婅 - </div> - </div> - <div class="commonTitle"> - <div class="label"> - 鍛婅绛夌骇锛� - </div> - <div class="text" v-if="alarmInfo.alarmLevel==1"> - 涓�绾у憡璀� - </div> - <div class="text" v-else-if="alarmInfo.alarmLevel==2"> - 浜岀骇鍛婅 - </div> - <div class="text" v-else> - 涓夌骇鍛婅 - </div> - </div> - <div class="commonTitle"> - <div class="label"> - 鍛婅鏃堕棿锛� - </div> - <div class="text"> - {{alarmInfo.alarmTime}} - </div> - </div> - <div class="commonTitle"> - <div class="label"> - 鍒涘缓鏃堕棿锛� - </div> - <div class="text"> - {{alarmInfo.createTime}} - </div> - </div> - <div class="commonTitle" v-if="alarmInfo.dispatchTime"> - <div class="label"> - 娲惧彂鏃堕棿锛� - </div> - <div class="text"> - {{alarmInfo.dispatchTime}} - </div> - </div> - <div class="commonTitle"> - <div class="label"> - 璁㈠崟鐘舵�侊細 - </div> - <div class="text" v-if="alarmInfo.status==2&&stepsActive==0" style="color: #eac406;"> - 澶勭悊涓� - </div> - <div class="text" v-else-if="alarmInfo.status==2&&stepsActive==1" style="color: #eac406;"> - 寰呭鏍� - </div> - <div class="text" v-else-if="alarmInfo.status==3" style="color: #07c160;"> - 宸插畬鎴� - </div> - <div class="text" v-else-if="alarmInfo.status==0" style="color: #4B88F9;"> - 寰呮淳鍙� - </div> - <div class="text" v-else-if="alarmInfo.status==1&&userPower==0" style="color: #4B88F9;"> - 宸叉淳鍙� - </div> - <div class="text" v-else style="color: #4B88F9;"> - 寰呭鐞� - </div> - </div> - </div> - <!-- 濡傛灉鏄鐞嗕腑鐘舵�� --> - <div class="card" v-if="alarmInfo.status==2||alarmInfo.status==3"> - <div class="commonTitle cardTitle"> - 璁㈠崟鐘舵�侊細 - </div> - <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="text"> - {{handleInfo.description}} - </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> - <div class="commonTitle"> - <div class="label"> - 澶勭悊鏂规硶锛� - </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> - <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 v-if="userPower==0&&alarmInfo.status==0"> - <div class="card"> - <div class="commonTitle cardTitle"> - 鎸囨淳浜哄憳锛� - </div> - <van-cell :title="assignUser.UName" is-link @click="$router.push({ - path:'/userList', - query: { - stationId:alarmInfo.stationId, - }})" /> - </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> - </div> + <div class="commonTitle"> + <div class="label">鍛婅绫诲瀷锛�</div> + <div class="text" v-if="alarmInfo.battGroupId == 0">璁惧鍛婅</div> + <div class="text" v-else>鐢垫睜鍛婅</div> + </div> + <div class="commonTitle"> + <div class="label">鍛婅绛夌骇锛�</div> + <div class="text" v-if="alarmInfo.alarmLevel == 1">涓�绾у憡璀�</div> + <div class="text" v-else-if="alarmInfo.alarmLevel == 2">浜岀骇鍛婅</div> + <div class="text" v-else>涓夌骇鍛婅</div> + </div> + <div class="commonTitle"> + <div class="label">鍛婅鏃堕棿锛�</div> + <div class="text"> + {{ alarmInfo.alarmTime }} + </div> + </div> + <div class="commonTitle"> + <div class="label">鍒涘缓鏃堕棿锛�</div> + <div class="text"> + {{ alarmInfo.createTime }} + </div> + </div> + <div class="commonTitle" v-if="alarmInfo.dispatchTime"> + <div class="label">娲惧彂鏃堕棿锛�</div> + <div class="text"> + {{ alarmInfo.dispatchTime }} + </div> + </div> + <div class="commonTitle"> + <div class="label">璁㈠崟鐘舵�侊細</div> + <div + class="text" + v-if="alarmInfo.status == 2 && stepsActive == 0" + style="color: #eac406" + > + 澶勭悊涓� + </div> + <div + class="text" + v-else-if="alarmInfo.status == 2 && stepsActive == 1" + style="color: #eac406" + > + 寰呭鏍� + </div> + <div + class="text" + v-else-if="alarmInfo.status == 3" + style="color: #07c160" + > + 宸插畬鎴� + </div> + <div + class="text" + v-else-if="alarmInfo.status == 0" + style="color: #4b88f9" + > + 寰呮淳鍙� + </div> + <div + class="text" + v-else-if="alarmInfo.status == 1 && userPower == 0" + style="color: #4b88f9" + > + 宸叉淳鍙� + </div> + <div class="text" v-else style="color: #4b88f9">寰呭鐞�</div> + </div> + </div> + <!-- 濡傛灉鏄鐞嗕腑鐘舵�� --> + <div class="card" v-if="alarmInfo.status == 2 || alarmInfo.status == 3"> + <div class="commonTitle cardTitle">璁㈠崟鐘舵�侊細</div> + <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="text"> + {{ handleInfo.description }} + </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="$units.getStationSrc(item)" + class="van-image__img" + style="object-fit: cover" + /> + </div> + </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="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="$units.getStationSrc(item)" + class="van-image__img" + style="object-fit: cover" + /> + </div> + </div> + </div> + </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 v-if="userPower == 0 && alarmInfo.status == 0"> + <div class="card"> + <div class="commonTitle cardTitle">鎸囨淳浜哄憳锛�</div> + <van-cell + :title="assignUser.UName" + is-link + @click=" + $router.push({ + path: '/userList', + query: { + stationId: alarmInfo.stationId, + }, + }) + " + /> + </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> + </div> </template> <script> - import { - updateWorkAlarm, - searchStatusById, - dispatchTask, - updateUserWork, - } from '@/assets/js/api' - import { - mapState, - } from 'vuex'; - import vUpload from '@/components/v-upload.vue' - export default { - components: { - vUpload - }, - data() { - return { - isNoAlarm: false, - showImgPreview: false, - ImgPreviewList: [], - stepsActive: 0, - alarmInfo: { - id: 0, - alarmRecId: 0, - battGroupId: 0, - managerId: 0, - status: 0, - dispatchTime: "", - alarmData: { - num: 0, - BattGroupId: 0, - MonNum: 0, - alm_signal_id: 0, - alm_level: 0, - alm_start_time: "", - alm_end_time: "", - alm_value: 0, - alm_is_confirmed: 0, - alm_confirmed_time: "", - stationname: "", - battGroupName: "", - alarmname: "", - alarmtype: "" - } - }, - handleInfo: {}, - assignUser: { - UName: '璇烽�夋嫨鎸囨淳浜哄憳', - } - } - }, - computed: { - ...mapState(['userPower']), - }, - mounted() { - this.alarmInfo = JSON.parse(this.$route.query.alarmData); - let assignUser = sessionStorage.getItem('assignUser') - if (assignUser) { - this.assignUser = JSON.parse(assignUser) - } - this.loadStatus() - }, - destroyed() { - sessionStorage.removeItem('assignUser') - }, - methods: { - toPage(type) { - this.$router.push({ - path: '/alarmHandle', - query: { - id: this.alarmInfo.id, - type: type, - managerId: this.alarmInfo.managerId - } - }) - }, - //纭鎸囨淳 - toAssign() { - this.$dialog.confirm({ - title: '鎻愮ず', - message: `鏄惁纭鎶婅鍛婅鎸囨淳缁�${this.assignUser.UName}?`, - }).then(() => { - let postData = [{ - id: this.alarmInfo.id, - userId: this.assignUser.UId - }] - dispatchTask(postData).then((res) => { - let resData = JSON.parse(res.data.result) - if (resData.code == 1) { - this.$toast('鎸囨淳鎴愬姛!') - this.loadStatus() - sessionStorage.removeItem('assignUser') - } - }).catch((err) => { - console.log(err) - }); - }).catch(() => { - // on cancel - }); - }, - //纭鑷姩瀹屾垚鍛婅 - completeAlarm() { - this.$dialog.confirm({ - title: '鎻愮ず', - message: '璇锋牳瀹炵‘璁�,璇ュ憡璀︽槸鍚﹀凡鑷姩娑堥櫎锛�', - }).then(() => { - let postData = this.$units.deepClone(this.alarmInfo) - postData.status = 3; - postData.userId = sessionStorage.getItem('userId'); - updateWorkAlarm(postData).then((res) => { - let resData = JSON.parse(res.data.result) - if (resData.code == 1) { - this.$toast('纭鎴愬姛!') - this.loadStatus() - } - }).catch((err) => { - console.log(err) - }); - }).catch(() => { - // on cancel - }); - }, - //鐐瑰嚮鍥剧墖鏄剧ず鍥剧墖棰勮灞� - toShowImgpreview(list) { - this.ImgPreviewList = list; - this.showImgPreview = true; - }, - //鏌ヨ璁㈠崟褰撳墠鏈�鏂扮姸鎬� - loadStatus() { - let postData = { - id: this.alarmInfo.id - } - searchStatusById(postData).then((res) => { - let resData = JSON.parse(res.data.result) - if (resData.code == 1) { - this.alarmInfo.status = resData.data.status; - if (resData.data.dispatchTime) { - this.alarmInfo.dispatchTime = resData.data.dispatchTime; - } - if (resData.data.managerId) { - this.alarmInfo.managerId = resData.data.managerId; - } - 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 - } - } - }).catch((err) => { - console.log(err) - }); - }, - //寮�濮嬪鐞� - startHandle() { - let postData = this.$units.deepClone(this.alarmInfo) - postData.status = 2; - postData.userId = sessionStorage.getItem('userId'); - updateWorkAlarm(postData).then((res) => { - 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) - }); - } - } - } +import { + updateWorkAlarm, + searchStatusById, + dispatchTask, + updateUserWork, +} from "@/assets/js/api" +import { mapState } from "vuex" +import vUpload from "@/components/v-upload.vue" +export default { + components: { + vUpload, + }, + data() { + return { + isNoAlarm: false, + showImgPreview: false, + ImgPreviewList: [], + stepsActive: 0, + alarmInfo: { + id: 0, + alarmRecId: 0, + battGroupId: 0, + managerId: 0, + status: 0, + dispatchTime: "", + alarmData: { + num: 0, + BattGroupId: 0, + MonNum: 0, + alm_signal_id: 0, + alm_level: 0, + alm_start_time: "", + alm_end_time: "", + alm_value: 0, + alm_is_confirmed: 0, + alm_confirmed_time: "", + stationname: "", + battGroupName: "", + alarmname: "", + alarmtype: "", + }, + }, + handleInfo: {}, + assignUser: { + UName: "璇烽�夋嫨鎸囨淳浜哄憳", + }, + } + }, + computed: { + ...mapState(["userPower"]), + }, + mounted() { + this.alarmInfo = JSON.parse(this.$route.query.alarmData) + let assignUser = sessionStorage.getItem("assignUser") + if (assignUser) { + this.assignUser = JSON.parse(assignUser) + } + this.loadStatus() + }, + destroyed() { + sessionStorage.removeItem("assignUser") + }, + methods: { + toPage(type) { + this.$router.push({ + path: "/alarmHandle", + query: { + id: this.alarmInfo.id, + type: type, + managerId: this.alarmInfo.managerId, + }, + }) + }, + //纭鎸囨淳 + toAssign() { + this.$dialog + .confirm({ + title: "鎻愮ず", + message: `鏄惁纭鎶婅鍛婅鎸囨淳缁�${this.assignUser.UName}?`, + }) + .then(() => { + let postData = [ + { + id: this.alarmInfo.id, + userId: this.assignUser.UId, + }, + ] + dispatchTask(postData) + .then((res) => { + let resData = JSON.parse(res.data.result) + if (resData.code == 1) { + this.$toast("鎸囨淳鎴愬姛!") + this.loadStatus() + sessionStorage.removeItem("assignUser") + } + }) + .catch((err) => { + console.log(err) + }) + }) + .catch(() => { + // on cancel + }) + }, + //纭鑷姩瀹屾垚鍛婅 + completeAlarm() { + this.$dialog + .confirm({ + title: "鎻愮ず", + message: "璇锋牳瀹炵‘璁�,璇ュ憡璀︽槸鍚﹀凡鑷姩娑堥櫎锛�", + }) + .then(() => { + let postData = this.$units.deepClone(this.alarmInfo) + postData.status = 3 + postData.userId = sessionStorage.getItem("userId") + updateWorkAlarm(postData) + .then((res) => { + let resData = JSON.parse(res.data.result) + if (resData.code == 1) { + this.$toast("纭鎴愬姛!") + this.loadStatus() + } + }) + .catch((err) => { + console.log(err) + }) + }) + .catch(() => { + // on cancel + }) + }, + //鐐瑰嚮鍥剧墖鏄剧ず鍥剧墖棰勮灞� + toShowImgpreview(list) { + this.ImgPreviewList = list + this.showImgPreview = true + }, + //鏌ヨ璁㈠崟褰撳墠鏈�鏂扮姸鎬� + loadStatus() { + let postData = { + id: this.alarmInfo.id, + } + searchStatusById(postData) + .then((res) => { + let resData = JSON.parse(res.data.result) + if (resData.code == 1) { + this.alarmInfo.status = resData.data.status + if (resData.data.dispatchTime) { + this.alarmInfo.dispatchTime = resData.data.dispatchTime + } + if (resData.data.managerId) { + this.alarmInfo.managerId = resData.data.managerId + } + 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 + } + } + }) + .catch((err) => { + console.log(err) + }) + }, + //寮�濮嬪鐞� + startHandle() { + let postData = this.$units.deepClone(this.alarmInfo) + postData.status = 2 + postData.userId = sessionStorage.getItem("userId") + updateWorkAlarm(postData) + .then((res) => { + 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) + }) + }, + }, +} </script> <style scoped> - .alarm-details { - width: 100%; - min-height: 100%; - background: #F5F5F5; - } +.alarm-details { + width: 100%; + min-height: 100%; + background: #f5f5f5; +} - .detailsCon { - padding: 24px; - } +.detailsCon { + padding: 24px; +} - .card { - background-color: #FFFFFF; - border-radius: 16px; - margin: 0 auto 24px; - width: 702px; - padding: 24px; - box-shadow: 0px 4px 20px 0px rgba(75, 136, 249, 0.2); - } +.card { + background-color: #ffffff; + border-radius: 16px; + margin: 0 auto 24px; + width: 702px; + padding: 24px; + box-shadow: 0px 4px 20px 0px rgba(75, 136, 249, 0.2); +} - .commonTitle { - font-size: 28px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #333333; - line-height: 40px; - padding-bottom: 24px; - border-bottom: 1px solid #EEEEEE; - margin-bottom: 22px; - display: flex; - } +.commonTitle { + font-size: 28px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #333333; + line-height: 40px; + padding-bottom: 24px; + border-bottom: 1px solid #eeeeee; + margin-bottom: 22px; + display: flex; +} - .cardTitle { - font-weight: bold; - } +.cardTitle { + font-weight: bold; +} - .commonTitle .label { - line-height: 40px; - display: inline-block; - width: 170px; - } +.commonTitle .label { + line-height: 40px; + display: inline-block; + width: 170px; +} - .commonTitle .text { - flex: 1; - } +.commonTitle .text { + flex: 1; +} - .subBtn { - width: 702px; - height: 98px; - background: #4B88F9; - border-radius: 8px; - display: flex; - justify-content: center; - align-items: center; - color: #FFFFFF; - font-size: 36px; - margin-top: 48px; - } +.subBtn { + width: 702px; + height: 98px; + background: #4b88f9; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + font-size: 36px; + margin-top: 48px; +} - .btnCon { - width: 100%; - display: flex; - align-items: center; - } +.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 { + 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; - } +.btnCon .subBtn:last-of-type { + margin-right: 0; + background: #f9534b; +} </style> \ No newline at end of file -- Gitblit v1.9.1