After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 899 B |
After Width: | Height: | Size: 489 B |
After Width: | Height: | Size: 604 B |
After Width: | Height: | Size: 556 B |
After Width: | Height: | Size: 722 B |
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 685 B |
After Width: | Height: | Size: 656 B |
After Width: | Height: | Size: 880 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 528 B |
After Width: | Height: | Size: 656 B |
After Width: | Height: | Size: 738 B |
After Width: | Height: | Size: 488 KiB |
After Width: | Height: | Size: 858 B |
After Width: | Height: | Size: 382 B |
After Width: | Height: | Size: 9.6 KiB |
@ -0,0 +1,213 @@ |
|||||||
|
<template> |
||||||
|
<div class="component-upload-image"> |
||||||
|
<el-upload |
||||||
|
:action="uploadImgUrl" |
||||||
|
list-type="picture-card" |
||||||
|
:on-success="handleUploadSuccess" |
||||||
|
:before-upload="handleBeforeUpload" |
||||||
|
:limit="limit" |
||||||
|
:on-error="handleUploadError" |
||||||
|
:on-exceed="handleExceed" |
||||||
|
name="file" |
||||||
|
:on-remove="handleRemove" |
||||||
|
:show-file-list="true" |
||||||
|
:headers="headers" |
||||||
|
:file-list="fileList" |
||||||
|
:on-preview="handlePictureCardPreview" |
||||||
|
:class="{ hide: this.fileList.length >= this.limit }" |
||||||
|
> |
||||||
|
<i class="el-icon-plus"></i> |
||||||
|
</el-upload> |
||||||
|
|
||||||
|
<!-- 上传提示 --> |
||||||
|
<!-- <div class="el-upload__tip" slot="tip" v-if="showTip"> |
||||||
|
请上传 |
||||||
|
<template v-if="fileSize"> |
||||||
|
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> |
||||||
|
</template> |
||||||
|
<template v-if="fileType"> |
||||||
|
格式为 <b style="color: #f56c6c">{{ fileType.join('/') }}</b> |
||||||
|
</template> |
||||||
|
的文件 |
||||||
|
</div> --> |
||||||
|
|
||||||
|
<el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body> |
||||||
|
<img :src="dialogImageUrl" style="display: block; max-width: 100%; margin: 0 auto" /> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
props: { |
||||||
|
value: [String, Object, Array], |
||||||
|
// 图片数量限制 |
||||||
|
limit: { |
||||||
|
type: Number, |
||||||
|
default: 1, |
||||||
|
}, |
||||||
|
// 大小限制(MB) |
||||||
|
fileSize: { |
||||||
|
type: Number, |
||||||
|
default: 1024, |
||||||
|
}, |
||||||
|
// 文件类型, 例如['png', 'jpg', 'jpeg'] |
||||||
|
fileType: { |
||||||
|
type: Array, |
||||||
|
default: () => ['png', 'jpg', 'jpeg'], |
||||||
|
}, |
||||||
|
// 是否显示提示 |
||||||
|
isShowTip: { |
||||||
|
type: Boolean, |
||||||
|
default: true, |
||||||
|
}, |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
dialogImageUrl: '', |
||||||
|
dialogVisible: false, |
||||||
|
hideUpload: false, |
||||||
|
uploadImgUrl: process.env.VUE_APP_BASE_API + '/upload', // 上传的图片服务器地址 |
||||||
|
headers: { |
||||||
|
Authorization: this.$store.getters.token, |
||||||
|
}, |
||||||
|
fileList: [], |
||||||
|
} |
||||||
|
}, |
||||||
|
watch: { |
||||||
|
value: { |
||||||
|
handler(val) { |
||||||
|
if (val) { |
||||||
|
// 首先将值转为数组 |
||||||
|
const list = Array.isArray(val) ? val : this.value.split(',') |
||||||
|
// 然后将数组转为对象数组 |
||||||
|
this.fileList = list.map((item) => { |
||||||
|
if (typeof item === 'string') { |
||||||
|
item = { name: item, url: item } |
||||||
|
} |
||||||
|
return item |
||||||
|
}) |
||||||
|
} else { |
||||||
|
this.fileList = [] |
||||||
|
return [] |
||||||
|
} |
||||||
|
}, |
||||||
|
deep: true, |
||||||
|
immediate: true, |
||||||
|
}, |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
// 是否显示提示 |
||||||
|
showTip() { |
||||||
|
return this.isShowTip && (this.fileType || this.fileSize) |
||||||
|
}, |
||||||
|
}, |
||||||
|
created() {}, |
||||||
|
methods: { |
||||||
|
// 删除图片 |
||||||
|
handleRemove(file, fileList) { |
||||||
|
const findex = this.fileList.map((f) => f.name).indexOf(file.name) |
||||||
|
if (findex > -1) { |
||||||
|
this.fileList.splice(findex, 1) |
||||||
|
this.$emit('input', this.listToString(this.fileList)) |
||||||
|
} |
||||||
|
}, |
||||||
|
// 上传成功回调 |
||||||
|
handleUploadSuccess(res) { |
||||||
|
if (res.code == 200) { |
||||||
|
console.log(res) |
||||||
|
this.fileList.push({ name: '证书', url: process.env.VUE_APP_BASE_API + res.filePath }) |
||||||
|
this.$emit('input', this.listToString(this.fileList)) |
||||||
|
this.loading.close() |
||||||
|
} else { |
||||||
|
this.$message.error(res.message) |
||||||
|
this.loading.close() |
||||||
|
} |
||||||
|
}, |
||||||
|
// 上传前loading加载 |
||||||
|
handleBeforeUpload(file) { |
||||||
|
let isImg = false |
||||||
|
if (this.fileType.length) { |
||||||
|
let fileExtension = '' |
||||||
|
if (file.name.lastIndexOf('.') > -1) { |
||||||
|
fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1) |
||||||
|
} |
||||||
|
isImg = this.fileType.some((type) => { |
||||||
|
if (file.type.indexOf(type) > -1) return true |
||||||
|
if (fileExtension && fileExtension.indexOf(type) > -1) return true |
||||||
|
return false |
||||||
|
}) |
||||||
|
} else { |
||||||
|
isImg = file.type.indexOf('image') > -1 |
||||||
|
} |
||||||
|
|
||||||
|
if (!isImg) { |
||||||
|
this.$message.error(`文件格式不正确, 请上传${this.fileType.join('/')}图片格式文件!`) |
||||||
|
return false |
||||||
|
} |
||||||
|
if (this.fileSize) { |
||||||
|
const isLt = file.size / 1024 / 1024 < this.fileSize |
||||||
|
if (!isLt) { |
||||||
|
this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`) |
||||||
|
return false |
||||||
|
} |
||||||
|
} |
||||||
|
this.loading = this.$loading({ |
||||||
|
lock: true, |
||||||
|
text: '上传中', |
||||||
|
background: 'rgba(0, 0, 0, 0.7)', |
||||||
|
}) |
||||||
|
}, |
||||||
|
// 文件个数超出 |
||||||
|
handleExceed() { |
||||||
|
this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`) |
||||||
|
}, |
||||||
|
// 上传失败 |
||||||
|
handleUploadError(res) { |
||||||
|
this.$message({ |
||||||
|
type: 'error', |
||||||
|
message: '上传失败', |
||||||
|
}) |
||||||
|
this.loading.close() |
||||||
|
}, |
||||||
|
// 预览 |
||||||
|
handlePictureCardPreview(file) { |
||||||
|
this.dialogImageUrl = file.url |
||||||
|
this.dialogVisible = true |
||||||
|
}, |
||||||
|
// 对象转成指定字符串分隔 |
||||||
|
listToString(list, separator) { |
||||||
|
let strs = '' |
||||||
|
separator = separator || ',' |
||||||
|
for (let i in list) { |
||||||
|
strs += list[i].url + separator |
||||||
|
} |
||||||
|
return strs != '' ? strs.substr(0, strs.length - 1) : '' |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
</script> |
||||||
|
<style scoped > |
||||||
|
.component-upload-image >>> .hide .el-upload--picture-card { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
.component-upload-image >>> .el-list-enter-active, |
||||||
|
.component-upload-image >>> .el-list-leave-active { |
||||||
|
transition: all 0s; |
||||||
|
} |
||||||
|
|
||||||
|
.component-upload-image >>> .el-list-enter, |
||||||
|
.el-list-leave-active { |
||||||
|
opacity: 0; |
||||||
|
transform: translateY(0); |
||||||
|
} |
||||||
|
.component-upload-image >>> .el-upload-list--picture-card .el-upload-list__item { |
||||||
|
width: 100px; |
||||||
|
height: 100px; |
||||||
|
} |
||||||
|
.component-upload-image >>> .el-upload--picture-card { |
||||||
|
width: 100px; |
||||||
|
height: 100px; |
||||||
|
line-height: 100px; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,788 @@ |
|||||||
|
<template> |
||||||
|
<div class="userAbility"> |
||||||
|
<div class="topTitle container"> |
||||||
|
申请入驻 |
||||||
|
<div class="colra">云员工</div> |
||||||
|
</div> |
||||||
|
<div class="contentBig container"> |
||||||
|
<div class="stepBox"> |
||||||
|
<el-steps :active="active" align-center> |
||||||
|
<el-step title="第一步: 实名认证"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 0" |
||||||
|
src="/assets/ability/1ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/1un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第二步: 工作经历"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 1" |
||||||
|
src="/assets/ability/2ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/2un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第三步: 项目经历"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 2" |
||||||
|
src="/assets/ability/3ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/3un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第四步: 个人简介"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 3" |
||||||
|
src="/assets/ability/4ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/4un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第五步: 资格证书"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 4" |
||||||
|
src="/assets/ability/5ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/5un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第六步: 教育经历"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 5" |
||||||
|
src="/assets/ability/6ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/6un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
<el-step title="第七步: 提交检查"> |
||||||
|
<template slot="icon"> |
||||||
|
<img |
||||||
|
v-if="active == 6" |
||||||
|
src="/assets/ability/7ac.png" |
||||||
|
style="width: 24px; height: 24px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
<img v-else src="/assets/ability/7un.png" style="width: 24px; height: 24px" alt="" /> |
||||||
|
</template> |
||||||
|
</el-step> |
||||||
|
</el-steps> |
||||||
|
<div class="stepBoxBtn"> |
||||||
|
<div class="backBtn" @click="back">上一步</div> |
||||||
|
<div class="nextBtn" v-if="active == 6" @click="saveInfo">提交审核</div> |
||||||
|
<div class="nextBtn" v-else @click="next">下一步</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="contentBox"> |
||||||
|
<div class="active1" v-show="active == 0"> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
实名认证 |
||||||
|
</div> |
||||||
|
<div class="applytip">请放心认证,关键测试宝平台承诺保障你的个人信息安全</div> |
||||||
|
<div class="workIt"> |
||||||
|
<el-form ref="certifform" :model="certifform" :rules="certifRules"> |
||||||
|
<el-form-item prop="name"> |
||||||
|
<el-input |
||||||
|
v-model="certifform.name" |
||||||
|
:disabled="certifform.applyId && certifform.status == 1" |
||||||
|
placeholder="请输入真实姓名" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item prop="idNumber"> |
||||||
|
<el-input |
||||||
|
v-model="certifform.idNumber" |
||||||
|
:disabled="certifform.applyId && certifform.status == 1" |
||||||
|
placeholder="请输入身份证号码" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
<div v-if="active == 0 && !certifform.applyId" class="addWork" @click="applyBegin">开始验证</div> |
||||||
|
<div class="applySuccess" v-if="certifform.applyId && certifform.status == 1"> |
||||||
|
<img src="/assets/ability/applysuccess.png" alt="" /> |
||||||
|
验证通过 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="active2" v-show="active == 1 || active == 6"> |
||||||
|
<!-- 工作经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
工作经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in workList" :key="index"> |
||||||
|
<el-form :rules="workRules" :model="it" label-width="90px"> |
||||||
|
<el-form-item label="公司名称: " prop="name"> |
||||||
|
<el-input v-model="it.name" placeholder="请输入公司名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="在职时间: " prop="startTime"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.startTime" |
||||||
|
type="month" |
||||||
|
placeholder="开始时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
<span style="color: #bfbfbf; margin: 0 15px">-</span> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.endTime" |
||||||
|
type="month" |
||||||
|
placeholder="结束时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="职位名称: " prop="title"> |
||||||
|
<el-input v-model="it.title" placeholder="请输入职位名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="工作内容: " prop="intro"> |
||||||
|
<el-input |
||||||
|
type="textarea" |
||||||
|
v-model="it.intro" |
||||||
|
:rows="5" |
||||||
|
placeholder="请输入工作内容" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div v-if="active == 1" class="delWork" > |
||||||
|
<!-- <div class="saveWork" @click="saveWork(index)">保存</div> --> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
@click="delWork(index)" |
||||||
|
/> |
||||||
|
<span @click="delWork(index)">删除</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div v-if="active == 1" class="addWork" @click="addWork">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
<div class="active3" v-show="active == 2 || active == 6"> |
||||||
|
<!-- 项目经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
项目经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in projectList" :key="index"> |
||||||
|
<el-form :rules="projectRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="项目名称" prop="name"> |
||||||
|
<el-input v-model="it.name" placeholder="请输入项目名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="项目时间" prop="startTime"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.startTime" |
||||||
|
type="month" |
||||||
|
placeholder="开始时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
<span style="color: #bfbfbf; margin: 0 15px">-</span> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.endTime" |
||||||
|
type="month" |
||||||
|
placeholder="结束时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="担任角色" prop="title"> |
||||||
|
<el-input v-model="it.title" placeholder="请输入担任角色"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="应用技术" prop="applyTech"> |
||||||
|
<el-input v-model="it.applyTech" placeholder="请输入应用技术"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="工作内容" prop="intro"> |
||||||
|
<el-input |
||||||
|
:rows="5" |
||||||
|
type="textarea" |
||||||
|
v-model="it.intro" |
||||||
|
placeholder="请输入工作内容" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div v-if="active == 2" class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div v-if="active == 2" class="addWork" @click="addProject">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
<div class="active4" v-show="active == 3 || active == 6"> |
||||||
|
<!-- 个人简介 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
个人简介 |
||||||
|
</div> |
||||||
|
<div class="workIt"> |
||||||
|
<el-form :rules="userRules" :model="userForm" label-width="80px"> |
||||||
|
<el-form-item label="所在城市" prop="namep"> |
||||||
|
<el-input v-model="userForm.area" v-show="false"></el-input> |
||||||
|
<v-distpicker |
||||||
|
@province="onChangeProvince" |
||||||
|
@city="onChangeCity" |
||||||
|
:placeholders="placeholders" |
||||||
|
:province="province" |
||||||
|
:city="city" |
||||||
|
hide-area |
||||||
|
></v-distpicker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="技能方向" prop="name1"> |
||||||
|
<el-input v-model="userForm.name1" placeholder="请输入技能,如:测试工程师"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="个人优势" prop="workCon"> |
||||||
|
<el-input |
||||||
|
type="textarea" |
||||||
|
:rows="5" |
||||||
|
v-model="userForm.workCon" |
||||||
|
placeholder="请输入优势" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="active5" v-show="active == 4 || active == 6"> |
||||||
|
<!-- 资格证书 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
资格证书 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in certificateList" :key="index"> |
||||||
|
<el-form :rules="certificateRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="证书名称" prop="namep"> |
||||||
|
<el-input v-model="it.namep"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<imageUpload |
||||||
|
v-model="it.attachment" |
||||||
|
fileName="publicize" |
||||||
|
:limit="1" |
||||||
|
:ref="'myupload' + index" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div v-if="active == 4" class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div v-if="active == 4" class="addWork" @click="addCertificate">+ 新增证书</div> |
||||||
|
</div> |
||||||
|
<div class="active6" v-show="active == 5 || active == 6"> |
||||||
|
<!-- 教育经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
教育经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in educationList" :key="index"> |
||||||
|
<el-form :rules="educationRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="学校名称" prop="name"> |
||||||
|
<el-input v-model="it.name"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="在校时间" prop="startTime"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.startTime" |
||||||
|
type="month" |
||||||
|
placeholder="选择月" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
- |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.endTime" |
||||||
|
type="month" |
||||||
|
placeholder="选择月" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="学历" prop="education"> |
||||||
|
<el-select v-model="it.education" placeholder="请选择"> |
||||||
|
<el-option label="专科" value="专科"> </el-option> |
||||||
|
<el-option label="本科" value="本科"> </el-option> |
||||||
|
<el-option label="硕士研究生" value="硕士研究生"> </el-option> |
||||||
|
<el-option label="博士研究生" value="博士研究生"> </el-option> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="专业名称" prop="major"> |
||||||
|
<el-input v-model="it.major"></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div v-if="active == 5" class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div v-if="active == 5" class="addWork" @click="addEducation">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
<!-- <div class="active7" v-if="active == 6"> |
||||||
|
</div> --> |
||||||
|
<div class="applyIng">提交成功,等待审核</div> |
||||||
|
<div class="applySuccessAll"> |
||||||
|
<img src="/assets/ability/applysuccess.png" alt="" /> |
||||||
|
审核通过 |
||||||
|
</div> |
||||||
|
<div class="applyFail"> |
||||||
|
<img src="/assets/ability/applyFail.png" alt="" /> |
||||||
|
审核不通过 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import { mapGetters } from 'vuex' |
||||||
|
import imageUpload from '@/page/common/imageUpload' |
||||||
|
import { gettesterId, addtesterApply, updatetesterApply } from '@/api/tester/CompanyApply' |
||||||
|
import { couldInfoAdd } from '@/api/tester/TesterApply' |
||||||
|
|
||||||
|
export default { |
||||||
|
components: { imageUpload }, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
active: 0, |
||||||
|
// 实名认证 |
||||||
|
certifform: {}, |
||||||
|
certifRules: { |
||||||
|
name: [ |
||||||
|
{ required: true, message: '真实姓名不能为空', trigger: 'blur' }, |
||||||
|
{ max: 20, message: '最多输入20个中文', trigger: 'blur' }, |
||||||
|
{ |
||||||
|
pattern: /^(?:[\u4e00-\u9fa5·]{2,16})$/, |
||||||
|
message: '请输入中文', |
||||||
|
trigger: 'blur', |
||||||
|
}, |
||||||
|
], |
||||||
|
idNumber: [ |
||||||
|
{ required: true, message: '身份证号码能为空', trigger: 'blur' }, |
||||||
|
{ |
||||||
|
pattern: |
||||||
|
/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, |
||||||
|
message: '请输入正确的身份证号码', |
||||||
|
trigger: 'blur', |
||||||
|
}, |
||||||
|
{ max: 18, message: '身份证长度为18', trigger: 'blur' }, |
||||||
|
{ min: 18, message: '身份证长度为18', trigger: 'blur' }, |
||||||
|
], |
||||||
|
}, |
||||||
|
// 工作经历 |
||||||
|
workList: [{}], |
||||||
|
workRules: { |
||||||
|
name: [{ required: true, message: '请输入公司名称', trigger: 'blur' }], |
||||||
|
}, |
||||||
|
// 项目经历 |
||||||
|
projectList: [{}], |
||||||
|
projectRules: { |
||||||
|
namep: [{ required: true, message: '请输入公司名称', trigger: 'blur' }], |
||||||
|
}, |
||||||
|
// 个人简历 |
||||||
|
userForm: {}, |
||||||
|
userRules: {}, |
||||||
|
province: '北京市', |
||||||
|
city: '北京市', |
||||||
|
placeholders: { |
||||||
|
province: '--- 省 ----', |
||||||
|
city: '--- 市 ---', |
||||||
|
}, |
||||||
|
// 资格证书 |
||||||
|
materialServerAddr: '', |
||||||
|
certificateList: [{}], |
||||||
|
certificateRules: {}, |
||||||
|
// 教育经历 |
||||||
|
educationList: [{}], |
||||||
|
educationRules: {}, |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() {}, |
||||||
|
watch: { |
||||||
|
active: { |
||||||
|
handler(newval, oldval) { |
||||||
|
if (newval == 0) { |
||||||
|
this.searchApply() |
||||||
|
} |
||||||
|
}, |
||||||
|
immediate: true, |
||||||
|
}, |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
...mapGetters(['userinform', 'token']), |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 查询用户认证信息 |
||||||
|
searchApply() { |
||||||
|
gettesterId(this.userinform.userId).then((res) => { |
||||||
|
if (res.code == 200 && res.data.applyId) { |
||||||
|
this.certifform = res.data |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
applyBegin() { |
||||||
|
this.$refs['certifform'].validate((valid) => { |
||||||
|
if (valid) { |
||||||
|
let data = { |
||||||
|
applyId: this.certifform.applyId, |
||||||
|
userId: this.userinform.userId, |
||||||
|
name: this.certifform.name, |
||||||
|
idNumber: this.certifform.idNumber, |
||||||
|
} |
||||||
|
// return; |
||||||
|
if (this.certifform.applyId) { |
||||||
|
updatetesterApply(data) |
||||||
|
.then((res) => { |
||||||
|
if (res.code == 200) { |
||||||
|
this.$message.success('实名认证成功') |
||||||
|
this.searchApply() |
||||||
|
} else { |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch((error) => {}) |
||||||
|
} else { |
||||||
|
addtesterApply(data) |
||||||
|
.then((res) => { |
||||||
|
if (res.code == 200) { |
||||||
|
this.$message.success('实名认证成功') |
||||||
|
this.searchApply() |
||||||
|
} else { |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch((error) => {}) |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
// 返回上一步 |
||||||
|
back() { |
||||||
|
if (this.active == 0) return |
||||||
|
this.active-- |
||||||
|
}, |
||||||
|
// 下一步 |
||||||
|
next() { |
||||||
|
if (this.active == 0) { |
||||||
|
if (this.certifform.status != 1) { |
||||||
|
return this.$message.warning('请先通过实名认证') |
||||||
|
} |
||||||
|
} |
||||||
|
this.active++ |
||||||
|
}, |
||||||
|
// 工作经历添加 |
||||||
|
addWork() { |
||||||
|
this.workList.push({}) |
||||||
|
}, |
||||||
|
// 工作经历保存 |
||||||
|
saveWork(i) { |
||||||
|
const data = this.workList[i] |
||||||
|
data.type = 1 |
||||||
|
couldInfoAdd(data).then(res => { |
||||||
|
console.log(res); |
||||||
|
}) |
||||||
|
}, |
||||||
|
// 工作经历删除 |
||||||
|
delWork(i) { |
||||||
|
if (this.workList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.workList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 项目经历添加 |
||||||
|
addProject() { |
||||||
|
this.projectList.push({}) |
||||||
|
}, |
||||||
|
// 项目经历删除 |
||||||
|
delProject(i) { |
||||||
|
if (this.projectList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.projectList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 资格证书添加 |
||||||
|
addCertificate() { |
||||||
|
this.certificateList.push({}) |
||||||
|
}, |
||||||
|
// 资格证书删除 |
||||||
|
delCertificate(i) { |
||||||
|
if (this.certificateList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.certificateList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 教育经历添加 |
||||||
|
addEducation() { |
||||||
|
this.educationList.push({}) |
||||||
|
}, |
||||||
|
// 教育经历删除 |
||||||
|
delEducation(i) { |
||||||
|
if (this.educationList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.educationList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 省 |
||||||
|
onChangeProvince(data) { |
||||||
|
if (data.value.indexOf('---') == -1) { |
||||||
|
this.province = data.value |
||||||
|
this.city = '--- 市 ---' |
||||||
|
this.userForm.area = this.province + '-' + this.city |
||||||
|
} else { |
||||||
|
this.province = '' |
||||||
|
} |
||||||
|
}, |
||||||
|
// 市 |
||||||
|
onChangeCity(data) { |
||||||
|
if (data.value.indexOf('---') == -1) { |
||||||
|
this.city = data.value |
||||||
|
this.userForm.area = this.province + '-' + this.city |
||||||
|
} else { |
||||||
|
this.city = '' |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
.userAbility { |
||||||
|
background: #f2f3f7; |
||||||
|
padding-bottom: 40px; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.container { |
||||||
|
width: 1200px; |
||||||
|
margin: auto; |
||||||
|
} |
||||||
|
.topTitle { |
||||||
|
font-weight: bold; |
||||||
|
font-size: 32px; |
||||||
|
color: #1a1a1a; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin: 40px auto; |
||||||
|
} |
||||||
|
.colra { |
||||||
|
background: linear-gradient(-90deg, #fa2c3f 0%, #792bf9 100%); |
||||||
|
-webkit-background-clip: text; |
||||||
|
-webkit-text-fill-color: transparent; |
||||||
|
} |
||||||
|
.stepBoxBtn { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
margin: 30px 0; |
||||||
|
} |
||||||
|
.backBtn { |
||||||
|
width: 130px; |
||||||
|
height: 40px; |
||||||
|
border-radius: 4px; |
||||||
|
border: 1px solid #0066eb; |
||||||
|
margin-right: 16px; |
||||||
|
line-height: 40px; |
||||||
|
text-align: center; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #0066eb; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
.nextBtn { |
||||||
|
width: 130px; |
||||||
|
height: 40px; |
||||||
|
background: #0066eb; |
||||||
|
border-radius: 4px; |
||||||
|
line-height: 40px; |
||||||
|
text-align: center; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #ffffff; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
.contentBig { |
||||||
|
background: #ffffff; |
||||||
|
padding: 40px; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.stepBox { |
||||||
|
margin: 30px auto; |
||||||
|
border-bottom: 2px dashed #ebebeb; |
||||||
|
} |
||||||
|
.stepBox >>> .el-steps { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
.stepBox >>> .el-step__icon { |
||||||
|
width: 60px; |
||||||
|
height: 60px; |
||||||
|
background: #f2f3f7; |
||||||
|
border: unset; |
||||||
|
} |
||||||
|
|
||||||
|
.stepBox >>> .el-step__line { |
||||||
|
top: 30px !important; |
||||||
|
background: #f2f3f7; |
||||||
|
height: 3px; |
||||||
|
} |
||||||
|
/* 已完成 */ |
||||||
|
.stepBox >>> .el-step__head.is-finish { |
||||||
|
color: #f2f3f7; |
||||||
|
border-color: unset; |
||||||
|
} |
||||||
|
.stepBox >>> .el-step__title.is-finish { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #666666; |
||||||
|
} |
||||||
|
.stepBox >>> .el-step__title.is-wait { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #666666; |
||||||
|
} |
||||||
|
.stepBox >>> .el-step__title.is-process { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #0066eb; |
||||||
|
} |
||||||
|
/* 当前 */ |
||||||
|
.stepBox >>> .el-step__head.is-process .el-step__icon { |
||||||
|
background: #0066eb !important; |
||||||
|
} |
||||||
|
.workIt >>> .distpicker-address-wrapper label select { |
||||||
|
width: 247px !important; |
||||||
|
} |
||||||
|
.addWork { |
||||||
|
width: 150px; |
||||||
|
height: 40px; |
||||||
|
background: linear-gradient(90deg, #0066eb, #2783fc); |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #ffffff; |
||||||
|
line-height: 40px; |
||||||
|
text-align: center; |
||||||
|
margin-bottom: 30px; |
||||||
|
} |
||||||
|
.delWork { |
||||||
|
position: absolute; |
||||||
|
top: 20px; |
||||||
|
right: 20px; |
||||||
|
margin-left: 20px; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
cursor: pointer; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #fd4747; |
||||||
|
} |
||||||
|
.saveWork { |
||||||
|
margin-right: 30px; |
||||||
|
cursor: pointer; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #23ca7d; |
||||||
|
} |
||||||
|
.workIt { |
||||||
|
border-radius: 4px; |
||||||
|
border: 1px solid #f2f2f2; |
||||||
|
margin-bottom: 20px; |
||||||
|
padding: 26px; |
||||||
|
box-sizing: border-box; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
.workIt >>> .el-input { |
||||||
|
width: 500px; |
||||||
|
} |
||||||
|
.workIt >>> .el-date-editor { |
||||||
|
width: 231px; |
||||||
|
} |
||||||
|
.workIt >>> .el-textarea__inner { |
||||||
|
width: 500px; |
||||||
|
} |
||||||
|
.activeTitle { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-weight: bold; |
||||||
|
font-size: 20px; |
||||||
|
color: #000000; |
||||||
|
margin-bottom: 30px; |
||||||
|
} |
||||||
|
.activeTitLine { |
||||||
|
width: 5px; |
||||||
|
height: 17px; |
||||||
|
background: #0066eb; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
.applytip { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #808080; |
||||||
|
margin-bottom: 30px; |
||||||
|
margin-top: -10px; |
||||||
|
} |
||||||
|
.applySuccess { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 18px; |
||||||
|
color: #23ca7d; |
||||||
|
} |
||||||
|
.applySuccess img { |
||||||
|
width: 27px; |
||||||
|
height: 27px; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
.applyIng { |
||||||
|
width: 275px; |
||||||
|
height: 50px; |
||||||
|
background: #fbefe1; |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 18px; |
||||||
|
color: #fa912a; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
margin: 40px auto; |
||||||
|
} |
||||||
|
.applySuccessAll { |
||||||
|
width: 275px; |
||||||
|
height: 50px; |
||||||
|
background: #e0f9ed; |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 18px; |
||||||
|
color: #23ca7d; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
margin: 40px auto; |
||||||
|
} |
||||||
|
.applyFail { |
||||||
|
width: 275px; |
||||||
|
height: 50px; |
||||||
|
background: #fceded; |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 18px; |
||||||
|
color: #fc4444; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
margin: 40px auto; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,242 @@ |
|||||||
|
<template> |
||||||
|
<div class="userAbility"> |
||||||
|
<img class="banner" src="/assets/ability/applybanner.png" /> |
||||||
|
<div class="searchBox container"> |
||||||
|
<el-input v-model="searchVal" placeholder="请输入关键字,如:测试工程师"></el-input> |
||||||
|
<div class="searchbtn">搜索</div> |
||||||
|
</div> |
||||||
|
<div class="contentBox container"> |
||||||
|
<div class="jianliboxitem" v-for="it in peopleList" :key="it.url"> |
||||||
|
<div class="jlboxtop"> |
||||||
|
<img class="jlboxtopimg" :src="it.url" alt="" /> |
||||||
|
<div class="jlboxtoptit">{{ it.name }}</div> |
||||||
|
<div class="jlboxtopzc">{{ it.zhicheng }}</div> |
||||||
|
<div class="jlboxtopcon">{{ it.zhicheng }}</div> |
||||||
|
</div> |
||||||
|
<div class="jlboxbottom"> |
||||||
|
<div class="jlboxbottoml jlboxbottomlbor"> |
||||||
|
<img class="jlboxbottomlimg" src="/assets/ability/daxue.png" alt="" /> |
||||||
|
{{ it.school }} |
||||||
|
</div> |
||||||
|
<div class="jlboxbottoml"> |
||||||
|
<img class="jlboxbottomlimg" src="/assets/ability/zhuanye.png" alt="" /> |
||||||
|
{{ it.maj }} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="addressBox"> |
||||||
|
<img src="/assets/ability/posion.png" alt=""> |
||||||
|
西安</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="pavan container"> |
||||||
|
<el-pagination |
||||||
|
background |
||||||
|
@size-change="handleSizeChange" |
||||||
|
@current-change="handleCurrentChange" |
||||||
|
:current-page="queryParams.pageNum" |
||||||
|
:page-sizes="[10, 20, 30, 50]" |
||||||
|
:page-size="queryParams.pageSize" |
||||||
|
layout="total, sizes, prev, pager, next, jumper" |
||||||
|
:total="total" |
||||||
|
> |
||||||
|
</el-pagination> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import { mapGetters } from 'vuex' |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
searchVal: '', |
||||||
|
peopleList: [ |
||||||
|
{ |
||||||
|
url: '/assets/ability/people1.png', |
||||||
|
name: '杨**', |
||||||
|
zhicheng: 'JAVA后端研发工程师', |
||||||
|
school: '河南科技大学', |
||||||
|
maj: '软件工程专业', |
||||||
|
}, |
||||||
|
{ |
||||||
|
url: '/assets/ability/people2.png', |
||||||
|
name: '赵**', |
||||||
|
zhicheng: 'Web全栈开发工程师', |
||||||
|
school: '西安科技大学', |
||||||
|
maj: '软件工程专业', |
||||||
|
}, |
||||||
|
{ |
||||||
|
url: '/assets/ability/people3.png', |
||||||
|
name: '杨**', |
||||||
|
zhicheng: 'JAVA研发工程师', |
||||||
|
school: '阜阳师范大学', |
||||||
|
maj: '软件工程专业', |
||||||
|
}, |
||||||
|
{ |
||||||
|
url: '/assets/ability/people4.png', |
||||||
|
name: '王**', |
||||||
|
zhicheng: '嵌入式工程师', |
||||||
|
school: '西安科技大学', |
||||||
|
maj: '软件工程专业', |
||||||
|
}, |
||||||
|
], |
||||||
|
total: 0, |
||||||
|
queryParams: { |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}, |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() {}, |
||||||
|
|
||||||
|
computed: { |
||||||
|
...mapGetters(['userinform', 'token']), |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
handleSizeChange(val) { |
||||||
|
console.log(`每页 ${val} 条`) |
||||||
|
}, |
||||||
|
handleCurrentChange(val) { |
||||||
|
console.log(`当前页: ${val}`) |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
.container { |
||||||
|
width: 1200px; |
||||||
|
margin: auto; |
||||||
|
} |
||||||
|
.searchBox { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
margin-top: -28px; |
||||||
|
margin-bottom: 50px; |
||||||
|
} |
||||||
|
.pavan { |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
margin-bottom: 60px; |
||||||
|
margin-top: 35px; |
||||||
|
} |
||||||
|
.searchbtn { |
||||||
|
width: 100px; |
||||||
|
height: 45px; |
||||||
|
background: #0066eb; |
||||||
|
border-radius: 0px 4px 4px 0px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 16px; |
||||||
|
color: #ffffff; |
||||||
|
line-height: 45px; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.el-input { |
||||||
|
width: 648px; |
||||||
|
height: 45px; |
||||||
|
} |
||||||
|
.searchBox >>> .el-input__inner { |
||||||
|
height: 45px; |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 4px 0px 0px 4px; |
||||||
|
border: 1px solid #e6e7eb; |
||||||
|
} |
||||||
|
.contentBox { |
||||||
|
display: grid; |
||||||
|
grid-template-columns: 280px 280px 280px 280px; |
||||||
|
justify-content: space-between; |
||||||
|
} |
||||||
|
.jianliboxitem { |
||||||
|
width: 280px; |
||||||
|
height: 300px; |
||||||
|
background: #ffffff; |
||||||
|
box-shadow: 0px 4px 34px 6px rgba(14, 97, 205, 0.1); |
||||||
|
border-radius: 6px; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
cursor: pointer; |
||||||
|
transition: all 0.1s linear; |
||||||
|
margin-bottom: 25px; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
.addressBox { |
||||||
|
position: absolute; |
||||||
|
top: 20px; |
||||||
|
right: 20px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 13px; |
||||||
|
color: #999999; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
.addressBox img { |
||||||
|
width: 13px; |
||||||
|
height: 13px; |
||||||
|
margin-right: 5px; |
||||||
|
} |
||||||
|
.jianliboxitem:hover { |
||||||
|
transform: translateY(-15px); |
||||||
|
} |
||||||
|
.jlboxtop { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
.jlboxtopimg { |
||||||
|
width: 88px; |
||||||
|
height: 88px; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.jlboxtoptit { |
||||||
|
font-weight: bold; |
||||||
|
font-size: 20px; |
||||||
|
color: #000000; |
||||||
|
margin: 15px 0; |
||||||
|
} |
||||||
|
.jlboxtopzc { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 16px; |
||||||
|
color: #333333; |
||||||
|
} |
||||||
|
.jlboxtopcon { |
||||||
|
margin-top: 15px; |
||||||
|
width: 85%; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #808080; |
||||||
|
display: -webkit-box; |
||||||
|
overflow: hidden; |
||||||
|
-webkit-box-orient: vertical; |
||||||
|
line-clamp: 2; |
||||||
|
-webkit-line-clamp: 2; |
||||||
|
} |
||||||
|
.jlboxbottom { |
||||||
|
width: 100%; |
||||||
|
height: 47px; |
||||||
|
border-top: 1px solid #ebebeb; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
.jlboxbottoml { |
||||||
|
height: 16px; |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #737373; |
||||||
|
} |
||||||
|
.jlboxbottomlbor { |
||||||
|
box-sizing: border-box; |
||||||
|
border-right: 1px solid #e6e6e6; |
||||||
|
} |
||||||
|
.jlboxbottomlimg { |
||||||
|
width: 15px; |
||||||
|
height: 15px; |
||||||
|
margin-right: 5px; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,568 @@ |
|||||||
|
<template> |
||||||
|
<div class="allbox"> |
||||||
|
<div class="userAbility"> |
||||||
|
<div class="toptttt">云员工个人简历</div> |
||||||
|
<div class="contentBig"> |
||||||
|
<div class="contentBox"> |
||||||
|
<div class="active4"> |
||||||
|
<!-- 个人简介 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
个人简介 |
||||||
|
</div> |
||||||
|
<div class="workIt"> |
||||||
|
<el-form :rules="userRules" :model="userForm" label-width="80px"> |
||||||
|
<div class="flexbox"> |
||||||
|
<el-form-item label="姓名: "> |
||||||
|
<span>张三(已实名)</span> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="性别: " style="margin-left: 40px"> |
||||||
|
<span>男</span> |
||||||
|
</el-form-item> |
||||||
|
</div> |
||||||
|
<el-form-item label="所在城市: " prop="namep"> |
||||||
|
<el-input v-model="userForm.area" v-show="false"></el-input> |
||||||
|
<v-distpicker |
||||||
|
@province="onChangeProvince" |
||||||
|
@city="onChangeCity" |
||||||
|
:placeholders="placeholders" |
||||||
|
:province="province" |
||||||
|
:city="city" |
||||||
|
hide-area |
||||||
|
></v-distpicker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="技能方向: " prop="name1"> |
||||||
|
<el-input |
||||||
|
v-model="userForm.name1" |
||||||
|
placeholder="请输入技能,如:测试工程师" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="个人优势: " prop="workCon"> |
||||||
|
<el-input |
||||||
|
type="textarea" |
||||||
|
:rows="5" |
||||||
|
v-model="userForm.workCon" |
||||||
|
placeholder="请输入优势" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="active2"> |
||||||
|
<!-- 工作经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
工作经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in workList" :key="index"> |
||||||
|
<el-form :rules="workRules" :model="it" label-width="90px"> |
||||||
|
<el-form-item label="公司名称: " prop="name"> |
||||||
|
<el-input v-model="it.name" placeholder="请输入公司名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="在职时间: " prop="time"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time" |
||||||
|
type="month" |
||||||
|
placeholder="开始时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
<span style="color: #bfbfbf; margin: 0 15px">-</span> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time1" |
||||||
|
type="month" |
||||||
|
placeholder="结束时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="职位名称: " prop="name1"> |
||||||
|
<el-input v-model="it.name1" placeholder="请输入职位名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="工作内容: " prop="workCon"> |
||||||
|
<el-input |
||||||
|
type="textarea" |
||||||
|
v-model="it.workCon" |
||||||
|
:rows="5" |
||||||
|
placeholder="请输入工作内容" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="addWork" @click="addWork">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
<div class="active3"> |
||||||
|
<!-- 项目经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
项目经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in projectList" :key="index"> |
||||||
|
<el-form :rules="projectRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="项目名称" prop="namep"> |
||||||
|
<el-input v-model="it.namep" placeholder="请输入项目名称"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="项目时间" prop="time"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time" |
||||||
|
type="month" |
||||||
|
placeholder="开始时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
<span style="color: #bfbfbf; margin: 0 15px">-</span> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time1" |
||||||
|
type="month" |
||||||
|
placeholder="结束时间" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="担任角色" prop="name1"> |
||||||
|
<el-input v-model="it.name1" placeholder="请输入担任角色"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="应用技术" prop="name2"> |
||||||
|
<el-input v-model="it.name2" placeholder="请输入应用技术"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="工作内容" prop="workCon"> |
||||||
|
<el-input |
||||||
|
:rows="5" |
||||||
|
type="textarea" |
||||||
|
v-model="it.workCon" |
||||||
|
placeholder="请输入工作内容" |
||||||
|
></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="addWork" @click="addProject">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="active5"> |
||||||
|
<!-- 资格证书 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
资格证书 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in certificateList" :key="index"> |
||||||
|
<el-form :rules="certificateRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="证书名称" prop="namep"> |
||||||
|
<el-input v-model="it.namep"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<imageUpload |
||||||
|
v-model="it.attachment" |
||||||
|
fileName="publicize" |
||||||
|
:limit="1" |
||||||
|
:ref="'myupload' + index" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="addWork" @click="addCertificate">+ 新增证书</div> |
||||||
|
</div> |
||||||
|
<div class="active6"> |
||||||
|
<!-- 教育经历 --> |
||||||
|
<div class="activeTitle"> |
||||||
|
<div class="activeTitLine"></div> |
||||||
|
教育经历 |
||||||
|
</div> |
||||||
|
<div class="workIt" v-for="(it, index) in educationList" :key="index"> |
||||||
|
<el-form :rules="educationRules" :model="it" label-width="80px"> |
||||||
|
<el-form-item label="学校名称" prop="name"> |
||||||
|
<el-input v-model="it.name"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="在校时间" prop="time"> |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time" |
||||||
|
type="month" |
||||||
|
placeholder="选择月" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
- |
||||||
|
<el-date-picker |
||||||
|
value-format="yyyy-MM" |
||||||
|
v-model="it.time1" |
||||||
|
type="month" |
||||||
|
placeholder="选择月" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="学历" prop="name1"> |
||||||
|
<el-select v-model="it.value" placeholder="请选择"> |
||||||
|
<el-option label="专科" value="专科"> </el-option> |
||||||
|
<el-option label="本科" value="本科"> </el-option> |
||||||
|
<el-option label="硕士研究生" value="硕士研究生"> </el-option> |
||||||
|
<el-option label="博士研究生" value="博士研究生"> </el-option> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="专业名称" prop="workCon"> |
||||||
|
<el-input v-model="it.workCon"></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<div class="delWork" @click="delWork(index)"> |
||||||
|
<img |
||||||
|
src="/assets/ability/delicon.png" |
||||||
|
style="width: 14px; height: 16px; margin-right: 5px" |
||||||
|
alt="" |
||||||
|
/> |
||||||
|
删除 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="addWork" @click="addEducation">+ 新增经历</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="bottomBtn">保存并发布</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import { mapGetters } from 'vuex' |
||||||
|
import imageUpload from '@/page/common/imageUpload' |
||||||
|
import { gettesterId, addtesterApply, updatetesterApply } from '@/api/tester/CompanyApply' |
||||||
|
export default { |
||||||
|
components: { imageUpload }, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
active: 0, |
||||||
|
// 实名认证 |
||||||
|
certifform: {}, |
||||||
|
certifRules: { |
||||||
|
name: [ |
||||||
|
{ required: true, message: '真实姓名不能为空', trigger: 'blur' }, |
||||||
|
{ max: 20, message: '最多输入20个中文', trigger: 'blur' }, |
||||||
|
{ |
||||||
|
pattern: /^(?:[\u4e00-\u9fa5·]{2,16})$/, |
||||||
|
message: '请输入中文', |
||||||
|
trigger: 'blur', |
||||||
|
}, |
||||||
|
], |
||||||
|
idNumber: [ |
||||||
|
{ required: true, message: '身份证号码能为空', trigger: 'blur' }, |
||||||
|
{ |
||||||
|
pattern: |
||||||
|
/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, |
||||||
|
message: '请输入正确的身份证号码', |
||||||
|
trigger: 'blur', |
||||||
|
}, |
||||||
|
{ max: 18, message: '身份证长度为18', trigger: 'blur' }, |
||||||
|
{ min: 18, message: '身份证长度为18', trigger: 'blur' }, |
||||||
|
], |
||||||
|
}, |
||||||
|
// 工作经历 |
||||||
|
workList: [{}], |
||||||
|
workRules: { |
||||||
|
name: [{ required: true, message: '请输入公司名称', trigger: 'blur' }], |
||||||
|
}, |
||||||
|
// 项目经历 |
||||||
|
projectList: [{}], |
||||||
|
projectRules: { |
||||||
|
namep: [{ required: true, message: '请输入公司名称', trigger: 'blur' }], |
||||||
|
}, |
||||||
|
// 个人简历 |
||||||
|
userForm: {}, |
||||||
|
userRules: {}, |
||||||
|
province: '北京市', |
||||||
|
city: '北京市', |
||||||
|
placeholders: { |
||||||
|
province: '--- 省 ----', |
||||||
|
city: '--- 市 ---', |
||||||
|
}, |
||||||
|
// 资格证书 |
||||||
|
materialServerAddr: '', |
||||||
|
certificateList: [{}], |
||||||
|
certificateRules: {}, |
||||||
|
// 教育经历 |
||||||
|
educationList: [{}], |
||||||
|
educationRules: {}, |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() {}, |
||||||
|
watch: { |
||||||
|
active: { |
||||||
|
handler(newval, oldval) { |
||||||
|
if (newval == 0) { |
||||||
|
this.searchApply() |
||||||
|
} |
||||||
|
}, |
||||||
|
immediate: true, |
||||||
|
}, |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
...mapGetters(['userinform', 'token']), |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 查询用户认证信息 |
||||||
|
searchApply() { |
||||||
|
gettesterId(this.userinform.userId).then((res) => { |
||||||
|
if (res.code == 200 && res.data.applyId) { |
||||||
|
this.certifform = res.data |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
applyBegin() { |
||||||
|
this.$refs['certifform'].validate((valid) => { |
||||||
|
if (valid) { |
||||||
|
let data = { |
||||||
|
applyId: this.certifform.applyId, |
||||||
|
userId: this.userinform.userId, |
||||||
|
name: this.certifform.name, |
||||||
|
idNumber: this.certifform.idNumber, |
||||||
|
} |
||||||
|
// return; |
||||||
|
if (this.certifform.applyId) { |
||||||
|
updatetesterApply(data) |
||||||
|
.then((res) => { |
||||||
|
if (res.code == 200) { |
||||||
|
this.$message.success('实名认证成功') |
||||||
|
this.searchApply() |
||||||
|
} else { |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch((error) => {}) |
||||||
|
} else { |
||||||
|
addtesterApply(data) |
||||||
|
.then((res) => { |
||||||
|
if (res.code == 200) { |
||||||
|
this.$message.success('实名认证成功') |
||||||
|
this.searchApply() |
||||||
|
} else { |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch((error) => {}) |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
// 返回上一步 |
||||||
|
back() { |
||||||
|
if (this.active == 0) return |
||||||
|
this.active-- |
||||||
|
}, |
||||||
|
// 下一步 |
||||||
|
next() { |
||||||
|
if (this.active == 0) { |
||||||
|
if (this.certifform.status != 1) { |
||||||
|
return this.$message.warning('请先通过实名认证') |
||||||
|
} |
||||||
|
} |
||||||
|
this.active++ |
||||||
|
}, |
||||||
|
// 工作经历添加 |
||||||
|
addWork() { |
||||||
|
this.workList.push({}) |
||||||
|
}, |
||||||
|
// 工作经历删除 |
||||||
|
delWork(i) { |
||||||
|
if (this.workList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.workList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 项目经历添加 |
||||||
|
addProject() { |
||||||
|
this.projectList.push({}) |
||||||
|
}, |
||||||
|
// 项目经历删除 |
||||||
|
delProject(i) { |
||||||
|
if (this.projectList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.projectList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 资格证书添加 |
||||||
|
addCertificate() { |
||||||
|
this.certificateList.push({}) |
||||||
|
}, |
||||||
|
// 资格证书删除 |
||||||
|
delCertificate(i) { |
||||||
|
if (this.certificateList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.certificateList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 教育经历添加 |
||||||
|
addEducation() { |
||||||
|
this.educationList.push({}) |
||||||
|
}, |
||||||
|
// 教育经历删除 |
||||||
|
delEducation(i) { |
||||||
|
if (this.educationList.length == 1) return this.$message.warning('最少有一项') |
||||||
|
this.educationList.splice(i, 1) |
||||||
|
}, |
||||||
|
// 城市 |
||||||
|
onChangeProvince(data) { |
||||||
|
if (data.value.indexOf('---') == -1) { |
||||||
|
this.province = data.value |
||||||
|
this.city = '--- 市 ---' |
||||||
|
this.userForm.area = this.province + '-' + this.city |
||||||
|
} else { |
||||||
|
this.province = '' |
||||||
|
} |
||||||
|
}, |
||||||
|
onChangeCity(data) { |
||||||
|
if (data.value.indexOf('---') == -1) { |
||||||
|
this.city = data.value |
||||||
|
this.userForm.area = this.province + '-' + this.city |
||||||
|
} else { |
||||||
|
this.city = '' |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
.userAbility { |
||||||
|
overflow: hidden; |
||||||
|
background: #ffffff; |
||||||
|
box-shadow: 0px 1px 12px 0px rgba(17, 19, 21, 0.06); |
||||||
|
} |
||||||
|
.contentBig { |
||||||
|
background: #ffffff; |
||||||
|
padding: 40px 123px; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.toptttt { |
||||||
|
height: 78px; |
||||||
|
background: #f0f4fa; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-weight: bold; |
||||||
|
font-size: 25px; |
||||||
|
color: #000000; |
||||||
|
} |
||||||
|
|
||||||
|
.workIt >>> .distpicker-address-wrapper label select { |
||||||
|
width: 347px !important; |
||||||
|
font-size: 14px; |
||||||
|
} |
||||||
|
.addWork { |
||||||
|
width: 150px; |
||||||
|
height: 40px; |
||||||
|
background: linear-gradient(90deg, #0066eb, #2783fc); |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #ffffff; |
||||||
|
line-height: 40px; |
||||||
|
text-align: center; |
||||||
|
margin-bottom: 30px; |
||||||
|
} |
||||||
|
.delWork { |
||||||
|
position: absolute; |
||||||
|
top: 20px; |
||||||
|
right: 20px; |
||||||
|
margin-left: 20px; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
cursor: pointer; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #fd4747; |
||||||
|
} |
||||||
|
.workIt { |
||||||
|
border-radius: 4px; |
||||||
|
border: 1px solid #f2f2f2; |
||||||
|
margin-bottom: 20px; |
||||||
|
padding: 26px; |
||||||
|
box-sizing: border-box; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
.workIt >>> .el-input { |
||||||
|
width: 700px; |
||||||
|
} |
||||||
|
.workIt >>> .el-date-editor { |
||||||
|
width: 330px; |
||||||
|
} |
||||||
|
.workIt >>> .el-textarea__inner { |
||||||
|
width: 700px; |
||||||
|
} |
||||||
|
.activeTitle { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-weight: bold; |
||||||
|
font-size: 20px; |
||||||
|
color: #000000; |
||||||
|
margin-bottom: 30px; |
||||||
|
} |
||||||
|
.activeTitLine { |
||||||
|
width: 5px; |
||||||
|
height: 17px; |
||||||
|
background: #0066eb; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
.applytip { |
||||||
|
font-weight: 500; |
||||||
|
font-size: 14px; |
||||||
|
color: #808080; |
||||||
|
margin-bottom: 30px; |
||||||
|
margin-top: -10px; |
||||||
|
} |
||||||
|
.applySuccess { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 18px; |
||||||
|
color: #23ca7d; |
||||||
|
} |
||||||
|
.applySuccess img { |
||||||
|
width: 27px; |
||||||
|
height: 27px; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
.userAbility >>> .el-upload--picture-card { |
||||||
|
width: 700px; |
||||||
|
height: 190px; |
||||||
|
line-height: 190px; |
||||||
|
} |
||||||
|
.userAbility >>> .el-upload-list__item { |
||||||
|
width: 700px !important; |
||||||
|
height: 190px !important; |
||||||
|
line-height: 190px !important; |
||||||
|
} |
||||||
|
.userAbility >>> .el-upload-list__item-status-label { |
||||||
|
display: flex !important; |
||||||
|
align-items: center !important; |
||||||
|
justify-content: center !important; |
||||||
|
} |
||||||
|
.flexbox { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
.bottomBtn { |
||||||
|
overflow: hidden; |
||||||
|
width: 250px; |
||||||
|
height: 46px; |
||||||
|
background: linear-gradient(90deg, #0066eb, #2783fc); |
||||||
|
box-shadow: 0px 1px 8px 0px rgba(17, 60, 114, 0.4); |
||||||
|
border-radius: 4px; |
||||||
|
font-weight: 500; |
||||||
|
font-size: 15px; |
||||||
|
color: #ffffff; |
||||||
|
line-height: 46px; |
||||||
|
text-align: center; |
||||||
|
margin: 40px auto; |
||||||
|
} |
||||||
|
</style> |