diff --git a/property-uniapp-project/pageSubPack/my/addHouse.vue b/property-uniapp-project/pageSubPack/my/addHouse.vue index 93669d8..de41827 100644 --- a/property-uniapp-project/pageSubPack/my/addHouse.vue +++ b/property-uniapp-project/pageSubPack/my/addHouse.vue @@ -247,6 +247,7 @@ import { onReachBottom, onLoad, + onShow, onUnload, onPullDownRefresh } from '@dcloudio/uni-app' @@ -496,6 +497,25 @@ } }) + + // 页面显示时从 storage 同步选择数据(从选择小区/楼栋等页面返回时) + // 注意:不用 || 兜底,否则 storage 被清空后旧值会残留导致页面显示与实际数据不一致 + const syncFormDataFromStorage = () => { + formData.community = uni.getStorageSync('communityName') + formData.communityId = uni.getStorageSync('communityId') + formData.building = uni.getStorageSync('buildingName') + formData.buildingId = uni.getStorageSync('buildingId') + formData.unit = uni.getStorageSync('unitName') + formData.unitId = uni.getStorageSync('unitId') + formData.floor = uni.getStorageSync('floorName') + formData.floorId = uni.getStorageSync('floorId') + formData.houseNumber = uni.getStorageSync('houseNumberName') + formData.houseNumberId = uni.getStorageSync('houseNumberId') + formData.status = uni.getStorageSync('houseStatus') + } + onShow(() => { + syncFormDataFromStorage() + }) const chooseIdCard = async (type) => { try { const tempPath = await (type === 'front' ? idCardFrontUpload.chooseImage() : idCardBackUpload @@ -764,7 +784,21 @@ uni.removeStorageSync("houseStatus"); uni.removeStorageSync("houseIsDefault"); uni.removeStorageSync("updateHouseId"); - uni.redirectTo({ url: "/pageSubPack/my/myHouseIndex" }) + // 在页面栈中找到 myHouseIndex 并精准返回 + const pages = getCurrentPages() + let targetIndex = -1 + for (let i = pages.length - 1; i >= 0; i--) { + if (pages[i].route && pages[i].route.includes('myHouseIndex')) { + targetIndex = i + break + } + } + if (targetIndex >= 0) { + const delta = pages.length - 1 - targetIndex + uni.navigateBack({ delta }) + } else { + uni.redirectTo({ url: "/pageSubPack/my/myHouseIndex" }) + } }, 1500) } catch (err) { diff --git a/property-uniapp-project/pageSubPack/my/houseDetail.vue b/property-uniapp-project/pageSubPack/my/houseDetail.vue index 9169347..1ebf2b9 100644 --- a/property-uniapp-project/pageSubPack/my/houseDetail.vue +++ b/property-uniapp-project/pageSubPack/my/houseDetail.vue @@ -449,8 +449,9 @@ .photo-list { display: flex; flex-direction: column; - gap: 20rpx; + /* gap: 20rpx; */ margin-top: 20rpx; + } .photo-item { @@ -458,6 +459,10 @@ height: 170px; background-color: #f6f6f6; border-radius: 8rpx; + margin-bottom: 20rpx; + } + .photo-item:last-child{ + margin-bottom: 0; } .bottom-btn-wrap { diff --git a/property-uniapp-project/pageSubPack/my/myHouseIndex.vue b/property-uniapp-project/pageSubPack/my/myHouseIndex.vue index 9dcfa69..f141cdf 100644 --- a/property-uniapp-project/pageSubPack/my/myHouseIndex.vue +++ b/property-uniapp-project/pageSubPack/my/myHouseIndex.vue @@ -68,8 +68,10 @@ import { ref, onMounted, - } from 'vue' + import { + onShow + } from '@dcloudio/uni-app' import { getMyHouseList, setMyHouseDefault @@ -141,6 +143,13 @@ getList() }) + // 页面显示时刷新列表(从添加/编辑房屋页返回时) + onShow(() => { + pageNum.value = 1 + noMoreData.value = false + getList() + }) + const onSwitchChange = async (e, i) => { diff --git a/property-uniapp-project/pageSubPack/my/myPointsIndex.vue b/property-uniapp-project/pageSubPack/my/myPointsIndex.vue index 0f36480..54b9383 100644 --- a/property-uniapp-project/pageSubPack/my/myPointsIndex.vue +++ b/property-uniapp-project/pageSubPack/my/myPointsIndex.vue @@ -275,6 +275,7 @@ color: #FF8F40; margin-top: 8rpx; text-align: left; + width: 100%; } /* ===== 更多积分兑换 ===== */ diff --git a/property-uniapp-project/pageSubPack/my/selectBuilding.vue b/property-uniapp-project/pageSubPack/my/selectBuilding.vue index 1de8871..4579f06 100644 --- a/property-uniapp-project/pageSubPack/my/selectBuilding.vue +++ b/property-uniapp-project/pageSubPack/my/selectBuilding.vue @@ -14,7 +14,7 @@ {{ '暂无数据'}} - + @@ -52,6 +52,9 @@ // 从缓存获取类型 const checkType = ref(uni.getStorageSync('checkType') || '') const dataList = ref([]) + // 添加防重复点击锁 + const isNavigating = ref(false) + @@ -78,75 +81,63 @@ // 选择项方法 const selectBuilding = (item) => { - const modalContent = `确认选择此${checkType.value}吗?` - uni.showModal({ - title: '确认选择', - content: modalContent, - success: (res) => { - if (!res.confirm) return - uni.showLoading({ - title: '选择中...', - mask: true - }) - if (checkType.value === '楼栋') { - selectedBuilding.value = item.id - uni.setStorageSync('buildingId', item.id) - uni.setStorageSync('buildingName', item.name) - uni.removeStorageSync('unitId') - uni.removeStorageSync('unitName') - uni.removeStorageSync('floorId') - uni.removeStorageSync('floorName') - uni.removeStorageSync('houseNumberId') - uni.removeStorageSync('houseNumberName') - uni.setStorageSync('checkType', '单元') - } else if (checkType.value === '单元') { - selectedUnit.value = item.id - uni.setStorageSync('unitId', item.id) - uni.setStorageSync('unitName', item.name) - uni.removeStorageSync('floorId') - uni.removeStorageSync('floorName') - uni.removeStorageSync('houseNumberId') - uni.removeStorageSync('houseNumberName') - uni.setStorageSync('checkType', '楼层') - } else if (checkType.value === '楼层') { - selectedFloor.value = item.id - uni.setStorageSync('floorId', item.id) - uni.setStorageSync('floorName', item.name) - uni.removeStorageSync('houseNumberId') - uni.removeStorageSync('houseNumberName') - uni.setStorageSync('checkType', '户号') - } else if (checkType.value === '户号') { - selectedHouseNumber.value = item.id - uni.setStorageSync('houseNumberId', item.id) - uni.setStorageSync('houseNumberName', item.name) - } + // 防重复点击 + if (isNavigating.value) return + isNavigating.value = true - setTimeout(() => { - uni.showToast({ - title: '选择成功', - icon: 'success' - }) - }, 500) + if (checkType.value === '楼栋') { + selectedBuilding.value = item.id + uni.setStorageSync('buildingId', item.id) + uni.setStorageSync('buildingName', item.name) + uni.removeStorageSync('unitId') + uni.removeStorageSync('unitName') + uni.removeStorageSync('floorId') + uni.removeStorageSync('floorName') + uni.removeStorageSync('houseNumberId') + uni.removeStorageSync('houseNumberName') + uni.setStorageSync('checkType', '单元') + } else if (checkType.value === '单元') { + selectedUnit.value = item.id + uni.setStorageSync('unitId', item.id) + uni.setStorageSync('unitName', item.name) + uni.removeStorageSync('floorId') + uni.removeStorageSync('floorName') + uni.removeStorageSync('houseNumberId') + uni.removeStorageSync('houseNumberName') + uni.setStorageSync('checkType', '楼层') + } else if (checkType.value === '楼层') { + selectedFloor.value = item.id + uni.setStorageSync('floorId', item.id) + uni.setStorageSync('floorName', item.name) + uni.removeStorageSync('houseNumberId') + uni.removeStorageSync('houseNumberName') + uni.setStorageSync('checkType', '户号') + } else if (checkType.value === '户号') { + selectedHouseNumber.value = item.id + uni.setStorageSync('houseNumberId', item.id) + uni.setStorageSync('houseNumberName', item.name) + } - setTimeout(() => { - uni.hideLoading() - goFreash() - }, 2000) - } + uni.showToast({ + title: '选择成功', + icon: 'success' }) - } + setTimeout(() => { + goFreash() + }, 1000) + } // 刷新跳转 const goFreash = () => { console.log(checkType.value, '刷新页面') if (checkType.value !== '户号') { - uni.navigateTo({ + // 楼栋/单元/楼层:替换当前页,链式选择不堆叠 + uni.redirectTo({ url: '/pageSubPack/my/selectBuilding' }) } else { - uni.navigateTo({ - url: '/pageSubPack/my/addHouse' - }) + // 户号选择完成:返回已有的 addHouse 页面(addHouse 通过 onShow 重新读取 storage) + uni.navigateBack() } } @@ -268,6 +259,11 @@ gap: 30rpx; } + /* 正在跳转时禁用点击 */ + .building-grid.disabled { + pointer-events: none; + } + /* 空状态 */ .empty-state { display: flex; diff --git a/property-uniapp-project/pageSubPack/my/selectResidentialCommunity.vue b/property-uniapp-project/pageSubPack/my/selectResidentialCommunity.vue index 86e9bf5..e4cf6db 100644 --- a/property-uniapp-project/pageSubPack/my/selectResidentialCommunity.vue +++ b/property-uniapp-project/pageSubPack/my/selectResidentialCommunity.vue @@ -125,11 +125,9 @@ uni.removeStorageSync('parkingSpaceName'); console.log(sourcePage.value); if (sourcePage.value == 'addHouse') { - uni.navigateTo({ - url: '/pageSubPack/my/selectBuilding', - success: res => {}, - fail: () => {}, - complete: () => {} + // 替换当前页进入楼栋选择,避免页面堆叠 + uni.redirectTo({ + url: '/pageSubPack/my/selectBuilding' }); } else if (sourcePage.value == 'addParkingSpace') { uni.setStorageSync('checkType', '停车场') diff --git a/property-uniapp-project/pageSubPack/my/settingIndex.vue b/property-uniapp-project/pageSubPack/my/settingIndex.vue index 51a8b36..84e7940 100644 --- a/property-uniapp-project/pageSubPack/my/settingIndex.vue +++ b/property-uniapp-project/pageSubPack/my/settingIndex.vue @@ -58,12 +58,12 @@ title: '注销账号', type: 'arrow' }, - // { - // title: '升级版本', - // type: 'text', - // value: '当前版本 1.0.0', - // valueClass: 'item-version' - // } + { + title: '升级版本', + type: 'text', + value: '当前版本 1.0.0', + valueClass: 'item-version' + } ]) // 格式化字节大小 diff --git a/property-uniapp-project/pages/myIndex/myIndex.vue b/property-uniapp-project/pages/myIndex/myIndex.vue index f5b5d2a..357c2dd 100644 --- a/property-uniapp-project/pages/myIndex/myIndex.vue +++ b/property-uniapp-project/pages/myIndex/myIndex.vue @@ -52,11 +52,11 @@ const list = ref([ - { - icon:'https://wuye.ckdzkj.com/images/propertyImgs/points.png', - title: "我的积分", - desc:'999' - }, + // { + // icon:'https://wuye.ckdzkj.com/images/propertyImgs/points.png', + // title: "我的积分", + // desc:'999' + // }, { icon:'https://wuye.ckdzkj.com/images/propertyImgs/house.png', title: "我的房屋"