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: [],
active: "事件专题",
tabContentData: [],
nowSelected: null, // title
nowSelectedCompleted: true, //
// -
dialogConfig: {
// 0 ControlCamera | 1 Camera
@ -161,6 +162,7 @@ export default {
this.active = layerData[defaultActive].title;
this.minLayers = 3;
this.emitter.on("selectedCompleted", this.selectedCompletedHandle);
},
mounted() {
// Layer
@ -176,7 +178,13 @@ export default {
getMinMapLayers();
},
beforeDestroy() {
this.emitter.off("selectedCompleted", this.selectedCompletedHandle);
},
methods: {
selectedCompletedHandle(item) {
if (this.nowSelected === item.title) this.nowSelectedCompleted = true;
},
setFilterDataNoAction(data) { //data
this.filterData = data;
},
@ -219,6 +227,10 @@ export default {
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";
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);
},
handleDevice: debounce(function (item) {
this.handleDeviceImmediate(item);
handleDevice: debounce(async function (item) {
await this.handleDeviceImmediate(item);
}, 360),
handleCleared() {
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
);
addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
cacheRemoveFunc[`地图路测设备/${item.title}`] = () => {
cbCall();
@ -225,6 +225,7 @@ export const eventMap = {
);
addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
cacheRemoveFunc[`地图事件专题/${item.title}`] = () => {
cbCall();
@ -275,6 +276,7 @@ export const eventMap = {
);
addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault);
this.emitter.emit("selectedCompleted", item);
loadingMessage?.close();

Loading…
Cancel
Save