-
zhangwei
2025-03-06 02ad32582e3a3b0e6f4b2d1b50593eff1d0558e3
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,28 +28,112 @@
               企业服务
            </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">
                     职位管理
                  </view>
               </view>
               <view class="tool_item" @click="toPage('/otherPages/member/sendCompany/sendCompany')">
               <view class="tool_item" @click="toEnterprise">
                  <image src="@/static/image/qiye.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="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="isAdmin">
                  <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="isAdmin||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,191 +249,347 @@
</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.isLogin = true;
         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
         },
         // 是否为报销主管
         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() {
            uni.navigateTo({
               url: '/pages/login/index'
            })
            if (this.isLogin) {
               uni.navigateTo({
                  url: '/pages/mine/mine'
               })
            } 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'
            })
         },
         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,
         toEnterprise() {
            uni.navigateTo({
               url: '/pages/enterprise/index'
            })
         },
         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}`
            });
         }
      }
   };
</script>
@@ -466,6 +762,7 @@
         .tool_content {
            display: flex;
            justify-content: space-between;
            padding: 30rpx 0;
            .tool_item {
@@ -474,7 +771,7 @@
               flex-direction: column;
               height: 120rpx;
               justify-content: center;
               margin: 0 50rpx 0 0;
               // margin: 0 50rpx 0 0;
               width: 120rpx;
               &:nth-child(4n) {