<template>
|
|
<view class="page">
|
|
<navbar title="在线简历"
|
|
leftClick
|
|
@leftClick="$utils.navigateBack"/>
|
|
|
|
|
|
|
|
<view class="box">
|
|
<view class="list">
|
|
<view class="item"
|
|
v-for="(item, index) in list"
|
|
:key="index">
|
|
<view class="title">
|
|
{{ item.title }}
|
|
</view>
|
|
<view class="tagList">
|
|
<view :class="{act : i == item.index}"
|
|
@click="clickTag(item, i)" v-for="(t, i) in item.tag"
|
|
:key="t.id">
|
|
{{ t.name || t.adress }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<view class="form-sheet-cell">
|
|
<view class="label">
|
|
求职岗位
|
|
</view>
|
|
|
|
|
|
<input placeholder="请输入求职岗位"
|
|
v-model="form.title" />
|
|
</view>
|
|
|
|
<view class="form-sheet-cell">
|
|
<view class="label">
|
|
您的年龄
|
|
</view>
|
|
<input placeholder="请输入年龄"
|
|
type="number"
|
|
v-model="form.age" />
|
|
</view>
|
|
|
|
<view class="form-sheet-cell">
|
|
<view class="label">
|
|
您的性别
|
|
</view>
|
|
<uv-radio-group v-model="form.sex">
|
|
<view style="display: flex;justify-content: center;">
|
|
<uv-radio
|
|
:customStyle="{margin: '8px'}"
|
|
v-for="(item, index) in sexList"
|
|
:key="index"
|
|
iconSize="30rpx"
|
|
size="40rpx"
|
|
labelSize="26rpx"
|
|
:label="item.name"
|
|
:name="item.name">
|
|
</uv-radio>
|
|
</view>
|
|
</uv-radio-group>
|
|
</view>
|
|
|
|
<view class="form-sheet-cell">
|
|
<view class="label">
|
|
您的民族
|
|
</view>
|
|
<input placeholder="请输入民族"
|
|
v-model="form.nation" />
|
|
</view>
|
|
|
|
<view class="form-sheet-cell">
|
|
<view class="label">
|
|
期望薪资
|
|
</view>
|
|
<view class="price">
|
|
<input placeholder="下限" v-model="form.salaryLow" />
|
|
~
|
|
<input placeholder="上限" v-model="form.salaryUp" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-sheet-cell"
|
|
@click="openPicker('qualification')">
|
|
<view class="label">
|
|
您的学历
|
|
</view>
|
|
<input placeholder="请选择学历"
|
|
disabled
|
|
v-model="form.qualification" />
|
|
</view>
|
|
|
|
<!-- <view class="form-sheet-cell">
|
|
<view class="label">
|
|
您的学历
|
|
</view>
|
|
<input placeholder="请输入您的学历"
|
|
v-model="form.qualification" />
|
|
</view> -->
|
|
|
|
<uv-textarea
|
|
v-model="form.brief"
|
|
count
|
|
:maxlength="300"
|
|
autoHeight
|
|
placeholder="请输入个人介绍"></uv-textarea>
|
|
|
|
|
|
<view class="uni-color-btn"
|
|
@click="submit">
|
|
发布
|
|
</view>
|
|
</view>
|
|
|
|
<uv-picker ref="picker"
|
|
:columns="columns"
|
|
@confirm="pickerConfirm"></uv-picker>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState } from 'vuex'
|
|
import index from '../../uni_modules/uv-ui-tools'
|
|
export default {
|
|
data() {
|
|
return {
|
|
list: [
|
|
{
|
|
title: '您希望从事的工种',
|
|
tag: [],
|
|
index: 0,
|
|
type : 'typeId',
|
|
|
|
},
|
|
{
|
|
title: '您希望从事工作的地区',
|
|
tag: [],
|
|
index: 0,
|
|
type : 'expectAddress',
|
|
},
|
|
{
|
|
title: '您希望从事工作的性质',
|
|
tag: [],
|
|
index: 0,
|
|
type : 'natureId',
|
|
},
|
|
],
|
|
form : {
|
|
sex : '男',
|
|
qulification : '',
|
|
title: '',
|
|
typeId : '',
|
|
expectAddress : '',
|
|
natureId : '',
|
|
age : '',
|
|
nation : '',
|
|
salaryLow : '',
|
|
salaryUp : '',
|
|
qualification : '',
|
|
brief: '',
|
|
},
|
|
sexList : [
|
|
{
|
|
name : '男',
|
|
},
|
|
{
|
|
name : '女',
|
|
},
|
|
],
|
|
picker : {
|
|
qualification : [
|
|
'初中',
|
|
'高中',
|
|
'专科',
|
|
'本科',
|
|
'研究生',
|
|
'博士',
|
|
],
|
|
},
|
|
pickerKey : 'workAge',
|
|
}
|
|
},
|
|
computed : {
|
|
...mapState(['natureList', 'jobTypeList', 'addressList']),
|
|
columns(){
|
|
return [this.picker[this.pickerKey]]
|
|
},
|
|
},
|
|
onLoad() {
|
|
this.list[0].tag = this.jobTypeList
|
|
this.list[1].tag = this.addressList
|
|
this.list[2].tag = this.natureList
|
|
|
|
this.queryResumeByUserId()
|
|
},
|
|
methods: {
|
|
clickTag(item, index){
|
|
item.index = index
|
|
},
|
|
openPicker(key, picker){
|
|
this.pickerKey = key
|
|
if(picker){
|
|
picker.open()
|
|
}else{
|
|
this.$refs.picker.open()
|
|
}
|
|
},
|
|
pickerConfirm(e){
|
|
console.log(e);
|
|
let data = e.value[0]
|
|
if(data && data.id){
|
|
this.form[this.pickerKey] = data.id
|
|
this.form[this.pickerKey + '_dictText'] = data.name || data.adress
|
|
}else{
|
|
this.form[this.pickerKey] = data
|
|
}
|
|
},
|
|
// 提交
|
|
submit(){
|
|
|
|
// if(this.fileList.length == 0){
|
|
// return uni.showToast({
|
|
// title: '请上传图片',
|
|
// icon : 'none'
|
|
// })
|
|
// }
|
|
|
|
this.list.forEach(n => {
|
|
this.form[n.type] = n.tag[n.index].id
|
|
})
|
|
|
|
if (this.$utils.verificationAll(this.form, {
|
|
title: '请输入求职岗位',
|
|
typeId : '请选择工种',
|
|
expectAddress : '请选择工作的地区',
|
|
natureId : '请选择工作的性质',
|
|
age : '请输入您的年龄',
|
|
sex : '请选择性别',
|
|
nation : '请输入您的民族',
|
|
salaryLow : '请输入期望薪资下限',
|
|
salaryUp : '请输入期望薪资上限',
|
|
qualification : '请选择您的学历',
|
|
brief: '请输入个人介绍',
|
|
})) {
|
|
return
|
|
}
|
|
|
|
let data = {
|
|
title: this.form.title,
|
|
typeId : this.form.typeId,
|
|
expectAddress : this.form.expectAddress,
|
|
natureId : this.form.natureId,
|
|
age : this.form.age,
|
|
nation : this.form.nation,
|
|
salaryLow : this.form.salaryLow,
|
|
salaryUp : this.form.salaryUp,
|
|
qualification : this.form.qualification,
|
|
brief: this.form.brief,
|
|
sex: this.form.sex,
|
|
}
|
|
|
|
if(this.form.id){
|
|
data.id = this.form.id
|
|
}
|
|
|
|
this.$api('addResume', data, res => {
|
|
if(res.code == 200){
|
|
uni.showToast({
|
|
title: '保存成功!',
|
|
icon: 'none'
|
|
})
|
|
|
|
setTimeout(uni.navigateBack, 1000, -1)
|
|
}
|
|
})
|
|
},
|
|
queryResumeByUserId(){
|
|
this.$api('queryResumeByUserId', res => {
|
|
if(res.code == 200 && res.result && res.result.records[0]){
|
|
this.form = res.result.records[0]
|
|
|
|
this.list.forEach((n, i) => {
|
|
|
|
n.tag.forEach((e, index) => {
|
|
|
|
if(this.form[n.type] == e.id){
|
|
n.index = index
|
|
}
|
|
|
|
})
|
|
})
|
|
|
|
}
|
|
})
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.page{
|
|
background-color: #fff;
|
|
min-height: 100vh;
|
|
.box{
|
|
padding: 30rpx;
|
|
.list {
|
|
.item {
|
|
margin-top: 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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.form-sheet-cell{
|
|
display: flex;
|
|
background-color: #fff;
|
|
padding: 20rpx;
|
|
align-items: center;
|
|
.label{
|
|
width: 160rpx;
|
|
font-weight: 900;
|
|
}
|
|
.price{
|
|
display: flex;
|
|
text-align: center;
|
|
input{
|
|
width: 150rpx;
|
|
border: 1px solid $uni-color;
|
|
margin: 0 10rpx;
|
|
}
|
|
}
|
|
input{
|
|
flex: 1;
|
|
background-color: rgba($uni-color, 0.1);
|
|
padding: 10rpx 20rpx;
|
|
border-radius: 10rpx;
|
|
}
|
|
.right-icon{
|
|
margin-left: auto;
|
|
}
|
|
}
|
|
|
|
/deep/ .uv-textarea{
|
|
background-color: rgba($uni-color, 0.1) !important;
|
|
min-height: 400rpx;
|
|
}
|
|
}
|
|
}
|
|
</style>
|