diff --git a/data-room-ui/packages/MapDataManagement/src/index.vue b/data-room-ui/packages/MapDataManagement/src/index.vue index d7e4a567..aa434332 100644 --- a/data-room-ui/packages/MapDataManagement/src/index.vue +++ b/data-room-ui/packages/MapDataManagement/src/index.vue @@ -272,19 +272,24 @@ export default { }, getDataList() { this.lazyResolveMap.clear() - this.searchLoading = true - this.loadingText = '正在加载地图数据...' - mapList(this.searchForm).then(res => { - this.mapList = res - this.searchLoading = false - }).catch(err => { - this.searchLoading = false + this.$nextTick(() => { + this.mapList = [] + }) + this.$nextTick(() => { + this.searchLoading = true + this.loadingText = '正在加载地图数据...' + mapList(this.searchForm).then(res => { + this.mapList = res + this.searchLoading = false + }).catch(err => { + this.searchLoading = false + }) + // 清除展开状态 + for (let i = 0; i < this.lazyResolveIds.length; i++) { + this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].loaded = false; + this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].expanded = false + } }) - // 清除展开状态 - for (let i = 0; i < this.lazyResolveIds.length; i++) { - this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].loaded = false; - this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].expanded = false - } }, /** * 新增、删除、修改等操作成功后刷新数据,不改变展开状态 @@ -295,7 +300,6 @@ export default { if (this.lazyResolveMap.get(parentId)) { // 刷新父节点 const { data, treeNode, resolve } = this.lazyResolveMap.get(parentId) - // debugger this.$set(this.$refs.table.store.states.lazyTreeNodeMap, parentId, []) this.load(data, treeNode, resolve) return @@ -330,8 +334,20 @@ export default { this.lazyResolveIds.push(data.id) mapList({ parentId: data.id - }).then(res => { - resolve(res) + }).then(childList => { + // 解决同一页中同一条数据同时出现,如果懒加载中存在,那么将之前查询出来的数据删除 + let deleteIdList = [] + childList.forEach((child) => { + this.mapList.forEach((mapInfo) => { + if (mapInfo.id === child.id) { + deleteIdList.push(mapInfo.id) + } + }) + }) + this.mapList = this.mapList.filter((map) => { + return deleteIdList.indexOf(map.id) === -1 + }) + resolve(childList) }).catch(err => { resolve([]) })