|
|
@ -0,0 +1,305 @@ |
|
|
|
<template> |
|
|
|
<view class="page"> |
|
|
|
<navbar title="发布优质出行" leftClick @leftClick="$utils.navigateBack" /> |
|
|
|
|
|
|
|
<view class="form"> |
|
|
|
<view class="help-issue"> |
|
|
|
<text>出行标题</text> |
|
|
|
<text style="color: #BD3624;">*</text> |
|
|
|
</view> |
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<input type="text" |
|
|
|
v-model="form.title" |
|
|
|
class="title-input"/> |
|
|
|
</view> |
|
|
|
|
|
|
|
<uv-cell |
|
|
|
title="工作地点" |
|
|
|
rightIconStyle="fontSize: 30rpx;" |
|
|
|
:value="form.address || '请选择招工地点'" |
|
|
|
@click="selectAddr" |
|
|
|
isLink |
|
|
|
></uv-cell> |
|
|
|
|
|
|
|
|
|
|
|
<uv-cell |
|
|
|
title="工龄要求" |
|
|
|
rightIconStyle="fontSize: 30rpx;" |
|
|
|
:value="form.workYear || '请选择工龄要求'" |
|
|
|
@click="openPicker('workYear')" |
|
|
|
isLink |
|
|
|
></uv-cell> |
|
|
|
|
|
|
|
|
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<view class="label"> |
|
|
|
招聘公司 |
|
|
|
</view> |
|
|
|
<input placeholder="请输入招聘公司" v-model="form.company" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<view class="label"> |
|
|
|
薪资范围 |
|
|
|
</view> |
|
|
|
<input placeholder="请输入薪资范围" v-model="form.minPrice" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<view class="label"> |
|
|
|
标签 |
|
|
|
</view> |
|
|
|
<input placeholder="请输入标签(多个用,号分割)" v-model="form.iconText" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<view class="label"> |
|
|
|
联系人 |
|
|
|
</view> |
|
|
|
<input placeholder="请输入联系人" v-model="form.userName" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="form-sheet-cell"> |
|
|
|
<view class="label"> |
|
|
|
联系电话 |
|
|
|
</view> |
|
|
|
<input placeholder="请输入联系电话" v-model="form.userPhone" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view class="category"> |
|
|
|
<view class="title"> |
|
|
|
选择地区 |
|
|
|
</view> |
|
|
|
<view class="tagList"> |
|
|
|
<view |
|
|
|
:class="{act : t.id == form.addId}" |
|
|
|
@click="form.addId = t.id" |
|
|
|
v-for="(t, i) in cityList" |
|
|
|
:key="i"> |
|
|
|
{{ t.name }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="" |
|
|
|
style="margin-top: 20rpx;"> |
|
|
|
<uv-textarea |
|
|
|
v-model="form.jobDetails" |
|
|
|
count |
|
|
|
:maxlength="300" |
|
|
|
autoHeight |
|
|
|
placeholder="请输入岗位详细介绍"></uv-textarea> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="uni-color-btn" |
|
|
|
@click="submit"> |
|
|
|
发布 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<uv-picker ref="picker" |
|
|
|
:columns="columns" |
|
|
|
@confirm="pickerConfirm"></uv-picker> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import Position from '@/utils/position.js' |
|
|
|
import { mapState } from 'vuex' |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
form : { |
|
|
|
school : '', |
|
|
|
workYear : '', |
|
|
|
minPrice : '', |
|
|
|
maxPrice : '', |
|
|
|
address : '', |
|
|
|
addId : '', |
|
|
|
company : '', |
|
|
|
gsContext : '', |
|
|
|
jobContext : '', |
|
|
|
}, |
|
|
|
radiovalue : '', |
|
|
|
priceList : [ |
|
|
|
{ |
|
|
|
name : '日结', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name : '月结', |
|
|
|
}, |
|
|
|
], |
|
|
|
jopList : [ |
|
|
|
{ |
|
|
|
name : '正式工', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name : '临时工', |
|
|
|
}, |
|
|
|
], |
|
|
|
picker : { |
|
|
|
workYear : [ |
|
|
|
'不限', |
|
|
|
], |
|
|
|
school : [ |
|
|
|
'不限', |
|
|
|
'初中', |
|
|
|
'高中', |
|
|
|
'专科', |
|
|
|
'本科', |
|
|
|
'研究生', |
|
|
|
'博士', |
|
|
|
], |
|
|
|
}, |
|
|
|
pickerKey : 'workYear', |
|
|
|
} |
|
|
|
}, |
|
|
|
onLoad() { |
|
|
|
for (var i = 0; i < 30; i++) { |
|
|
|
this.picker.workYear.push((i + 1) + '年') |
|
|
|
} |
|
|
|
this.form.addId = this.cityList[0].id |
|
|
|
}, |
|
|
|
computed : { |
|
|
|
columns(){ |
|
|
|
return [this.picker[this.pickerKey]] |
|
|
|
}, |
|
|
|
...mapState(['cityList', 'category']), |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
openPicker(key){ |
|
|
|
this.pickerKey = key |
|
|
|
this.$refs.picker.open() |
|
|
|
}, |
|
|
|
pickerConfirm(e){ |
|
|
|
this.form[this.pickerKey] = e.value[0] |
|
|
|
}, |
|
|
|
//地图上选择地址 |
|
|
|
selectAddr() { |
|
|
|
Position.selectAddress(res => { |
|
|
|
//经纬度信息 |
|
|
|
this.form.latitude = res.latitude |
|
|
|
this.form.longitude = res.longitude |
|
|
|
if (res.name) { |
|
|
|
return this.form.address = res.name |
|
|
|
} |
|
|
|
this.form.address = '' |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 提交 |
|
|
|
submit(){ |
|
|
|
|
|
|
|
// if(this.fileList.length == 0){ |
|
|
|
// return uni.showToast({ |
|
|
|
// title: '请上传图片', |
|
|
|
// icon : 'none' |
|
|
|
// }) |
|
|
|
// } |
|
|
|
|
|
|
|
if (this.$utils.verificationAll(this.form, { |
|
|
|
title: '请输入招工标题', |
|
|
|
address : '请选择工作地点', |
|
|
|
workYear : '请选择工龄要求', |
|
|
|
company : '请输入招聘公司', |
|
|
|
minPrice : '请输入薪资范围', |
|
|
|
iconText: '请输入标签', |
|
|
|
userName: '请输入联系人', |
|
|
|
userPhone: '请输入联系电话', |
|
|
|
jobDetails: '请输入岗位详细介绍', |
|
|
|
})) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.$api('publishJob', this.form, res => { |
|
|
|
if(res.code == 200){ |
|
|
|
uni.showToast({ |
|
|
|
title: '发布成功!', |
|
|
|
icon: 'none' |
|
|
|
}) |
|
|
|
|
|
|
|
setTimeout(uni.navigateBack, 1000, -1) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
.page{ |
|
|
|
background-color: #fff; |
|
|
|
min-height: 100vh; |
|
|
|
box-sizing: border-box; |
|
|
|
color: #333333; |
|
|
|
font-size: 28rpx; |
|
|
|
/deep/ text{ |
|
|
|
font-size: 28rpx !important; |
|
|
|
} |
|
|
|
input{ |
|
|
|
width: 450rpx; |
|
|
|
} |
|
|
|
.form{ |
|
|
|
padding: 30rpx; |
|
|
|
.help-issue { |
|
|
|
margin: 20rpx; |
|
|
|
} |
|
|
|
.title-input{ |
|
|
|
border: 1px solid $uni-color; |
|
|
|
width: 100%; |
|
|
|
border-radius: 10rpx; |
|
|
|
padding: 10rpx 20rpx; |
|
|
|
box-sizing: border-box; |
|
|
|
height: 65rpx; |
|
|
|
} |
|
|
|
.form-sheet-cell{ |
|
|
|
display: flex; |
|
|
|
background-color: #fff; |
|
|
|
padding: 20rpx 30rpx; |
|
|
|
align-items: center; |
|
|
|
.label{ |
|
|
|
width: 160rpx; |
|
|
|
} |
|
|
|
.price{ |
|
|
|
display: flex; |
|
|
|
text-align: center; |
|
|
|
input{ |
|
|
|
width: 150rpx; |
|
|
|
border: 1px solid $uni-color; |
|
|
|
margin: 0 10rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
.right-icon{ |
|
|
|
margin-left: auto; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.category{ |
|
|
|
padding: 20rpx; |
|
|
|
.title{ |
|
|
|
// font-weight: 900; |
|
|
|
// font-size: 30rpx; |
|
|
|
} |
|
|
|
.tagList{ |
|
|
|
display: flex; |
|
|
|
flex-wrap: wrap; |
|
|
|
padding: 10rpx 0; |
|
|
|
view{ |
|
|
|
background: rgba($uni-color, 0.1); |
|
|
|
padding: 10rpx 20rpx; |
|
|
|
margin: 10rpx; |
|
|
|
border-radius: 10rpx; |
|
|
|
font-size: 26rpx; |
|
|
|
} |
|
|
|
.act{ |
|
|
|
color: #fff; |
|
|
|
background: $uni-color; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |