diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index d31b22f7..1acab51b 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -141,6 +141,14 @@ service.interceptors.response.use(res => { else if (message.includes("Request failed with status code")) { message = "系统接口" + message.substr(message.length - 3) + "异常"; } + else if (message.includes("client_offline")) + { + message = "设备离线" + } + else if (message.includes("time_out")) + { + message = "连接超时" + } Message({ message: message, type: 'error', diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue b/ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue index ff5a269d..8d34a74d 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/Adaptation.vue @@ -101,10 +101,10 @@ export default { mounted() { this.initScale(); - window.addEventListener( - "resize", - _.debounce(this.initScale.bind(this), 360) - ); + // window.addEventListener( + // "resize", + // _.debounce(this.initScale.bind(this), 360) + // ); }, }; </script> diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue index c2db7f75..bdbee4b9 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue @@ -2,8 +2,14 @@ <BorderRadiusImage class='RoadStateCard' borderRadius="2px" borderColor="linear-gradient(360deg, rgba(55, 231, 255, 0.3), rgba(55, 231, 255, 0))" borderWidth="2px"> <div class="left"> - <img :src="(cardData.pictures ? cardData.pictures[0] : null) || require(`./test.png`)"> + <!-- <img :src="(cardData.pictures ? cardData.pictures[0] : null) || require(`./test.png`)"> --> <!-- <img :src="require(`./test.png`)"> --> + <ElImage style="width: 212px; height: 159px;" :src="cardData.pictures ? cardData.pictures[0] : null" + :preview-src-list="cardData.pictures || []"> + <div slot="error"> + <i class="el-icon-picture-outline icon"></i> + </div> + </ElImage> </div> <div class="right"> <div class="info"> @@ -23,7 +29,7 @@ </div> </div> - <img v-if="cardData.state" class="status" :src="require(`./images/${statusMap[cardData.state]}.svg`)" /> + <img v-if="cardData.state" class="status" :src="require(`./images/${statusMap[cardData.state]}.svg`) " /> </BorderRadiusImage> </template> @@ -135,6 +141,15 @@ export default { width: 212px; height: 159px; } + + .icon { + display:inline-block; + width: 212px; + height: 159px; + line-height: 157px; + text-align: center; + border: 1px solid #fff; + } } .right { diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue index 5a34ea16..54ba5735 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue @@ -101,6 +101,7 @@ :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" + v-if="+(item.dictValue.replace('px',''))<=maxFontSize" > </el-option> </el-select> @@ -191,6 +192,7 @@ import { debounce } from "lodash"; export default { data() { return { + maxFontSize:100, alignmentNum: 2, content: "", boardWidth: "", @@ -316,6 +318,17 @@ export default { speechSpeed: "0", font: "3", }, + templateDefault: { + category: "", + formatStyle: "2", + content: "", + fontColor: "", + fontSize: "", + fontType: "", + stopTime: 50, + inScreenMode: "", + screenSize: "", + }, isLocked: false, }; }, @@ -361,6 +374,26 @@ export default { }, }, watch: { + screenSize(newV){ + + if(newV){ + let boardH = newV.split("*")[1]; + let fontSize = "20"; + if (['64', '48'].includes(boardH)) { + this.maxFontSize = +boardH + fontSize = boardH + "" + } else if (['80'].includes(boardH)) { + this.maxFontSize = +boardH / 2 + fontSize = +boardH / 2 + "" + } else if (['160'].includes(boardH)) { + this.maxFontSize = +boardH / 2 + fontSize = +boardH / 4 + "" + } + this.deviceCttDefault.fontSize = fontSize + this.templateDefault.screenSize = newV; + this.templateDefault.fontSize = fontSize; + } + }, visible: { handler(newV) { this.dialogVisible = newV; @@ -400,21 +433,30 @@ export default { }, mounted() {}, created() { + this.templateDefault.fontType = this.fontTypeList[0].dictValue //设置模板的默认值 this.getDicts("iot_devices_font_color").then((res) => { this.colorList = res.data; + this.templateDefault.fontColor = this.colorList[0].dictValue // console.log(this.colorList, "字体颜色"); }); this.getDicts("iot_device_font_inScreen_mode").then((res) => { this.inScreenModeList = res.data; + this.templateDefault.inScreenMode = this.inScreenModeList[0].dictValue // console.log(this.inScreenModeList, "入屏方式"); }); this.getDicts("iot_template_category").then((res) => { this.templateCategoryList = res.data; + this.templateDefault.category = this.templateCategoryList[0].dictValue }); this.getDicts("iot_device_font_size").then((res) => { this.fontSizeList = res.data; + // this.templateDefault.fontSize = this.fontSizeList[0].dictValue // this.dataForm.FONT_SIZE = res.data[1].dictValue }); + + + + }, methods: { initData() { @@ -433,17 +475,7 @@ export default { if (this.mode == "add") { let tempTpl = null; if (this.type == "template") { - tempTpl = { - category: this.templateCategoryList[0].dictValue, - formatStyle: 0, - content: "", - fontColor: this.colorList[0].dictValue, - fontSize: this.fontSizeList[0].dictValue, - fontType: this.fontTypeList[0].dictValue, - stopTime: 50, - inScreenMode: this.inScreenModeList[0].dictValue, - screenSize: this.screenSize, - }; + tempTpl = _.merge({}, this.templateDefault, this.tpl); } else { tempTpl = _.merge({}, this.deviceCttDefault, this.tpl.origin); //首页弹窗,新增设备项时,需要传设备尺寸过来 } diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardPreview.vue b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardPreview.vue index 005fa7d5..51c3e6da 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardPreview.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardPreview.vue @@ -40,7 +40,7 @@ export default { }, tpl:{ handler(newV){ - this.contentArr = this.tpl.textContent.replaceAll(/\\\\n/g, '\n').replaceAll(/ /g, ' ').split('\n'); + this.contentArr = this.tpl.textContent.replaceAll(/\\\\n/g, '\n').replaceAll(/\\=/g, '=').replaceAll(/\\,/g, ',').replaceAll(/ /g, ' ').split('\n'); this.setStyle(); }, deep:true, @@ -113,6 +113,8 @@ export default { color: #f00; line-height: 1; margin-bottom: 0; + word-break: keep-all; + white-space: nowrap; } } } diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardTplPreview.vue b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardTplPreview.vue index 71f8144c..473dbb38 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardTplPreview.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardTplPreview.vue @@ -110,6 +110,8 @@ export default { color: #f00; line-height: 1; margin-bottom: 0; + word-break: keep-all; + white-space: nowrap; } } } diff --git a/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js b/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js index 0dcc45a8..5d9b420e 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js +++ b/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js @@ -11,13 +11,14 @@ export default{ // 新增待下发 ____onAddDeviceItem() { let arr = this.selectedSize.split("*"); + this.editDialog = { visible: true, mode: "add", type: "device", tpl: { "textContent": "", - origin: { + "origin": { displayAreaWidth: +arr[0], displayAreaHeight: +arr[1] } diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/ConditionStatistics/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/ConditionStatistics/index.vue index 0953fe23..2abe0e3b 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/ConditionStatistics/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/ConditionStatistics/index.vue @@ -5,7 +5,7 @@ <img class="icon-right keep-ratio" origin="right" src="@screen/images/icon/icon_right.png" /> </div> <div class="content-r-t-box"> - <div class="box-title keep-ratio" origin="left"><span>预警事件</span></div> + <div class="box-title keep-ratio" origin="left"><span>交通事件</span></div> <div class="box-content"> <div class="box-content-l"> <div class="event-item keep-ratio" origin="left">今日:<span>{{ earlyWarningEvents.day }}</span> 起</div> diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue index 944d0c5f..6985b889 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue @@ -132,7 +132,7 @@ export default { if (code != 200) return; this.data = { ...data, ...this.data }; - console.log(data); + console.log('trafficIncidents',data); }) .catch((err) => {}); }, diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue index 39d4a78f..b99c98e0 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue @@ -17,7 +17,7 @@ <span class="abnormal">{{ trafficIncidents[0] }}</span> <span>/{{ trafficIncidents[1] }}</span> </p> - <div>交通事件</div> + <div>交通事故</div> </div> <div class="monitor-item keep-ratio"> <span>{{ constructionSection }}</span> @@ -44,6 +44,7 @@ </div> </Bg2> </template> + <script> import Bg2 from "@screen/components/Decorations/bg-2.vue" import request from "@/utils/request"; @@ -96,6 +97,7 @@ export default { } } </script> + <style lang="less"> .content-l-t { width: 100%; @@ -184,6 +186,7 @@ export default { width: 131px; height: 35px; display: flex; + letter-spacing: 2px; justify-content: center; align-items: center; background: url("~@screen/images/bg/box_bg_004.png") no-repeat; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js index 3ad07135..8aeb6151 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js @@ -2,6 +2,7 @@ import { loadAMap } from "@screen/pages/Home/components/AMapContainer/loadAMap.j // import { Message } from "element-ui"; import Vue from "vue"; import { lngLatMap } from "./buttonEvent"; +import { upperFirst } from "lodash"; /** * @typedef {Object} Point * @property {number} weight - The weight of the item. @@ -252,26 +253,24 @@ export class MarkerCluster { const findIndex = this.data.findIndex( (removeData) => removeData === item ); - const { stakeMark } = item.extData; + let { stakeMark } = item.extData; + stakeMark = upperFirst(stakeMark); //统一格式 大写K const existNode = graphInstance.getCellById(stakeMark); const lnglat = item.lnglat; if (lnglat) { const { lat, lng } = getLatAndLng(lnglat); const lngLatStr = `${lng}/${lat}`; const lngLatArr = lngLatMap[lngLatStr]; //已是移除后的数据集 - console.log(lngLatArr, lngLatArr?.length, "length"); if (existNode) { - window.graphInstance.removeNode(existNode.id); if (lngLatArr) { - if (lngLatArr.length === 0) console.log(); - // window.graphInstance.removeNode(stakeMark); + if (lngLatArr.length === 0) + window.graphInstance.removeNode(existNode.id); else { - //移除并重新添加 - // window.graphInstance.removeNode(stakeMark); - console.log("重新ADD", lngLatArr); - // addInGraphHandle(lngLatArr); + //更新节点 + const updateNode = graphInstance.getCellById(stakeMark); + updateNode.updateData(getDataConf(lngLatArr, item.extData)); } - } //else window.graphInstance.removeNode(stakeMark); + } else window.graphInstance.removeNode(stakeMark); } } if (findIndex > -1) this.data.splice(findIndex, 1); @@ -373,11 +372,11 @@ export function marksAddInGraph(data) { export function addInGraphHandle(data) { const graphInstance = window.graphInstance; - const nowBg = getState(data) ? normalBg : faultBg; const extData = data[0].extData; const { item: eventItem } = data[0].config; if (eventItem.id.match("./事件专题")) { let { stakeMark, lang } = extData; + stakeMark = upperFirst(stakeMark); //统一格式 大写K const distance = (Number( stakeMark.replace(/\.\d+/, "").replace("+", ".").replace(/[Kk]/, "") @@ -386,42 +385,50 @@ export function addInGraphHandle(data) { window.canvasRatio + window.canvasWidth * window.offsetRatio; //K54+394 开始到K208+979计算的比例尺 - const node = {}; - if (data.length === 1) { - node.shape = "singleNode-html"; - node.data = { - nowBg, - src: `${getIcon(data[0])}`, - extData, - }; - } else { - node.shape = "multiNode-html"; - node.data = { - nowBg, - // width: `${36 + `${data.length}`.length * 15}px`, - length: data.length, - extData, - }; - } + const node = { shape: "custom-html", effect: ["data"] }; + node.data = getDataConf(data, extData); const existNode = graphInstance.getCellById(stakeMark); if (existNode) { - graphInstance.removeCell(existNode.id); + existNode.updateData(node.data); + } else { + // setTimeout(() => { + graphInstance.addNode({ + x: distance, + y: 60, + width: 20, + height: 20, + ...node, + zIndex: 1, + id: stakeMark, + }); + // }, 0); } console.log(lang, "lang"); - // setTimeout(() => { - graphInstance.addNode({ - x: distance, - y: 60, - width: 20, - height: 20, - ...node, - zIndex: 1, - id: stakeMark, - }); - // }, 0); } } +function getDataConf(data, extData) { + let dataConf; + const nowBg = getState(data) ? normalBg : faultBg; + if (data.length === 1) { + dataConf = { + shape: "singleNode-html", + nowBg, + src: `${getIcon(data[0])}`, + extData, + }; + } else { + dataConf = { + shape: "multiNode-html", + nowBg, + // width: `${36 + `${data.length}`.length * 15}px`, + length: data.length, + extData, + }; + } + return dataConf; +} + export function getLatAndLng(lnglat) { if (Array.isArray(lnglat)) return { lng: lnglat[0], lat: lnglat[1] }; else return lnglat; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Thumbnail/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Thumbnail/index.vue index 7b4a4367..978a89a2 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Thumbnail/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Thumbnail/index.vue @@ -11,13 +11,13 @@ import { actualLocationList, canvasList } from "./data.js"; const mouseenterDebounceFunc = debounce(({ node }) => { - if (["singleNode-html", "multiNode-html"].indexOf(node.shape) >= 0) { + if (["custom-html"].indexOf(node.shape) >= 0) { node.setZIndex(100); console.log(node); } }, 0); const mouseleaveDebounceFunc = debounce(({ node }) => { - if (["singleNode-html", "multiNode-html"].indexOf(node.shape) >= 0) { + if (["custom-html"].indexOf(node.shape) >= 0) { node.setZIndex(1); } }, 0); @@ -25,7 +25,7 @@ const mouseleaveDebounceFunc = debounce(({ node }) => { const clickDebounceFunc = debounce(({ node }) => { const mapIns = Vue.prototype.mapIns; - if (["singleNode-html", "multiNode-html"].indexOf(node.shape) >= 0) { + if (["custom-html"].indexOf(node.shape) >= 0) { const extData = node.getData()?.extData; if (extData) { mapIns.setZoomAndCenter(18, [extData.longitude, extData.latitude]); @@ -188,16 +188,18 @@ export default { graph.on('node:click', clickDebounceFunc); Shape.HTML.register({ - shape: 'singleNode-html', + shape: 'custom-html', width: 160, height: 80, html(node) { const data = node.getData(); + const { shape, nowBg, src, length } = data; const { height, width } = node.prop().size; const div = document.createElement('div') - div.innerHTML = ` + if (shape === "singleNode-html") { + div.innerHTML = ` <div style=" - background-image: url(${data.nowBg}); + background-image: url(${nowBg}); background-size: 100% 100%; background-repeat: no-repeat; width: ${width * 1.2}px; @@ -209,24 +211,14 @@ export default { width: ${width * 0.8}px; height: ${height * 0.8}px; margin-top: ${height * 0.1}px; - " src='${data.src}' + " src='${src}' > </div> `; - return div - }, - }) - Shape.HTML.register({ - shape: 'multiNode-html', - width: 160, - height: 80, - html(node) { - const data = node.getData(); - const { height, width } = node.prop().size; - const div = document.createElement('div') - div.innerHTML = ` + } else if (shape === "multiNode-html") { + div.innerHTML = ` <div style=" - background-image: url(${data.nowBg}); + background-image: url(${nowBg}); background-size: 100% 100%; background-repeat: no-repeat; display: flex; @@ -234,12 +226,14 @@ export default { align-items: center; padding-bottom: ${height * 0.1}px; "> - ${data.length} + ${length} </div> `; + } return div }, }) + window.graphInstance = graph; graph.addNodes(baseData.nodes); diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue index 8e53283c..5cbe6744 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue @@ -359,8 +359,8 @@ export default { data.visibility = otherConfig.visibility; data.pictures = otherConfig.pictures || []; - // data.videoList = otherConfig.videoList || [] - data.videoList = otherConfig.videoList || ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4'] + data.videoList = otherConfig.videoList || [] + // data.videoList = otherConfig.videoList || ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4'] } this.detailDialogFormData = data; @@ -377,7 +377,7 @@ export default { let data = result.data; data.stringDirection = gzDirectionMapping[data.direction] || data.direction; - data.videoList = ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4']; + data.videoList = []; if (data.otherConfig) { let otherConfig = JSON.parse(data.otherConfig); // data.pictures = otherConfig.pictures || []; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue index 565ad9d8..f952b135 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue @@ -1,12 +1,13 @@ <template> <div class="congestion"> <div class="board"> - <ProgressBar class="keep-ratio" @selectItem="selectProgress" :dataList="dataList" :selectIndex="selectIndex" /> + <ProgressBar class="keep-ratio" @selectItem="selectProgress" :dataList="dataList" :selectIndex="selectIndex" + :reset="reset" /> <div class="searchPanel"> <RadioGroup :options="[ - { key: '1', label: '菏泽' }, - { key: '3', label: '济南' }, - ]" v-model="direction" type="button" /> + { key: '1', label: '菏泽' }, + { key: '3', label: '济南' }, + ]" v-model="direction" type="button" /> <el-select v-model="type" size="mini" class="selectRoad" placeholder="请选择" @change="changeType"> <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> @@ -18,15 +19,16 @@ </el-select> <el-date-picker size="mini" v-if="type != 'quarter'" class="selectRoad" v-model="dateTime" style="width: 140px" :type="type == 'date' - ? 'date' - : type == 'month' - ? 'month' - : type == 'year' - ? 'year' - : '' - " placeholder="请选择" :clearable="false" /> - - <el-button type="primary" size="mini" class="btnSearch" @click="searchQuery" icon="el-icon-search">查询</el-button> + ? 'date' + : type == 'month' + ? 'month' + : type == 'year' + ? 'year' + : '' + " placeholder="请选择" :clearable="false" /> + + <el-button type="primary" size="mini" class="btnSearch" @click="searchQuery" + icon="el-icon-search">查询</el-button> <el-button class="btnReset" size="mini" icon="el-icon-refresh-left" @click="onReset">重置</el-button> </div> </div> @@ -151,6 +153,7 @@ export default { dataList: [], selectIndex: 2, selectId: 2, + reset: false, type: "year", chart1List: [], chart2List: [], @@ -206,16 +209,17 @@ export default { selectProgress(item, index) { this.selectIndex = index; this.selectId = item.id; + this.reset = false; this.searchQuery(); }, onReset() { this.direction = "1"; this.type = "year"; this.dateTime = "2024"; - this.selectId = this.dataList[0].id; this.selectId = 2; this.selectIndex = 2; - this.searchQuery() + this.reset = true; + this.searchQuery(); }, searchQuery() { let startTime = ""; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/progressBar.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/progressBar.vue index 5a91de2e..e8c05158 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/progressBar.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/progressBar.vue @@ -3,9 +3,9 @@ <div> <!-- :style="{ width: dataList.length * 300 }" --> <div :class="selectIndex == index ? - (selectLine < 1 ? 'item action Abefore' : 'item action Aafter') : - (selectIndex + selectLine == index ? - (selectLine < 1 ? 'item action Aafter' : 'item action Abefore') : 'item')" + (selectLine < 1 ? 'item action Abefore' : 'item action Aafter') : + (selectIndex + selectLine == index ? + (selectLine < 1 ? 'item action Aafter' : 'item action Abefore') : 'item')" v-for="(item, index) in dataList" :key="index"> <i class="after" v-if="index === 0"></i> <i class="after" v-else @click="selectItem(index, -1, dataList[index - 1])"></i> @@ -19,7 +19,7 @@ </div> </div> </template> - + <script> export default { @@ -36,6 +36,10 @@ export default { selectIndex: { type: Number, default: 1 + }, + reset: { + type: Boolean, + default: false } }, data() { @@ -46,6 +50,16 @@ export default { }, created() { + }, + watch: { + reset: { + handler(newV) { + if (newV) { + this.selectLine = -1; + } + }, + immediate: true, + }, }, methods: { selectItem(index, num, item) { @@ -60,7 +74,7 @@ export default { }, } </script> - + <style lang='scss' scoped> .congestion { width: 100%; @@ -204,5 +218,4 @@ export default { } } } -</style> - \ No newline at end of file +</style> \ No newline at end of file diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue index 516e4897..14477d93 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue @@ -57,8 +57,8 @@ :key="index" > <div class="title">{{ itm.deviceName }}</div> - <el-tooltip :content="(item.deviceState == 0 || item.deviceState == null) ? '离线' : '在线'" placement="top"> - <img src="@/assets/jihe/images/offline.svg" class="state" v-if="item.deviceState==0 || item.deviceState==null"> + <el-tooltip :content="(itm.deviceState == 0 || itm.deviceState == null) ? '离线' : '在线'" placement="top"> + <img src="@/assets/jihe/images/offline.svg" class="state" v-if="itm.deviceState=='0' || itm.deviceState==null"> <img src="@/assets/jihe/images/online.svg" class="state" v-else> </el-tooltip> <el-tooltip content="回读" placement="top"> @@ -455,7 +455,7 @@ export default { res.data.forEach((item) => { this.boardSizeDic[item.dictValue] = { label: item.dictLabel, - list: [], + list: [] }; }); }); @@ -533,6 +533,7 @@ export default { if (_.isString(item.otherConfig)) { item.otherConfig = JSON.parse(item.otherConfig); } + item.iotDeviceId = item.iotDeviceId || "null_" + item.id; this.boardSizeDic[item.otherConfig.screenSize].list.push(item); if (!this.selectedSize) { this.selectedSize = item.otherConfig.screenSize; @@ -569,7 +570,7 @@ export default { this.selectedBdMsg = []; this.selectedBdMsg = _.cloneDeep(testDeviceInfo.data["3A"].content); } else { - if (!deviceFrom.iotDeviceId) { + if (!deviceFrom.iotDeviceId || deviceFrom.iotDeviceId.includes("null_")) { this.$message.warning("设备未接入!"); return; } @@ -586,12 +587,16 @@ export default { } }, ____onAddTemplate() { + + // if(selectedSize){ + // fontSize = "64px" + // } this.editDialog = { visible: true, mode: "add", type: "template", tpl: { - content: "", + content: "" }, }; }, @@ -783,8 +788,8 @@ export default { return; } this.checkedDeviceIds = [arr.pop()]; - if (!this.checkedDeviceIds[0]) { - this.$message.warning("该设备缺少iotDeviceId参数!"); + if (!this.checkedDeviceIds[0] || this.checkedDeviceIds[0].includes("null_")) { + this.$message.warning("设备未接入!"); } this.selectedDevice = _.find(this.boardSizeDic[this.selectedSize].list, { iotDeviceId: this.checkedDeviceIds[0], diff --git a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js index cad7cfc3..208678ee 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js +++ b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js @@ -40,13 +40,13 @@ export const CameraDirectionEnum = { // text: "上下行 (双向)", // }, 1: { - text: "上行(菏泽方向)", + text: "菏泽方向", }, 2: { text: "中", }, 3: { - text: "下行(济南方向)", + text: "济南方向", }, }; diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 25f5969a..388187f1 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -51,8 +51,8 @@ module.exports = { // target: `http://10.0.81.204:8087`, //现场后台 刘文阁 // target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁 // target: `http://10.168.78.135:8087`, //王钦 - // target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2 - target: `http://10.168.68.42:8087`, //王思祥 + target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2 + // target: `http://10.168.68.42:8087`, //王思祥 changeOrigin: true, pathRewrite: { ["^" + process.env.VUE_APP_BASE_API]: "",