From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 04 九月 2025 10:15:09 +0800
Subject: [PATCH] 前端

---
 small-program/pages/mine/mine.vue |  270 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 227 insertions(+), 43 deletions(-)

diff --git a/small-program/pages/mine/mine.vue b/small-program/pages/mine/mine.vue
index 7bc9062..26b9905 100644
--- a/small-program/pages/mine/mine.vue
+++ b/small-program/pages/mine/mine.vue
@@ -7,96 +7,130 @@
 			</view>
 			<view class="info">
 				<view class="info-box">
-					<view class="info-box-head" @click="jump(1)">
-						<view class="info-box-head-image">
-							<image src="/static/logo.png" mode="widthFix"></image>
+					<view class="info-box-head" >
+						<view class="info-box-head-image" @click="jump(isLogin?1:5)">
+							<image v-if="userInfo.fullCoverImage&&userInfo.fullCoverImage !=''" :src="userInfo.fullCoverImage" mode="widthFix"></image>
+							<image v-else src="/static/icon/img@2x.png" mode="widthFix"></image>
 						</view>
-						<view class="info-box-head-info">
-							<view class="info-box-head-info-name">鏉ㄥ┓鐟�</view>
+						<view class="info-box-head-info" v-if="isLogin">
+							<view class="info-box-head-info-name"  @click="jump(1)">{{userInfo.nickName||'鍖垮悕'}}</view>
 							<view class="info-box-head-info-type">
-								<view class="info-box-head-info-type-val">鐢ㄥ伐鍙戝竷鏂�</view>
-								<view class="info-box-head-info-type-wz">鍒囨崲</view>
+								<view class="info-box-head-info-type-val">{{userInfo.useIdentity==1?'鐢ㄥ伐鎺ュ崟鏂�':'鐢ㄥ伐鍙戝竷鏂�'}}</view>
+								<view class="info-box-head-info-type-wz" @click="editUseIdentity">鍒囨崲</view>
+							</view> 
+						</view>
+						<view class="info-box-head-info" v-else @click="jump(5)">
+							<view class="info-box-head-info-name">鐐瑰嚮鐧诲綍</view> 
+							<view class="info-box-head-info-type">
+								<view class="info-box-head-info-type-wz">寰俊鎺堟潈鐧诲綍</view>
 							</view>
 						</view>
 					</view>
 					<view class="info-box-label">璐︽埛浣欓</view>
 					<view class="info-box-price">
-						<text>楼1000.00</text>
-						<view class="info-box-price-btn" @click="jumpTX">鍘绘彁鐜�</view>
+						<text>锟{isLogin?((userInfo.amount|| 0)/100).toFixed(2) :0.00}}</text>
+						<view class="info-box-price-btn" @click="jump(isLogin?6:5)">鍘绘彁鐜�</view>
 					</view>
 				</view>
 			</view>
 			<view class="statistics">
-				<view class="statistics-box">
-					<view class="statistics-item">
-						<text>248</text>
+				<view class="statistics-box" v-if="!isLogin || userInfo.useIdentity !=1">
+					<view class="statistics-item" @click="jumpOrderList('0')" >
+						<text>{{isLogin?(userInfo.userCenterVO.releaseTaskTotal||0):'-'}}</text>
 						<text>鎬诲彂鍗曟暟</text>
 					</view>
 					<view class="statistics-x"></view>
-					<view class="statistics-item">
-						<text>1</text>
+					<view class="statistics-item" @click="jumpOrderList('1')" >
+						<text class="redtxt">{{isLogin?(userInfo.userCenterVO.waitReceiveTotal||0):'-'}}</text>
 						<text>寰呮帴鍗�</text>
 					</view>
-					<view class="statistics-item">
-						<text>2</text>
+					<view class="statistics-item" @click="jumpOrderList('2')" >
+						<text>{{isLogin?(userInfo.userCenterVO.doingTotal||0):'-'}}</text>
 						<text>杩涜涓�</text>
 					</view>
-					<view class="statistics-item">
-						<text>2</text>
+					<view class="statistics-item" @click="jumpOrderList('3')" >
+						<text>{{isLogin?(userInfo.userCenterVO.waitCommentTotal||0):'-'}}</text>
 						<text>寰呰瘎浠�</text>
 					</view>
+				</view>
+				<view class="statistics-box" v-else>
+					<view class="statistics-item" @click="jumpOrderList('4')" >
+						<text>{{isLogin?(userInfo.userCenterVO.receiveTotal||0):'-'}}</text>
+						<text>宸叉帴鍗�</text>
+					</view>
+					<view class="statistics-x"></view>
+					<view class="statistics-item" @click="jumpOrderList('5')">
+						<text>{{isLogin?(userInfo.userCenterVO.taskingTotal||0):'-'}}</text>
+						<text>杩涜涓�</text>
+					</view>
+					<view class="statistics-item" @click="jumpOrderList('6')">
+						<text>{{isLogin?(userInfo.userCenterVO.doneTotal||0):'-'}}</text>
+						<text>宸插畬鎴�</text>
+					</view> 
 				</view>
 			</view>
 			<view class="guanggao">
 				<view class="guanggao-image">
 					<image src="/static/image/share@2x.png" mode="widthFix"></image>
+					<button  mode="widthFix"class='sharebtn' open-type="share"></button>
 				</view>
 			</view>
-			<view class="paidan">
+			<view class="paidan"  v-if="isLogin && userInfo.useIdentity ==1">
 				<view class="paidan-box">
 					<view class="paidan-label">鎺ュ彈绯荤粺鑷姩娲惧崟</view>
 					<view class="paidan-right">
 						<text>鍏抽棴</text>
-						<u-switch activeColor="#00BC12" v-model="value"></u-switch>
+						<u-switch activeColor="#00BC12"  @change="updateMemberInfo" v-model="autoReceiveStatus"></u-switch>
 					</view>
 				</view>
 			</view>
 			<view class="list">
 				<view class="list-hz">
-					<view class="list-hz-item">
+					<view class="list-hz-item"@click="jumpService(1)">
 						<text>鏈嶅姟浠嬬粛</text>
-						<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
+						<u-icon name="arrow-right"   color="#111111" size="18"></u-icon>
 					</view>
-					<view class="list-hz-item">
+					<view class="list-hz-item" @click="jumpService(2)">
 						<text>鏀惰垂鏍囧噯</text>
 						<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
 					</view>
-					<view class="list-hz-item" @click="jump(2)">
+					<view class="list-hz-item" @click="jump(isLogin?2:5)">
 						<text>宸ヤ汉璧氶挶</text>
 						<view class="list-hz-item-r">
-							<text>鍙帴鐢ㄥ伐璁㈠崟</text>
+							<text v-if="userInfo.workerIdentity === 2">宸茶璇�</text>
+							<text class="orangetxt"  v-else-if="userInfo.workerIdentity === 1">璁よ瘉涓�</text> 
+							<text class="redtxt" v-else-if="userInfo.workerIdentity === 3">璁よ瘉澶辫触</text>
+							<text v-else>鍙帴鐢ㄥ伐璁㈠崟</text>
 							<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
 						</view>
 					</view>
-					<view class="list-hz-item" @click="jump(3)">
+					<view class="list-hz-item" @click="jump(isLogin?3:5)">
 						<text>鍙告満璧氶挶</text>
 						<view class="list-hz-item-r">
-							<text>鍙帴鐢ㄥ伐璁㈠崟</text>
+							<text v-if="userInfo.driverIdentity === 2">宸茶璇�</text>
+							<text class="orangetxt"  v-else-if="userInfo.driverIdentity === 1">璁よ瘉涓�</text> 
+							<text class="redtxt" v-else-if="userInfo.driverIdentity === 3">璁よ瘉澶辫触</text>
+							<text v-else>鍙帴杩愯揣璁㈠崟</text>
 							<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
 						</view>
 					</view>
-					<view class="list-hz-item" @click="jump(4)">
+					<view class="list-hz-item" @click="jump(isLogin?4:5)">
 						<text>鎴戣兘渚涢</text>
 						<view class="list-hz-item-r">
-							<text>鍙帴鐢ㄥ伐璁㈠崟</text>
+							<text v-if="userInfo.chefIdentity === 2">宸茶璇�</text>
+							<text class="orangetxt"  v-else-if="userInfo.chefIdentity === 1">璁よ瘉涓�</text> 
+							<text class="redtxt" v-else-if="userInfo.chefIdentity === 3">璁よ瘉澶辫触</text>
+							<text v-else>鍙帴鐢ㄩ璁㈠崟</text>
 							<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
 						</view>
 					</view>
-					<view class="list-hz-item">
+					<view class="list-hz-item" @click="jumpService(3)">
 						<text>鍏充簬鎴戜滑</text>
 						<u-icon name="arrow-right" color="#111111" size="18"></u-icon>
 					</view>
 				</view>
+				<view class="setup-sub" v-if="isLogin" @click="logOffDo">閫�鍑虹櫥褰�</view>
+				<view class="setup-sub" v-if="!isLogin" @click="jump(5)">鍘荤櫥褰�</view>
 			</view>
 		</view>
 	</view>
@@ -106,43 +140,155 @@
 	import { mapState } from 'vuex'
 	export default {
 		computed: {
-			...mapState(['navHeight', 'statusbarHeight'])
+			...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid'])
 		},
 		data() {
 			return {
-				value: false
+				changing:false,
+				changing1:false,
+				autoReceiveStatus: false,
+				isLogin:false,
+				useIdentity:0
+			}
+		},
+		onShow(options){ 
+			this.isLogin=false
+			this.autoReceiveStatus=false;
+			this.useIdentity =0
+			
+			if(this.token &&this.token!='' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
+			   this.isLogin=true
+			   this.getUserInfo()
+			   this.autoReceiveStatus = this.userInfo.autoReceiveStatus === 1 
+			   this.useIdentity = this.userInfo.useIdentity
 			}
 		},
 		methods: {
-			jumpTX() {
+			jumpOrderList(flag){
+				const app = getApp();
+				app.globalData.orderStatus = flag; 
+				uni.switchTab({
+					url: '/pages/demand-hall/demand-hall'
+				})
+			}, 
+			getUserInfo() {
+				var that = this;
+				this.$u.api.getMemberInfo({}).then(res =>{ 
+					if (res&&res.code ===200) { 
+						that.$store.commit('setUserInfo', res.data)
+						that.$isResolve()
+					}else{
+						that.$store.commit('setToken','')
+						that.$store.commit('setUserInfo',{})
+						that.$isResolve()
+					}
+				})
+			},
+			jumpService(flag) {
 				uni.navigateTo({
-					url: '/pages/withdrawal/withdrawal'
+					url: '/pages/rich-text-page/rich-text-page?flag='+flag
 				})
 			},
 			jump(type) {
 				switch(type) {
 					case 1:
 						uni.navigateTo({
-							url: '/pages/set-up/set-up'
+							url: '/packageA/pages/set-up/set-up'
 						})
 						break;
 					case 2:
-						uni.navigateTo({
-							url: '/pages/employment-certification/employment-certification'
-						})
+						if(!this.userInfo.workerIdentity ||this.userInfo.workerIdentity ==0){
+							uni.navigateTo({
+								url:  '/packageA/pages/employment-certification/employment-certification?flag=0'
+							})
+						}else{
+							uni.navigateTo({
+								url: '/packageA/pages/certification-results/certification-results?flag=0'
+							})
+						}
+						break;
 						break;
 					case 3:
-						uni.navigateTo({
-							url: '/pages/freight-certification/freight-certification'
-						})
+						if(!this.userInfo.driverIdentity ||this.userInfo.driverIdentity ==0){
+							uni.navigateTo({
+								url: '/packageA/pages/employment-certification/employment-certification?flag=1'
+							})
+						}else{
+							uni.navigateTo({
+								url: '/packageA/pages/certification-results/certification-results?flag=1'
+							})
+						}
 						break;
 					case 4:
+						if(!this.userInfo.chefIdentity ||this.userInfo.chefIdentity ==0){
+							uni.navigateTo({
+								url: '/packageA/pages/employment-certification/employment-certification?flag=2'
+							})
+						}else{
+							uni.navigateTo({
+								url: '/packageA/pages/certification-results/certification-results?flag=2'
+							})
+						}
+						break;
+					case 5:
 						uni.navigateTo({
-							url: '/pages/catering-certification/catering-certification'
+							url: '/pages/login/login'
+						})
+						break;
+					case 6:
+						uni.navigateTo({
+							url: '/packageA/pages/withdrawal/withdrawal'
+						})
+						break;
+					case 7:
+						uni.navigateTo({
+							url: '/packageA/pages/certification-results/certification-results'
 						})
 						break;
 				}
-			}
+			},
+			logOffDo() {
+			  var that = this
+			  this.$u.api.logOff({}).then(res =>{
+				    //閫�鍑虹櫥褰曟垚鍔�
+					that.isLogin =false
+				    that.$store.commit("empty") 
+			   })
+			} , 
+			editUseIdentity() {
+			  if(this.changing1){
+					return
+			  }
+			  this.changing1 = true
+			  var that = this
+			  var param ={useIdentity:this.userInfo.useIdentity==1?0:1}
+			  that.$u.api.editUseIdentity(param)
+			  .then(res =>{
+				    console.log(222,res)
+					if(res.code ===200){
+						that.userInfo.useIdentity = param.useIdentity
+						that.$store.commit('setUserInfo', that.userInfo)
+						uni.$emit('refresh')
+					} 
+			   }).finally(() => {
+					that.changing1 = false
+				})
+			} ,
+			updateMemberInfo(e) {
+				if(this.changing){
+					return
+				}
+			  this.changing = true
+			  var that = this 
+			  var param ={ autoReceiveStatus:that.autoReceiveStatus?1:0}
+			  this.$u.api.editMemberInfo(param).then(res =>{
+				  if(res.code ===200){
+				    that.userInfo.autoReceiveStatus = param.autoReceiveStatus
+				   }
+			   }).finally(() => {
+						 that.changing = false
+					})
+			} 
 		}
 	}
 </script>
@@ -163,6 +309,7 @@
 			.list {
 				width: 100%;
 				padding: 0 30rpx;
+				padding-bottom: 30px;
 				box-sizing: border-box;
 				.list-hz {
 					width: 100%;
@@ -234,6 +381,20 @@
 					image {
 						width: 100%;
 						height: 100%;
+						z-index: 999;
+					}
+					.sharebtn{
+						position: relative;
+						top: -150rpx;
+						left: 0;
+						outline:none;
+						padding:0px;
+						cursor: pointer;
+						border: none; 
+						opacity: 0;
+						width: 100%;
+						height: 100%;
+						z-index: 1000;
 					}
 				}
 			}
@@ -401,4 +562,27 @@
 			}
 		}
 	}
+	.setup-sub {
+		width: 100%;
+		height: 88rpx;
+		line-height: 88rpx;
+		text-align: center;
+		box-shadow: 0rpx 8rpx 12rpx 0rpx rgba(91,190,56,0.16);
+		border-radius: 44rpx;
+		font-weight: 500;
+		font-size: 32rpx;
+		color: #5BBE38;
+		margin-top: 80rpx;
+		border: 1rpx solid #15CF52;
+		bottom: 50px;
+	}
+	.bluetxt{
+		color:blue !important ;
+	} 
+	.redtxt{
+		color:#FF0000 !important ;
+	}   
+	.orangetxt{
+		color: #FF7200 !important ;
+	}
 </style>

--
Gitblit v1.9.3