From d3e6dd6b3032c119676efa1e9fcee3a8a8043fc5 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期五, 07 三月 2025 13:40:44 +0800 Subject: [PATCH] ‘’ --- src/pages/mine/index.vue | 613 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 452 insertions(+), 161 deletions(-) diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue index 62c8609..049ddfa 100644 --- a/src/pages/mine/index.vue +++ b/src/pages/mine/index.vue @@ -1,11 +1,10 @@ <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'> - <image lazyLoad @tap="chooseImage" data-ptpid="4c7f-1f6c-b145-b80f" - :src="avatarUrl + '?imageView2/0/w/180'" v-if="avatarUrl"></image> - <view class="header-name">{{ userName || (isLogin ? '鏆傛棤灏忎富淇℃伅' : '鐧诲綍寮�鍚禋閽变箣鏃呭摝') }}</view> + <up-avatar :src="userInfo.avatar" shape="circle" size='60'></up-avatar> + <view class="header-name">{{ userInfo.nickname || (isLogin ? '鏆傛棤淇℃伅' : '鐐瑰嚮鐧诲綍') }}</view> </view> <view @tap="changRole" class="header-image-right chuany-flex chuany-align-center chuany-justify-center" data-ptpid="e758-138d-b914-343f"> @@ -13,9 +12,9 @@ <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">{{ money }}鍏�</view> + <view class="num-bold">{{ balance }}鍏�</view> <view class="num-text"> <text class="c-m-r-10">{{ identity=='enterprise' ? '浼佷笟浣欓' : '绔嬪嵆鎻愮幇' }}</text> <up-icon name="arrow-right-double"></up-icon> @@ -29,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"> 鑱屼綅绠$悊 @@ -47,10 +46,94 @@ 鎴戠殑浼佷笟 </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="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="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 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> @@ -74,29 +157,86 @@ <view class="text">宸插畬鎴�</view> </view> </view> --> - <inner-banner className="mg32" :list="bannerList" ptpId="1ab7-1b95-8e0e-3b22"></inner-banner> <view class="nav-box" v-if="identity=='enterprise'"> - <view @tap="navTap" 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="navTap" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e" + <view @tap="item.cb" class="nav-item" :data-index="index" data-ptpid="58ac-1481-a7d3-b98e" v-for="(item, index) in navList1" :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> @@ -109,204 +249,354 @@ </template> <script> - var n = ['https://qiniu-image.qtshe.com/719defaultAvatar1.png', 'https://qiniu-image.qtshe.com/719defaultAvatar2.png', - 'https://qiniu-image.qtshe.com/719defaultAvatar3.png' - ]; - var app = getApp(); + import { + mapActions, + mapGetters, + mapMutations + } from 'vuex' export default { - data() { return { - identity: '', - money: '0.00', - score: 0, - perfectResume: false, - bannerList: [], - navList: [ - // { - // icon: 'iconmy_collect_normal', - // name: '鎴戠殑鏀惰棌', - // num: 0, - // cb: function () { - // uni.navigateTo({ - // url: '/pages/collect/collect' - // }); - // } - // }, - - // { - // icon: 'iconmy_new_normal', - // name: '鏈嶅姟涓績', - // cb: function () { - // uni.navigateTo({ - // url: '/pages/webview/webview?targetUrl=' + encodeURIComponent(l + '/service/index') - // }); - // } - // }, - { - icon: 'icon-huabanfuben', - name: '鐢ㄦ埛璁剧疆', - cb: function() { - uni.navigateTo({ - url: '/mine/setting/index' - }); - } + navList: [{ + icon: 'icon-huabanfuben', + name: '鍛樺伐绠$悊', + cb: function() { + uni.navigateTo({ + 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: '鎴戠殑璁㈠崟', - num: 0, - cb: function() { - uni.navigateTo({ - url: '/pages/collect/collect' - }); - } + name: '涓婄彮鎵撳崱', + cb: this.toMyWork }, - { icon: 'icon-fuwutuandui', - name: '鏈嶅姟涓績', + name: '宸ヤ綔璁板綍', + cb: this.toMyRecord + }, + { + icon: 'icon-wanshanxinxi', + name: '瀹屽杽璧勬枡', cb: function() { uni.navigateTo({ - url: '/pages/webview/webview?targetUrl=' + encodeURIComponent(l + - '/service/index') + url: '/pages/mine/apply' }); } }, + ], + navList3: [{ + icon: 'icon-dingdan', + name: '涓婄彮鎵撳崱', + cb: this.toMyWork + }, { - icon: 'icon-huabanfuben', - name: '鐢ㄦ埛璁剧疆', + icon: 'icon-fuwutuandui', + name: '宸ヤ綔璁板綍', + cb: this.toMyRecord + }, + { + icon: 'icon-wanshanxinxi', + name: '淇敼璧勬枡', cb: function() { uni.navigateTo({ - url: '/mine/setting/index' + url: '/pages/mine/apply' }); } - } + }, ], - userApplyStatistics: { - allCount: 0, - hasApplyCount: 0, - applyOngoingCount: 0, - applySuccessCount: 0 - }, - isDialog: false, - signInfo: { - attendanceNumber: '', - attendanceIntegralList: '', - attendanceTotal: '', - beansList: '' - }, - beansList: [5, 5, 5, 5, 50, 5, 100], - attendance: false, - userName: '', - avatarUrl: 'https://qiniu-image.qtshe.com/719defaultAvatar2.png', - isLogin: false, + token: this.$db.get('userToken') || '' }; }, onLoad: function() { - let that = this - uni.hideShareMenu(); - uni.getStorage({ - key: 'identity', - success: function(res) { - that.identity = res.data - } - }); + }, onShow: function() { - this.resourceBanner(); - - this.token = this.$db.get('userToken') ? this.$db.get('userToken') : '' - this.isLogin = this.token?true:false; + this.getUserInfo() }, - onShareAppMessage: function() { - return { - title: '姣忔棩绛惧埌棰嗛潚璞嗭紝鐖嗘濂界墿0鍏冨緱>>', - imageUrl: 'https://qiniu-image.qtshe.com/early1024/share_qiandao.png', - path: '/pages/index/index?pt=8' - }; + 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 { + return '0.00' + } + } else { + if (this.userInfo.userCompany) { + return this.userInfo.userCompany.chongZhiYue ? this.userInfo.userCompany + .chongZhiYue : + '0.00' + } else { + return '0.00' + } + } + } }, methods: { + ...mapActions([ + 'getUserInfo' + ]), + ...mapMutations(['setIdentity']), tologin() { - if(this.isLogin){ + if (this.isLogin) { uni.navigateTo({ url: '/pages/mine/mine' }) - }else{ + } else { uni.navigateTo({ url: '/pages/login/index' }) } }, toOrder() { + if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); + this.$util.showToast({ + title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' + }) + return + } uni.navigateTo({ url: '/pages/order/order' }) }, toRelease() { + if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); + this.$util.showToast({ + title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' + }) + return + } uni.navigateTo({ url: '/pages/release/index' }) }, - toEnterprise(){ + toEnterprise() { uni.navigateTo({ url: '/pages/enterprise/index' }) }, - checkToken: function(t) {}, - - loginOutInit: function() {}, - - getQtbaoMoney: function() {}, - - checkNumber: function(t) {}, - - getSignInfo: function(t) {}, - - changRole: function() { - this.identity = this.identity === 'enterprise' ? 'worker' : 'enterprise' - console.log(this.identity, 'this.identity'); - uni.setStorage({ - key: 'identity', - data: this.identity, + toWorkerRecord() { + if (!this.userInfo.userCompany) { + uni.navigateTo({ + url: '/pages/enterprise/enterprise' + }); + this.$util.showToast({ + title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�' + }) + return + } + uni.navigateTo({ + url: '/pages/company/index' }); }, - - handleReset: function() {}, - - resourceBanner: function() {}, - - navTap: function(t) {}, - - loginSuccess: function() {}, - - chooseImage: function(t) {}, - - getImage: function(t) {}, - - goWallet: function() { + 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: '璇峰厛瀹屽杽璧勬枡锛�' + }) + return + } + uni.navigateTo({ + url: '/pages/order/myorder' + }); + }, + toMyRecord() { + if (!this.userInfo.userWorker) { + uni.navigateTo({ + url: '/pages/mine/apply' + }); + this.$util.showToast({ + title: '璇峰厛瀹屽杽璧勬枡锛�' + }) + return + } + uni.navigateTo({ + url: '/pages/checkin/index' + }); + }, + changRole() { + 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({ url: '/pages/wallet/index', - fail: function(err) { + fail(err) { console.log(err); } }); }, - - skipToQtsbean: function() {}, - - gotoMyJob: function(t) {}, - - // 璺宠浆鍒扮畝鍘嗗畬鍠勯〉闈� - skipToResume: function() { + toReimbursement() { uni.navigateTo({ - url: '/mine/resume/resume', - fail: function(err) { - console.log(err); - } + 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> @@ -479,6 +769,7 @@ .tool_content { display: flex; + justify-content: space-between; padding: 30rpx 0; .tool_item { @@ -487,7 +778,7 @@ flex-direction: column; height: 120rpx; justify-content: center; - margin: 0 50rpx 0 0; + // margin: 0 50rpx 0 0; width: 120rpx; &:nth-child(4n) { -- Gitblit v1.9.1