diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js index 7ee027b35..acca604a0 100644 --- a/nezha-fronted/src/components/common/language/cn.js +++ b/nezha-fronted/src/components/common/language/cn.js @@ -556,7 +556,8 @@ const cn = { noAccess: '无访问权限', confirmDuplicate: '确认复制吗?', confirmCancel: '您所做的修改将不会被保存?', - copySuccess: '复制成功' + copySuccess: '复制成功', + lnglatError: '经纬度格式错误' }, asset: { asset: '资产', diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index 55322d343..e44b4d342 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -563,7 +563,8 @@ const en = { noAccess: 'No access', confirmDuplicate: 'Are you sure to duplicate this chart?', confirmCancel: 'Changes you made are not saved?', - copySuccess: 'Copy success' + copySuccess: 'Copy success', + lnglatError: 'Wrong format of latitude and longitude' }, asset: { asset: 'Asset ', diff --git a/nezha-fronted/src/components/common/latlngPicker.vue b/nezha-fronted/src/components/common/latlngPicker.vue index 74348981d..c8df0b41d 100644 --- a/nezha-fronted/src/components/common/latlngPicker.vue +++ b/nezha-fronted/src/components/common/latlngPicker.vue @@ -2,7 +2,7 @@
- +
@@ -35,6 +35,7 @@ export default { data () { return { lnglat: '', + oldlnglat: '', mapParam: { longitude: 116.39, latitude: 39.9, zoom: 4, minZoom: 1, maxZoom: 10 }, map: null, marker: null, @@ -49,6 +50,18 @@ export default { } this.lnglat = this.mapParam.longitude + ',' + this.mapParam.latitude }, + watch: { + initData: { + handler () { + if (this.initData) { + this.mapParam = JSON.parse(JSON.stringify(this.initData)) + } else { + this.queryDefaultMapConfig() + } + this.lnglat = this.mapParam.longitude + ',' + this.mapParam.latitude + } + } + }, mounted () { }, methods: { @@ -123,6 +136,21 @@ export default { this.lnglat = this.mapParam.longitude + ',' + this.mapParam.latitude } }, + changeLnglat () { + const lnglat = this.lnglat.split(',') + if (lnglat.length !== 2) { + this.lnglat = this.oldlnglat + this.$message.error(this.$t('tip.lnglatError')) + return false + } + const lngReg = /^[\-\+]?(0?\d{1,2}\.\d{1,5}|1[0-7]?\d{1}\.\d{1,5}|180\.0{1,5})$/ + const latReg = /^[\-\+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/ + if (!lngReg.test(lnglat[0]) || !latReg.test(lnglat[1])) { + this.lnglat = this.oldlnglat + this.$message.error(this.$t('tip.lnglatError')) + return false + } + }, queryDefaultMapConfig: function () { this.$get('/sysConfig?paramKey=map_center_config').then(response => { if (response.code == 200) { diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue index 72ccecb52..bd241a1ac 100644 --- a/nezha-fronted/src/components/page/config/system.vue +++ b/nezha-fronted/src/components/page/config/system.vue @@ -446,7 +446,6 @@ export default { this.$refs[formName].validate((valid) => { if (valid) { const param = Object.assign({}, this[type]) - if (type == 'basic') { const mapConfig = this.$refs.latlngPicker.getAttribute() param.map_center_config = JSON.stringify(mapConfig)