diff --git a/data-room-ui/packages/MapDataManagement/src/AddForm.vue b/data-room-ui/packages/MapDataManagement/src/AddForm.vue
index aaa29c16..675344e1 100644
--- a/data-room-ui/packages/MapDataManagement/src/AddForm.vue
+++ b/data-room-ui/packages/MapDataManagement/src/AddForm.vue
@@ -97,6 +97,11 @@
:label="level.label"
:value="level.value"
/>
+
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' }
diff --git a/data-room-ui/packages/MapDataManagement/src/EditForm.vue b/data-room-ui/packages/MapDataManagement/src/EditForm.vue
index 5212f062..5f4829cd 100644
--- a/data-room-ui/packages/MapDataManagement/src/EditForm.vue
+++ b/data-room-ui/packages/MapDataManagement/src/EditForm.vue
@@ -93,6 +93,11 @@
:label="level.label"
:value="level.value"
/>
+
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' }
diff --git a/data-room-ui/packages/MapDataManagement/src/index.vue b/data-room-ui/packages/MapDataManagement/src/index.vue
index ee309ad8..07cfa6fb 100644
--- a/data-room-ui/packages/MapDataManagement/src/index.vue
+++ b/data-room-ui/packages/MapDataManagement/src/index.vue
@@ -11,6 +11,7 @@
class="bs-el-input"
clearable
maxlength="200"
+ @clear="getDataList"
placeholder="请输入地图名称或标识"
/>
@@ -67,19 +68,19 @@
@@ -89,6 +90,7 @@
省份
城市
区县
+ {{ getMoreLevel(scope.row.level) }}
{
- 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(() => {
})
diff --git a/data-room-ui/packages/js/utils/mapDataService.js b/data-room-ui/packages/js/utils/mapDataService.js
index 473d6f8f..c91023c7 100644
--- a/data-room-ui/packages/js/utils/mapDataService.js
+++ b/data-room-ui/packages/js/utils/mapDataService.js
@@ -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
}