From e3f6581c48b1dfb65c55e8a1a6ce1761a7dc26b4 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期四, 16 一月 2025 15:29:43 +0800
Subject: [PATCH] 费用报销
---
src/pages/mine/index.vue | 401 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 320 insertions(+), 81 deletions(-)
diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue
index b580709..9b950dc 100644
--- a/src/pages/mine/index.vue
+++ b/src/pages/mine/index.vue
@@ -1,10 +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'>
<up-avatar :src="userInfo.avatar" shape="circle" size='60'></up-avatar>
- <view class="header-name">{{ userInfo.nickname || (isLogin ? '鏆傛棤灏忎富淇℃伅' : '鐧诲綍寮�鍚禋閽变箣鏃呭摝') }}</view>
+ <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">
@@ -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,18 @@
鎴戠殑浼佷笟
</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>
@@ -80,16 +80,74 @@
</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>
@@ -113,77 +171,186 @@
</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: [{
- icon: 'icon-dingdan',
- name: '鎴戠殑宸ヤ綔',
+ navList: [{
+ icon: 'icon-huabanfuben',
+ name: '鍛樺伐绠$悊',
+ cb: function() {
+ uni.navigateTo({
+ url: '/pages/company/staff'
+ });
+ }
+ }],
+ workerList: [{
+ icon: 'icon-baoxiaochaxun',
+ name: '璐圭敤鎶ラ攢鐢宠',
+ cb: function() {
+ uni.navigateTo({
+ url: '/pages/reimbursement/index'
+ });
+ }
+ },{
+ icon: 'icon-jiaofeitixingtuisong',
+ name: '鎴戠殑璐圭敤鎶ラ攢',
+ cb: function() {
+ uni.navigateTo({
+ url: '/pages/reimbursement/myreim'
+ });
+ }
+ }],
+ CaiWuList:[
+ {
+ icon: 'icon-feiyongbaoxiaodan',
+ name: '璐圭敤鎶ラ攢',
cb: function() {
uni.navigateTo({
- url: '/pages/order/myorder'
+ url: '/pages/reimbursement/reimbursement'
});
}
+ }
+ ],
+ zhuGuanList:[
+ {
+ icon: 'icon-zhuguanshenhe',
+ name: '涓荤鍒楄〃',
+ cb: function() {
+ uni.navigateTo({
+ url: '/pages/reimbursement/examine?role=zhuGuan'
+ });
+ }
+ }
+ ],
+ jingLiList:[
+ {
+ icon: 'icon-bumenjingli',
+ 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() {
uni.navigateTo({
- url: '/pages/checkin/index'
+ url: '/pages/mine/apply'
});
}
},
],
- isLogin: false,
- userInfo: {},
- balance: '0.00'
+ navList3: [{
+ icon: 'icon-dingdan',
+ name: '涓婄彮鎵撳崱',
+ cb: this.toMyWork
+ },
+ {
+ icon: 'icon-fuwutuandui',
+ name: '宸ヤ綔璁板綍',
+ cb: this.toMyRecord
+ },
+ {
+ icon: 'icon-wanshanxinxi',
+ name: '淇敼璧勬枡',
+ cb: function() {
+ uni.navigateTo({
+ url: '/pages/mine/apply'
+ });
+ }
+ },
+ ],
+ 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
+ },
+ // 鏄惁涓烘姤閿�涓荤
+ 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
+ },
+ 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({
@@ -196,11 +363,29 @@
}
},
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'
})
@@ -211,28 +396,81 @@
})
},
toWorkerRecord() {
+ if (!this.userInfo.userCompany) {
+ uni.navigateTo({
+ url: '/pages/enterprise/enterprise'
+ });
+ this.$util.showToast({
+ title: '璇峰厛瀹屽杽浼佷笟璧勬枡锛�'
+ })
+ return
+ }
uni.navigateTo({
url: '/pages/company/index'
});
},
- 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'
- }
+ 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({
@@ -414,6 +652,7 @@
.tool_content {
display: flex;
+ justify-content: space-between;
padding: 30rpx 0;
.tool_item {
@@ -422,7 +661,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