hookehuyr

fix

...@@ -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
......