Showing
2 changed files
with
42 additions
and
4 deletions
| ... | @@ -141,12 +141,31 @@ const fullAddress = computed(() => { | ... | @@ -141,12 +141,31 @@ const fullAddress = computed(() => { |
| 141 | * @param {Object} addressData - 地址数据对象 | 141 | * @param {Object} addressData - 地址数据对象 |
| 142 | */ | 142 | */ |
| 143 | const initAddressData = (addressData) => { | 143 | const initAddressData = (addressData) => { |
| 144 | - if (addressData.province && addressData.city && addressData.county) { | 144 | + // 优先使用code值来设置级联选择器的选中状态 |
| 145 | + if (addressData.province_code && addressData.city_code && addressData.county_code) { | ||
| 146 | + selectedAreaCodes.value = [ | ||
| 147 | + addressData.province_code, | ||
| 148 | + addressData.city_code, | ||
| 149 | + addressData.county_code | ||
| 150 | + ] | ||
| 151 | + // 根据code值查找对应的文本 | ||
| 152 | + const provinceNode = findNodeByCode(areaData.value, addressData.province_code) | ||
| 153 | + const cityNode = provinceNode?.children ? findNodeByCode(provinceNode.children, addressData.city_code) : null | ||
| 154 | + const countyNode = cityNode?.children ? findNodeByCode(cityNode.children, addressData.county_code) : null | ||
| 155 | + | ||
| 156 | + if (provinceNode && cityNode && countyNode) { | ||
| 157 | + selectedAreaText.value = `${provinceNode.text}${cityNode.text}${countyNode.text}` | ||
| 158 | + } | ||
| 159 | + detailAddress.value = addressData.detail_address || addressData.idcard_address || '' | ||
| 160 | + } else if (addressData.province && addressData.city && addressData.county) { | ||
| 161 | + // 兼容旧的文本格式 | ||
| 145 | selectedAreaText.value = `${addressData.province}${addressData.city}${addressData.county}` | 162 | selectedAreaText.value = `${addressData.province}${addressData.city}${addressData.county}` |
| 146 | - detailAddress.value = addressData.detail_address || '' | 163 | + detailAddress.value = addressData.detail_address || addressData.idcard_address || '' |
| 164 | + // 尝试根据文本查找对应的code值(可选实现) | ||
| 147 | } else { | 165 | } else { |
| 148 | selectedAreaText.value = '' | 166 | selectedAreaText.value = '' |
| 149 | - detailAddress.value = '' | 167 | + detailAddress.value = addressData.detail_address || addressData.idcard_address || '' |
| 168 | + selectedAreaCodes.value = [] | ||
| 150 | } | 169 | } |
| 151 | } | 170 | } |
| 152 | 171 | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2022-09-19 14:11:06 | 2 | * @Date: 2022-09-19 14:11:06 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2025-08-12 17:13:50 | 4 | + * @LastEditTime: 2025-08-12 18:08:16 |
| 5 | * @FilePath: /jgdl/src/pages/collectionSettings/index.vue | 5 | * @FilePath: /jgdl/src/pages/collectionSettings/index.vue |
| 6 | * @Description: 收款设置 | 6 | * @Description: 收款设置 |
| 7 | --> | 7 | --> |
| ... | @@ -457,6 +457,21 @@ const getUserInfo = async () => { | ... | @@ -457,6 +457,21 @@ const getUserInfo = async () => { |
| 457 | idcard_district: userInfo.idcard_district || '', | 457 | idcard_district: userInfo.idcard_district || '', |
| 458 | idcard_address: userInfo.idcard_address || '' | 458 | idcard_address: userInfo.idcard_address || '' |
| 459 | }; | 459 | }; |
| 460 | + | ||
| 461 | + // 同时更新地址选择器的数据,包含code值用于还原选中状态 | ||
| 462 | + if (userInfo.idcard_province && userInfo.idcard_city && userInfo.idcard_district) { | ||
| 463 | + addressData.value = { | ||
| 464 | + province: userInfo.province_name || '', | ||
| 465 | + city: userInfo.city_name || '', | ||
| 466 | + county: userInfo.county_name || userInfo.district_name || '', | ||
| 467 | + province_code: userInfo.idcard_province, | ||
| 468 | + city_code: userInfo.idcard_city, | ||
| 469 | + county_code: userInfo.idcard_district, | ||
| 470 | + detail_address: userInfo.idcard_address || '', | ||
| 471 | + idcard_address: userInfo.idcard_address || '', | ||
| 472 | + full_address: `${userInfo.province_name || ''}${userInfo.city_name || ''}${userInfo.county_name || userInfo.district_name || ''} ${userInfo.idcard_address || ''}`.trim() | ||
| 473 | + }; | ||
| 474 | + } | ||
| 460 | } | 475 | } |
| 461 | } | 476 | } |
| 462 | } catch (error) { | 477 | } catch (error) { |
| ... | @@ -1116,7 +1131,11 @@ const addressData = ref({ | ... | @@ -1116,7 +1131,11 @@ const addressData = ref({ |
| 1116 | province: '', | 1131 | province: '', |
| 1117 | city: '', | 1132 | city: '', |
| 1118 | county: '', | 1133 | county: '', |
| 1134 | + province_code: '', | ||
| 1135 | + city_code: '', | ||
| 1136 | + county_code: '', | ||
| 1119 | detail_address: '', | 1137 | detail_address: '', |
| 1138 | + idcard_address: '', | ||
| 1120 | full_address: '' | 1139 | full_address: '' |
| 1121 | }) | 1140 | }) |
| 1122 | 1141 | ... | ... |
-
Please register or login to post a comment