From f793e162634ae9026f1b8e95de510876c647007c Mon Sep 17 00:00:00 2001
From: zhouyanli <593579392@qq.com>
Date: Tue, 11 Aug 2026 11:44:30 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=9F=E6=B4=BB=E7=BC=B4?=
=?UTF-8?q?=E8=B4=B9=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
property-uniapp-project/manifest.json | 4 +-
.../pageSubPack/api/apiSub.js | 8 +-
.../inspection-revenue/inspection-details.vue | 4 +-
.../inspection-revenue/inspection.vue | 2 +-
.../pageSubPack/my/settingIndex.vue | 2 +
.../pageSubPack/payment-list/billPayment.vue | 447 +++++++++
.../pageSubPack/payment-list/paymentIndex.vue | 887 +++++++++---------
property-uniapp-project/pages.json | 6 +
property-uniapp-project/pages/index/index.vue | 27 +-
9 files changed, 950 insertions(+), 437 deletions(-)
create mode 100644 property-uniapp-project/pageSubPack/payment-list/billPayment.vue
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 @@
+
+
+
+
+ 暂无账单数据
+
+
+
+
+
+
+
+
+
+
+ ¥{{ item.totalAmount }}
+
+
+
+
+ {{ detail.name }}
+ ¥{{ detail.amount }}
+
+
+ {{ item.unitNo }}
+ {{ item.date }}
+
+
+ 原金额:¥{{ item.totalAmount }}
+ 优惠:¥{{ formatNum(item.discount) }}
+
+
+
+
+
+
+
+ 加载中...
+
+
+ — 没有更多了 —
+
+
+
+
+
+
+
+ ✓
+
+ 全选
+
+
+ 合计:
+ ¥{{ selectedTotal.toFixed(2) }}
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
-
-
-
-
-
-
- {{item.type}}
- 已欠费
- (余额:{{item.balance|| 0.00}}元)
-
- {{item.villageName+item.buildingName+item.fullAddress}}
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
- {{switchStatus(item.type)}}
- 未缴纳
+
+
+
+
+
+ {{item.type}}
+ 已欠费
+ (余额:{{item.balance|| 0.00}}元)
+
+ {{item.villageName+item.buildingName+item.fullAddress}}
- {{item.name}}
+
+
-
-
-
-
- 加载中...
-
-
- — 没有更多了 —
+
+
+ 加载中...
+
+
+ — 没有更多了 —
+
+
+
+ 暂无数据
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ 未缴纳
+ 已完成
+
+
+ {{ item.unitNo}}
+
+
+
+
+
+ 加载中...
+
+
+ — 没有更多了 —
+
+
+
+ 暂无数据
-
-
+
-
+
@@ -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