diff --git a/property-uniapp-project/manifest.json b/property-uniapp-project/manifest.json index 03b0e21..79720eb 100644 --- a/property-uniapp-project/manifest.json +++ b/property-uniapp-project/manifest.json @@ -2,8 +2,8 @@ "name" : "花开物业", "appid" : "__UNI__29C3D60", "description" : "智慧社区居民端面向小区业主使用,支持注册、验证码、账号密码多种登录方式,提供密码找回功能,账号使用安全便捷。支持多小区切换,首页设有轮播 banner、社区公告,集成远程开门、生活缴费、在线报修、访客邀请、社区活动常用服务。全服务板块统一涵盖门禁开门、线上缴费、报修申报、访客预约、投诉反馈、问卷调研、活动报名、社区公示、一键联系物业功能。个人中心可管理房屋、住户、车位、车辆信息,支持更换手机号、修改密码、消息通知设置、版本更新及账号退出,一站式满足业主居家生活、社区服务、房产车辆管理需求,实现社区生活数字化、便捷化。", - "versionName" : "1.0.7", - "versionCode" : 120, + "versionName" : "1.0.9", + "versionCode" : 122, "transformPx" : false, "uniCloud" : { "provider" : "aliyun", diff --git a/property-uniapp-project/pageSubPack/api/apiSub.js b/property-uniapp-project/pageSubPack/api/apiSub.js index 29744e7..cea7ee9 100644 --- a/property-uniapp-project/pageSubPack/api/apiSub.js +++ b/property-uniapp-project/pageSubPack/api/apiSub.js @@ -147,12 +147,16 @@ export const getTopUpSelectByResident = (data) => { -// Zy ------------- + // 账单明细列表 export const getTopUpDetails = (data) => { return post(`/api/topUp/billDetails/list`, data) } -// Zy -------------- +// 账单按月汇总 +export const getTopUpDetailsByMonth = (data) => { + return post(`/api/topUp/billDetails/listByMonth`, data) +} + diff --git a/property-uniapp-project/pageSubPack/inspection-revenue/inspection-details.vue b/property-uniapp-project/pageSubPack/inspection-revenue/inspection-details.vue index aca9411..3914147 100644 --- a/property-uniapp-project/pageSubPack/inspection-revenue/inspection-details.vue +++ b/property-uniapp-project/pageSubPack/inspection-revenue/inspection-details.vue @@ -73,10 +73,12 @@ const loading = ref(false) const detail = ref(null) let recordId = '' + let queryDate = '' onLoad((options) => { if (options.id) { recordId = options.id + queryDate = options.date || '' fetchDetail() } }) @@ -86,7 +88,7 @@ loading.value = true detail.value = null try { - const res = await inspectionDetails({ id: recordId }) + const res = await inspectionDetails({ id: recordId, date: queryDate }) if (res.code === 200) { detail.value = res.data } else { diff --git a/property-uniapp-project/pageSubPack/inspection-revenue/inspection.vue b/property-uniapp-project/pageSubPack/inspection-revenue/inspection.vue index d0b41de..b78863c 100644 --- a/property-uniapp-project/pageSubPack/inspection-revenue/inspection.vue +++ b/property-uniapp-project/pageSubPack/inspection-revenue/inspection.vue @@ -158,7 +158,7 @@ // ---------- 跳转详情 ---------- const goToInspectionDetail = (item) => { uni.navigateTo({ - url: `/pageSubPack/inspection-revenue/inspection-details?id=${item.id}` + url: `/pageSubPack/inspection-revenue/inspection-details?id=${item.id}&date=${datetime.value}` }) } diff --git a/property-uniapp-project/pageSubPack/my/settingIndex.vue b/property-uniapp-project/pageSubPack/my/settingIndex.vue index 51a8b36..e08d116 100644 --- a/property-uniapp-project/pageSubPack/my/settingIndex.vue +++ b/property-uniapp-project/pageSubPack/my/settingIndex.vue @@ -290,9 +290,11 @@ uni.showLoading({ title: '退出中...', mask: true }) const clearAndGo = () => { + const uid = uni.getStorageSync('userId') || '' uni.removeStorageSync('token') uni.removeStorageSync('userId') uni.removeStorageSync('currentVillageId') + uni.removeStorageSync('home_cache_' + uid) uni.removeStorageSync('home_cache') uni.hideLoading() uni.hideToast() diff --git a/property-uniapp-project/pageSubPack/payment-list/billPayment.vue b/property-uniapp-project/pageSubPack/payment-list/billPayment.vue new file mode 100644 index 0000000..86db99a --- /dev/null +++ b/property-uniapp-project/pageSubPack/payment-list/billPayment.vue @@ -0,0 +1,447 @@ + + + + + + + diff --git a/property-uniapp-project/pageSubPack/payment-list/paymentIndex.vue b/property-uniapp-project/pageSubPack/payment-list/paymentIndex.vue index d8974af..2fe39da 100644 --- a/property-uniapp-project/pageSubPack/payment-list/paymentIndex.vue +++ b/property-uniapp-project/pageSubPack/payment-list/paymentIndex.vue @@ -3,65 +3,86 @@ + + + + {{ currentCommunity }} + + - - - - - - - {{item.type}} - 已欠费 - (余额:{{item.balance|| 0.00}}元) - - {{item.villageName+item.buildingName+item.fullAddress}} - - - - - - - - + + - - - - - - {{switchStatus(item.type)}} - 未缴纳 + + + 暂无数据 + + + + + + + + + + 暂无数据 - 新增缴费 缴费记录 - + - + @@ -72,15 +93,6 @@ - - - - @@ -88,35 +100,27 @@ \ No newline at end of file +.grid-list { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.grid-item { + width: calc(25% - 60rpx); + background-color: #F6F9FE; + border-radius: 12rpx; + padding: 20rpx; + margin-bottom: 20rpx; + margin-left: 20rpx; + display: flex; + align-items: center; + flex-direction: column; +} + +.grid-item:nth-child(4n+1) { + margin-left: 0; +} + +.icon-box { + width: 52rpx; + height: 52rpx; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 40rpx; +} + +.iconStyle { + width: 100%; + height: 100%; +} + +.item-name { + font-size: 28rpx; + font-weight: 600; + color: #333; +} + +.empty-state { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 80rpx 0; +} + +.empty-text { + font-size: 28rpx; + color: #999; +} + diff --git a/property-uniapp-project/pages.json b/property-uniapp-project/pages.json index bcbe6ab..50ecf58 100644 --- a/property-uniapp-project/pages.json +++ b/property-uniapp-project/pages.json @@ -437,6 +437,12 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } + }, + { + "path": "billPayment", + "style": { + "navigationBarTitleText": "缴费账单" + } } ] diff --git a/property-uniapp-project/pages/index/index.vue b/property-uniapp-project/pages/index/index.vue index 71aaa53..b2a74dc 100644 --- a/property-uniapp-project/pages/index/index.vue +++ b/property-uniapp-project/pages/index/index.vue @@ -186,10 +186,10 @@ const dataLoaded = ref(false) const pageReady = ref(false) // ======= 首页数据缓存(冷启动秒开) ======= - const HOME_CACHE_KEY = 'home_cache' + const getHomeCacheKey = () => 'home_cache_' + (uni.getStorageSync('userId') || '') function loadHomeCache() { try { - const raw = uni.getStorageSync(HOME_CACHE_KEY) + const raw = uni.getStorageSync(getHomeCacheKey()) if (!raw) return false const c = JSON.parse(raw) if (c.community && c.community !== '请绑定房屋') currentCommunity.value = c.community @@ -208,7 +208,7 @@ } function saveHomeCache() { try { - uni.setStorageSync(HOME_CACHE_KEY, JSON.stringify({ + uni.setStorageSync(getHomeCacheKey(), JSON.stringify({ community: currentCommunity.value, villageId: currentVillageId.value, bannerList: bannerList.value, @@ -273,7 +273,7 @@ } const getCurrentCommunityData = () => { - getCurrentVillage().then(res => { + return getCurrentVillage().then(res => { if (res.code === 200 && res.data && res.data.villageId) { currentCommunity.value = res.data.villageName || '未命名小区' saveHomeCache() @@ -329,7 +329,8 @@ console.error('重新加载用户信息失败', err) }) } - getCurrentCommunityData() + // 先获取小区信息,确保 villageId 已更新,再请求依赖 villageId 的接口 + await getCurrentCommunityData() getNoticeData() getNewActivityList() getbannarData() @@ -348,12 +349,13 @@ const resetPageData = () => { currentCommunity.value = '请绑定房屋' currentVillageId.value = '' + uni.removeStorageSync('currentVillageId') activityList.value = [] bannerList.value = [] bannerRawData.value = [] noticeText.value = '暂无公告' noticeId.value = '' - uni.removeStorageSync(HOME_CACHE_KEY) + uni.removeStorageSync(getHomeCacheKey()) } onShow(() => { @@ -395,15 +397,14 @@ }) - - const navigateToPage = () => { - const cachedVillageId = uni.getStorageSync('currentVillageId') - if (!cachedVillageId || cachedVillageId === '0' || cachedVillageId === 0) { - uni.navigateTo({ url: '/pageSubPack/my/myHouseIndex' }) - } else { + const navigateToPage = () => { + const cachedVillageId = uni.getStorageSync('currentVillageId') + if (!cachedVillageId || cachedVillageId === '0' || cachedVillageId === 0) { + uni.navigateTo({ url: '/pageSubPack/my/myHouseIndex' }) + } else { uni.navigateTo({ url: `/pageSubPack/notice-list/selectHome?villageId=${cachedVillageId}` }) - } } + } const serviceClick = (item) => { if (!requireLogin()) return