flat: 修改
This commit is contained in:
@@ -1,290 +1,313 @@
|
||||
<template>
|
||||
<view class="body" @click="goInfo(companyitem)">
|
||||
<view class="heads">
|
||||
<view class="head_left">
|
||||
<rich-text :nodes="string">
|
||||
</rich-text>
|
||||
</view>
|
||||
|
||||
<view class="head_right">
|
||||
{{ companyitem.wage }}{{ wageUnit[companyitem.wageUnitCategory] }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ask">
|
||||
<view class="asj_content">
|
||||
<view class="askList">
|
||||
{{ companyitem.tradeNames }}
|
||||
</view>
|
||||
<view class="askList" v-for="(item, index) in skillNames" :key="index">
|
||||
{{ item }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ask_right">
|
||||
<u-tag v-if="companyitem.reviewState == 1" :text="getReviewState(companyitem.reviewState)"
|
||||
type="success" plain shape="circle"></u-tag>
|
||||
<u-tag v-if="companyitem.reviewState == 9" :text="getReviewState(companyitem.reviewState)" type="error"
|
||||
plain shape="circle"></u-tag>
|
||||
<u-tag v-if="companyitem.reviewState == 0" :text="getReviewState(companyitem.reviewState)" plain
|
||||
shape="circle"></u-tag>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="allName">
|
||||
{{ companyitem.jobCompanyName }}
|
||||
</view> -->
|
||||
<view style="width: 100%;height: 1rpx;background-color: #999;margin: 0 auto;opacity: .5;"></view>
|
||||
<view class="timeAddress" style="position: relative;">
|
||||
<!-- <view v-if="companyitem.missionCompanyName">
|
||||
{{ companyitem.missionCompanyName }}
|
||||
</view> -->
|
||||
<!-- <view>
|
||||
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;" mode=""></image>
|
||||
{{ companyitem.jobCompanyName }}
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;">
|
||||
<image src="../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 10rpx;"
|
||||
mode=""></image>
|
||||
<view style="font-size: 26rpx;color:#333;">{{ companyitem.jobCompanyName }}</view>
|
||||
</view>
|
||||
<!-- <view v-if="near">
|
||||
{{ companyitem.distanceStr }}km
|
||||
</view>
|
||||
<view v-else>
|
||||
{{ getCity(companyitem.cityId) }}
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;position:absolute;right:0;">
|
||||
<image src="../../../static/img/location_new.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
|
||||
<view>--km</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="comment" v-if='comment' @tap.stop="goComment(companyitem.missionNo)">
|
||||
<view class="comment_content commentimg" v-if='companyitem.scoreAll > 0'>
|
||||
<image class="commentimg_image" src="../../../static/img/star.full.svg"
|
||||
v-for="index1 in companyitem.scoreAll" mode="" :key="index1"></image>
|
||||
<image class="commentimg_image" src="../../../static/img/star.empty.svg"
|
||||
v-for="index2 in (5 - companyitem.scoreAll)" mode="" :key="index2"></image>
|
||||
</view>
|
||||
<view class="comment_content allName gocomment" v-else>
|
||||
评价
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
toDoller,
|
||||
dateFormat
|
||||
} from "../../../untils/format.js";
|
||||
import dictionary from '@/common/textdata.js';
|
||||
|
||||
export default {
|
||||
beforeCreate: function() {},
|
||||
props: {
|
||||
companyitem: {
|
||||
type: Object,
|
||||
default () {
|
||||
return []
|
||||
}
|
||||
},
|
||||
comment: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
noApply: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
near: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
...dictionary,
|
||||
string: "<div style='overflow: hidden;white-space: nowrap;text-overflow: ellipsis;'>" + this.companyitem
|
||||
.jobName +
|
||||
"</div>"
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
skillNames() {
|
||||
return this.companyitem.skillNames.split(',')
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getReviewState(type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
return '已审核'
|
||||
case 0:
|
||||
return '待审核'
|
||||
case 9:
|
||||
return '已驳回'
|
||||
}
|
||||
},
|
||||
goComment: function(no) {
|
||||
uni.navigateTo({
|
||||
url: `../../pageMy/mycomment/mycomment?missionNo=${encodeURIComponent(no)}`
|
||||
})
|
||||
},
|
||||
goInfo: function({
|
||||
id,
|
||||
reviewState,
|
||||
jobType
|
||||
}) {
|
||||
if (reviewState === 9) {
|
||||
this.navTo(
|
||||
`/pages/recruit/subPage/updataTaskorWork/updataTaskorWork?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${this.companyitem.jobType}&id=${this.companyitem.id}`
|
||||
)
|
||||
return
|
||||
}
|
||||
const isCan = this.noApply === false ? '0' : '1'
|
||||
switch (jobType) {
|
||||
case 0:
|
||||
this.navTo(`/pages/projectInfo/userrecruitInfo?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${
|
||||
this.companyitem.jobType}&id=${this.companyitem.id}`)
|
||||
break
|
||||
case 1:
|
||||
this.navTo(`/pages/projectInfo/userrecruitWorkInfo?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${
|
||||
this.companyitem.jobType}&id=${this.companyitem.id}`)
|
||||
break
|
||||
}
|
||||
},
|
||||
getCity: function(val) {
|
||||
if (val) {
|
||||
let areas = this.$store.getters.getAreaParents(val)
|
||||
if (areas.length === 3) {
|
||||
return areas[0].label + '-' + areas[1].label + '-' + areas[2].label
|
||||
}
|
||||
}
|
||||
},
|
||||
toDoller,
|
||||
dateFormat
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.commentimg_image {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.commentimg {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.gocomment {
|
||||
font-size: 26rpx !important;
|
||||
border-radius: 5rpx;
|
||||
border: 1rpx solid #c3c3c3;
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
float: right;
|
||||
height: 50rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
|
||||
.timeAddress {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin: 10rpx 0;
|
||||
padding: 10rpx 0;
|
||||
}
|
||||
|
||||
.allName {
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.askList {
|
||||
/* width: 14%; */
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
background-color: #f6f6f6;
|
||||
padding: 5rpx 15rpx;
|
||||
margin-right: 10rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.ask {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 20rpx 0;
|
||||
}
|
||||
|
||||
.asj_content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.ask_right {
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: blue;
|
||||
background-color: #FFFFFF;
|
||||
/* border: 2rpx solid blue; */
|
||||
border-radius: 6px;
|
||||
/* padding: 2rpx 10rpx; */
|
||||
margin-right: 10rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.head_right {
|
||||
font-family: PingFangSC-Medium;
|
||||
font-size: 28rpx;
|
||||
color: #F46161;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.head_left {
|
||||
font-family: PingFangSC-Medium;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
width: 350rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
/*不换行*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出部分文字以...显示*/
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: #F46161;
|
||||
}
|
||||
|
||||
.body {
|
||||
width: 690rpx;
|
||||
margin: 0rpx auto;
|
||||
background-color: #fefefe;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx;
|
||||
padding-bottom: 0;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.heads {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
<template>
|
||||
<view class="body" @click="goInfo(companyitem)">
|
||||
<view class="heads">
|
||||
<view class="head_left">
|
||||
<rich-text :nodes="string">
|
||||
</rich-text>
|
||||
</view>
|
||||
|
||||
<view class="head_right">
|
||||
{{ companyitem.wage }}{{ wageUnit[companyitem.wageUnitCategory] }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ask">
|
||||
<view class="asj_content">
|
||||
<view class="askList">
|
||||
{{ companyitem.tradeNames }}
|
||||
</view>
|
||||
<view class="askList" v-for="(item, index) in skillNames" :key="index">
|
||||
{{ item }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ask_right">
|
||||
<u-tag v-if="companyitem.reviewState == 1" :text="getReviewState(companyitem.reviewState)"
|
||||
type="success" plain shape="circle"></u-tag>
|
||||
<u-tag v-if="companyitem.reviewState == 9" :text="getReviewState(companyitem.reviewState)" type="error"
|
||||
plain shape="circle"></u-tag>
|
||||
<u-tag v-if="companyitem.reviewState == 0" :text="getReviewState(companyitem.reviewState)" plain
|
||||
shape="circle"></u-tag>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="allName">
|
||||
{{ companyitem.jobCompanyName }}
|
||||
</view> -->
|
||||
<view style="width: 100%;height: 1rpx;background-color: #999;margin: 0 auto;opacity: .5;"></view>
|
||||
<view class="timeAddress" style="position: relative;">
|
||||
<!-- <view v-if="companyitem.missionCompanyName">
|
||||
{{ companyitem.missionCompanyName }}
|
||||
</view> -->
|
||||
<!-- <view>
|
||||
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;" mode=""></image>
|
||||
{{ companyitem.jobCompanyName }}
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;">
|
||||
<image src="../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 10rpx;"
|
||||
mode=""></image>
|
||||
<view style="font-size: 26rpx;color:#333;">{{ companyitem.jobCompanyName }}</view>
|
||||
</view>
|
||||
<!-- <view v-if="near">
|
||||
{{ companyitem.distanceStr }}km
|
||||
</view>
|
||||
<view v-else>
|
||||
{{ getCity(companyitem.cityId) }}
|
||||
</view> -->
|
||||
<view style="display: flex;align-items: center;position:absolute;right:0;">
|
||||
<image src="../../../static/img/location_new.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
|
||||
<view>{{distance(companyitem)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="comment" v-if='comment' @tap.stop="goComment(companyitem.missionNo)">
|
||||
<view class="comment_content commentimg" v-if='companyitem.scoreAll > 0'>
|
||||
<image class="commentimg_image" src="../../../static/img/star.full.svg"
|
||||
v-for="index1 in companyitem.scoreAll" mode="" :key="index1"></image>
|
||||
<image class="commentimg_image" src="../../../static/img/star.empty.svg"
|
||||
v-for="index2 in (5 - companyitem.scoreAll)" mode="" :key="index2"></image>
|
||||
</view>
|
||||
<view class="comment_content allName gocomment" v-else>
|
||||
评价
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
toDoller,
|
||||
dateFormat
|
||||
} from "../../../untils/format.js";
|
||||
import dictionary from '@/common/textdata.js';
|
||||
import {
|
||||
getDistanceFromLatLonInKm
|
||||
} from '@/untils/tools.js'
|
||||
export default {
|
||||
beforeCreate: function() {},
|
||||
props: {
|
||||
companyitem: {
|
||||
type: Object,
|
||||
default () {
|
||||
return []
|
||||
}
|
||||
},
|
||||
comment: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
noApply: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
near: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
position: {
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
...dictionary,
|
||||
string: "<div style='overflow: hidden;white-space: nowrap;text-overflow: ellipsis;'>" + this.companyitem
|
||||
.jobName +
|
||||
"</div>"
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
skillNames() {
|
||||
return this.companyitem.skillNames.split(',')
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
distance(item) {
|
||||
const {
|
||||
lon,
|
||||
lat
|
||||
} = item
|
||||
if (this.position && lon > 0) {
|
||||
const {
|
||||
longitude,
|
||||
latitude
|
||||
} = this.position
|
||||
const {
|
||||
m,
|
||||
km
|
||||
} = getDistanceFromLatLonInKm(lat, lon, latitude, longitude)
|
||||
return m > 1000 ? `${km.toFixed(2)}km` : `${m.toFixed(2)}m`
|
||||
}
|
||||
return '--km'
|
||||
},
|
||||
getReviewState(type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
return '已审核'
|
||||
case 0:
|
||||
return '待审核'
|
||||
case 9:
|
||||
return '已驳回'
|
||||
}
|
||||
},
|
||||
goComment: function(no) {
|
||||
uni.navigateTo({
|
||||
url: `../../pageMy/mycomment/mycomment?missionNo=${encodeURIComponent(no)}`
|
||||
})
|
||||
},
|
||||
goInfo: function({
|
||||
id,
|
||||
reviewState,
|
||||
jobType
|
||||
}) {
|
||||
if (reviewState === 9) {
|
||||
this.navTo(
|
||||
`/pages/recruit/subPage/updataTaskorWork/updataTaskorWork?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${this.companyitem.jobType}&id=${this.companyitem.id}`
|
||||
)
|
||||
return
|
||||
}
|
||||
const isCan = this.noApply === false ? '0' : '1'
|
||||
switch (jobType) {
|
||||
case 0:
|
||||
this.navTo(`/pages/projectInfo/userrecruitInfo?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${
|
||||
this.companyitem.jobType}&id=${this.companyitem.id}`)
|
||||
break
|
||||
case 1:
|
||||
this.navTo(`/pages/projectInfo/userrecruitWorkInfo?workId=${encodeURIComponent(id)}&isCan=${isCan}&jobType=${
|
||||
this.companyitem.jobType}&id=${this.companyitem.id}`)
|
||||
break
|
||||
}
|
||||
},
|
||||
getCity: function(val) {
|
||||
if (val) {
|
||||
let areas = this.$store.getters.getAreaParents(val)
|
||||
if (areas.length === 3) {
|
||||
return areas[0].label + '-' + areas[1].label + '-' + areas[2].label
|
||||
}
|
||||
}
|
||||
},
|
||||
toDoller,
|
||||
dateFormat
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.commentimg_image {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.commentimg {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.gocomment {
|
||||
font-size: 26rpx !important;
|
||||
border-radius: 5rpx;
|
||||
border: 1rpx solid #c3c3c3;
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
float: right;
|
||||
height: 50rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
|
||||
.timeAddress {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin: 10rpx 0;
|
||||
padding: 10rpx 0;
|
||||
}
|
||||
|
||||
.allName {
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.askList {
|
||||
/* width: 14%; */
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
background-color: #f6f6f6;
|
||||
padding: 5rpx 15rpx;
|
||||
margin-right: 10rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.ask {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 20rpx 0;
|
||||
}
|
||||
|
||||
.asj_content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.ask_right {
|
||||
font-family: PingFangSC-Regular;
|
||||
font-size: 24rpx;
|
||||
color: blue;
|
||||
background-color: #FFFFFF;
|
||||
/* border: 2rpx solid blue; */
|
||||
border-radius: 6px;
|
||||
/* padding: 2rpx 10rpx; */
|
||||
margin-right: 10rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.head_right {
|
||||
font-family: PingFangSC-Medium;
|
||||
font-size: 28rpx;
|
||||
color: #F46161;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.head_left {
|
||||
font-family: PingFangSC-Medium;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
width: 350rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
/*不换行*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出部分文字以...显示*/
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: #F46161;
|
||||
}
|
||||
|
||||
.body {
|
||||
width: 690rpx;
|
||||
margin: 0rpx auto;
|
||||
background-color: #fefefe;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx;
|
||||
padding-bottom: 0;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.heads {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
@@ -1,212 +1,243 @@
|
||||
<template>
|
||||
<view class="app_container">
|
||||
<CustomNavbar @back="back" :titke="'招工列表'"></CustomNavbar>
|
||||
<view class="guide">
|
||||
<view class="guide_content" v-for="(item, index) in arrGuide" :key="index">
|
||||
<view class="guide_item"> {{item}} </view>
|
||||
<view class="guide_arrow" v-if="index !== arrGuide.length - 1">》</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="condition">
|
||||
<view class="cond_list" v-if="pageType === 'enterprise'">
|
||||
<view v-for="(item, index) in arrTitle" :key="index"
|
||||
:class="['cond_item', index === currentArrTitleID ? 'activeButton' : '']"
|
||||
@click="changeTab(item)">
|
||||
{{ item.text }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="cond_list" v-else>
|
||||
<view style="font-weight: 700;">个体户招工</view>
|
||||
</view>
|
||||
<view
|
||||
class="cond_item item_com"
|
||||
@click="openPicker = true"
|
||||
>{{ reviewStatus[currentReviewStatusID] }}</view>
|
||||
</view>
|
||||
<view class="container" v-if="dataSource.length">
|
||||
<block v-for="(item, index) in dataSource" :key="item.id">
|
||||
<userrecruitList :companyitem="item"></userrecruitList>
|
||||
</block>
|
||||
</view>
|
||||
<empty v-else content="暂无数据" mr-top="200"></empty>
|
||||
<CustomTabbar :currentpage="0"></CustomTabbar>
|
||||
<u-picker :show="openPicker" :columns="pickerColumns" @cancel="openPicker = false" @confirm="changeReviewStatus"></u-picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CustomNavbar from '@/components/CustomNavbar/navbar.vue';
|
||||
import CustomTabbar from '@/components/CustomTabbar/custom_tabbar.vue';
|
||||
import { getuserrecruitListApp } from '@/api/userrecruit.js'
|
||||
import userrecruitList from '../components/userrecruitList.vue'
|
||||
let arrGuide = ['在线填写招工需求', '后台审核沟通发布', '平台展示招工信息'];
|
||||
let arrTitle = [
|
||||
{
|
||||
text: "发布零工岗位",
|
||||
id: 0
|
||||
}, {
|
||||
text: "发布全职岗位",
|
||||
id: 1
|
||||
}
|
||||
// , {
|
||||
// text: "个体户招工",
|
||||
// id: 2
|
||||
// }
|
||||
];
|
||||
let reviewStatus = {
|
||||
'-1': "全选择",
|
||||
'0': "待审核",
|
||||
'1': "已审核",
|
||||
'9': "已驳回",
|
||||
};
|
||||
let pickerColumns = [Object.values(reviewStatus)]
|
||||
import { mapState } from 'vuex'
|
||||
export default {
|
||||
components: {CustomTabbar, CustomNavbar, userrecruitList},
|
||||
data() {
|
||||
return {
|
||||
pageType: null, // null: 个人 enterprise: 企业
|
||||
arrGuide,
|
||||
arrTitle,
|
||||
reviewStatus,
|
||||
pickerColumns,
|
||||
openPicker: false,
|
||||
currentArrTitleID: 2,
|
||||
currentReviewStatusID: '-1',
|
||||
pageNumber: 1,
|
||||
dataSource: [],
|
||||
}
|
||||
},
|
||||
onLoad({type}) {
|
||||
if(this.enterprise){
|
||||
this.pageType = 'enterprise'
|
||||
this.currentArrTitleID = 0
|
||||
}
|
||||
this.getList('refresh')
|
||||
},
|
||||
onReachBottom() {
|
||||
this.getList('add')
|
||||
},
|
||||
computed: {
|
||||
...mapState({enterprise: (state) => state.user.seeEnterprise}),
|
||||
},
|
||||
methods: {
|
||||
changeReviewStatus({value, index, values}) {
|
||||
const val = Object.keys(reviewStatus).filter((item) => reviewStatus[item] === value[0])[0]
|
||||
this.currentReviewStatusID = val
|
||||
this.openPicker = false
|
||||
this.getList('refresh')
|
||||
},
|
||||
changeTab(item) {
|
||||
this.currentArrTitleID = item.id
|
||||
this.getList('refresh')
|
||||
},
|
||||
back() {
|
||||
uni.reLaunch({ url: '/pages/my/my' })
|
||||
},
|
||||
async getList(type = "add") {
|
||||
if (type === "refresh") {
|
||||
this.dataSource = [];
|
||||
this.pageNumber = 1;
|
||||
}
|
||||
let params = {
|
||||
current: this.pageNumber,
|
||||
size: 10,
|
||||
jobType: this.currentArrTitleID,
|
||||
}
|
||||
if(this.currentReviewStatusID !== '-1') {
|
||||
params.reviewState = this.currentReviewStatusID
|
||||
}
|
||||
uni.showLoading({title: '加载中...' })
|
||||
let resData = await getuserrecruitListApp(params);
|
||||
uni.hideLoading()
|
||||
if (resData.data?.code === 200) {
|
||||
const { records, total, page, size } = resData.data.data;
|
||||
if (!records.length) {
|
||||
return this.$api.msg("没有更多数据");
|
||||
}
|
||||
switch (type) {
|
||||
case "add":
|
||||
this.dataSource = [...this.dataSource, ...records];
|
||||
break;
|
||||
case "refresh":
|
||||
this.dataSource = records;
|
||||
break;
|
||||
}
|
||||
this.pageNumber += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.app_container{
|
||||
background-color: #f3f4f8;
|
||||
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
.container{
|
||||
padding: 0 23rpx;
|
||||
padding-bottom: calc(env(safe-area-inset-bottom) + 123rpx)
|
||||
}
|
||||
.condition{
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
padding: 20rpx;
|
||||
justify-content: space-between;
|
||||
position: sticky;
|
||||
top: 78rpx;
|
||||
z-index: 999;
|
||||
background-color: #f3f4f8;
|
||||
.cond_list{
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
flex: 1;
|
||||
// justify-content: space-between;
|
||||
}
|
||||
.cond_item{
|
||||
font-size: 14px;
|
||||
padding: 10rpx 40rpx;
|
||||
background: #fff;
|
||||
border-radius: 50px;
|
||||
margin-right: 10rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.activeButton {
|
||||
color: #4171f9;
|
||||
background-color: #cfdaf8;
|
||||
}
|
||||
.item_com{
|
||||
margin-right: 0;
|
||||
padding: 10rpx 20rpx;
|
||||
}
|
||||
}
|
||||
.guide{
|
||||
padding: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 200rpx;
|
||||
color: #FFFFFF;
|
||||
font-size: 28rpx;
|
||||
background-color: #4071f8;
|
||||
.guide_content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.guide_item{
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
background-color: rgba(76, 120, 249, 1);
|
||||
border-radius: 10rpx;
|
||||
padding: 10rpx;
|
||||
}
|
||||
.guide_arrow{
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
<template>
|
||||
<view class="app_container">
|
||||
<CustomNavbar @back="back" :titke="'招工列表'"></CustomNavbar>
|
||||
<view class="guide">
|
||||
<view class="guide_content" v-for="(item, index) in arrGuide" :key="index">
|
||||
<view class="guide_item"> {{item}} </view>
|
||||
<view class="guide_arrow" v-if="index !== arrGuide.length - 1">》</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="condition">
|
||||
<view class="cond_list" v-if="pageType === 'enterprise'">
|
||||
<view v-for="(item, index) in arrTitle" :key="index"
|
||||
:class="['cond_item', index === currentArrTitleID ? 'activeButton' : '']" @click="changeTab(item)">
|
||||
{{ item.text }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="cond_list" v-else>
|
||||
<view style="font-weight: 700;">个体户招工</view>
|
||||
</view>
|
||||
<view class="cond_item item_com" @click="openPicker = true">{{ reviewStatus[currentReviewStatusID] }}</view>
|
||||
</view>
|
||||
<view class="container" v-if="dataSource.length">
|
||||
<block v-for="(item, index) in dataSource" :key="item.id">
|
||||
<userrecruitList :companyitem="item" :position="userLocation"></userrecruitList>
|
||||
</block>
|
||||
</view>
|
||||
<empty v-else content="暂无数据" mr-top="200"></empty>
|
||||
<CustomTabbar :currentpage="0"></CustomTabbar>
|
||||
<u-picker :show="openPicker" :columns="pickerColumns" @cancel="openPicker = false"
|
||||
@confirm="changeReviewStatus"></u-picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CustomNavbar from '@/components/CustomNavbar/navbar.vue';
|
||||
import CustomTabbar from '@/components/CustomTabbar/custom_tabbar.vue';
|
||||
import {
|
||||
getuserrecruitListApp
|
||||
} from '@/api/userrecruit.js'
|
||||
import userrecruitList from '../components/userrecruitList.vue'
|
||||
let arrGuide = ['在线填写招工需求', '后台审核沟通发布', '平台展示招工信息'];
|
||||
let arrTitle = [{
|
||||
text: "发布零工岗位",
|
||||
id: 0
|
||||
}, {
|
||||
text: "发布全职岗位",
|
||||
id: 1
|
||||
}
|
||||
// , {
|
||||
// text: "个体户招工",
|
||||
// id: 2
|
||||
// }
|
||||
];
|
||||
let reviewStatus = {
|
||||
'-1': "全部",
|
||||
'0': "待审核",
|
||||
'1': "已审核",
|
||||
'9': "已驳回",
|
||||
};
|
||||
let pickerColumns = [Object.values(reviewStatus)]
|
||||
import {
|
||||
mapState,
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
export default {
|
||||
components: {
|
||||
CustomTabbar,
|
||||
CustomNavbar,
|
||||
userrecruitList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageType: null, // null: 个人 enterprise: 企业
|
||||
arrGuide,
|
||||
arrTitle,
|
||||
reviewStatus,
|
||||
pickerColumns,
|
||||
openPicker: false,
|
||||
currentArrTitleID: 2,
|
||||
currentReviewStatusID: '-1',
|
||||
pageNumber: 1,
|
||||
dataSource: [],
|
||||
}
|
||||
},
|
||||
onLoad({
|
||||
type
|
||||
}) {
|
||||
if (this.enterprise) {
|
||||
this.pageType = 'enterprise'
|
||||
this.currentArrTitleID = 0
|
||||
}
|
||||
this.getList('refresh')
|
||||
},
|
||||
onReachBottom() {
|
||||
this.getList('add')
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
enterprise: (state) => state.user.seeEnterprise
|
||||
}),
|
||||
...mapGetters(['userLocation']),
|
||||
},
|
||||
methods: {
|
||||
changeReviewStatus({
|
||||
value,
|
||||
index,
|
||||
values
|
||||
}) {
|
||||
const val = Object.keys(reviewStatus).filter((item) => reviewStatus[item] === value[0])[0]
|
||||
this.currentReviewStatusID = val
|
||||
this.openPicker = false
|
||||
this.getList('refresh')
|
||||
},
|
||||
changeTab(item) {
|
||||
this.currentArrTitleID = item.id
|
||||
this.getList('refresh')
|
||||
},
|
||||
back() {
|
||||
uni.reLaunch({
|
||||
url: '/pages/my/my'
|
||||
})
|
||||
},
|
||||
async getList(type = "add") {
|
||||
if (type === "refresh") {
|
||||
this.dataSource = [];
|
||||
this.pageNumber = 1;
|
||||
}
|
||||
let params = {
|
||||
current: this.pageNumber,
|
||||
size: 10,
|
||||
jobType: this.currentArrTitleID,
|
||||
}
|
||||
if (this.currentReviewStatusID !== '-1') {
|
||||
params.reviewState = this.currentReviewStatusID
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中...'
|
||||
})
|
||||
let resData = await getuserrecruitListApp(params);
|
||||
uni.hideLoading()
|
||||
if (resData.data?.code === 200) {
|
||||
const {
|
||||
records,
|
||||
total,
|
||||
page,
|
||||
size
|
||||
} = resData.data.data;
|
||||
if (!records.length) {
|
||||
return this.$api.msg("没有更多数据");
|
||||
}
|
||||
switch (type) {
|
||||
case "add":
|
||||
this.dataSource = [...this.dataSource, ...records];
|
||||
break;
|
||||
case "refresh":
|
||||
this.dataSource = records;
|
||||
break;
|
||||
}
|
||||
this.pageNumber += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app_container {
|
||||
background-color: #f3f4f8;
|
||||
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||||
|
||||
.container {
|
||||
padding: 0 23rpx;
|
||||
padding-bottom: calc(env(safe-area-inset-bottom) + 123rpx)
|
||||
}
|
||||
|
||||
.condition {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
padding: 20rpx;
|
||||
justify-content: space-between;
|
||||
position: sticky;
|
||||
top: 78rpx;
|
||||
z-index: 999;
|
||||
background-color: #f3f4f8;
|
||||
|
||||
.cond_list {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
flex: 1;
|
||||
// justify-content: space-between;
|
||||
}
|
||||
|
||||
.cond_item {
|
||||
font-size: 14px;
|
||||
padding: 10rpx 40rpx;
|
||||
background: #fff;
|
||||
border-radius: 50px;
|
||||
margin-right: 10rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.activeButton {
|
||||
color: #4171f9;
|
||||
background-color: #cfdaf8;
|
||||
}
|
||||
|
||||
.item_com {
|
||||
margin-right: 0;
|
||||
padding: 10rpx 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.guide {
|
||||
padding: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 200rpx;
|
||||
color: #FFFFFF;
|
||||
font-size: 28rpx;
|
||||
background-color: #4071f8;
|
||||
|
||||
.guide_content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.guide_item {
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
background-color: rgba(76, 120, 249, 1);
|
||||
border-radius: 10rpx;
|
||||
padding: 10rpx;
|
||||
}
|
||||
|
||||
.guide_arrow {
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -125,14 +125,17 @@
|
||||
<u-form-item label="座机" prop="callNumber" borderBottom labelWidth="80" ref="item1">
|
||||
<u--input v-model="info.callNumber" border="none" placeholder="请输入座机"></u--input>
|
||||
</u-form-item>
|
||||
<u-form-item label="工作地址" labelWidth="70" prop="cityId" borderBottom ref="item1"
|
||||
<u-form-item label="注册地址" labelWidth="70" prop="cityId" borderBottom ref="item1"
|
||||
@click="showCityId = true; hideKeyboard()">
|
||||
<PickerTree placeholder="请选择工作地址" :tree="area.data" valueName="value" :visibel="showCityId"
|
||||
<PickerTree placeholder="请选择注册地址" :tree="area.data" valueName="value" :visibel="showCityId"
|
||||
v-model="info.cityId" @cancel="showCityId = false" border="none" returnValue="label" :deep="3">
|
||||
</PickerTree>
|
||||
</u-form-item>
|
||||
<u-form-item label="详细地址" prop="address" borderBottom labelWidth="80" ref="item1">
|
||||
<view class="addressinfo" @click="selectMap">{{info.address}}</view>
|
||||
<u-form-item label="工作地址" prop="address" borderBottom labelWidth="80" ref="item1">
|
||||
<view class="addressinfo" @click="selectMap"
|
||||
:style="`fontSize: 15px;color: ${info.address ? '#333333' : '#c0c4cc'}`">
|
||||
{{info.address || '请选择'}}
|
||||
</view>
|
||||
<!-- <textarea placeholder-style="color: rgb(192, 196, 204); fontSize: 15px" @focus="selectMap"
|
||||
v-model="info.address" placeholder="请输入详细地址" style="width: 100%;" /> -->
|
||||
<!-- <lin-select :list="addressOptions" value-key="location" name-key="title" max-height="180"
|
||||
@@ -354,7 +357,7 @@
|
||||
cityId: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: '请选择工作地址',
|
||||
message: '请选择注册地址',
|
||||
trigger: ['change']
|
||||
},
|
||||
jobCompanyName: {
|
||||
@@ -402,7 +405,7 @@
|
||||
address: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: '请输入详细地址',
|
||||
message: '请输入工作地址',
|
||||
trigger: ['change']
|
||||
},
|
||||
createDept: {
|
||||
|
||||
@@ -131,12 +131,15 @@
|
||||
</u-form-item>
|
||||
<u-form-item label="工作地址" labelWidth="70" prop="cityId" borderBottom ref="item1"
|
||||
@click="showCityId = true; hideKeyboard()">
|
||||
<PickerTree placeholder="请选择工作地址" :tree="area.data" valueName="value" :visibel="showCityId"
|
||||
<PickerTree placeholder="请选择注册地址" :tree="area.data" valueName="value" :visibel="showCityId"
|
||||
v-model="info.cityId" @cancel="showCityId = false" border="none" returnValue="label" :deep="3">
|
||||
</PickerTree>
|
||||
</u-form-item>
|
||||
<u-form-item label="详细地址" prop="address" borderBottom labelWidth="80" ref="item1">
|
||||
<view class="addressinfo" @click="selectMap">{{info.address}}</view>
|
||||
<view class="addressinfo" @click="selectMap"
|
||||
:style="`fontSize: 15px;color: ${info.address ? '#333333' : '#c0c4cc'}`">
|
||||
{{info.address || '请选择'}}
|
||||
</view>
|
||||
<!-- <u--input v-model="info.address" border="none" placeholder="请输入详细地址"></u--input> -->
|
||||
</u-form-item>
|
||||
<!-- <view class="map">
|
||||
@@ -343,7 +346,7 @@
|
||||
cityId: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: '请选择工作地址',
|
||||
message: '请选择注册地址',
|
||||
trigger: ['change']
|
||||
},
|
||||
jobCompanyName: {
|
||||
@@ -391,7 +394,7 @@
|
||||
address: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: '请输入详细地址',
|
||||
message: '请输入工作地址',
|
||||
trigger: ['change']
|
||||
},
|
||||
createDept: {
|
||||
|
||||
Reference in New Issue
Block a user