diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue index 9ff12937..9f36b8bb 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue @@ -148,7 +148,7 @@ export default { await Promise.allSettled((this.tabContentData || []).map(item => this.handleDeviceImmediate(item, true))) Object.keys(lngLatMap).forEach(key => { addInGraphHandle(lngLatMap[key]); - }) + }); } } }, @@ -227,15 +227,20 @@ export default { const status = item.status; - console.log(item, "item"); - if (!status) { this.nowSelected = item.title; this.nowSelectedCompleted = false; } + if (!status) { //开启 + this.nowSelected = item.title; + this.nowSelectedCompleted = false; + } else if (this.nowSelected === item.title && this.nowSelectedCompleted === false) return; item.status = item.status ? "" : "_active"; console.log("%c [ key ]-102-「index.vue」", "font-size:15px; background:#9d63e9; color:#e1a7ff;", key); - if (!eventMap[`${key}${status ? "_close" : ""}`]) return this.$emit("onClickItem", item); + if (!eventMap[`${key}${status ? "_close" : ""}`]) { + this.emitter.emit("selectedCompleted", item); + return this.$emit("onClickItem", item); + } console.log(`${key}${status ? "_close" : ""}`, this.filterData, isDefault) await eventMap[`${key}${status ? "_close" : ""}`]?.call(this, item, this.filterData, isDefault, this.cb); diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js index bd316ae4..ef317ae9 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js @@ -144,9 +144,11 @@ export const eventMap = { loadingMessage?.close(); - if (!data) return; - if (!data.length && !isDefault) + if (!data) return this.emitter.emit("selectedCompleted", item); + if (!data.length && !isDefault) { + this.emitter.emit("selectedCompleted", item); return Message.warning(`未查询到${item.title}设备!`); + } eventMap[`地图路测设备/map_close`](item); const cbCall = () => @@ -200,10 +202,12 @@ export const eventMap = { loadingMessage?.close(); - if (!data) return; + if (!data) return this.emitter.emit("selectedCompleted", item); - if (!data.length && !isDefault) + if (!data.length && !isDefault) { + this.emitter.emit("selectedCompleted", item); return Message.warning(`没有${item.title}事件数据!`); + } eventMap[`地图事件专题/map_close`](item); const cbCall = () => cb?.(item, { deviceType: `事件专题_${deviceType}` }); @@ -257,10 +261,12 @@ export const eventMap = { .catch(() => {}); loadingMessage?.close(); - if (!data) return; + if (!data) return this.emitter.emit("selectedCompleted", item); - if (!data?.length && !isDefault) + if (!data?.length && !isDefault) { + this.emitter.emit("selectedCompleted", item); return Message.warning(`没有${item.title}数据!`); + } eventMap[`事件专题/感知事件_close`](item); const cbCall = () => cb?.(item, { deviceType: `感知事件_${warningState}` }); @@ -338,4 +344,5 @@ function removeDataPreHandle(markers) { } }; lngLatMapHandle(markers, cb); + window.renderData?.(window.page); //移除后,重新渲染弹出框更新数据 } 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 e5724ffc..e5c69034 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,7 +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"; +import { upperFirst, filter } from "lodash"; /** * @typedef {Object} Point * @property {number} weight - The weight of the item. @@ -27,6 +27,7 @@ const normalBg = require(`@screen/images/mapBg/active.svg`); const faultTitleBg = require(`@screen/images/mapBg/fault_title.svg`); const normalTitleBg = require(`@screen/images/mapBg/active_title.svg`); +const eventRegex = "./事件专题"; /** * 聚合点 */ @@ -126,6 +127,12 @@ export class MarkerCluster { const startIndex = (page - 1) * pageSize; const endIndex = startIndex + pageSize; let num = (page - 1) * pageSize; + if (data.length === 0 || data.length === 1) { + return this.infoWindow.close(); + } + const { latitude: lat, longitude: lng } = data[0].extData; + const lngLatStr = `${parseFloat(lng)}/${parseFloat(lat)}`; //更新清除节点后的数据 + data = lngLatMap[lngLatStr]; // 截取当前页的数据 const currentPageData = data.slice(startIndex, endIndex); window.currentPageData = currentPageData; @@ -145,7 +152,7 @@ export class MarkerCluster { .join(""); // 渲染当前页数据 dataContainer.innerHTML = itemsTpl; - dataPage.innerHTML = `第${page}页`; + dataPage && (dataPage.innerHTML = `第${page}页`); bindItemClick(); } @@ -483,9 +490,9 @@ export function marksAddInGraph(data) { export function addInGraphHandle(data) { const graphInstance = window.graphInstance; const extData = data[0].extData; - console.log(extData, "extData"); + // console.log(extData, "extData11111"); const { item: eventItem } = data[0].config; - if (eventItem.id.match("./事件专题")) { + if (eventItem.id.match(eventRegex)) { let { stakeMark, lang, direction } = extData; stakeMark = upperFirst(stakeMark); //统一格式 大写K const distance = @@ -515,11 +522,12 @@ export function addInGraphHandle(data) { }); // }, 0); } - console.log(lang, "lang"); + // console.log(lang, "lang"); } } function getDataConf(data, extData) { + data = data.filter((item) => item.config.item.id.match(eventRegex)); let dataConf; const nowBg = getState(data) ? normalBg : faultBg; if (data.length === 1) { 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 7608e4bc..89fea858 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 @@ -231,7 +231,7 @@ export default { if (this.activeName == '-1') { url = '/business/warning/export' } else { - url = '/dc/system/event/export'; + url = '/dc/system/event/export?eventState=' + this.searchData.eventState; } let loadingInstance = Loading.service({ fullscreen: true,