<template>
|
|
<view class="page">
|
|
|
|
<view class="banner">
|
|
<uv-swiper
|
|
:list="bannerList"
|
|
indicator
|
|
height="620rpx"
|
|
keyName="image"></uv-swiper>
|
|
<!-- indicatorStyle="bottom: 100rpx;" -->
|
|
|
|
<view class="top">
|
|
<view class="search">
|
|
<uv-search
|
|
:placeholder="role ? '请输入简历名称' : '请输入岗位名称'"
|
|
:showAction="false"
|
|
search-icon-size="40rpx"
|
|
@search="search"
|
|
v-model="keyword"></uv-search>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 工人看到的 -->
|
|
<view class="content"
|
|
v-if="!role">
|
|
<view class="grid">
|
|
<uv-grid :border="false"
|
|
:col="5">
|
|
<uv-grid-item
|
|
@click="$utils.navigateTo(`/pages_order/work/workList?typeId=${item.id}&title=${item.name}`)"
|
|
v-for="(item,index) in jobTypeList"
|
|
v-if="index < 4"
|
|
:key="index">
|
|
<image class="grid-icon" :src="item.image" mode="aspectFill"></image>
|
|
<text class="grid-text">{{item.name}}</text>
|
|
</uv-grid-item>
|
|
<uv-grid-item
|
|
v-if="jobTypeList.length > 4"
|
|
@click="$utils.navigateTo(`/pages_order/work/workTypeList`)"
|
|
>
|
|
<image class="grid-icon" src="/static/image/home/5.png" mode="aspectFill"></image>
|
|
<text class="grid-text">其他招工</text>
|
|
</uv-grid-item>
|
|
</uv-grid>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 筛选器 -->
|
|
<screenWork ref="screenWork" @clickItem="clickItem"/>
|
|
|
|
<!-- 老板看到的 -->
|
|
<userList ref="workList" v-if="role"/>
|
|
|
|
<!-- 工人看到的 -->
|
|
<workList ref="workList" v-else/>
|
|
|
|
<view class="box"
|
|
@click="toAdd"
|
|
v-if="role">
|
|
<view class="left">
|
|
发布
|
|
</view>
|
|
<view class="center">
|
|
<image src="/static/image/home/c.png" mode=""></image>
|
|
</view>
|
|
<view class="right">
|
|
招工
|
|
</view>
|
|
</view>
|
|
|
|
<view class="switchIdentity"
|
|
@click="switchIdentity">
|
|
<image src="/static/image/home/x1.png"
|
|
v-if="role"
|
|
mode="widthFix"></image>
|
|
|
|
<image src="/static/image/home/x2.png"
|
|
v-else
|
|
mode="widthFix"></image>
|
|
</view>
|
|
|
|
|
|
<checkinScore ref="checkinScore" v-if="UserExtensionInfo.signFlag == false"/>
|
|
|
|
<PrivacyAgreementPoup/>
|
|
|
|
<tabber select="0"/>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
|
|
import workList from '@/components/list/workList/index.vue'
|
|
import userList from '@/components/list/userList/index.vue'
|
|
import tabber from '@/components/base/tabbar.vue'
|
|
import screenWork from '@/components/screen/screenWork.vue'
|
|
import checkinScore from '@/components/checkinScore.vue'
|
|
import { mapState } from 'vuex'
|
|
export default {
|
|
components : {
|
|
PrivacyAgreementPoup,
|
|
workList,
|
|
tabber,
|
|
screenWork,
|
|
userList,
|
|
checkinScore,
|
|
},
|
|
computed: {
|
|
...mapState([
|
|
'userInfo',
|
|
'role',
|
|
'banner',
|
|
'jobTypeList',
|
|
'UserExtensionInfo',
|
|
]),
|
|
bannerList(){
|
|
return this.banner.filter(n => n.type == 0)
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
productList: [],
|
|
keyword : '',
|
|
screenWorkList : [],
|
|
}
|
|
},
|
|
onPullDownRefresh(){
|
|
this.$refs.workList.getData(this.screenWorkList)
|
|
this.$store.commit('getBanner')
|
|
},
|
|
// 页面显示的时候触发
|
|
onShow() {
|
|
this.$refs.workList.getData(this.screenWorkList)
|
|
this.$store.commit('getBanner')
|
|
if(uni.getStorageSync('token')){
|
|
this.$store.commit('getUserExtensionInfo')
|
|
this.$store.commit('getBanner')
|
|
}
|
|
},
|
|
//滚动到屏幕底部
|
|
onReachBottom() {
|
|
this.$refs.workList.loadMoreData()
|
|
},
|
|
methods: {
|
|
clickItem(result){
|
|
this.screenWorkList = result
|
|
this.$refs.workList.getData(this.screenWorkList)
|
|
},
|
|
toAdd(){
|
|
if(this.role){
|
|
// 在完成企业认证的情况下执行
|
|
this.$store.commit('isAuthCertificationEnterprise', state => {
|
|
this.$utils.navigateTo('/pages_order/work/jobPosting')
|
|
})
|
|
}else{
|
|
this.$utils.navigateTo('/pages_order/work/addResume')
|
|
}
|
|
},
|
|
search(){
|
|
this.$utils.navigateTo(`/pages_order/work/workList?keyword=${this.keyword}`)
|
|
this.keyword = ''
|
|
},
|
|
// 切换身份
|
|
async switchIdentity(){
|
|
|
|
// 在完成实名认证的情况下执行
|
|
this.$store.commit('isAuthCertification', () => {
|
|
// 在完成企业认证的情况下执行
|
|
this.$store.commit('isAuthCertificationEnterprise', state => {
|
|
uni.showModal({
|
|
title: `确认切换到${
|
|
this.role ? '师傅' : '雇主'
|
|
}身份吗?`,
|
|
success : e => {
|
|
if(!e.confirm){
|
|
return
|
|
}
|
|
this.$store.commit('setRole', !this.role)
|
|
this.$nextTick(() => {
|
|
this.$refs.workList.getData(this.screenWorkList)
|
|
})
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.page{
|
|
.banner{
|
|
position: relative;
|
|
background-color: $uni-color;
|
|
.top{
|
|
position: absolute;
|
|
top: 190rpx;
|
|
left:00rpx;
|
|
padding-top: 30rpx;
|
|
display: flex;
|
|
width: 100%;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
.search{
|
|
width: 700rpx;
|
|
/deep/ .uv-search__content__icon{
|
|
padding: 10rpx 0;
|
|
}
|
|
}
|
|
.title{
|
|
image{
|
|
width: 600rpx;
|
|
height: 300rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.box{
|
|
position: fixed;
|
|
left: 50%;
|
|
background: $uni-color;
|
|
bottom: calc(env(safe-area-inset-bottom) + 150rpx);
|
|
color: #fff;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
transform: translate(-50%);
|
|
border-radius: 20rpx;
|
|
height: 80rpx;
|
|
font-size: 28rpx;
|
|
image{
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 50%;
|
|
}
|
|
.left{
|
|
padding-left: 30rpx;
|
|
}
|
|
.center{
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
border-radius: 50%;
|
|
background: $uni-color;
|
|
margin: 0 20rpx;
|
|
margin-top: -30rpx;
|
|
box-shadow: 0 0 4rpx 4rpx #ffffff;
|
|
}
|
|
.right{
|
|
padding-right: 30rpx;
|
|
}
|
|
}
|
|
.content{
|
|
position: relative;
|
|
margin-top: -60rpx;
|
|
.grid{
|
|
padding-bottom: 30rpx;
|
|
background-color: #fff;
|
|
// border-radius: 60rpx;
|
|
border-top-left-radius: 60rpx;
|
|
border-top-right-radius: 60rpx;
|
|
// box-shadow: 0 -10rpx 10rpx 10rpx #00000013;
|
|
.grid-icon{
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
margin-bottom: 10rpx;
|
|
margin-top: 30rpx;
|
|
}
|
|
.grid-text{
|
|
font-size: 24rpx;
|
|
font-weight: 900;
|
|
}
|
|
}
|
|
|
|
}
|
|
.switchIdentity{
|
|
position: fixed;
|
|
right: 30rpx;
|
|
bottom: 300rpx;
|
|
image{
|
|
width: 100rpx;
|
|
}
|
|
}
|
|
}
|
|
</style>
|