fix: 地图数据管理功能优化查重、显示等问题

地图数据管理功能优化查重、显示等问题
main
hong.yang 2 years ago
parent cd6dd0f769
commit 53e11cdc61

@ -97,6 +97,11 @@
:label="level.label"
:value="level.value"
/>
<el-option
v-if="![0,1,2,3,4].includes(mapForm.level)"
:value="mapForm.level"
:label="outRangeLabel"
/>
</el-select>
</el-form-item>
<el-form-item
@ -160,7 +165,7 @@
<script>
import vueJsonViewer from 'vue-json-viewer'
import { getMapChildFromGeoJson, mapAdd, repeatCheck } from 'data-room-ui/js/utils/mapDataService'
import { getMapChildFromGeoJson, mapAdd, repeatCheck, nameRepeatCheck } from 'data-room-ui/js/utils/mapDataService'
export default {
name: 'AddForm',
@ -171,6 +176,9 @@ export default {
autoParseNextLevelShow () {
// geoJson
return !this.isEmpty(this.mapForm.geoJson)
},
outRangeLabel() {
return `级别${this.mapForm.level}`;
}
},
data () {
@ -191,6 +199,18 @@ export default {
}
})
}
const validateName = (rule, value, callback) => {
nameRepeatCheck({
parentId: this.mapForm.parentId,
mapName: value
}).then(res => {
if (res) {
callback(new Error('地图名称已存在'))
} else {
callback()
}
})
}
return {
mapFormVisible: false,
geoJsonVisible: false,
@ -212,7 +232,8 @@ export default {
{ validator: validateCode, trigger: 'blur' }
],
name: [
{ required: true, message: '请输入地图名称', trigger: 'blur' }
{ required: true, message: '请输入地图名称', trigger: 'blur' },
{ validator: validateName, trigger: 'blur' }
],
level: [
{ required: true, message: '请选择地图级别', trigger: 'change' }

@ -93,6 +93,11 @@
:label="level.label"
:value="level.value"
/>
<el-option
v-if="![0,1,2,3,4].includes(mapForm.level)"
:value="mapForm.level"
:label="outRangeLabel"
/>
</el-select>
</el-form-item>
<el-form-item
@ -158,7 +163,7 @@
<script>
import _ from 'lodash'
import vueJsonViewer from 'vue-json-viewer'
import { mapUpdate, getMapChildFromGeoJson } from 'data-room-ui/js/utils/mapDataService'
import { mapUpdate, getMapChildFromGeoJson, nameRepeatCheck } from 'data-room-ui/js/utils/mapDataService'
export default {
name: 'EditForm',
@ -169,6 +174,9 @@ export default {
autoParseNextLevelShow () {
// geoJson
return !this.isWhitespace(this.mapForm.geoJson) && this.mapForm.uploadedGeoJson === 0
},
outRangeLabel() {
return `级别${this.mapForm.level}`;
}
},
data () {
@ -181,7 +189,7 @@ export default {
getMapChildFromGeoJson(this.mapForm.parentId).then(children => {
let repeat = false
children.forEach(child => {
if (child.exist && child.name === value) {
if (child.exist && child.name === value && child.existId !== this.mapForm.id) {
repeat = true
}
})
@ -192,6 +200,24 @@ export default {
}
})
}
const validateName = (rule, value, callback) => {
if (this.mapForm.parentId !== '0') {
//
callback()
return
}
nameRepeatCheck({
id: this.mapForm.id,
parentId: this.mapForm.parentId,
mapName: value
}).then(res => {
if (res) {
callback(new Error('地图名称已存在'))
} else {
callback()
}
})
}
return {
mapFormVisible: false,
geoJsonVisible: false,
@ -213,7 +239,8 @@ export default {
{ validator: validateCode, trigger: 'blur' }
],
name: [
{ required: true, message: '请输入地图名称', trigger: 'blur' }
{ required: true, message: '请输入地图名称', trigger: 'blur' },
{ validator: validateName, trigger: 'blur' }
],
level: [
{ required: true, message: '请选择地图级别', trigger: 'change' }

@ -11,6 +11,7 @@
class="bs-el-input"
clearable
maxlength="200"
@clear="getDataList"
placeholder="请输入地图名称或标识"
/>
</el-form-item>
@ -67,19 +68,19 @@
<el-empty slot="empty"/>
<el-table-column
align="left"
label="名称"
label="地图名称"
prop="name"
show-overflow-tooltip
/>
<el-table-column
align="center"
label="标识"
label="地图标识"
prop="mapCode"
show-overflow-tooltip
/>
<el-table-column
align="center"
label="级别"
label="地图级别"
prop="level"
show-overflow-tooltip
>
@ -89,6 +90,7 @@
<span v-else-if="scope.row.level === 2">省份</span>
<span v-else-if="scope.row.level === 3">城市</span>
<span v-else-if="scope.row.level === 4">区县</span>
<span v-else>{{ getMoreLevel(scope.row.level) }}</span>
</template>
</el-table-column>
<el-table-column
@ -282,6 +284,9 @@ export default {
this.$refs.table.store.states.treeData[this.lazyResolveIds[i]].expanded = false
}
},
getMoreLevel(level) {
return '级别' + level
},
addMap() {
this.$refs.addForm.mapFormVisible = true
this.$refs.addForm.init()
@ -303,14 +308,21 @@ export default {
type: 'warning',
customClass: 'bs-el-message-box'
}).then(async () => {
mapDelete(map.id).then(() => {
this.$message({
type: 'success',
message: '删除成功'
})
this.getDataList()
mapDelete(map.id).then((deleteSuccess) => {
if (deleteSuccess) {
this.$message({
type: 'success',
message: '删除成功'
})
this.getDataList()
} else {
this.deleteMapCascade(map)
}
}).catch(() => {
this.deleteMapCascade(map)
this.$message({
type: 'error',
message: '删除失败'
})
})
}).catch(() => {
})

@ -57,7 +57,14 @@ const uploadGeoJson = (params = {}, flag = false) => Vue.prototype.$dataRoomAxio
* @param params
* @param flag
*/
const repeatCheck = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.post('/bigScreen/map/repeat', params, flag)
const repeatCheck = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.post('/bigScreen/map/repeat/code', params, flag)
/**
* 名称重复校验
* @param params
* @param flag
*/
const nameRepeatCheck = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.post('/bigScreen/map/repeat/name', params, flag)
export {
mapList,
@ -67,5 +74,6 @@ export {
mapCascadeDelete,
getMapChildFromGeoJson,
uploadGeoJson,
repeatCheck
repeatCheck,
nameRepeatCheck
}

Loading…
Cancel
Save