Commit 10af00106e44a64faa1c40a00b1e1e8ed0379958
Merge branch 'fix/DEFECT-1935' into 'main_dev'
fix: 修复3D地图选择其他省份在选回中国 点击地图会报错 并且之前选择的省份会保留数据 See merge request yunteng/thingskit-view!195
Showing
2 changed files
with
18 additions
and
7 deletions
@@ -49,11 +49,18 @@ onMounted(async () => { | @@ -49,11 +49,18 @@ onMounted(async () => { | ||
49 | }) | 49 | }) |
50 | 50 | ||
51 | 51 | ||
52 | -const disabledCity = ref<boolean>(false)//直辖市禁用 | 52 | +const disabledCity = ref<boolean>(false)//直辖市禁用下面省份选择 |
53 | const onHandleSelectProvince = async (value: number | string, options: Recordable) => { | 53 | const onHandleSelectProvince = async (value: number | string, options: Recordable) => { |
54 | selectValues.cityValue = null | 54 | selectValues.cityValue = null |
55 | selectValues.countyValue = null | 55 | selectValues.countyValue = null |
56 | - if (value === 'china') return (selectValues.levelStr = areaEnum.COUNTRY) | 56 | + if (value === 'china') { |
57 | + disabledCity.value = false | ||
58 | + selectValues.provinceValue = 'china' | ||
59 | + selectOptions.cityOptions = [] | ||
60 | + selectValues.areaName = '' | ||
61 | + selectValues.levelStr= areaEnum.COUNTRY | ||
62 | + return | ||
63 | + } | ||
57 | const cityOptions = await getAreaLists(areaEnum.CITY, value as number) | 64 | const cityOptions = await getAreaLists(areaEnum.CITY, value as number) |
58 | selectOptions.cityOptions = cityOptions | 65 | selectOptions.cityOptions = cityOptions |
59 | selectValues.levelStr = areaEnum.PROVINCE | 66 | selectValues.levelStr = areaEnum.PROVINCE |
@@ -205,7 +205,7 @@ const SelectCityRef = ref<InstanceType<typeof SelectCity>>() | @@ -205,7 +205,7 @@ const SelectCityRef = ref<InstanceType<typeof SelectCity>>() | ||
205 | const getAreaLists = async (level = areaEnum.PROVINCE, parentId = 1) => { | 205 | const getAreaLists = async (level = areaEnum.PROVINCE, parentId = 1) => { |
206 | const resp = await getAreaList({ | 206 | const resp = await getAreaList({ |
207 | level, | 207 | level, |
208 | - parentId | 208 | + parentId:(parentId as any)=='china'?1:parentId |
209 | }) | 209 | }) |
210 | if (!resp) return [] | 210 | if (!resp) return [] |
211 | return resp.map((item: Recordable) => ({ label: item.name, value: item.name, adcode: item.code })) | 211 | return resp.map((item: Recordable) => ({ label: item.name, value: item.name, adcode: item.code })) |
@@ -267,12 +267,12 @@ const onHandleSelectValues = async (values: regionInfo) => { | @@ -267,12 +267,12 @@ const onHandleSelectValues = async (values: regionInfo) => { | ||
267 | ? 'china' | 267 | ? 'china' |
268 | : provinceValue | 268 | : provinceValue |
269 | props.optionData.mapRegion = mapRegionCache.value | 269 | props.optionData.mapRegion = mapRegionCache.value |
270 | - if (mapRegionCache.value.adcode !== 'china') { | 270 | + // if (mapRegionCache.value.adcode !== 'china') { |
271 | //清空区块配置和柱状配置 | 271 | //清空区块配置和柱状配置 |
272 | props.optionData.dataset.map3D = [cloneDeep(STATIC_SCATTER_CONFIG)] | 272 | props.optionData.dataset.map3D = [cloneDeep(STATIC_SCATTER_CONFIG)] |
273 | props.optionData.dataset.bar3D = [cloneDeep(STATIC_SCATTER_CONFIG)] | 273 | props.optionData.dataset.bar3D = [cloneDeep(STATIC_SCATTER_CONFIG)] |
274 | setDatasetArea() | 274 | setDatasetArea() |
275 | - } | 275 | + // } |
276 | } | 276 | } |
277 | 277 | ||
278 | 278 | ||
@@ -296,10 +296,14 @@ const setDatasetArea = async () => { | @@ -296,10 +296,14 @@ const setDatasetArea = async () => { | ||
296 | const { adcode, areaName,saveSelect } = unref(mapRegionCache) || {} | 296 | const { adcode, areaName,saveSelect } = unref(mapRegionCache) || {} |
297 | const {levelStr} = saveSelect || {} | 297 | const {levelStr} = saveSelect || {} |
298 | const cityOptions = await getAreaLists(levelStr===areaEnum.CITY?areaEnum.COUNTY:areaEnum.CITY, adcode) | 298 | const cityOptions = await getAreaLists(levelStr===areaEnum.CITY?areaEnum.COUNTY:areaEnum.CITY, adcode) |
299 | + let provinceOptions:any = [] | ||
300 | + if(adcode==='china'){ | ||
301 | + provinceOptions = await getAreaLists() | ||
302 | + } | ||
299 | mdutcgValues.value = cityOptions | 303 | mdutcgValues.value = cityOptions |
300 | if(adcode==110000 || adcode==120000 || adcode==500000 || adcode==310000 || adcode==810000 || adcode==820000){//直辖市 | 304 | if(adcode==110000 || adcode==120000 || adcode==500000 || adcode==310000 || adcode==810000 || adcode==820000){//直辖市 |
301 | const values = await allFetch(cityOptions) || [] | 305 | const values = await allFetch(cityOptions) || [] |
302 | - mdutcgValues.value = values.flatMap((obj:any) => Object.values(obj)) | 306 | + mdutcgValues.value = values.flatMap((obj:any) => Object.values(obj))//讲获取到的多维转换成单一纬度 |
303 | } | 307 | } |
304 | // 循环 push 城市数据 | 308 | // 循环 push 城市数据 |
305 | datasetMap3DList.value.forEach((item: any) => { | 309 | datasetMap3DList.value.forEach((item: any) => { |
@@ -307,10 +311,10 @@ const setDatasetArea = async () => { | @@ -307,10 +311,10 @@ const setDatasetArea = async () => { | ||
307 | item.city_name = null | 311 | item.city_name = null |
308 | item.adcode = null, | 312 | item.adcode = null, |
309 | item.value = null | 313 | item.value = null |
314 | + item.provinceOptions=provinceOptions | ||
310 | item.cityOptions = unref(mdutcgValues) && unref(mdutcgValues).length ? unref(mdutcgValues) : [{ adcode, label: areaName, value: areaName }] | 315 | item.cityOptions = unref(mdutcgValues) && unref(mdutcgValues).length ? unref(mdutcgValues) : [{ adcode, label: areaName, value: areaName }] |
311 | }) | 316 | }) |
312 | } | 317 | } |
313 | - | ||
314 | const handleChangeDrillingIn = () => { | 318 | const handleChangeDrillingIn = () => { |
315 | SelectCityRef.value?.resetValue() | 319 | SelectCityRef.value?.resetValue() |
316 | props.optionData.mapRegion.adcode = 'china' | 320 | props.optionData.mapRegion.adcode = 'china' |