fix: 优化地图数据管理,在新增、修改、删除等操作后保持展开状态

优化地图数据管理,在新增、修改、删除等操作后保持展开状态
main
hong.yang 2 years ago
parent 4e34bb64a7
commit 14178da59b

@ -289,7 +289,10 @@ export default {
geoJson: geoJson
}).then(res => {
this.mapFormVisible = false
this.$emit('refresh')
this.$emit('refresh', {
id: res,
parentId: this.mapForm.parentId
})
})
})
},

@ -286,7 +286,10 @@ export default {
geoJson: geoJson
}).then(res => {
this.mapFormVisible = false
this.$emit('refresh')
this.$emit('refresh', {
id: this.mapForm.id,
parentId: this.mapForm.parentId
})
})
})
},

@ -144,11 +144,11 @@
</div>
<add-form
ref="addForm"
@refresh="getDataList"
@refresh="refreshData"
/>
<edit-form
ref="editForm"
@refresh="getDataList"
@refresh="refreshData"
/>
<el-dialog
:close-on-click-modal="false"
@ -195,7 +195,7 @@
<script>
import table from 'data-room-ui/js/utils/table.js'
import {mapList, mapDelete, uploadGeoJson, mapCascadeDelete} from 'data-room-ui/js/utils/mapDataService'
import {mapList, mapDelete, uploadGeoJson, mapCascadeDelete, mapInfo} from 'data-room-ui/js/utils/mapDataService'
import AddForm from "./AddForm"
import EditForm from "./EditForm"
import vueJsonViewer from 'vue-json-viewer'
@ -218,6 +218,7 @@ export default {
searchLoading: false,
geoJsonVisible: false,
lazyResolveIds: [],
lazyResolveMap: new Map(),
searchForm: {
searchKey: '',
level: null,
@ -270,6 +271,7 @@ export default {
})
},
getDataList() {
this.lazyResolveMap.clear()
this.searchLoading = true
this.loadingText = '正在加载地图数据...'
mapList(this.searchForm).then(res => {
@ -284,6 +286,38 @@ export default {
this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].expanded = false
}
},
/**
* 新增删除修改等操作成功后刷新数据,不改变展开状态
* @param cbObj
*/
refreshData(cbObj) {
let parentId = cbObj.parentId
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
}
if (parentId === '0' || parentId === 0) {
//
this.getDataList()
return
}
mapInfo(parentId).then((res) => {
parentId = res.parentId
if (this.lazyResolveMap.get(parentId)) {
//
const { data, treeNode, resolve } = this.lazyResolveMap.get(parentId)
this.$set(this.$refs.table.store.states.lazyTreeNodeMap, parentId, [])
this.load(data, treeNode, resolve)
} else {
//
this.getDataList()
}
})
},
getMoreLevel(level) {
return '级别' + level
},
@ -292,6 +326,7 @@ export default {
this.$refs.addForm.init()
},
load(data, treeNode, resolve) {
this.lazyResolveMap.set(data.id, { data, treeNode, resolve })
this.lazyResolveIds.push(data.id)
mapList({
parentId: data.id
@ -314,7 +349,10 @@ export default {
type: 'success',
message: '删除成功'
})
this.getDataList()
this.refreshData({
id: map.id,
parentId: map.parentId
})
} else {
this.deleteMapCascade(map)
}
@ -351,7 +389,10 @@ export default {
type: 'success',
message: '删除成功'
})
this.getDataList()
this.refreshData({
id: map.id,
parentId: map.parentId
})
}).catch(() => {
})
}).catch(() => {
@ -414,7 +455,11 @@ export default {
message: '上传成功'
})
this.geoJsonVisible = false
this.getDataList()
//
this.refreshData({
id: this.currentMap.id,
parentId: this.currentMap.parentId
})
}).catch(err => {
this.$message({
type: 'error',

@ -66,6 +66,12 @@ const repeatCheck = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.
*/
const nameRepeatCheck = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.post('/bigScreen/map/repeat/name', params, flag)
/**
* 根据父编码解析父级json中的子级
* @param id
*/
const mapInfo = (id = '-1') => Vue.prototype.$dataRoomAxios.get(`/bigScreen/map/info/${id}`)
export {
mapList,
mapAdd,
@ -75,5 +81,6 @@ export {
getMapChildFromGeoJson,
uploadGeoJson,
repeatCheck,
nameRepeatCheck
nameRepeatCheck,
mapInfo
}

Loading…
Cancel
Save