|
|
@@ -20,54 +20,56 @@
|
|
|
</div>
|
|
|
<div class="item" v-for="(item,index) in conditions" :key="index">
|
|
|
<span class="text">{{item.text}}</span>
|
|
|
- <a v-if="item.linkUrl" class="action" :href="item.linkUrl">{{item.linkName}}</a>
|
|
|
+ <a v-if="item.linkUrl" class="action" :href="item.linkUrl" target="view_window">{{item.linkName}}</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-title width-infinity">
|
|
|
<span class="label">填写表单</span>
|
|
|
</div>
|
|
|
+ <p class="field-tips">您选择的标签和领域将用于匹配面试官和派单匹配,请谨慎填写</p>
|
|
|
<div class="field-selector">
|
|
|
<span class="selector-title">选择领域:</span>
|
|
|
- <div v-for="(item) in fields" :class="['fields',item.disabled?'tag--disabled':'']" :key="item.occupation_id"
|
|
|
- @click="onFieldSelected(item.occupation_id)">
|
|
|
+ <div v-for="(item) in fields" class="fields" :key="item.occupation_id"
|
|
|
+ @click="onFieldSelected(item.occupation_id,item.disabled)">
|
|
|
<div class="tag" v-if="item.selected">
|
|
|
<span class="text">{{item.occupation_name}}</span>
|
|
|
</div>
|
|
|
- <div class="tag tag--unchecked" v-else>
|
|
|
+ <div :class="['tag','tag--unchecked',item.disabled?'tag--disabled':'']" v-else>
|
|
|
<span class="text text--unchecked">{{item.occupation_name}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="tag-selector">
|
|
|
+ <div class="tag-selector" v-show="currentFieldId">
|
|
|
<span class="selector-title">选择标签:</span>
|
|
|
<div class="tag" v-for="(item,index) in tagsSelected" :key="index">
|
|
|
<span class="text">{{item.skill_name}}</span>
|
|
|
<img class="icon" src="@/assets/img/skill_cert/icon_remove.png" alt="" @click="onRemoveTag(index)"/>
|
|
|
</div>
|
|
|
- <el-input style="display:none;" class="tag-input" v-model="tagText" placeholder="请输入自定义标签" clearable @change="onInputChange"></el-input>
|
|
|
+ <el-input style="display:none;" class="tag-input" v-model="tagText" placeholder="请输入自定义标签" clearable
|
|
|
+ @change="onInputChange"></el-input>
|
|
|
</div>
|
|
|
- <div class="tags">
|
|
|
- <div style="width: 100%;margin-bottom: 15px;font-weight: bold">语言标签:</div>
|
|
|
+ <div class="tags" v-show="currentFieldId">
|
|
|
+ <div style="width: 100%;margin-bottom: 15px;font-weight: bold" v-show="tags_2.length">语言标签:</div>
|
|
|
<div class="tag" v-for="(item) in tags_2" :key="item.skill_id" @click="onTagSelected(item)">
|
|
|
<span class="text">{{item.skill_name}}</span>
|
|
|
</div>
|
|
|
- <div style="width: 100%;margin-bottom: 15px;font-weight: bold">应用场景/框架/工具等标签:</div>
|
|
|
+ <div style="width: 100%;margin-bottom: 15px;font-weight: bold" v-show="tags_3.length">应用场景/框架/工具等标签:</div>
|
|
|
<div class="tag" v-for="(item) in tags_3" :key="item.skill_id" @click="onTagSelected(item)">
|
|
|
<span class="text">{{item.skill_name}}</span>
|
|
|
</div>
|
|
|
- <div style="width: 100%;margin-bottom: 15px;font-weight: bold">行业/项目标签:</div>
|
|
|
+ <div style="width: 100%;margin-bottom: 15px;font-weight: bold" v-show="tags_4.length">行业/项目标签:</div>
|
|
|
<div class="tag" v-for="(item) in tags_4" :key="item.skill_id" @click="onTagSelected(item)">
|
|
|
<span class="text">{{item.skill_name}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="level-selector" @click="toLevelsDesc">
|
|
|
+ <div class="level-selector" @click="toLevelsDesc" v-show="currentFieldId">
|
|
|
<div class="col-title">
|
|
|
<span class="label">选择认证等级</span>
|
|
|
</div>
|
|
|
<span class="action">等级对照表</span>
|
|
|
<img class="icon" src="@/assets/img/skill_cert/icon_tips.png" alt=""/>
|
|
|
</div>
|
|
|
- <div class="level-selector">
|
|
|
+ <div class="level-selector" v-show="currentFieldId">
|
|
|
<el-select v-model="level" placeholder="认证等级" clearable @change="handleLevelChange">
|
|
|
<el-option
|
|
|
v-for="dict in levels"
|
|
|
@@ -77,10 +79,12 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
- <div v-if="img_show" class="col-title width-infinity upload-title">
|
|
|
+ <p class="field-tips" v-show="currentFieldId" style="margin-top: 10px">认证收费将支付给面试官,而非平台,详情见等级对照表</p>
|
|
|
+ <div v-show="imgShow" class="col-title width-infinity upload-title">
|
|
|
<span class="label">上传薪资证明</span>
|
|
|
</div>
|
|
|
- <div v-if="img_show" class="width-infinity">
|
|
|
+ <p v-show="imgShow" class="field-tips">仅F5、6需要提供薪资证明(可上传多张),F5: 40W以上年薪;F6:70W以上年薪</p>
|
|
|
+ <div v-show="imgShow" class="width-infinity upload-action">
|
|
|
<el-upload
|
|
|
class="upload-demo"
|
|
|
drag
|
|
|
@@ -97,11 +101,15 @@
|
|
|
multiple>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
|
- <div class="el-upload__tip" slot="tip">支持2M以内的PNG、JPG、JPEG格式的图片,F5、F6需要提供银行流水截图(F5:40W以上薪资;F6:70W以上薪资)</div>
|
|
|
+ <div class="el-upload__tip" slot="tip" style="display: flex;flex-direction: column">
|
|
|
+ <span>支持2M以内的PNG、JPG、JPEG格式的图片</span>
|
|
|
+ <br/>
|
|
|
+ <a href="https://jishuin.proginn.com/p/763bfbd72778" target="view_window" style="font-size: 15px">查看常见薪水证明以及获取方式</a>
|
|
|
+ </div>
|
|
|
</el-upload>
|
|
|
</div>
|
|
|
<div class="price">
|
|
|
- <span class="text">¥{{price}}</span>
|
|
|
+ <span class="text">¥{{price||'0.00'}}</span>
|
|
|
<span class="unit"> /次</span>
|
|
|
</div>
|
|
|
<div class="buttons">
|
|
|
@@ -126,9 +134,9 @@
|
|
|
return {
|
|
|
rules: [{
|
|
|
title: '1、认证优势',
|
|
|
- content: '* 进行过技术认证的用户,将享受平台派单的优先推荐权重' +
|
|
|
+ content: '* 平台派单时,将第一优先考虑进行过技术认证的用户' +
|
|
|
'<br/>' +
|
|
|
- '* 技术认证等级标识' +
|
|
|
+ '* 享有技术认证标识,增加客户信任感' +
|
|
|
'<br/>' +
|
|
|
'* 依据技术等级将有更高的参考薪酬' +
|
|
|
'<br/>' +
|
|
|
@@ -143,12 +151,12 @@
|
|
|
}, {
|
|
|
title: '3、其他',
|
|
|
content: '* 最终认证的技术等级以面试官反馈为准' + '<br/>' +
|
|
|
- '* 认证金额无法退回,请确保已理解以上内容。',
|
|
|
+ '* 认证金额无法退回,请确保已理解所有内容。',
|
|
|
linkUrl: ''
|
|
|
},],
|
|
|
dialogImageUrl: '',
|
|
|
dialogVisible: false,
|
|
|
- img_show:false,
|
|
|
+ imgShow: false,
|
|
|
levels: [],
|
|
|
conditions: [],
|
|
|
fields: [],
|
|
|
@@ -184,6 +192,15 @@
|
|
|
price: ''
|
|
|
};
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ currentFieldId() {
|
|
|
+ const field = this.fields.find((ele) => ele.selected);
|
|
|
+ if (!field) {
|
|
|
+ return null
|
|
|
+ }
|
|
|
+ return field.occupation_id;
|
|
|
+ }
|
|
|
+ },
|
|
|
created() {
|
|
|
this.conditions = [
|
|
|
{
|
|
|
@@ -209,6 +226,10 @@
|
|
|
window.open(`https://jishuin.proginn.com/p/763bfbd71939`)
|
|
|
},
|
|
|
onTagSelected(item) {
|
|
|
+ if (this.tagsSelected.length >= 5) {
|
|
|
+ this.$message.info('最多可添加五个标签')
|
|
|
+ return
|
|
|
+ }
|
|
|
if (this.tagsSelected.find((ele) => {
|
|
|
return ele.skill_name === item.skill_name;
|
|
|
})) {
|
|
|
@@ -219,7 +240,10 @@
|
|
|
onRemoveTag(index) {
|
|
|
this.tagsSelected.splice(index, 1);
|
|
|
},
|
|
|
- onFieldSelected(id) {
|
|
|
+ onFieldSelected(id, disabled) {
|
|
|
+ if (disabled) {
|
|
|
+ return
|
|
|
+ }
|
|
|
this.fields = this.fields.map((ele) => {
|
|
|
ele.selected = ele.occupation_id === id;
|
|
|
return ele;
|
|
|
@@ -230,6 +254,10 @@
|
|
|
},
|
|
|
onInputChange(value) {
|
|
|
if (!value) return;
|
|
|
+ if (this.tagsSelected.length >= 5) {
|
|
|
+ this.$message.info('最多可添加五个标签')
|
|
|
+ return
|
|
|
+ }
|
|
|
if (this.tagsSelected.find((ele) => {
|
|
|
return ele.skill_name === value;
|
|
|
})) {
|
|
|
@@ -242,14 +270,7 @@
|
|
|
this.tagText = '';
|
|
|
},
|
|
|
handleLevelChange(value) {
|
|
|
- if(value==1105 || value==1106)
|
|
|
- {
|
|
|
- this.img_show=true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- this.img_show=false;
|
|
|
- }
|
|
|
+ this.imgShow = value === '1105' || value === '1106';
|
|
|
const res = this.levels.find((ele) => {
|
|
|
return ele.item_id === value
|
|
|
});
|
|
|
@@ -284,18 +305,18 @@
|
|
|
this.dialogVisible = true;
|
|
|
},
|
|
|
submit() {
|
|
|
- if (!this.tagsSelected.length) {
|
|
|
- this.$message.error('请选择技能标签!');
|
|
|
- return
|
|
|
- }
|
|
|
- if (!this.level) {
|
|
|
- this.$message.error('请选择认证等级!');
|
|
|
- return
|
|
|
- }
|
|
|
- if (!this.fileList.length) {
|
|
|
- this.$message.error('请上传薪资证明!');
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (!this.tagsSelected.length) {
|
|
|
+ // this.$message.error('请选择技能标签!');
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // if (!this.level) {
|
|
|
+ // this.$message.error('请选择认证等级!');
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // if (this.imgShow && !this.fileList.length) {
|
|
|
+ // this.$message.error('请上传薪资证明!');
|
|
|
+ // return
|
|
|
+ // }
|
|
|
const form = {
|
|
|
product_type: 12,
|
|
|
item_id: this.level,
|
|
|
@@ -316,24 +337,28 @@
|
|
|
});
|
|
|
},
|
|
|
async getOccupation() {
|
|
|
- let res = await this.$axios.$post(`/wapi/pub/occupation`, {type: 2,form_type:1});
|
|
|
- if (res.data.list && res.data.list.length) {
|
|
|
- res.data.list[0].selected = true;
|
|
|
- }
|
|
|
+ let res = await this.$axios.$post(`/wapi/pub/occupation`, {type: 2, form_type: 1});
|
|
|
this.fields = res.data.list;
|
|
|
},
|
|
|
async getSkills() {
|
|
|
- const id = this.fields.find((ele) => ele.selected).occupation_id;
|
|
|
- let res = await this.$axios.$post(`/wapi/pub/skill`, {occupation_id: id,form_type:1});
|
|
|
+ const field = this.fields.find((ele) => ele.selected);
|
|
|
+ if (!field) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let res = await this.$axios.$post(`/wapi/pub/skill`, {occupation_id: field.occupation_id, form_type: 1});
|
|
|
this.tags_2 = res.data.list_2;
|
|
|
this.tags_3 = res.data.list_3;
|
|
|
this.tags_4 = res.data.list_4;
|
|
|
},
|
|
|
async getLevels() {
|
|
|
- const id = this.fields.find((ele) => ele.selected).occupation_id;
|
|
|
- let res = await this.$axios.$post(`/uapi/pub/freeworklevel`, {occupation_id: id});
|
|
|
+ const field = this.fields.find((ele) => ele.selected);
|
|
|
+ if (!field) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let res = await this.$axios.$post(`/uapi/pub/freeworklevel`, {occupation_id: field.occupation_id});
|
|
|
this.levels = res.data.list.map((ele) => {
|
|
|
ele.name += ` ¥${ele.price}`;
|
|
|
+ ele.name += ele.memo?` 【${ele.memo}】`:'';
|
|
|
return ele
|
|
|
});
|
|
|
if (!this.level && this.levels.length) {
|
|
|
@@ -341,7 +366,7 @@
|
|
|
}
|
|
|
this.price = this.levels.find((ele) => {
|
|
|
return ele.item_id === this.level;
|
|
|
- }).price || '0.00';
|
|
|
+ }).price;
|
|
|
},
|
|
|
async getDetail() {
|
|
|
let res = await this.$axios.$post(`/uapi/cert/info`);
|
|
|
@@ -361,12 +386,6 @@
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- // this.flowList = this.flowList.map((ele, index) => {
|
|
|
- // if (index < this.form.step) {
|
|
|
- // ele.selected = true;
|
|
|
- // }
|
|
|
- // return ele;
|
|
|
- // })
|
|
|
if (this.form.occupation_id) {
|
|
|
this.fields = this.fields.map((ele) => {
|
|
|
ele.selected = this.form.occupation_id === ele.occupation_id;
|
|
|
@@ -375,6 +394,7 @@
|
|
|
}
|
|
|
if (this.form.item_id) {
|
|
|
this.level = `${this.form.item_id}`;
|
|
|
+ this.imgShow = this.level === '1105' || this.level === '1106';
|
|
|
}
|
|
|
this.tagsSelected = this.form.skill;
|
|
|
if (this.form.img) {
|
|
|
@@ -528,6 +548,16 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ .field-tips {
|
|
|
+ width: 100%;
|
|
|
+ margin-top: 5px;
|
|
|
+ font-size: 15px;
|
|
|
+ font-family: PingFangSC, PingFangSC-Regular, sans-serif;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #222222;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
.field-selector {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
@@ -575,7 +605,6 @@
|
|
|
|
|
|
&--disabled {
|
|
|
cursor: not-allowed;
|
|
|
- pointer-events: none;
|
|
|
}
|
|
|
|
|
|
&--unchecked {
|
|
|
@@ -643,7 +672,10 @@
|
|
|
|
|
|
.upload-title {
|
|
|
margin-top: 51px;
|
|
|
- margin-bottom: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-action {
|
|
|
+ margin-top: 20px;
|
|
|
}
|
|
|
|
|
|
.price {
|