You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
4.0 KiB

11 months ago
<template>
<view id="page">
<view class="Width100 Box BorderBox" :style="bgUrl1">
<view class="Content BorderBox">
<top-title :is-show-left="false" :rightWidth='120'>
<template slot="right">
<image :src="$.imgSrc + '/mine/setting.png'" @click="$.open('/pages/mine/setting')" mode="aspectFit" class="InlineBlock img"></image>
<image :src="$.imgSrc + '/mine/chat.png'" mode="aspectFit" @click="$.open('/pages/mine/notice')" class="InlineBlock img"></image>
</template>
</top-title>
<view class="user Flex BorderBox" @click="checkObjEmpty(userInfo) ? $.open('/pages/logIn/userInfo'):$.open('/pages/logIn/logIn')">
<u-avatar :src="userInfo.headUrl" :size="78"></u-avatar>
<view class="name FontS_50rpx FontBold MarginL_15rpx">
{{ userInfo.realName || userInfo.username || '请登录'}}
</view>
</view>
</view>
<view class="func PositionR BorderR_20rpx BG_FFFFFF BorderBox">
<view class="title FontBold FontS_40rpx">
常用功能
</view>
<view class="list Flex Flex_Warp">
<view class="item Flex MarginT_10rpx PositionR" v-for="item in funcList" @click="handleClick(item)" :key="item.name">
<image :src="$.imgSrc + item.icon" mode="aspectFit"></image>
<view class="info">{{ item.name }}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import TopTitle from "../../components/top-title";
export default {
components:{TopTitle},
data() {
return {
$:this.$,
bgUrl1: '',
userInfo: {},
timer: null,
num: 0
// funcList: [
// { id:1,name:'个人信息',url:'/pages/logIn/userInfo',icon:'/mine/userinfo.png' },
// { id:2,name:'劳务保险',url:'/pages/mine/insurance',icon:'/mine/insurance.png' },
// { id:3,name:'打卡记录',url:'',icon:'/mine/lean.png' },
// { id:4,name:'培训记录',url:'/pages/mine/train',icon:'/mine/train.png' },
// { id:5,name:'找活记录',url:'/pages/mine/jobfind',icon:'/mine/jobfind.png' },
// { id:6,name:'人员管理',url:'/pages/mine/worker',icon:'/mine/jobfind.png' },
// ]
}
},
computed:{
funcList(){
return [{ id:1,name:'个人信息',url:'/pages/logIn/userInfo',icon:'/mine/userinfo.png' }]
}
},
onShow(){
let token = this.$.getData('token')
const userInfo = this.$.getData('userInfo')
if(userInfo) {
this.userInfo = userInfo
}
// 顶部背景图
this.bgUrl1 = "background-image:url('" + this.$.imgSrc + "/mine/mineBG.png');background-repeat: no-repeat;background-position: center top;background-size:100% 472rpx;"
// if(!token){
// this.$.openNew('/pages/logIn/logIn')
// return
// }
if(this.userInfo.projectRole <= 1 && !this.timer) {
this.timer = setInterval(() => {
this.getReviewNum()
},10 * 1000)
}
},
onHide() {
this.timer && clearInterval(this.timer)
},
onLoad() {
},
methods: {
checkObjEmpty(obj){
if(JSON.stringify(obj) == '{}'){
return false
}
return true
},
getBG(url){
return "background-image:url('" + url + "');background-repeat: no-repeat;background-position: center top;background-size:100% 100%;"
},
handleClick(row) {
this.$.open(row.url)
},
getReviewNum() {
this.$request.globalRequest('/hyjg-admin/mapi/projectworker/getApplyWorkerCount', {}, 'POST').then(res => {
if (res.code == 0) {
this.num = res.data;
}
})
}
}
}
</script>
<style lang="scss" scoped>
page{
background: #F2F2F2;
}
.Box {
padding: 30rpx;
padding-top:var(--status-bar-height);
.img {
width: 50rpx;
height: 100%;
}
.img:nth-of-type(2) {
margin-left: 20rpx;
}
.Content {
.user {
height: 500rpx;
align-items: center;
}
}
.func {
width: 100%;
height: 430rpx;
top: -60rpx;
padding: 30rpx;
.title {
margin-bottom: 20rpx;
}
.list {
margin: auto;
.item {
padding: 12rpx;
width: 25%;
justify-content: center;
flex-direction: column;
align-items: center;
box-sizing: border-box;
image {
width: 60rpx;
height: 60rpx;
margin-bottom: 20rpx;
}
}
}
}
}
</style>