Commit 8cd1f1ecc5d1098dc08acc3b2c65fbf7ded0f507
1 parent
ba9e653b
fix: 修复3D地图选择其他省份在选回中国 点击地图会报错 并且之前选择的省份会保留数据
Showing
2 changed files
with
18 additions
and
7 deletions
... | ... | @@ -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 | 53 | const onHandleSelectProvince = async (value: number | string, options: Recordable) => { |
54 | 54 | selectValues.cityValue = null |
55 | 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 | 64 | const cityOptions = await getAreaLists(areaEnum.CITY, value as number) |
58 | 65 | selectOptions.cityOptions = cityOptions |
59 | 66 | selectValues.levelStr = areaEnum.PROVINCE | ... | ... |
... | ... | @@ -205,7 +205,7 @@ const SelectCityRef = ref<InstanceType<typeof SelectCity>>() |
205 | 205 | const getAreaLists = async (level = areaEnum.PROVINCE, parentId = 1) => { |
206 | 206 | const resp = await getAreaList({ |
207 | 207 | level, |
208 | - parentId | |
208 | + parentId:(parentId as any)=='china'?1:parentId | |
209 | 209 | }) |
210 | 210 | if (!resp) return [] |
211 | 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 | 267 | ? 'china' |
268 | 268 | : provinceValue |
269 | 269 | props.optionData.mapRegion = mapRegionCache.value |
270 | - if (mapRegionCache.value.adcode !== 'china') { | |
270 | + // if (mapRegionCache.value.adcode !== 'china') { | |
271 | 271 | //清空区块配置和柱状配置 |
272 | 272 | props.optionData.dataset.map3D = [cloneDeep(STATIC_SCATTER_CONFIG)] |
273 | 273 | props.optionData.dataset.bar3D = [cloneDeep(STATIC_SCATTER_CONFIG)] |
274 | 274 | setDatasetArea() |
275 | - } | |
275 | + // } | |
276 | 276 | } |
277 | 277 | |
278 | 278 | |
... | ... | @@ -296,10 +296,14 @@ const setDatasetArea = async () => { |
296 | 296 | const { adcode, areaName,saveSelect } = unref(mapRegionCache) || {} |
297 | 297 | const {levelStr} = saveSelect || {} |
298 | 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 | 303 | mdutcgValues.value = cityOptions |
300 | 304 | if(adcode==110000 || adcode==120000 || adcode==500000 || adcode==310000 || adcode==810000 || adcode==820000){//直辖市 |
301 | 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 | 308 | // 循环 push 城市数据 |
305 | 309 | datasetMap3DList.value.forEach((item: any) => { |
... | ... | @@ -307,10 +311,10 @@ const setDatasetArea = async () => { |
307 | 311 | item.city_name = null |
308 | 312 | item.adcode = null, |
309 | 313 | item.value = null |
314 | + item.provinceOptions=provinceOptions | |
310 | 315 | item.cityOptions = unref(mdutcgValues) && unref(mdutcgValues).length ? unref(mdutcgValues) : [{ adcode, label: areaName, value: areaName }] |
311 | 316 | }) |
312 | 317 | } |
313 | - | |
314 | 318 | const handleChangeDrillingIn = () => { |
315 | 319 | SelectCityRef.value?.resetValue() |
316 | 320 | props.optionData.mapRegion.adcode = 'china' | ... | ... |