简历更新
This commit is contained in:
@@ -50,6 +50,21 @@ export const setLearn = (id, learnSkill) => {
|
||||
});
|
||||
};
|
||||
|
||||
/*保存我的简历信息*/
|
||||
export const setResume = ({id,education,wage,workplace,telephone}) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/user/user/resume/update",
|
||||
method: "post",
|
||||
data: {
|
||||
id,
|
||||
education,
|
||||
wage,
|
||||
workplace,
|
||||
telephone
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
/*行业库*/
|
||||
export const getTrade = () => {
|
||||
return request({
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
:defaultIds="areaModal.defaultIds" :showToolbar="false" :showBottombar="true"
|
||||
:labelName="areaModal.labelName"></data-picker>
|
||||
<!-- 行业 -->
|
||||
<u-picker :show="industryModal.industryShow" :columns="industryModal.industry"></u-picker>
|
||||
<u-picker @confirm="pickerIndustryFunc" @cancel="industryModal.industryShow = false" :show="industryModal.industryShow" :columns="industryModal.industry"></u-picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -283,8 +283,13 @@ export default {
|
||||
this.areaModal.address = [...new Set(val.value)].join(' / ')
|
||||
console.log(this.areaModal.address);
|
||||
this.areaModal.addressShow = false
|
||||
},
|
||||
pickerIndustryFunc(val) {
|
||||
console.log(val);
|
||||
this.industryModal.industryShow = false
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<view class="title_text">
|
||||
我的职业技能
|
||||
</view>
|
||||
<image v-if="mySkills.length < 10" src="../../../static/img/add.gray.svg" mode="" @click="goAdd"></image>
|
||||
<image v-if="mySkills.length < 5" src="../../../static/img/add.gray.svg" mode="" @click="goAdd"></image>
|
||||
</view>
|
||||
|
||||
<view class="listBody">
|
||||
@@ -36,73 +36,58 @@
|
||||
</view>
|
||||
<view class="jobcontent" @click="goSetCity">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
<view
|
||||
v-bind:class="['jobAddress', { 'input-error': (!myResume.city.id || !myResume.city.workplace) && isShowBorder }]">
|
||||
您想工作的地点
|
||||
</view>
|
||||
<view v-bind:class="['jobText', { nochoose: !myResume.cityId }]">
|
||||
{{ myResume.cityId ? getCity(myResume.cityId) : '请选择' }}
|
||||
<view v-bind:class="['jobText']">
|
||||
{{ myResume.city == {} ? myResume.city.id ? getCity(myResume.city.id) : myResume.city.workplace : '请选择' }}
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view>
|
||||
<view class="jobcontent" @click="showPickerFunc('education')">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
<view v-bind:class="['jobAddress', { 'input-error': !myResume.education.label && isShowBorder }]">
|
||||
您的学历
|
||||
</view>
|
||||
<view v-bind:class="['jobText', { nochoose: !myResume.cityId }]">
|
||||
{{ myResume.education ? this.myResume.education : '请选择' }}
|
||||
<view v-bind:class="['jobText']">
|
||||
{{ myResume.education == {} ? myResume.education.label : '请选择' }}
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view>
|
||||
<view class="jobcontent" @click="showPickerFunc('wage')">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
<view v-bind:class="['jobAddress', { 'input-error': !myResume.wage && isShowBorder }]">
|
||||
您的期望薪资
|
||||
</view>
|
||||
<view v-bind:class="['jobText', { nochoose: !myResume.cityId }]">
|
||||
{{ myResume.wage ? this.myResume.wage : '请选择' }}
|
||||
<view v-bind:class="['jobText']">
|
||||
{{ myResume.wage ? myResume.wage : '请选择' }}
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view>
|
||||
<!-- <view class="jobcontent" @click="goSetCity">
|
||||
<view class="jobcontent">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
您的期望薪资
|
||||
</view>
|
||||
<view v-bind:class="['jobText', { nochoose: !myResume.cityId }]">
|
||||
{{ myResume.cityId ? getCity(myResume.cityId) : '请选择' }}
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view>
|
||||
<view class="jobcontent" @click="goSetCity">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
<view v-bind:class="['jobAddress', { 'input-error': !myResume.phone && isShowBorder }]">
|
||||
您的联系方式
|
||||
</view>
|
||||
<view v-bind:class="['jobText', { nochoose: !myResume.cityId }]">
|
||||
{{ myResume.cityId ? getCity(myResume.cityId) : '请选择' }}
|
||||
<u--input :value="myResume.phone" @focus="setPhoneFunc1" @change="setPhoneFunc" type="number"
|
||||
placeholder="请输入您的电话" border="none" clearable></u--input>
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view> -->
|
||||
<view class="border"></view>
|
||||
<!--<view class="jobcontent" @click="goWantSkill">
|
||||
<view class="jobinfo">
|
||||
<view class="jobAddress">
|
||||
我想学习的技能(选填)
|
||||
</view>
|
||||
<view class="jobText" v-bind:class="myResume.learnSkill?'':'nochoose'">
|
||||
{{myResume.learnSkill?myResume.learnSkill:'请填写'}}
|
||||
</view>
|
||||
</view>
|
||||
<image src="../../../static/img/right.svg" mode=""></image>
|
||||
</view>-->
|
||||
|
||||
<u-picker @confirm="pickerButtonFunc" @cancel="showPicker = false" :show="showPicker" :columns="columns"></u-picker>
|
||||
<view v-if="isShowButton" class="saveWrapper">
|
||||
<u-button @click="subMitResume" type="primary" shape="circle" text="保存"></u-button>
|
||||
</view>
|
||||
|
||||
<view class="border"></view>
|
||||
|
||||
<u-picker @confirm="pickerButtonFunc" @cancel="showPicker = false" :show="showPicker" :columns="columns"
|
||||
keyName="label"></u-picker>
|
||||
|
||||
<u-toast ref="uToast"></u-toast>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -115,7 +100,8 @@ import {
|
||||
myResume,
|
||||
removeSkills,
|
||||
setCity,
|
||||
setLearn
|
||||
setLearn,
|
||||
setResume
|
||||
} from '@/api/resume.js';
|
||||
import mSlideList from '@/components/mark-slide-list/mark-slide-list.vue';
|
||||
import controller from '@/components/mark-slide-list/controller';
|
||||
@@ -127,9 +113,15 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
controller: new controller(),
|
||||
myResume: {},
|
||||
myResume: {
|
||||
city: {},
|
||||
education: {},
|
||||
wage: "",
|
||||
phone: "",
|
||||
},
|
||||
mySkills: [],
|
||||
id: '',
|
||||
id: '1298609524179660801',
|
||||
// id: '',
|
||||
buttonList: [{
|
||||
title: '删除',
|
||||
background: '#ff3b32',
|
||||
@@ -137,25 +129,46 @@ export default {
|
||||
}],
|
||||
showPicker: false,
|
||||
showType: "",
|
||||
columns: [
|
||||
['MBA/EMBA', '博士', '硕士', '本科', '大专', '高中', '中专/中技'
|
||||
, '初中及以下', '不限'
|
||||
]
|
||||
],
|
||||
columns: [[]],
|
||||
|
||||
canSubMit: false,
|
||||
isShowButton: false,
|
||||
isShowBorder: false,
|
||||
isShowAddSkill: true
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getResume()
|
||||
this.getSkill()
|
||||
},
|
||||
created() {
|
||||
this.getResume()
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['userInfo', 'auth'])
|
||||
},
|
||||
watch: {
|
||||
myResume: {
|
||||
handler: function (newVal, oldVal) {
|
||||
if (newVal.city && newVal.education && newVal.wage && newVal.phone) {
|
||||
this.canSubMit = true;
|
||||
} else {
|
||||
this.canSubMit = false;
|
||||
}
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getResume() {
|
||||
myResume().then(res => {
|
||||
const data = res.data.data
|
||||
this.myResume = data
|
||||
this.myResume = {
|
||||
city: { workplace: data.workplace },
|
||||
education: { label: data.education },
|
||||
wage: data.wage,
|
||||
phone: data.telephone
|
||||
}
|
||||
this.isShowButton = false;
|
||||
if (data && data.id) {
|
||||
this.id = data.id
|
||||
}
|
||||
@@ -191,11 +204,12 @@ export default {
|
||||
uni.$off('setCity')
|
||||
uni.$on('setCity', ({ detail }) => {
|
||||
console.log(detail, '---------------');
|
||||
|
||||
setCity(this.id, detail.parentLabel + '-' + detail.label).then(res => {
|
||||
this.myResume.cityId = detail.id
|
||||
this.getResume()
|
||||
})
|
||||
this.isShowButton = true
|
||||
this.myResume.city = detail
|
||||
// setCity(this.id, detail.parentLabel + '-' + detail.label).then(res => {
|
||||
// this.myResume.cityId = detail.id
|
||||
// this.getResume()
|
||||
// })
|
||||
})
|
||||
uni.navigateTo({
|
||||
url: `/pages/setCity/setCity?maxLayer=2`
|
||||
@@ -233,14 +247,16 @@ export default {
|
||||
switch (type) {
|
||||
case "education":
|
||||
this.columns =
|
||||
[['MBA/EMBA', '博士', '硕士', '本科', '大专', '高中', '中专/中技'
|
||||
, '初中及以下', '不限'
|
||||
[[
|
||||
{ label: 'MBA/EMBA', value: 0 }, { label: '博士', value: 1 }, { label: '硕士', value: 2 }, { label: '本科', value: 3 },
|
||||
{ label: '大专', value: 4 }, { label: '高中', value: 5 }, { label: '中专/中技', value: 6 }, { label: '初中及以下,', value: 7 },
|
||||
{ label: '不限', value: 8 }
|
||||
]]
|
||||
break;
|
||||
case "wage":
|
||||
this.columns =[['10-15元/小时', '16-20元/小时', '21-25元/小时', '26-30元/小时', '30元/小时以上', '100-150元/天', '151-200元/天'
|
||||
, '201-250元/天', '251-300元/天',"300元/天以上","2000元(含)以下/月","2000-5000元(含)/月","5000-8000元(含)/月",
|
||||
"8000-10000元(含)/月","10000-15000元(含)/月","15000-20000元(含)/月","20000-25000元(含)/月","25000-30000元(含)/月","30000元以上/月","面议、暂无要求"
|
||||
this.columns = [['10-15元/小时', '16-20元/小时', '21-25元/小时', '26-30元/小时', '30元/小时以上', '100-150元/天', '151-200元/天'
|
||||
, '201-250元/天', '251-300元/天', "300元/天以上", "2000元(含)以下/月", "2000-5000元(含)/月", "5000-8000元(含)/月",
|
||||
"8000-10000元(含)/月", "10000-15000元(含)/月", "15000-20000元(含)/月", "20000-25000元(含)/月", "25000-30000元(含)/月", "30000元以上/月", "面议、暂无要求"
|
||||
]]
|
||||
|
||||
|
||||
@@ -250,12 +266,60 @@ export default {
|
||||
|
||||
break;
|
||||
}
|
||||
this.isShowButton = true;
|
||||
this.showPicker = true;
|
||||
},
|
||||
pickerButtonFunc(e) {
|
||||
console.log(e, this.myResume, this.myResume[this.showType]);
|
||||
this.myResume[this.showType] = e.value[0];
|
||||
this.showPicker = false;
|
||||
},
|
||||
setPhoneFunc(e) {
|
||||
this.myResume.phone = e;
|
||||
},
|
||||
setPhoneFunc1(e) {
|
||||
this.isShowButton = true;
|
||||
},
|
||||
showToast(text) {
|
||||
this.$refs.uToast.show({
|
||||
type: 'error',
|
||||
icon: false,
|
||||
title: '失败主题',
|
||||
message: text,
|
||||
iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png',
|
||||
})
|
||||
},
|
||||
|
||||
subMitResume() {
|
||||
console.log(this.myResume);
|
||||
this.isShowBorder = true;
|
||||
if (!this.canSubMit) return;
|
||||
const { city, education, phone, wage } = this.myResume
|
||||
// 中国大陆手机号码正则表达式
|
||||
const mobileRegex = /\b(1[3-9]\d{9})\b/;
|
||||
// 中国大陆座机号码正则表达式
|
||||
const landlineRegex = /\b(0\d{2,3}-\d{7,8}(-\d{1,4})?)\b/;
|
||||
|
||||
|
||||
if (mobileRegex.test(phone) || landlineRegex.test(phone)) {
|
||||
// 电话号码格式正确
|
||||
console.log(phone, "电话号码格式正确");
|
||||
setResume({
|
||||
id: this.id, education: education.label, workplace: city.parentLabel + '-' + city.label, telephone: phone, wage
|
||||
}).then(res => {
|
||||
this.isShowButton = false;
|
||||
this.getResume()
|
||||
})
|
||||
} else {
|
||||
// 电话号码格式不正确
|
||||
console.log(phone, "电话号码格式不正确");
|
||||
this.showToast("电话号码格式不正确");
|
||||
}
|
||||
return;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -284,7 +348,7 @@ export default {
|
||||
}
|
||||
|
||||
.nochoose {
|
||||
color: #ccc;
|
||||
/* color: #ccc; */
|
||||
}
|
||||
|
||||
.jobcontent {
|
||||
@@ -294,6 +358,7 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
line-height: 63rpx;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
.jobcontent image {
|
||||
@@ -381,4 +446,16 @@ page {
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.saveWrapper {
|
||||
width: 80%;
|
||||
padding: 20rpx;
|
||||
margin: 0 auto;
|
||||
padding-bottom: 60rpx;
|
||||
}
|
||||
|
||||
|
||||
.input-error {
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user