diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue index 93f035b3..cc8374da 100644 --- a/ruoyi-ui/src/App.vue +++ b/ruoyi-ui/src/App.vue @@ -21,16 +21,19 @@ export default { name: "App", data() { return { - path: this.$route.path, + // path: this.$route.path, }; }, + mounted(){ + this.$store.commit("menu/resetRecent"); + }, components: { websocket, // websocket_phone }, watch: { $route(to, from) { - this.path = this.$route.path; + // this.path = this.$route.path; }, }, metaInfo() { diff --git a/ruoyi-ui/src/store/modules/menu.js b/ruoyi-ui/src/store/modules/menu.js index 6f0103f4..bd024a7c 100644 --- a/ruoyi-ui/src/store/modules/menu.js +++ b/ruoyi-ui/src/store/modules/menu.js @@ -1,3 +1,4 @@ +import Vue from "vue" const state = { recentPages: [], isRecentOpen:"", @@ -5,12 +6,12 @@ const state = { const mutations = { saveRecent(state){ - sessionStorage.setItem("recentPages", JSON.stringify(state.recentPages)); + localStorage.setItem("recentPages", JSON.stringify(state.recentPages)); }, addRecent(state, item) { if(state.recentPages.length == 0 ){ - state.recentPages = JSON.parse(sessionStorage.getItem("recentPages") || "[]"); + state.recentPages = JSON.parse(localStorage.getItem("recentPages") || "[]"); } let temp; state.recentPages.forEach((unit,index)=>{ @@ -29,13 +30,22 @@ const state = { mutations.saveRecent(state); }, + pinRecent(state, item){ + state.recentPages.forEach((unit, index) => { + if (unit.path == item.path) { + // unit.isPinned = !unit.isPinned; + Vue.prototype.$set(unit, "isPinned", !unit.isPinned); + } + }); + mutations.saveRecent(state); + }, openRecent(state){ state.isRecentOpen = true; - sessionStorage.setItem("isRecentOpen", true); + localStorage.setItem("isRecentOpen", true); }, closeRecent(state){ state.isRecentOpen = false; - sessionStorage.setItem("isRecentOpen", false); + localStorage.setItem("isRecentOpen", false); }, removeRecent(state, item) { let i = state.recentPages.findIndex(unit => unit.path == item.path); @@ -43,9 +53,15 @@ const state = { mutations.saveRecent(state); }, resetRecent(state, para){ - state.isRecentOpen = false; - sessionStorage.setItem("isRecentOpen", false); - sessionStorage.removeItem("recentPages") + let temp = JSON.parse(localStorage.getItem("recentPages") || "[]"); + state.recentPages = []; + temp.forEach((unit, index) => { + if (unit.isPinned) { + state.recentPages.push(unit); + } + }); + localStorage.setItem("recentPages", JSON.stringify(state.recentPages)); + state.isRecentOpen = true; } } @@ -53,7 +69,7 @@ const state = { const getters = { isRecentOpen(state){ if (state.isRecentOpen === ""){ - state.isRecentOpen = JSON.parse(sessionStorage.getItem("isRecentOpen")) || false; + state.isRecentOpen = JSON.parse(localStorage.getItem("isRecentOpen")) || false; } return state.isRecentOpen; } diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/ContextMenu.vue b/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/ContextMenu.vue new file mode 100644 index 00000000..8d61145c --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/ContextMenu.vue @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/index.vue index 1450ffd4..0562463e 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/RecentPages/index.vue @@ -1,24 +1,39 @@ + + diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/components/chart.js b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/components/chart.js new file mode 100644 index 00000000..8d786f83 --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/components/chart.js @@ -0,0 +1,114 @@ +import * as echarts from "echarts"; + +export const lineChartOption = { + color: ["#2AD9FD"], + xAxis: { + name: "时", + type: "category", + // boundaryGap: ["15%", "15%"], + nameTextStyle: { + color: "#2AD9FD", + align: "right", + fontSize: 15, + padding: [0, -15, 0, 0], + }, + boundaryGap: false, + data: ['00:00','02:00','04:00','06:00'], + axisTick: { + show: false, + }, + axisLabel: { + color: "#fff", + fontSize: 12, + }, + axisLine: { + lineStyle: { + color: "#668598", + }, + }, + }, + yAxis: { + name: "辆", + type: "value", + nameTextStyle: { + color: "#2AD9FD", + // align: "right", + fontSize: 15, + // padding: [0, -15, 0, 0], + }, + // nameGap: 24, + splitLine: { + lineStyle: { + type: [6, 9], + color: "rgba(255,255,255, .3)", + // dashOffset: [10, 10], + // cap: 21, + // width: 2 + }, + }, + axisLabel: { + color: "#fff", + fontSize: 12, + formatter: "{value}", + }, + }, + grid: { + left: 33, + top: 33, + bottom: 24, + right: 36, + }, + tooltip: { + trigger: "axis", + backgroundColor: "rgba(0,0,0,0.36)", + borderWidth: 0, + textStyle: { + color: "#fff", + }, + formatter: "{b}:{c}", + // formatter: function([axisData]) { + // console.log(axisData) + // let str = axisData.name + ' ' + axisData.data + '辆
'; + // // params.forEach(item => { + // // if (item.seriesName === '供温' || item.seriesName === '回温') { + // // str += item.marker + item.seriesName + ' : ' + item.data.value + ' ℃' + '
'; + // // } else if (item.seriesName === '压力值(Mpa)') { + // // // 柱状图渐变时设置marker + // // item.marker = ''; + // // str += item.marker + item.seriesName + ' : ' + item.data.value + ' m'; + // // } + // // }); + // return str; + // } + }, + legend: { + textStyle: { + color: '#2AD9FD' + } + }, + series: [ + { + data: [1,2,3,4], + type: "line", + showSymbol: false, + smooth: true, + name: '温度(℃)', + lineStyle: { + color: "#2AD9FD", + }, + areaStyle: { + opacity: 0.8, + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: "rgb(90, 227, 255, .9)", + }, + { + offset: 1, + color: "rgba(42,217,253,0)", + }, + ]), + }, + }, + ], +}; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/index.vue new file mode 100644 index 00000000..57ad41ac --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MeteorologicalDetection/index.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/components/DeviceParams.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/components/DeviceParams.vue index 3241e95e..99d76608 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/components/DeviceParams.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/components/DeviceParams.vue @@ -63,12 +63,15 @@ export default { }).then(result => { if (result.code != 200) return Message.error("操作失败"); result.data.forEach(item => { - devs.push({ - label: item.propertyName, - key: item.property, - gridColumn: 3, - }); - this.devicesData[item.property] = item.formatValue; + if (item.propertyName) { + devs.push({ + label: item.propertyName, + key: item.property, + gridColumn: 3, + }); + this.devicesData[item.property] = item.formatValue; + } + }); this.devicesList = devs; }) diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/index.vue index ba20ca4d..a9008e70 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SolarEnergy/index.vue @@ -156,11 +156,18 @@ div.switcher { diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue index e2d45106..39254f5b 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue @@ -6,7 +6,8 @@ --> - + @@ -196,8 +197,8 @@ export default { handler(bool) { if (!bool) return; this.propData?.id ? this.mode = 'edit' : this.mode = 'add'; - this.transformData(); this.initBasicData(); + this.transformData(); }, }, }, @@ -220,6 +221,7 @@ export default { this.editData.devices = _.map(this.propData.devices, "id"); // { "STAY": 90, "ACTION": "1", "SPEED": "0", "COLOR": "ffff00", "FONT": "3", "FONT_SIZE": "24", "CONTENT": "长清收费站\\\\n出入口封闭", "width": "160", "height": "80", "formatStyle": "2" } if (this.propData.deviceType == "2"){ + console.log(this.propData.params , "++========"); this.editData.type2 = BoardUtils.contentToDeviceItem(this.propData.params); } else if (["5","10","13"].includes(this.propData.deviceType)){ this.editData["type" + this.propData.deviceType] = { ...this.propData.params}; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/boardRecord/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/boardRecord/index.vue index 17a99026..3c45b286 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/boardRecord/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/boardRecord/index.vue @@ -22,36 +22,36 @@
- - - + + + + + + + - - - + - - - - -
@@ -74,6 +74,7 @@ import BoardRecordPreview from '@screen/components/infoBoard/BoardRecordPreview. import {DirectionTypes} from '@screen/utils/enum.js'; import InputSearch from "@screen/components/InputSearch/index.vue"; import { searchFormList } from "./data"; +import moment from "moment"; export default { name: 'boardRecord', @@ -86,6 +87,7 @@ export default { }, data() { return { + moment, testData : {"STAY":"30","ACTION":"1","SPEED":"0","COLOR":"ffff00","FONT":"3","FONT_SIZE":"32","CONTENT":"因改扩建施工 平阴南、梁山收费站出入口封闭","width":"768","height":"64","formatStyle":"2"}, tableData: [], searchFormList, diff --git a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js index 3c4c97e6..c77e90ab 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js +++ b/ruoyi-ui/src/views/JiHeExpressway/utils/enum.js @@ -126,7 +126,7 @@ export const RoadNFTopics = { 服务区: 6, 停车区: 7, 清障驻点: 8, - 边坡: 9 + 边坡: 9, }; // 事件类型 eventType @@ -168,21 +168,21 @@ export const InfoWarningSource = { }; export const warningSourceMapping = { - 1: '视频AI', - 2: '雷达识别', - 3: '锥桶', - 4: '护栏碰撞', - 5: '扫码报警', - 6: '非机预警', + 1: "视频AI", + 2: "雷达识别", + 3: "锥桶", + 4: "护栏碰撞", + 5: "扫码报警", + 6: "非机预警", // 7: '气象监测器' -} +}; export const warningStateMapping = { - 1: '上报', - 2: '已完成', - 3: '已终止', - 4: '自动结束' -} + 1: "上报", + 2: "已完成", + 3: "已终止", + 4: "自动结束", +}; // 感知事件主类 warningType export const WarningType = { @@ -288,16 +288,16 @@ export const trafficType = Object.keys(EventTopics).reduce((prev, now) => { //激光疲劳唤醒工作模式 export const awakerWorkModeDic = { - "0": "激光关闭", - "1": "常亮模式", - "2": "间隔100ms闪烁模式", - "3": "间隔200ms闪烁模式", - "4": "间隔500ms闪烁模式", - "5": "2次闪烁模式", - "6": "SOS模式", - "7": "自定义模式1", - "8": "自定义模式2", - "9": "自定义模式3", + 0: "激光关闭", + 1: "常亮模式", + 2: "间隔100ms闪烁模式", + 3: "间隔200ms闪烁模式", + 4: "间隔500ms闪烁模式", + 5: "2次闪烁模式", + 6: "SOS模式", + 7: "自定义模式1", + 8: "自定义模式2", + 9: "自定义模式3", }; // 感知事件主类的子类(上方) warningSubclass @@ -1077,14 +1077,14 @@ export const EventSubclass = { "9-6": "其他", "10-1": "雨", "10-2": "雪", - "10-3":"雾", - "10-4":"大风", - "10-5":"低温寒潮", - "10-6":"路面积雪", - "10-7":"路面结冰", - "10-8":"路面积水", - "10-9":"其他", - "11-1":"其他事件" + "10-3": "雾", + "10-4": "大风", + "10-5": "低温寒潮", + "10-6": "路面积雪", + "10-7": "路面结冰", + "10-8": "路面积水", + "10-9": "其他", + "11-1": "其他事件", }; export const directionOptions = [ { value: "1", label: "菏泽方向" }, @@ -1181,4 +1181,62 @@ export const usageStatus = { 1: { text: "未使用", }, -} \ No newline at end of file +}; +//路面类型 +export const remoteRoadSurfaceStatus = { + "00": { + text: "干燥", + }, + "01": { + text: "潮湿", + }, + "02": { + text: "积水", + }, + "03": { + text: "结冰", + }, + "04": { + text: "积雪", + }, + "05": { + text: "冰水混合物", + }, + "06": { + text: "泥泞", + }, +}; + +//下雨类型 +export const precipitationType = { + 0: { + text: "无降雨", + }, + 1: { + text: "雨", + }, + 2: { + text: "雪", + }, + 3: { + text: "毛毛雨", + }, + 4: { + text: "雨夹雪", + }, +}; +//能见度类型 +export const visibilityType = { + 4: { + text: "良好", + }, + 3: { + text: "阴霾", + }, + 2: { + text: "雾", + }, + 1: { + text: "浓雾", + }, +}; diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 35bf9094..77f27227 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -52,9 +52,9 @@ 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.66.196:8087`, //正晨后台 连现场物联 刘文阁2 // target: `http://10.168.68.42:8087`, //王思祥 - target: `http://10.168.72.174:8087`, //赵祥龙 + // target: `http://10.168.72.174:8087`, //赵祥龙 // target: `http://10.168.65.156:8097`, //孟 // target: `http://10.168.56.165:8087`, //王家宝 // target: `http://10.168.77.128:8087`, //王兴琳