From b7d451c91ec40bee70f23b1e2cf6a8797643faef Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期六, 25 四月 2026 15:18:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/pages/message/message.vue |  138 +++++++++++++++++++++++++++------------------
 1 files changed, 83 insertions(+), 55 deletions(-)

diff --git a/app/pages/message/message.vue b/app/pages/message/message.vue
index 6301116..1e9e90f 100644
--- a/app/pages/message/message.vue
+++ b/app/pages/message/message.vue
@@ -6,21 +6,31 @@
 			</view>
 		</view>
 
-		<scroll-view class="message-page__body" scroll-y :style="bodyStyle">
+		<scroll-view class="message-page__body" scroll-y :style="bodyStyle" @scrolltolower="loadMore">
 			<view class="message-page__list">
 				<view v-for="item in messageList" :key="item.id" class="message-card">
 					<view class="message-card__icon-wrap">
 						<view class="message-card__icon-bg">
 							<text class="message-card__icon">馃敂</text>
 						</view>
-						<view v-if="item.unread" class="message-card__dot"></view>
+						<view v-if="item.status === 0" class="message-card__dot"></view>
 					</view>
 
 					<view class="message-card__content">
 						<text class="message-card__title">{{ item.title }}</text>
-						<text class="message-card__desc">{{ item.desc }}</text>
-						<text class="message-card__time">{{ item.time }}</text>
+						<text class="message-card__desc">{{ item.content }}</text>
+						<text class="message-card__time">{{ item.createTime }}</text>
 					</view>
+				</view>
+
+				<view v-if="loading" class="message-page__loading">
+					<text class="message-page__loading-text">鍔犺浇涓�...</text>
+				</view>
+				<view v-if="finished && messageList.length > 0" class="message-page__loading">
+					<text class="message-page__loading-text">娌℃湁鏇村浜�</text>
+				</view>
+				<view v-if="!loading && messageList.length === 0" class="message-page__empty">
+					<image class="message-page__empty-icon" src="/static/image/default_nodata@2x.png" mode="aspectFit"></image>
 				</view>
 			</view>
 		</scroll-view>
@@ -33,57 +43,11 @@
 			return {
 				statusBarHeight: 0,
 				navHeight: 0,
-				messageList: [
-					{
-						id: 1,
-						title: '璁㈠崟寰呴厤閫�',
-						desc: '鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鍗曪細32728367487367锛岃鎸夋椂鍒般�愪腑閾佸揩杩愬崡绔欐棗鑸板簵銆戝彇璐�',
-						time: '2026-04-12 20:00',
-						unread: true
-					},
-					{
-						id: 2,
-						title: '閰嶉�佷腑',
-						desc: '璁㈠崟锛�32728367487367宸插彇璐э紝璇锋寜鏃堕�佽揪',
-						time: '2026-04-12 20:00',
-						unread: true
-					},
-					{
-						id: 3,
-						title: '宸查�佽揪',
-						desc: '璁㈠崟锛�32728367487367宸查�佽揪锛岃鑱旂郴鐢ㄦ埛纭绛炬敹',
-						time: '2026-04-12 20:00',
-						unread: false
-					},
-					{
-						id: 4,
-						title: '璁㈠崟宸插畬鎴�',
-						desc: '璁㈠崟锛�32728367487367宸插畬鎴愶紝鐩稿叧璁㈠崟缁撶畻浼氬湪3涓伐浣滄棩鍐呭畬鎴�',
-						time: '2026-04-12 20:00',
-						unread: false
-					},
-					{
-						id: 5,
-						title: '璁㈠崟宸茶瘎浠�',
-						desc: '璁㈠崟锛�32728367487367锛岀敤鎴峰凡璇勪环锛屽彲鏌ョ湅璇勪环鍐呭',
-						time: '2026-04-12 20:00',
-						unread: false
-					},
-					{
-						id: 6,
-						title: '閫�娆句腑',
-						desc: '璁㈠崟锛�32728367487367锛岀敤鎴峰凡鎻愪氦閫�娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�',
-						time: '2026-04-12 20:00',
-						unread: false
-					},
-					{
-						id: 7,
-						title: '璁㈠崟宸茬粨绠�',
-						desc: '琛屾潕璁㈠崟锛�3729378487987 骞冲彴宸插畬鎴愮粨绠楋紝閲戦涓篨X鍏冿紝璇锋敞鎰忔煡鏀�',
-						time: '2026-04-12 20:00',
-						unread: false
-					}
-				]
+				page: 1,
+				capacity: 10,
+				messageList: [],
+				loading: false,
+				finished: false
 			}
 		},
 		computed: {
@@ -98,6 +62,46 @@
 			const systemInfo = uni.getSystemInfoSync()
 			this.statusBarHeight = systemInfo.statusBarHeight || 0
 			this.navHeight = this.statusBarHeight + uni.upx2px(88)
+		},
+
+		onShow() {
+			this.refreshList()
+		},
+
+		onReachBottom() {
+			this.loadMore()
+		},
+
+		methods: {
+			refreshList() {
+				this.page = 1
+				this.messageList = []
+				this.finished = false
+				this.getMessageList()
+			},
+
+			loadMore() {
+				if (this.loading || this.finished) return
+				this.page++
+				this.getMessageList()
+			},
+
+			getMessageList() {
+				this.loading = true
+				this.$u.api.driverNoticePage({ capacity: this.capacity, page: this.page, model: {} }).then(res => {
+					this.loading = false
+					if (res.code === 200) {
+						const list = res.data.records || []
+						if (this.page === 1) {
+							this.messageList = list
+							this.$u.api.driverReadAllNotice()
+						} else {
+							this.messageList = [...this.messageList, ...list]
+						}
+						this.finished = list.length < this.capacity
+					}
+				})
+			}
 		}
 	}
 </script>
@@ -137,6 +141,30 @@
 		&__list {
 			padding: 18rpx 18rpx calc(env(safe-area-inset-bottom) + 24rpx);
 		}
+
+		&__loading {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			padding: 30rpx 0;
+		}
+
+		&__loading-text {
+			font-size: 26rpx;
+			color: #999;
+		}
+
+		&__empty {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+		}
+
+		&__empty-icon {
+			width: 320rpx;
+			height: 320rpx;
+		}
 	}
 
 	.message-card {

--
Gitblit v1.9.3