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 | 445 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 364 insertions(+), 81 deletions(-) diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue index 9eccc21..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> @@ -87,14 +171,69 @@ <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="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" @@ -116,12 +255,14 @@ </template> <script> - var app = getApp(); + import { + mapActions, + mapGetters, + mapMutations + } from 'vuex' export default { - data() { return { - identity: '', navList: [{ icon: 'icon-huabanfuben', name: '鍛樺伐绠$悊', @@ -130,8 +271,62 @@ url: '/pages/company/staff' }); } - }, ], - navList1: [{ + }], + 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() { @@ -140,9 +335,10 @@ }); } }, - { + ], + navList3: [{ icon: 'icon-dingdan', - name: '鎴戠殑宸ヤ綔', + name: '涓婄彮鎵撳崱', cb: this.toMyWork }, { @@ -150,65 +346,103 @@ name: '宸ヤ綔璁板綍', cb: this.toMyRecord }, + { + icon: 'icon-wanshanxinxi', + name: '淇敼璧勬枡', + cb: function() { + uni.navigateTo({ + url: '/pages/mine/apply' + }); + } + }, ], - isLogin: false, - userInfo: {}, - balance: '0.00', - isAdmin: false + 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) - } - } else { - if (that.userInfo.userCompany) { - that.balance = that.userInfo.userCompany.chongZhiYue ? that.userInfo - .userCompany.chongZhiYue : '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; - this.isAdmin = this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false + this.getUserInfo() }, - onPullDownRefresh() { - this.$api.getUser().then(res => { - this.$db.set('userInfo', JSON.stringify(res.data)) - this.userInfo = res.data - this.isAdmin = this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false + 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) { - this.balance = this.$common.moneySub(this.userInfo.userWorker.tiXianZonge, this.userInfo + return this.$common.moneySub(this.userInfo.userWorker.tiXianZonge, this.userInfo .userWorker .yiTiXianJine) + } else { + return '0.00' } } else { if (this.userInfo.userCompany) { - this.balance = this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany + return this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany .chongZhiYue : '0.00' + } else { + return '0.00' } } - }) - uni.stopPullDownRefresh(); + } }, methods: { + ...mapActions([ + 'getUserInfo' + ]), + ...mapMutations(['setIdentity']), tologin() { if (this.isLogin) { uni.navigateTo({ @@ -267,6 +501,20 @@ 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({ @@ -296,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({ @@ -322,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> @@ -331,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; @@ -488,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