Browse Source

fix 连续点击俩次关闭时, 异步导致的数据不一致问题

wangqin
qingzhengli 11 months ago
parent
commit
71c26ab7b8
  1. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  2. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js

18
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue

@ -96,7 +96,8 @@ export default {
layerData: [], layerData: [],
active: "事件专题", active: "事件专题",
tabContentData: [], tabContentData: [],
nowSelected: null, // title
nowSelectedCompleted: true, //
// - // -
dialogConfig: { dialogConfig: {
// 0 ControlCamera | 1 Camera // 0 ControlCamera | 1 Camera
@ -161,6 +162,7 @@ export default {
this.active = layerData[defaultActive].title; this.active = layerData[defaultActive].title;
this.minLayers = 3; this.minLayers = 3;
this.emitter.on("selectedCompleted", this.selectedCompletedHandle);
}, },
mounted() { mounted() {
// Layer // Layer
@ -176,7 +178,13 @@ export default {
getMinMapLayers(); getMinMapLayers();
}, },
beforeDestroy() {
this.emitter.off("selectedCompleted", this.selectedCompletedHandle);
},
methods: { methods: {
selectedCompletedHandle(item) {
if (this.nowSelected === item.title) this.nowSelectedCompleted = true;
},
setFilterDataNoAction(data) { //data setFilterDataNoAction(data) { //data
this.filterData = data; this.filterData = data;
}, },
@ -219,6 +227,10 @@ export default {
const status = item.status; const status = item.status;
console.log(item, "item");
if (!status) { this.nowSelected = item.title; this.nowSelectedCompleted = false; }
else if (this.nowSelected === item.title && this.nowSelectedCompleted === false) return;
item.status = item.status ? "" : "_active"; item.status = item.status ? "" : "_active";
console.log("%c [ key ]-102-「index.vue」", "font-size:15px; background:#9d63e9; color:#e1a7ff;", key); console.log("%c [ key ]-102-「index.vue」", "font-size:15px; background:#9d63e9; color:#e1a7ff;", key);
@ -228,8 +240,8 @@ export default {
await eventMap[`${key}${status ? "_close" : ""}`]?.call(this, item, this.filterData, isDefault, this.cb); await eventMap[`${key}${status ? "_close" : ""}`]?.call(this, item, this.filterData, isDefault, this.cb);
}, },
handleDevice: debounce(function (item) { handleDevice: debounce(async function (item) {
this.handleDeviceImmediate(item); await this.handleDeviceImmediate(item);
}, 360), }, 360),
handleCleared() { handleCleared() {
const { mapIns } = this.getMap(); const { mapIns } = this.getMap();

4
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js

@ -166,8 +166,8 @@ export const eventMap = {
removeData removeData
); );
addDataPreHandle(removeData); addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault); markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
cacheRemoveFunc[`地图路测设备/${item.title}`] = () => { cacheRemoveFunc[`地图路测设备/${item.title}`] = () => {
cbCall(); cbCall();
@ -225,6 +225,7 @@ export const eventMap = {
); );
addDataPreHandle(removeData); addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault); markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
cacheRemoveFunc[`地图事件专题/${item.title}`] = () => { cacheRemoveFunc[`地图事件专题/${item.title}`] = () => {
cbCall(); cbCall();
@ -275,6 +276,7 @@ export const eventMap = {
); );
addDataPreHandle(removeData); addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault); markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
loadingMessage?.close(); loadingMessage?.close();

Loading…
Cancel
Save