From a877c01ff8a77c9aa9d7fee4b5bac01fbfb5e547 Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Thu, 7 Aug 2025 15:26:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9C=B0=E5=9D=80=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=99=A8):=20=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=E5=9C=B0?= =?UTF-8?q?=E5=9D=80ID=E4=BB=A3=E6=9B=BF=E6=96=87=E6=9C=AC=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E6=8F=90=E4=BA=A4=E5=92=8C=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改地址选择器组件和相关页面,将地址提交和回显逻辑从使用文本改为使用ID - 在AddressPicker组件中返回selectedId和selectedIds - 修改jobPosting页面保存areaId用于后端提交 - 更新addResume页面根据ID回显地址文本 - 调整screenWork组件使用areaId.value代替地址文本 --- components/AddressPicker.vue | 18 ++++++++++--- components/screen/screenWork.vue | 6 ++--- pages_order/auth/certification.vue | 23 ++++++++-------- pages_order/work/addResume.vue | 55 +++++++++++++++++++++++++++++++++----- pages_order/work/jobPosting.vue | 29 +++++++++++--------- 5 files changed, 95 insertions(+), 36 deletions(-) diff --git a/components/AddressPicker.vue b/components/AddressPicker.vue index 31ee44b..a57ef1b 100644 --- a/components/AddressPicker.vue +++ b/components/AddressPicker.vue @@ -9,8 +9,6 @@ - - @@ -303,6 +301,9 @@ // 生成完整地址文本 let fullAddress = '' + let selectedId = '' // 用于传给后端的ID + let selectedIds = [] // 多选时的ID数组 + if (this.selectedProvince) { fullAddress += this.selectedProvince.adress } @@ -310,9 +311,12 @@ // 多选城市模式 if (this.multiple && this.selectedCities.length > 0) { const cityNames = this.selectedCities.map(item => item.adress).join(',') - fullAddress += cityNames + fullAddress = cityNames result.selectedAddress = this.selectedProvince // 多选城市时返回省份作为选中地址 result.selectedCities = this.selectedCities + // 返回多选城市的ID数组 + selectedIds = this.selectedCities.map(item => item.id) + result.selectedIds = selectedIds } else if (this.selectedCity) { fullAddress += this.selectedCity.adress @@ -322,20 +326,28 @@ fullAddress += districtNames result.selectedAddress = this.selectedCity // 多选时返回城市作为选中地址 result.selectedDistricts = this.selectedDistricts + // 返回多选区县的ID数组 + selectedIds = this.selectedDistricts.map(item => item.id) + result.selectedIds = selectedIds } else if (this.selectedDistrict) { // 单选区县模式 fullAddress += this.selectedDistrict.adress result.selectedAddress = this.selectedDistrict + selectedId = this.selectedDistrict.id } else { // 选择整个城市 result.selectedAddress = this.selectedCity + selectedId = this.selectedCity.id } } else { // 选择整个省份 result.selectedAddress = this.selectedProvince + selectedId = this.selectedProvince.id } result.fullAddress = fullAddress + result.selectedId = selectedId // 单选时的ID + result.selectedIds = selectedIds // 多选时的ID数组 this.$emit('confirm', result) this.close() diff --git a/components/screen/screenWork.vue b/components/screen/screenWork.vue index 8519149..328723c 100644 --- a/components/screen/screenWork.vue +++ b/components/screen/screenWork.vue @@ -340,7 +340,7 @@ this.result.push({ name: n.type, label: this.popupSelectedAddress, - value: this.popupSelectedAddress == '全部地区' ? 'all' : this.popupSelectedAddress + value: this.popupSelectedAddress == '全部地区' ? 'all' : this.areaId.value // 使用存储的ID值 }) } else { // 其他选项使用tag选择 @@ -372,14 +372,14 @@ // 更新areaId的状态 this.areaId.label = addressResult.fullAddress - this.areaId.value = addressResult.selectedAddress.adress + this.areaId.value = addressResult.selectedId // 使用ID而不是地址文本 console.log('addressResult', addressResult); // 调用clickItem来更新result数组并触发父组件事件 this.clickItem({ label: addressResult.fullAddress, - value: addressResult.selectedAddress.adress, + value: addressResult.selectedId, // 传ID给后端 }) // 关闭下拉菜单 - 通过发送事件来关闭 diff --git a/pages_order/auth/certification.vue b/pages_order/auth/certification.vue index 67ad8ca..2294dbc 100644 --- a/pages_order/auth/certification.vue +++ b/pages_order/auth/certification.vue @@ -166,17 +166,17 @@