From 309cc3fe6303d8464951063e89fc9d623915501e Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 10 三月 2025 16:23:35 +0800 Subject: [PATCH] - --- src/pages/mine/index.vue | 485 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 400 insertions(+), 85 deletions(-) diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue index 84c9e81..86e201e 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,96 @@ 鎴戠殑浼佷笟 </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="isDriver"> + <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> </view> </view> @@ -80,18 +158,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 +249,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 +329,10 @@ }); } }, - { + ], + navList3: [{ icon: 'icon-dingdan', - name: '鎴戠殑宸ヤ綔', + name: '涓婄彮鎵撳崱', cb: this.toMyWork }, { @@ -149,42 +340,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 +450,9 @@ }, toOrder() { if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); this.$util.showToast({ title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' }) @@ -209,6 +464,9 @@ }, toRelease() { if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); this.$util.showToast({ title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' }) @@ -225,6 +483,9 @@ }, toWorkerRecord() { if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); this.$util.showToast({ title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' }) @@ -234,8 +495,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 +523,11 @@ url: '/pages/order/myorder' }); }, - toMyRecord(){ + toMyRecord() { if (!this.userInfo.userWorker) { + uni.navigateTo({ + url: '/pages/mine/apply' + }); this.$util.showToast({ title: '璇峰厛瀹屽杽璧勬枡锛�' }) @@ -257,23 +538,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 +566,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 +606,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 +763,23 @@ 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; .tool_item { align-items: center; display: flex; flex-direction: column; - height: 120rpx; + height: 130rpx; justify-content: center; - margin: 0 50rpx 0 0; - width: 120rpx; + // margin: 0 50rpx 0 0; + width: 130rpx; &:nth-child(4n) { margin-right: 0; -- Gitblit v1.9.1