From b806c4ad52a661a1e5f0695650ec1a7e42f01633 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 20 五月 2026 23:08:48 +0800
Subject: [PATCH] 提交

---
 app/pages/index/index.vue |  111 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 89 insertions(+), 22 deletions(-)

diff --git a/app/pages/index/index.vue b/app/pages/index/index.vue
index d373554..b9d4f09 100644
--- a/app/pages/index/index.vue
+++ b/app/pages/index/index.vue
@@ -6,12 +6,12 @@
 					<image class="hall-page__avatar" :src="centerUserInfo.fullImgUrl || '/static/image/ic_pic@2x.png'" mode="aspectFill"></image>
 					<text class="hall-page__name">{{ centerUserInfo.name }}</text>
 				</view>
-				<view class="hall-page__status" v-if="userInfo.auditStatus === 3" @click="openStatusPicker">
+				<view class="hall-page__status" v-if="hasApprovedOfficial" @click="openStatusPicker">
 					<view class="hall-page__status-dot" :class="{ 'hall-page__status-dot--offline': acceptingStatus === 0 }"></view>
 					<text class="hall-page__status-text">{{ acceptingStatus === 1 ? '鎺ュ崟涓�' : '宸蹭笅绾�' }}</text>
 					<text class="hall-page__status-arrow">鈻�</text>
 				</view>
-				<view class="hall-page__user" style="opacity: 0;">
+				<view class="hall-page__user" style="opacity: 0;">	
 					<image class="hall-page__avatar" :src="centerUserInfo.fullImgUrl || '/static/image/ic_pic@2x.png'" mode="aspectFill"></image>
 					<text class="hall-page__name">{{ centerUserInfo.name }}</text>
 				</view>
@@ -19,7 +19,7 @@
 
 			<view class="hall-page__stats">
 				<view v-for="item in stats" :key="item.label" class="hall-page__stat-item">
-					<text class="hall-page__stat-value">{{ userInfo.auditStatus === 3 ? item.value : '-' }}</text>
+					<text class="hall-page__stat-value">{{ hasApprovedOfficial ? item.value : '-' }}</text>
 					<text class="hall-page__stat-label">{{ item.label }}</text>
 				</view>
 			</view>
@@ -27,7 +27,7 @@
 			<view class="hall-page__tabs">
 				<view v-for="tab in displayTabs" :key="tab.value" class="hall-page__tab" :class="{ 'hall-page__tab--active': activeTab === tab.value }" @click="activeTab = tab.value">
 					<text class="hall-page__tab-text">{{ tab.label }}</text>
-					<text v-if="tab.count" class="hall-page__tab-count">{{ userInfo.auditStatus === 3 ? tab.count : '' }}</text>
+					<text v-if="tab.count" class="hall-page__tab-count">{{ hasApprovedOfficial ? tab.count : '' }}</text>
 					<view v-if="activeTab === tab.value" class="hall-page__tab-line"></view>
 				</view>	
 				<view class="hall-page__filter" @click="toggleFilterPopup(true)">
@@ -63,12 +63,12 @@
 			</view>
 		</view>
 
-		<scroll-view class="hall-page__body" scroll-y :style="bodyStyle">
-			<view class="hall-page__verified" v-if="userInfo.auditStatus !== 3">
+		<scroll-view class="hall-page__body" scroll-y :style="bodyStyle" @scrolltolower="handleScrollToLower">
+			<view class="hall-page__verified" v-if="!hasApprovedOfficial">
 				<image src="/static/image/default_unverified@2x.png" mode="widthFix"></image>
 				<button @click="toDriverCertification">鍘昏璇�</button>
 			</view>
-			<view v-else-if="userInfo.auditStatus === 3 && acceptingStatus === 1 && currentOrderList.length" class="hall-page__list">
+			<view v-else-if="hasApprovedOfficial && acceptingStatus === 1 && currentOrderList.length" class="hall-page__list">
 				<view v-for="(item, index) in currentOrderList" :key="item.id" class="order-card" @click="goToOrderDetail(item, index)">
 					<view class="order-card__head">
 						<view class="order-card__time" v-if="item.remainMinutes > 0">
@@ -111,7 +111,7 @@
 						<view class="order-card__route-main">
 							<view class="order-card__route-item">
 								<view class="order-card__route-texts">
-									<text class="order-card__route-title">{{ item.depositShopName }}澶ц嫃鎵撴墦绠�</text>
+									<text class="order-card__route-title"><text class="order-card__route-badge-text order-card__route-badge-text--take">鍙�</text>{{ item.depositShopName }}</text>
 									<text class="order-card__route-desc">{{ item.depositShopAddress }}</text>
 								</view>
 								<image src="/static/image/ic_daohang@2x.png" mode="widthFix" class="order-card__nav" @click.stop="navigateToAddress(item, 'deposit')"></image>
@@ -119,10 +119,10 @@
 							<view class="order-card__route-item order-card__route-item--destination">
 								<view class="order-card__route-texts">
 									<template v-if="item.takeShopId">
-										<text class="order-card__route-title">{{ item.takeName }}</text>
+										<text class="order-card__route-title"><text class="order-card__route-badge-text order-card__route-badge-text--send">閫�</text>{{ item.takeName }}</text>
 										<text class="order-card__route-desc">{{ item.takeAddress }}</text>
 									</template>
-									<text v-else class="order-card__route-title">{{ item.takeAddress }}</text>
+									<text v-else class="order-card__route-title"><text class="order-card__route-badge-text order-card__route-badge-text--send">閫�</text>{{ item.takeAddress }}</text>
 								</view>
 								<image src="/static/image/ic_daohang@2x.png" mode="widthFix" class="order-card__nav" @click.stop="navigateToAddress(item, 'take')"></image>
 							</view>
@@ -155,7 +155,7 @@
 									<text class="order-card__action-text">鑱旂郴</text>
 								</view>
 							</view>
-							<button class="order-card__button order-card__button--code" hover-class="order-card__button--hover" @click.stop="handleShowPickupCode(item)">瀛樹欢鐮�</button>
+							<button class="order-card__button order-card__button--code" hover-class="order-card__button--hover" @click.stop="handleShowPickupCode(item)" v-if="item.takeShopId">瀛樹欢鐮�</button>
 						</template>
 						<button v-else class="order-card__button" hover-class="order-card__button--hover" @click.stop="handleGrabOrder(item)">绔嬪嵆鎶㈠崟</button>
 					</view>
@@ -281,6 +281,7 @@
 				showFilterPopup: false,
 				acceptingStatus: 0,
 				showStatusPicker: false,
+				hasApprovedOfficial: false,
 				statusOptions: [
 					{ text: '涓婄嚎', value: 1 },
 					{ text: '涓嬬嚎', value: 0 }
@@ -338,21 +339,24 @@
 			this.scrollHeight = Math.max(windowHeight - this.headerHeight, 0)
 			if (this.userInfo.auditStatus === 99) return;
 			this.acceptingStatus = this.userInfo.acceptingStatus || 0
-			this.loadOrdersByTab(this.activeTab)
+			this.$u.api.centerInfo().then(res => {
+				if (res.code === 200) {
+					this.acceptingStatus = res.data.acceptingStatus
+					if (res.data.acceptingStatus === 1) {
+						this.loadOrdersByTab(this.activeTab)
+					}
+				}
+			})
+			uni.$on('jiedanSuccess', () => {
+				this.loadOrdersByTab(this.activeTab)
+			})
 		},
 
 		onShow() {
 			this.getCenterInfo()
 			this.getCategoryListData()
 			this.getActiveOrderCount()
-		},
-
-		onReachBottom() {
-			if (this.acceptingStatus === 0) return;
-			if (this.activeTab === 'hall') {
-				this.hallPage++
-				this.getHallOrders()
-			}
+			this.getUserInfoDetail()
 		},
 
 		computed: {
@@ -392,6 +396,25 @@
 		},
 
 		methods: {
+			handleScrollToLower() {
+				if (this.acceptingStatus === 0) return;
+				this.hallPage++
+				if (this.activeTab === 'hall') {
+					console.log('hall')
+					this.getHallOrders()
+				} else if (this.activeTab === 'pickup') {
+					this.getPickupOrders()
+				} else if (this.activeTab === 'delivering') {
+					this.getDeliveringOrders()
+				}
+			},
+			getUserInfoDetail() {
+				this.$u.api.verifyDetail().then(res => {
+					if (res.code === 200) {
+						this.hasApprovedOfficial = res.data.hasApprovedOfficial === true
+					}
+				})
+			},
 			formatRemainTime(minutes) {
 				if (!minutes) return 0
 				if (minutes === 0) {
@@ -575,7 +598,7 @@
 						}
 						this.stats = [
 							{ value: res.data.score, label: '鏈嶅姟鍒�' },
-							{ value: res.data.todayCommission, label: '浠婃棩棰勮浣i噾' },
+							{ value: ((res.data.todayCommission / 100) || 0).toFixed(2), label: '浠婃棩棰勮浣i噾' },
 							{ value: res.data.todayOrderCount, label: '浠婃棩鎺ュ崟' }
 						]
 					}
@@ -660,7 +683,7 @@
 						this.orderList = this.hallPage === 1 ? list : this.orderList.concat(list)
 						this.hallHasMore = list.length >= this.hallPageSize
 					}
-				}).catch((err) => {
+				}).finally(() => {
 					this.hallLoading = false
 				})
 			},
@@ -1578,6 +1601,50 @@
 			}
 		}
 
+		&__route-badge {
+			width: 44rpx;
+			height: 44rpx;
+			border-radius: 50%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: 24rpx;
+			font-weight: 600;
+			color: #ffffff;
+			margin-right: 16rpx;
+			flex-shrink: 0;
+
+			&--take {
+				background: #10B2FA;
+			}
+
+			&--send {
+				background: #FF8A00;
+			}
+		}
+
+		&__route-badge-text {
+			display: inline-flex;
+			align-items: center;
+			justify-content: center;
+			width: 36rpx;
+			height: 36rpx;
+			border-radius: 50%;
+			font-size: 22rpx;
+			font-weight: 600;
+			color: #ffffff;
+			margin-right: 8rpx;
+			vertical-align: middle;
+
+			&--take {
+				background: #10B2FA;
+			}
+
+			&--send {
+				background: #FF8A00;
+			}
+		}
+
 		&__route-texts {
 			flex: 1;
 			min-width: 0;

--
Gitblit v1.9.3