From bbf1716b183ba87839c803f1d1d02b1f94472e93 Mon Sep 17 00:00:00 2001 From: dengxin <2390584170@qq.com> Date: Sat, 17 Feb 2024 14:51:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8E=86=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/resume.js | 15 ++ components/vertical-menu/vertical-menu.vue | 7 +- pageMy/my/resume/index.vue | 209 ++++++++++++++------- 3 files changed, 164 insertions(+), 67 deletions(-) diff --git a/api/resume.js b/api/resume.js index 0a1150c..5e19483 100644 --- a/api/resume.js +++ b/api/resume.js @@ -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({ diff --git a/components/vertical-menu/vertical-menu.vue b/components/vertical-menu/vertical-menu.vue index 5977e5c..74fc3cb 100644 --- a/components/vertical-menu/vertical-menu.vue +++ b/components/vertical-menu/vertical-menu.vue @@ -54,7 +54,7 @@ :defaultIds="areaModal.defaultIds" :showToolbar="false" :showBottombar="true" :labelName="areaModal.labelName"> - + @@ -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 } + } } diff --git a/pageMy/my/resume/index.vue b/pageMy/my/resume/index.vue index d547526..b33ca37 100644 --- a/pageMy/my/resume/index.vue +++ b/pageMy/my/resume/index.vue @@ -19,7 +19,7 @@ 我的职业技能 - + @@ -36,73 +36,58 @@ - + 您想工作的地点 - - {{ myResume.cityId ? getCity(myResume.cityId) : '请选择' }} + + {{ myResume.city == {} ? myResume.city.id ? getCity(myResume.city.id) : myResume.city.workplace : '请选择' }} - + 您的学历 - - {{ myResume.education ? this.myResume.education : '请选择' }} + + {{ myResume.education == {} ? myResume.education.label : '请选择' }} - + 您的期望薪资 - - {{ myResume.wage ? this.myResume.wage : '请选择' }} + + {{ myResume.wage ? myResume.wage : '请选择' }} - - - + - + + + + + + + + + @@ -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,29 +247,79 @@ 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元以上/月", "面议、暂无要求" + ]] + + break; 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; +}