building-sign/pages/worker/my/my.vue

201 lines
7.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="pad-x120">
<!-- 头部 -->
<status-nav :ifReturn="false" navBarTitle="个人中心" :titleColor="titleColor" :backgroudColor="backgroudColor"></status-nav>
<view class="content" v-if="isLoding">
<!-- 个人简介 -->
<view class="sign-top my-top font24 color-white" :style="{'padding-top':statusHeight+50+'px'}">
<image src="/static/my-bg.jpg" mode="aspectFill"></image>
<view class="my-info">
<view class="my-cover">
<image :src="userInfo.headimgurl" mode="aspectFill"></image>
</view>
<view class="my-txt" v-if="userInfo.role!==2">
<view class="font28">{{userInfo.nickname}}</view>
<view class="font24" v-if="userInfo.real_name==''">{{userInfo.checking==1?'入职审核中':'普通用户'}}</view>
<view class="font24" v-else>{{userInfo.real_name}}</view>
</view>
<view class="my-txt" v-else>
<view class="font28">{{userInfo.nickname}}</view>
<view class="font24">负责人</view>
</view>
</view>
</view>
<!-- 其他信息 -->
<view class="sign-record my-more">
<view class="item bg-white" v-if="showList.indexOf(index)!==-1" @tap="toMore(item.url)" v-for="(item,index) in myMoreList" :key="index">
<view class="img">
<image :src="item.icon" :style="{'width':item.iconWidth+'rpx','height':item.iconHeight+'rpx'}" mode="aspectFit"></image>
</view>
<view class="txt font28">{{item.title}}</view>
<image src="/static/icon/icon-arrow-03.png" mode="aspectFit"></image>
</view>
</view>
<!-- 离职申请弹窗 -->
<view class="pop-up-bg" v-if="showApply">
<view class="sign-cate apply-pop bg-white">
<view class="title apply-title font34" style="border-bottom: 0; padding-bottom: 0;">
<image src="/static/icon/icon-apply.png" style="width: 94rpx; height: 90rpx;" mode="aspectFill"></image>
</view>
<view class="txt apply-txt font30" style="justify-content: center; text-align: center;">
<text>
请确认
您是否真的要申请离职
</text>
</view>
<!-- 审核按钮 -->
<view class="sign-cate-btns color-white font30">
<view class="btn" @tap="showApply=false"></view>
<view class="btn" @tap="submitEv"></view>
</view>
</view>
</view>
</view>
<!-- -->
<tabbar :userType="userType" current="2"></tabbar>
</view>
</template>
<script>
import tabbar from '@/components/tabbar/tabbar';
export default {
components:{
tabbar
},
data() {
return {
statusHeight:uni.getSystemInfoSync().statusBarHeight, //状态栏高度
userType:'', //账户类型 工人worker 负责人director
frontColor:'#ffffff', //状态栏文字颜色
backgroudColor:'none', //导航栏背景
titleColor:'#ffffff', //导航栏颜色
userInfo:{}, //用户信息
myMoreList:[], //更多列表
isLoding:false, //是否加载完成
showApply:false ,//是否显示离职申请
showList:[], //展示数组
}
},
onPageScroll(object){
if(object.scrollTop >= 5){
this.frontColor = '#000000';
this.backgroudColor = '#ffffff';
this.titleColor = '#3333333';
// 改变状态栏
this.changeStatusNav();
}
if(object.scrollTop <= 0){
this.frontColor = '#ffffff';
this.backgroudColor = 'none';
this.titleColor = '#ffffff';
// 改变状态栏
this.changeStatusNav();
}
},
onLoad(op) {
if(op.userType!==''){
this.userType = op.userType;
if(op.userType=='worker'){
this.myMoreList = [
{title:'个人资料',url:'/pagesA/information/information',icon:'/static/icon/icon-my-01.png',iconWidth:32,iconHeight:32},
{title:'打卡记录',url:'/pagesA/signRecord/signRecord?userType=worker',icon:'/static/icon/icon-my-02.png',iconWidth:30,iconHeight:30},
{title:'工资记录',url:'/pagesA/wagesRecord/wagesRecord',icon:'/static/icon/icon-my-03.png',iconWidth:30,iconHeight:30},
{title:'加班记录',url:'/pagesA/overtimeRecord/overtimeRecord',icon:'/static/icon/icon-my-04.png',iconWidth:32,iconHeight:32},
{title:'员工手册',url:'/pagesA/singlePage/singlePage?type=manual',icon:'/static/icon/icon-my-05.png',iconWidth:31,iconHeight:29},
{title:'安全告知',url:'/pagesA/singlePage/singlePage?type=security',icon:'/static/icon/icon-my-06.png',iconWidth:28,iconHeight:36},
{title:'入职申请',url:'workerApply',icon:'/static/icon/icon-my-11.png',iconWidth:33,iconHeight:33},
{title:'离职申请',url:'auitApply',icon:'/static/icon/icon-my-07.png',iconWidth:31,iconHeight:31},
{title:'公告',url:'/pagesA/singlePage/singlePage?type=notice',icon:'/static/icon/icon-my-08.png',iconWidth:28,iconHeight:30}
]
}
if(op.userType=='director'){
this.myMoreList = [
{title:'个人资料',url:'/pagesA/information/information',icon:'/static/icon/icon-my-01.png',iconWidth:32,iconHeight:32},
{title:'打卡记录',url:'/pagesA/signRecord/signRecord?userType=director',icon:'/static/icon/icon-my-02.png',iconWidth:30,iconHeight:30},
{title:'工人列表',url:'/pagesB/worker/worker',icon:'/static/icon/icon-my-10.png',iconWidth:31,iconHeight:33},
{title:'工人补卡确认',url:'/pagesB/repair/repair',icon:'/static/icon/icon-my-04.png',iconWidth:28,iconHeight:36},
{title:'工人离职申请',url:'/pagesB/quitApply/quitApply',icon:'/static/icon/icon-my-09.png',iconWidth:33,iconHeight:33},
{title:'公告管理',url:'/pagesB/notick/notick',icon:'/static/icon/icon-my-08.png',iconWidth:28,iconHeight:30}
]
}
}
// 改变状态栏
this.changeStatusNav();
// 获取用户信息
this.getUserInfo();
},
onShareAppMessage(res) {
let shareObj = {
title:'工地打卡',
path: '/pages/pagehome/pagehome',
imageUrl:'/static/share-logo.jpg',
}
// 返回shareObj
return shareObj;
},
methods: {
// 改变状态栏
changeStatusNav(){
wx.setNavigationBarColor({
frontColor: this.frontColor,
backgroundColor: 'none',
})
},
// 获取用户信息
getUserInfo(){
this.$requst.post('/api/v1/user/info').then(res=>{
if(res.code==0){
console.log(res,'用户信息');
uni.setStorageSync('baseWorksiteId',res.data.worksite_id)
if(res.data.role==0){
this.showList = [0,1,5,6,8];
}
if(res.data.role==1){
this.showList = [0,1,2,3,4,5,7,8];
}
if(res.data.role==2){
this.showList = [0,1,2,3,4,5];
}
this.userInfo = res.data;
this.userInfo.headimgurl = this.$toolAll.tools.handleImg(res.data.headimgurl);
this.isLoding = true;
}
})
},
//跳转页面
toMore(url){
if(url=='auitApply'){
this.showApply = true;
}else if(url=='workerApply'){
if(uni.getStorageSync('worksite_id')){
uni.navigateTo({
url:'/pages/worker/sign/sign?userType=worker&apply=join'
})
}else{
this.$toolAll.tools.showToast('不在可申请范围内');
}
}else{
uni.navigateTo({
url:url
})
}
},
// 确认离职
submitEv(){
this.$requst.post('/api/v1/worker/dimission').then(res=>{
if(res.code==0){
console.log(res,'用户信息');
this.$toolAll.tools.showToast('离职申请提交成功');
this.showApply = false;
}else{
this.$toolAll.tools.showToast(res.msg);
}
})
}
}
}
</script>
<style scoped>
</style>