特易招,招聘小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

223 lines
4.2 KiB

<template>
<view class="page">
<navbar
title="需提交的材料"
leftClick
@leftClick="$utils.navigateBack"
/>
<view class="form">
<view class="form-item"
:key="item.id"
v-for="(item, index) in formList">
<view class="label">
{{ item.title }}<text>{{ item.descrip }}</text>
</view>
<view class="input"
v-if="item.type == 0">
<input type="text"
:placeholder="'请输入' + item.title"
v-model="form[item.keyName]"/>
</view>
<view class="input"
v-else>
<uv-upload
:fileList="fileMapList[item.keyName]"
:name="item.keyName"
:maxCount="1"
width="120rpx"
height="120rpx"
multiple
@afterRead="afterRead"
@delete="deleteImage">
<view class="upload">
<image :src="item.image"
mode="aspectFit"
style="width: 120rpx;height: 120rpx;" />
</view>
</uv-upload>
</view>
<view class="icon"
v-if="item.type == 1">
<uv-icon
name="arrow-right"
size="30rpx"
></uv-icon>
</view>
</view>
</view>
<view class="uni-color-btn"
v-if="formList.length > 0"
@click="addMaterial()">
提交
</view>
<view class="uni-uncolor-btn"
@click="$refs.customerServicePopup.open()">
联系客服
</view>
<view class="tips"
style="text-align: center;padding: 20rpx 0;
width: 750rpx;">
如有疑问请联系客服
</view>
<customerServicePopup ref="customerServicePopup"/>
</view>
</template>
<script>
import customerServicePopup from '@/components/config/customerServicePopup.vue'
export default {
components : {
customerServicePopup
},
data() {
return {
form : {
},
fileMapList : {},
formList : [],
id : 0,
verification : {},
}
},
onLoad({id}) {
this.id = id
this.queryCertById()
},
methods: {
deleteImage(e){
this.fileMapList[e.name].splice(e.index, 1)
},
afterRead(e){
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.fileMapList[e.name].push({
url
})
})
})
},
addMaterial(){
this.formList.forEach(n => {
if(n.type == 1){
this.form[n.keyName] = this.fileMapList[n.keyName]
.map((item) => item.url).join(",")
}
})
if(this.$utils.verificationAll(this.form, this.verification)) {
return
}
this.$api('addMaterial',this.form, res =>{
if(res.code == 200){
uni.showToast({
title:'提交成功!等待审核',
icon: 'none'
})
setTimeout(uni.navigateBack, 1000, -1)
}
})
},
queryCertById(){
this.$api('queryCertById', {
cerId : this.id,
}, res => {
if(res.code == 200){
this.formList = res.result.employMaterialList
res.result.employMaterialList.forEach(n => {
if(n.type == 0){
this.verification[n.keyName] = '请输入' + n.title
this.form[n.keyName] = ''
}else{
this.verification[n.keyName] = '请上传' + n.title
// this.fileMapList[n.keyName] = []
this.$set(this.fileMapList, n.keyName, [])
}
})
}
})
},
}
}
</script>
<style scoped lang="scss">
.page{
min-height: 100vh;
.required::before{
content: '*';
color: #f00;
}
.form-item{
padding: 30rpx 0;
display: flex;
align-items: center;
border-bottom: 1rpx solid #00000009;
font-size: 28rpx;
.label{
font-weight: 600;
margin-right: 50rpx;
text{
font-size: 24rpx;
font-weight: 500;
}
}
.input{
margin-left: auto;
flex-shrink: 0;
image{
}
input{
text-align: right;
}
}
.icon{
margin-left: 10rpx;
}
}
.tips{
font-size: 26rpx;
color: #777;
padding-bottom: 20rpx;
}
.form {
padding: 0 30rpx;
background-color: #fff;
margin: 20rpx;
border-radius: 20rpx;
.upload{
display: flex;
justify-content: center;
align-items: center;
// width: 690rpx;
width: 120rpx;
height: 120rpx;
border-radius: 50%;
overflow: hidden;
background-color: #f3f3f3;
border-radius: 10rpx;
// .btn-add{
// margin: auto;
// padding: 10rpx 20rpx;
// background-color: $uni-color;
// color: #fff;
// border-radius: 10rpx;
// }
}
}
}
</style>