From 98494fda33f6dd116ef3ce641b32937b7d83b4c1 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期三, 12 三月 2025 17:15:07 +0800
Subject: [PATCH] -

---
 src/pages/mine/index.vue |  492 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 407 insertions(+), 85 deletions(-)

diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue
index 84c9e81..dea958c 100644
--- a/src/pages/mine/index.vue
+++ b/src/pages/mine/index.vue
@@ -1,6 +1,6 @@
 <template>
 	<view class="container">
-		<view class="header">
+		<view :class="identity=='enterprise'?'header-hide':'header'">
 			<view class="header-img">
 				<view class="header-image-left" @click='tologin'>
 					<up-avatar :src="userInfo.avatar" shape="circle" size='60'></up-avatar>
@@ -12,7 +12,7 @@
 					<text class='iconfont icon-qiehuan chuany-font28'></text>
 				</view>
 			</view>
-			<view class="num-box">
+			<view class="num-box" v-if="identity!=='enterprise'">
 				<view @tap="goWallet" class="num-item" data-ptpid="ef57-17f4-bbea-280f">
 					<view class="num-bold">{{ balance }}鍏�</view>
 					<view class="num-text">
@@ -28,13 +28,13 @@
 					浼佷笟鏈嶅姟
 				</view>
 				<view class="tool_content">
-					<view class="tool_item" @click="toRelease">
+					<view class="tool_item" @click="toRelease" v-if="isAdmin">
 						<image src="@/static/image/fabu.png" mode="aspectFit" class="item_img"></image>
 						<view class="tool_label">
 							鍙戝竷鑱屼綅
 						</view>
 					</view>
-					<view class="tool_item" @click="toOrder">
+					<view class="tool_item" @click="toOrder" v-if="isAdmin">
 						<image src="@/static/image/guanli.png" mode="aspectFit" class="item_img"></image>
 						<view class="tool_label">
 							鑱屼綅绠$悊
@@ -46,18 +46,102 @@
 							鎴戠殑浼佷笟
 						</view>
 					</view>
-					<view class="tool_item" @click="toWorkerRecord">
+					<view class="tool_item" @click="toWorkerRecord" v-if="isAdmin">
 						<image src="@/static/image/record.png" mode="aspectFit" class="item_img"></image>
 						<view class="tool_label">
-							鎵撳崱璁板綍
+							宸ヨ祫瀹℃牳
 						</view>
 					</view>
-					<!-- <view class="tool_item" @click="toPage('/otherPages/member/sendCompany/sendCompany')">
-						<image src="@/static/image/server.png" mode="aspectFit" class="item_img"></image>
+					<view class="tool_item" @click="toSalary" v-if="isAdmin">
+						<image src="@/static/image/salary.png" mode="aspectFit" class="item_img"></image>
 						<view class="tool_label">
-							鏈嶅姟涓績
+							宸ヨ祫鏌ヨ
 						</view>
-					</view> -->
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="money_bag" v-if="identity=='enterprise'&&isWorker">
+			<view class="tool_wrap">
+				<view class="tool_title">
+					璐圭敤鎶ラ攢
+				</view>
+				<view class="tool_content">
+					<view class="tool_item" @click="toReimbursement" v-if="isWorker">
+						<image src="@/static/image/baoxiao.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							鎶ラ攢鐢宠
+						</view>
+					</view>
+					<view class="tool_item" @click="toMyList" v-if="isWorker">
+						<image src="@/static/image/mybaoxiao.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							鎴戠殑鎶ラ攢
+						</view>
+					</view>
+					<view class="tool_item" @click="toCaiwu" v-if="IsCaiWu">
+						<image src="@/static/image/caiwu.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							璐圭敤鎶ラ攢
+						</view>
+					</view>
+					<view class="tool_item" @click="toZhuguan" v-if="IsBaoxiaozhuguan">
+						<image src="@/static/image/zshenpi.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							涓荤瀹℃壒
+						</view>
+					</view>
+					<view class="tool_item" @click="toJingli" v-if="Isbaoxiaojingli">
+						<image src="@/static/image/Jshenpi.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							鎶ラ攢瀹℃壒
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="money_bag" v-if="identity=='enterprise'&&isWorker">
+			<view class="tool_wrap">
+				<view class="tool_title">
+					鐗╂祦绠$悊
+				</view>
+				<view class="tool_content">
+					<view class="tool_item" @click="toDelivergoods('reservationWorker')" v-if="isWorker">
+						<image src="@/static/image/reservation.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							棰勭害閫佽揣
+						</view>
+					</view>
+					<view class="tool_item" @click="toDelivergoods('reservation')" v-if="isDeliverManage">
+						<image src="@/static/image/drivershouli.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							閫佽揣鍙楃悊
+						</view>
+					</view>
+					<view class="tool_item" @click="toDelivergoods('arrange')" v-if="isDeliverManage">
+						<image src="@/static/image/arrange.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							閫佽揣瀹夋帓
+						</view>
+					</view>
+					<view class="tool_item" @click="toDelivergoods('query')" v-if="isDeliverManage||isWorker">
+						<image src="@/static/image/query.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							閫佽揣鏌ヨ
+						</view>
+					</view>
+					<view class="tool_item" @click="toDelivergoods('feedback')" v-if="isDriver">
+						<image src="@/static/image/feedback.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							閫佽揣鍙嶉
+						</view>
+					</view>
+					<view class="tool_item" @click="toDelivergoods('clockIn')" v-if="isDriver">
+						<image src="@/static/image/daka.png" mode="aspectFit" class="item_img"></image>
+						<view class="tool_label">
+							鍙告満鎵撳崱
+						</view>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -80,18 +164,76 @@
             </view>
         </view> -->
 		<view class="nav-box" v-if="identity=='enterprise'">
-			<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
-				v-for="(item, index) in navList" :key="item.name">
-				<view class="nav-title">
-					<view :class="'iconfont ' + item.icon"></view>
-					{{ item.name }}
-				</view>
+			<view class="" v-if="isAdmin">
+				<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
+					v-for="(item, index) in navList" :key="item.name">
+					<view class="nav-title">
+						<view :class="'iconfont ' + item.icon"></view>
+						{{ item.name }}
+					</view>
 
-				<view class="nav-icon">
-					<view v-if="item.num || item.num === 0">{{ item.num }}</view>
-					<view class="iconfont iconarrow"></view>
+					<view class="nav-icon">
+						<view v-if="item.num || item.num === 0">{{ item.num }}</view>
+						<view class="iconfont iconarrow"></view>
+					</view>
 				</view>
 			</view>
+			<!-- <view class="" v-if="isWorker">
+				<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
+					v-for="(item, index) in workerList" :key="item.name">
+					<view class="nav-title">
+						<view :class="'iconfont ' + item.icon"></view>
+						{{ item.name }}
+					</view>
+
+					<view class="nav-icon">
+						<view v-if="item.num || item.num === 0">{{ item.num }}</view>
+						<view class="iconfont iconarrow"></view>
+					</view>
+				</view>
+			</view> -->
+			<!-- <view class="" v-if="Isbaoxiaojingli">
+				<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
+					v-for="(item, index) in jingLiList" :key="item.name">
+					<view class="nav-title">
+						<view :class="'iconfont ' + item.icon"></view>
+						{{ item.name }}
+					</view>
+
+					<view class="nav-icon">
+						<view v-if="item.num || item.num === 0">{{ item.num }}</view>
+						<view class="iconfont iconarrow"></view>
+					</view>
+				</view>
+			</view> -->
+			<!-- <view class="" v-if="IsBaoxiaozhuguan">
+				<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
+					v-for="(item, index) in zhuGuanList" :key="item.name">
+					<view class="nav-title">
+						<view :class="'iconfont ' + item.icon"></view>
+						{{ item.name }}
+					</view>
+
+					<view class="nav-icon">
+						<view v-if="item.num || item.num === 0">{{ item.num }}</view>
+						<view class="iconfont iconarrow"></view>
+					</view>
+				</view>
+			</view> -->
+			<!-- <view class="" v-if="IsCaiWu">
+				<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
+					v-for="(item, index) in CaiWuList" :key="item.name">
+					<view class="nav-title">
+						<view :class="'iconfont ' + item.icon"></view>
+						{{ item.name }}
+					</view>
+
+					<view class="nav-icon">
+						<view v-if="item.num || item.num === 0">{{ item.num }}</view>
+						<view class="iconfont iconarrow"></view>
+					</view>
+				</view>
+			</view> -->
 		</view>
 		<view class="nav-box" v-else>
 			<view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e"
@@ -113,24 +255,78 @@
 </template>
 
 <script>
-	var app = getApp();
+	import {
+		mapActions,
+		mapGetters,
+		mapMutations
+	} from 'vuex'
 	export default {
-
 		data() {
 			return {
-				identity: '',
-				navList: [
-					// 	{
-					// 	icon: 'icon-huabanfuben',
-					// 	name: '宸ヤ汉鎵撳崱璁板綍',
-					// 	cb: function() {
-					// 		uni.navigateTo({
-					// 			url: '/pages/company/index'
-					// 		});
-					// 	}
-					// },
-				],
-				navList1: [{
+				navList: [{
+					icon: 'icon-huabanfuben',
+					name: '鍛樺伐绠$悊',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/company/staff'
+						});
+					}
+				}],
+				workerList: [{
+					icon: 'icon-baoxiaoshenqing',
+					name: '璐圭敤鎶ラ攢鐢宠',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/reimbursement/index'
+						});
+					}
+				}, {
+					icon: 'icon-baoxiao',
+					name: '鎴戠殑璐圭敤鎶ラ攢',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/reimbursement/myreim'
+						});
+					}
+				}],
+				CaiWuList: [{
+					icon: 'icon-baoxiaodan',
+					name: '璐圭敤鎶ラ攢',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/reimbursement/reimbursement'
+						});
+					}
+				}],
+				zhuGuanList: [{
+					icon: 'icon-shenpicaigoudan',
+					name: '涓荤鍒楄〃',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/reimbursement/examine?role=zhuGuan'
+						});
+					}
+				}],
+				jingLiList: [{
+					icon: 'icon-shenpi',
+					name: '缁忕悊鍒楄〃',
+					cb: function() {
+						uni.navigateTo({
+							url: '/pages/reimbursement/examine?role=jingLi'
+						});
+					}
+				}],
+				navList2: [{
+						icon: 'icon-dingdan',
+						name: '涓婄彮鎵撳崱',
+						cb: this.toMyWork
+					},
+					{
+						icon: 'icon-fuwutuandui',
+						name: '宸ヤ綔璁板綍',
+						cb: this.toMyRecord
+					},
+					{
 						icon: 'icon-wanshanxinxi',
 						name: '瀹屽杽璧勬枡',
 						cb: function() {
@@ -139,9 +335,10 @@
 							});
 						}
 					},
-					{
+				],
+				navList3: [{
 						icon: 'icon-dingdan',
-						name: '鎴戠殑宸ヤ綔',
+						name: '涓婄彮鎵撳崱',
 						cb: this.toMyWork
 					},
 					{
@@ -149,42 +346,103 @@
 						name: '宸ヤ綔璁板綍',
 						cb: this.toMyRecord
 					},
+					{
+						icon: 'icon-wanshanxinxi',
+						name: '淇敼璧勬枡',
+						cb: function() {
+							uni.navigateTo({
+								url: '/pages/mine/apply'
+							});
+						}
+					},
 				],
-				isLogin: false,
-				userInfo: {},
-				balance: '0.00'
+				token: this.$db.get('userToken') || ''
 			};
 		},
 		onLoad: function() {
 
-
 		},
 		onShow: function() {
-			let that = this
-			this.userInfo = this.$db.get('userInfo') ? JSON.parse(this.$db.get('userInfo')) : {}
-			this.token = this.$db.get('userToken') ? this.$db.get('userToken') : ''
-			uni.getStorage({
-				key: 'identity',
-				success: function(res) {
-					that.identity = res.data
-					if (res.data == 'worker') {
-						if (that.userInfo.userWorker) {
-							that.balance = that.$common.moneySub(that.userInfo.userWorker.tiXianZonge, that
-								.userInfo.userWorker.yiTiXianJine)
-						}
+			this.getUserInfo()
+		},
+		computed: {
+			...mapGetters(['userInfo', 'identity']),
+			isAdmin() {
+				return this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false
+			},
+			// 鏄惁鏄憳宸�
+			isWorker() {
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.memberId ? true : false
+				}
+				return false
+			},
+			//鏄惁鏄�佽揣绠$悊绠$悊鍛�
+			isDeliverManage(){
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.bF_IsDeliverManage ? true : false
+				}
+				return false
+			},
+			// 鏄惁涓烘姤閿�涓荤
+			IsBaoxiaozhuguan() {
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.bF_IsBaoxiaozhuguan ? true : false
+				}
+				return false
+			},
+			// 鏄惁涓烘姤閿�缁忕悊
+			Isbaoxiaojingli() {
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.bF_Isbaoxiaojingli ? true : false
+				}
+				return false
+			},
+			// 璐㈠姟
+			IsCaiWu() {
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.bF_IsCaiWu ? true : false
+				}
+				return false
+			},
+			// 鏄惁鏄徃鏈�
+			isDriver() {
+				if (this.userInfo.oaPermissions) {
+					return this.userInfo.oaPermissions.bF_IsDriver ? true : false
+				}
+				return false
+			},
+			navList1() {
+				return this.userInfo.userWorker ? this.navList3 : this.navList2
+			},
+			isLogin() {
+				return this.token ? true : false;
+			},
+			balance() {
+				if (this.identity == 'worker') {
+					if (this.userInfo.userWorker) {
+						return this.$common.moneySub(this.userInfo.userWorker.tiXianZonge, this.userInfo
+							.userWorker
+							.yiTiXianJine)
 					} else {
-						if (that.userInfo.userCompany) {
-							that.balance = that.userInfo.userCompany.chongZhiYue ? that.userInfo
-								.userCompany.chongZhiYue : '0.00'
-						}
+						return '0.00'
+					}
+				} else {
+					if (this.userInfo.userCompany) {
+						return this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany
+							.chongZhiYue :
+							'0.00'
+					} else {
+						return '0.00'
 					}
 				}
-			});
-			// this.userInfo = this.$db.get('userInfo') ? JSON.parse(this.$db.get('userInfo')) : {}
-			// this.token = this.$db.get('userToken') ? this.$db.get('userToken') : ''
-			this.isLogin = this.token ? true : false;
+			}
 		},
 		methods: {
+			...mapActions([
+				'getUserInfo'
+			]),
+			...mapMutations(['setIdentity']),
 			tologin() {
 				if (this.isLogin) {
 					uni.navigateTo({
@@ -198,6 +456,9 @@
 			},
 			toOrder() {
 				if (!this.userInfo.userCompany) {
+					uni.navigateTo({
+						url: '/pages/enterprise/enterprise'
+					});
 					this.$util.showToast({
 						title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�'
 					})
@@ -209,6 +470,9 @@
 			},
 			toRelease() {
 				if (!this.userInfo.userCompany) {
+					uni.navigateTo({
+						url: '/pages/enterprise/enterprise'
+					});
 					this.$util.showToast({
 						title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�'
 					})
@@ -225,6 +489,9 @@
 			},
 			toWorkerRecord() {
 				if (!this.userInfo.userCompany) {
+					uni.navigateTo({
+						url: '/pages/enterprise/enterprise'
+					});
 					this.$util.showToast({
 						title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�'
 					})
@@ -234,8 +501,25 @@
 					url: '/pages/company/index'
 				});
 			},
+			toSalary() {
+				if (!this.userInfo.userCompany) {
+					uni.navigateTo({
+						url: '/pages/enterprise/enterprise'
+					});
+					this.$util.showToast({
+						title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�'
+					})
+					return
+				}
+				uni.navigateTo({
+					url: '/pages/worker/salary'
+				});
+			},
 			toMyWork() {
 				if (!this.userInfo.userWorker) {
+					uni.navigateTo({
+						url: '/pages/mine/apply'
+					});
 					this.$util.showToast({
 						title: '璇峰厛瀹屽杽璧勬枡锛�'
 					})
@@ -245,8 +529,11 @@
 					url: '/pages/order/myorder'
 				});
 			},
-			toMyRecord(){
+			toMyRecord() {
 				if (!this.userInfo.userWorker) {
+					uni.navigateTo({
+						url: '/pages/mine/apply'
+					});
 					this.$util.showToast({
 						title: '璇峰厛瀹屽杽璧勬枡锛�'
 					})
@@ -257,23 +544,25 @@
 				});
 			},
 			changRole() {
-				this.identity = this.identity === 'enterprise' ? 'worker' : 'enterprise'
-				console.log(this.identity, 'this.identity');
-				uni.setStorage({
-					key: 'identity',
-					data: this.identity,
-				});
-				if (this.identity == 'worker') {
-					if (this.userInfo.userWorker) {
-						this.balance = this.$common.moneySub(this.userInfo.userWorker.tiXianZonge, this.userInfo.userWorker
-							.yiTiXianJine)
-					}
-				} else {
-					if (this.userInfo.userCompany) {
-						this.balance = this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany.chongZhiYue :
-							'0.00'
-					}
-				}
+				this.$store.commit('setIdentity', this.identity === 'enterprise' ? 'worker' : 'enterprise')
+				// this.$db.set('identity', this.identity === 'enterprise' ? 'worker' : 'enterprise')
+				// this.identity = this.identity === 'enterprise' ? 'worker' : 'enterprise'
+				console.log(this.identity, this.$db.get('identity'), 'this.identity');
+				// uni.setStorage({
+				// 	key: 'identity',
+				// 	data: this.identity,
+				// });
+				// if (this.identity == 'worker') {
+				// 	if (this.userInfo.userWorker) {
+				// 		this.balance = this.$common.moneySub(this.userInfo.userWorker.tiXianZonge, this.userInfo.userWorker
+				// 			.yiTiXianJine)
+				// 	}
+				// } else {
+				// 	if (this.userInfo.userCompany) {
+				// 		this.balance = this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany.chongZhiYue :
+				// 			'0.00'
+				// 	}
+				// }
 			},
 			goWallet() {
 				uni.navigateTo({
@@ -283,6 +572,37 @@
 					}
 				});
 			},
+			toReimbursement() {
+				uni.navigateTo({
+					url: '/pages/reimbursement/index'
+				});
+			},
+			toMyList() {
+				uni.navigateTo({
+					url: '/pages/reimbursement/myreim'
+				});
+			},
+			toCaiwu() {
+				uni.navigateTo({
+					url: '/pages/reimbursement/reimbursement'
+				});
+			},
+			toZhuguan() {
+				uni.navigateTo({
+					url: '/pages/reimbursement/examine?role=zhuGuan'
+				});
+			},
+			toJingli() {
+				uni.navigateTo({
+					url: '/pages/reimbursement/examine?role=jingLi'
+				});
+			},
+			toDelivergoods(val) {
+				uni.navigateTo({
+					url: `/pages/delivergoods/${val}?isAdmin=${this.isDeliverManage}`
+				});
+			}
+
 		}
 	};
 </script>
@@ -292,8 +612,8 @@
 	.money_bag {
 		background: #fff;
 		border-radius: 16rpx;
-		margin: 20rpx 30rpx;
-		padding: 20rpx 30rpx;
+		margin: 18rpx 26rpx;
+		padding: 16rpx 26rpx;
 		position: relative;
 		// top: 25rpx;
 		z-index: 2;
@@ -449,22 +769,24 @@
 				color: #333;
 				font-size: 32rpx;
 				font-weight: 700;
-				padding: 30rpx 0;
+				padding: 20rpx 0;
 				border-bottom: 2rpx solid #eee;
 			}
 
 			.tool_content {
 				display: flex;
-				padding: 30rpx 0;
+				// justify-content: space-between;
+				padding: 20rpx 0;
+				flex-wrap: wrap;
 
 				.tool_item {
 					align-items: center;
 					display: flex;
 					flex-direction: column;
-					height: 120rpx;
+					height: 128rpx;
 					justify-content: center;
-					margin: 0 50rpx 0 0;
-					width: 120rpx;
+					// margin: 0 50rpx 0 0;
+					width: 128rpx;
 
 					&:nth-child(4n) {
 						margin-right: 0;

--
Gitblit v1.9.1