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/mine/mine.vue |  107 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 78 insertions(+), 29 deletions(-)

diff --git a/app/pages/mine/mine.vue b/app/pages/mine/mine.vue
index fdb3a46..176735d 100644
--- a/app/pages/mine/mine.vue
+++ b/app/pages/mine/mine.vue
@@ -9,17 +9,16 @@
 		<scroll-view class="mine-page__body" scroll-y :style="bodyStyle">
 			<view class="mine-page__content">
 				<view class="mine-page__profile">
-					<image class="mine-page__avatar" src="/static/image/ic_pic@2x.png" mode="aspectFill"></image>
+					<image class="mine-page__avatar" :src="userInfo.imgurl || '/static/image/ic_pic@2x.png'" mode="aspectFill"></image>
 					<view class="mine-page__profile-info">
 						<view class="mine-page__name-row">
-							<text class="mine-page__name">{{ currentProfile.name }}</text>
-							<view v-if="currentProfile.levelTag" class="mine-page__level-tag">
-								<!-- <text class="mine-page__level-dot"></text> -->
+							<text class="mine-page__name">{{ userInfo.name }}</text>
+							<view v-if="userInfo.driverLevel" class="mine-page__level-tag">
 								<image src="/static/image/ic_jiangpai@2x.png" mode="widthFix" class="mine-page__level-dot"></image>
-								<text class="mine-page__level-text">{{ currentProfile.levelTag }}</text>
+								<text class="mine-page__level-text">{{ getDriverLevelText(userInfo.driverLevel) }}</text>
 							</view>
 						</view>
-						<text class="mine-page__phone">{{ currentProfile.phone }}</text>
+						<text class="mine-page__phone">{{ userInfo.telephone || '' }} 锛坽{ userInfo.carCode || '' }} 锛�</text>
 					</view>
 				</view>
 
@@ -47,12 +46,11 @@
 							<template v-if="item.key === 'wallet'">
 								<text class="menu-panel__sub menu-panel__sub--muted">浣欓锛歿{ currentProfile.walletBalance }}</text>
 							</template>
-							<template v-else-if="item.key === 'driver' && !currentProfile.verified">
-								<text class="menu-panel__sub menu-panel__sub--danger">瀹屾垚璁よ瘉鍚庡嵆鍙帴鍗�</text>
-							</template>
-							<template v-else-if="item.key === 'driver' && currentProfile.verified">
-								<text class="menu-panel__sub menu-panel__sub--warning">瀹℃牳涓�</text>
-								<text class="menu-panel__sub menu-panel__sub--primary">宸茶璇�</text>
+							<template v-if="item.key === 'driver'">
+								<text v-if="userInfo.auditStatus === 99" class="menu-panel__sub menu-panel__sub--danger">瀹屾垚璁よ瘉鍚庡嵆鍙帴鍗�</text>
+								<text v-else-if="userInfo.auditStatus === 0" class="menu-panel__sub menu-panel__sub--danger">瀹℃牳涓�</text>
+								<text v-if="userInfo.auditStatus === 2" class="menu-panel__sub menu-panel__sub--danger">宸查┏鍥�</text>
+								<text v-else-if="userInfo.auditStatus === 3" class="menu-panel__sub menu-panel__sub--primary">宸茶璇�</text>
 							</template>
 							<template v-else-if="item.key === 'setting'">
 								<text class="menu-panel__sub menu-panel__sub--muted">褰撳墠鐗堟湰V1.0.0</text>
@@ -67,12 +65,13 @@
 		</scroll-view>
 
 		<view class="mine-page__footer">
-			<button class="mine-page__logout" hover-class="mine-page__logout--hover">閫�鍑虹櫥褰�</button>
+			<button class="mine-page__logout" hover-class="mine-page__logout--hover" @click.stop="handleLogout">閫�鍑虹櫥褰�</button>
 		</view>
 	</view>
 </template>
 
 <script>
+	import { mapState } from 'vuex'
 	export default {
 		data() {
 			return {
@@ -101,16 +100,17 @@
 						name: '姹ゅ瓙鏂�',
 						phone: '18166565677锛堢殩BD23189锛�',
 						levelTag: 'S绾�',
-						totalIncome: '8,314.90',
-						pendingIncome: '2000.00',
-						orderCount: '329',
-						walletBalance: '楼1500.00',
+						totalIncome: '-',
+						pendingIncome: '-',
+						orderCount: '-',
+						walletBalance: '楼0',
 						verified: true
 					}
 				}
 			}
 		},
 		computed: {
+			...mapState(['userInfo']),
 			currentProfile() {
 				return this.useVerifiedState ? this.profileStates.verified : this.profileStates.guest
 			},
@@ -127,7 +127,32 @@
 			this.statusBarHeight = systemInfo.statusBarHeight || 0
 			this.navHeight = this.statusBarHeight + uni.upx2px(88)
 		},
+		onShow() {
+			this.getStats()
+			this.getUserInfo()
+		},
 		methods: {
+			getUserInfo() {
+				this.$u.api.verifyDetail().then(user => {
+					if (user.code === 200) {
+						this.$store.commit('setUserInfo', user.data);
+					}
+				})
+			},
+			getStats() {
+				this.$u.api.stats().then(res => {
+					if (res.code === 200 && res.data) {
+						this.profileStates.verified.totalIncome = (res.data.totalCommission / 100).toFixed(2)
+						this.profileStates.verified.pendingIncome = (res.data.pendingCommission / 100).toFixed(2)
+						this.profileStates.verified.orderCount = res.data.totalOrderCount || 0
+						this.profileStates.verified.walletBalance = '楼' + (res.data.balance / 100).toFixed(2)
+					}
+				})
+			},
+			getDriverLevelText(level) {
+				const map = { 5: 'S', 4: 'A', 3: 'B', 2: 'C', 1: 'D' }
+				return map[level] ? map[level] + '绾�' : ''
+			},
 			jump(item) {
 				console.log(item)
 				if (item.key === 'setting') {
@@ -135,10 +160,34 @@
 						url: '/pages/settings/settings'
 					})
 				} else if (item.key === 'driver') {
+					if (this.userInfo.businessStatus === 99) {
+						uni.navigateTo({
+							url: '/pages/driver-certification/driver-certification'
+						})
+					} else {
+						uni.navigateTo({
+							url: '/pages/certification-details/certification-details'
+						})
+					}
+				} else if (item.key === 'wallet') {
 					uni.navigateTo({
-						url: '/pages/certification-details/certification-details'
+						url: '/pages/wallet/wallet'
 					})
 				}
+			},
+			handleLogout() {
+				uni.showToast({ title: '閫�鍑轰腑...', icon: 'loading' })
+				this.$u.api.logOutDriver().then(res => {
+					console.log('logout res', res)
+					if (res.code === 200) {
+						this.$store.commit('clearAll')
+						uni.reLaunch({
+							url: '/pages/login/login'
+						})
+					}
+				}).catch(err => {
+					console.log('logout err', err)
+				})
 			}
 		}
 	}
@@ -243,23 +292,23 @@
 			position: fixed;
 			left: 0;
 			right: 0;
-			bottom: 0;
-			padding: 16rpx 0 calc(env(safe-area-inset-bottom) + 20rpx);
+			bottom: 60rpx;
+			// padding: 16rpx 0 calc(env(safe-area-inset-bottom) + 20rpx);
 			background: #f6f8fc;
 			display: flex;
 			justify-content: center;
 		}
 
 		&__logout {
-			width: 186rpx;
-			height: 70rpx;
-			line-height: 70rpx;
-			border-radius: 999rpx;
+			width: 200rpx;
+			height: 72rpx;
+			line-height: 72rpx;	
+			border-radius: 36rpx;
 			background: #ffffff;
-			border: 1rpx solid #d8dde5;
+			border: 1rpx solid #999999;
+			font-weight: 400;
 			font-size: 28rpx;
-			font-weight: 500;
-			color: #7e8794;
+			color: #333333;
 			padding: 0;
 
 			&::after {
@@ -367,7 +416,7 @@
 			}
 
 			&--danger {
-				color: #ff5a4f;
+				color: #FA1010;
 			}
 
 			&--warning {
@@ -375,7 +424,7 @@
 			}
 
 			&--primary {
-				color: #2b7cff;
+				color: #106EFA;
 			}
 		}
 

--
Gitblit v1.9.3