327 lines
8.9 KiB
Vue
327 lines
8.9 KiB
Vue
<template>
|
||
<view class="main">
|
||
<view class="flex flex-between cell" @click="uploadAvatar()">
|
||
<text class="name">本人头像</text>
|
||
<view class="flex flex-center img" v-if="!realHeadPortrait">
|
||
<text class="iconfont icon"></text>
|
||
</view>
|
||
<image :src="realHeadPortrait" mode="" class="img" v-else></image>
|
||
</view>
|
||
<view class="list">
|
||
<view class="list-item">
|
||
<text class="label">真实姓名:</text>
|
||
<input type="text" :maxlength="20" placeholder="请输入真实姓名" v-model="infor.realName" class="input"/>
|
||
</view>
|
||
<view class="list-item">
|
||
<text class="label">身份证号:</text>
|
||
<input type="text" :maxlength="18" class="input flex-grow" v-model="infor.idNumber" placeholder="请输入身份证号" />
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('idNumberJustImg')">
|
||
<text><text class="color-red">*</text>身份证正面:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!idNumberJustImg"></image>
|
||
<image :src="idNumberJustImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('idNumberBackImg')">
|
||
<text><text class="color-red">*</text>身份证反面:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!idNumberBackImg"></image>
|
||
<image :src="idNumberBackImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('healthCertificateImg')">
|
||
<text>健康证:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!healthCertificateImg"></image>
|
||
<image :src="healthCertificateImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('othreOneImg')">
|
||
<text>其他证照:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!othreOneImg"></image>
|
||
<image :src="othreOneImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('othreTwoImg')">
|
||
<text>其他证照:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!othreTwoImg"></image>
|
||
<image :src="othreTwoImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="grid flex flex-between" @click="uplodingImg('othreThreeImg')">
|
||
<text>其他证照:</text>
|
||
<view class="flex flex-center box">
|
||
<image :src="licenseImg" mode="" class="img" v-if="!othreThreeImg"></image>
|
||
<image :src="othreThreeImg" mode="" class="image" v-else></image>
|
||
</view>
|
||
</view>
|
||
<view class="flex flex-center" style="margin-top: 50rpx;">
|
||
<text class="font26 color-b9">
|
||
提交申请即表示同意中亿华商的<text class="color-purple" @click="jumpTo()">《配送员入驻条款》</text>
|
||
</text>
|
||
</view>
|
||
<!-- <view style="height: 80rpx;"></view> -->
|
||
<view class="flex flex-center fixed">
|
||
<button type="primary" class="bg-base btn" :loading="loading" :disabled="loading" @click="commit()">提交申请</button>
|
||
</view>
|
||
<avatar @upload="myUpload" ref="avatar"></avatar>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import upload from "@/common/http/upload.js";
|
||
import url from '@/common/http/url.js';
|
||
import avatar from "@/components/yq-avatar/yq-avatar.vue";
|
||
export default{
|
||
components:{ avatar },
|
||
data(){
|
||
return {
|
||
licenseImg: this.$staticUrl + 'merchants/license.png',
|
||
loading: false,
|
||
infor: {},
|
||
isEdit: false,
|
||
callbackList: [],
|
||
realHeadPortrait: "",
|
||
idNumberJustImg: "",
|
||
idNumberBackImg: "",
|
||
healthCertificateImg: "",
|
||
othreOneImg: "",
|
||
othreTwoImg: "",
|
||
othreThreeImg: "",
|
||
noticeId: 0
|
||
}
|
||
},
|
||
onLoad(opt){
|
||
let examineData = uni.getStorageSync("examineData")
|
||
uni.removeStorageSync("examineData")
|
||
if (examineData) {
|
||
if (examineData.status === 3) this.isEdit = true
|
||
this.infor = examineData
|
||
delete this.infor.updateTime
|
||
delete this.infor.createTime
|
||
this.realHeadPortrait = examineData.realHeadPortrait
|
||
this.idNumberJustImg = examineData.idNumberJustImg
|
||
this.idNumberBackImg = examineData.idNumberBackImg
|
||
this.healthCertificateImg = examineData.healthCertificateImg
|
||
this.othreOneImg = examineData.othreOneImg
|
||
this.othreTwoImg = examineData.othreTwoImg
|
||
this.othreThreeImg = examineData.othreThreeImg
|
||
}
|
||
this.$http("GET", url.common.privacyAgreement).then(res =>{
|
||
if (res.data && res.data.length > 0) {
|
||
res.data.forEach(v => {
|
||
if (v.keyCode === "platform_privacy_agreement_distribution"){
|
||
this.noticeId = v.keyValue
|
||
return
|
||
}
|
||
})
|
||
}
|
||
})
|
||
},
|
||
methods:{
|
||
commit(){
|
||
let _this = this
|
||
if (this.regForm()) return this.$msg(this.regForm())
|
||
this.loading = true
|
||
let num = 0
|
||
uni.showLoading({
|
||
mask: true
|
||
});
|
||
this.callbackList.forEach(v =>{
|
||
upload.getOssSignature(v.path, 11, 1).then(data=>{
|
||
upload.uploadImageOss(data, false).then(list=>{
|
||
num++
|
||
_this.infor[v.name] = JSON.stringify({
|
||
resourceTemporaryUUID: list[0].resourceTemporaryUUID,
|
||
ossWidth: v.ossWidth,
|
||
ossHeight: v.ossHeight,
|
||
size: v.size || ""
|
||
})
|
||
if (num === _this.callbackList.length) {
|
||
let path = this.isEdit ? url.distributor.updateApply : url.distributor.submitApply
|
||
_this.$http('POST', path, _this.infor).then(res =>{
|
||
uni.hideLoading();
|
||
uni.showModal({
|
||
content: '申请提交成功,请耐心等待。',
|
||
showCancel: false,
|
||
success: e => {
|
||
if (this.isEdit) {
|
||
_this.$navigateBack(2)
|
||
} else {
|
||
_this.$navigateBack()
|
||
}
|
||
}
|
||
});
|
||
}).catch(()=>{
|
||
_this.loading = false
|
||
})
|
||
}
|
||
})
|
||
})
|
||
})
|
||
},
|
||
regForm(){
|
||
if (!this.realHeadPortrait) {
|
||
return "请上传本人真实头像"
|
||
} else if (!this.infor.realName) {
|
||
return "请输入真实姓名"
|
||
} else if (!this.infor.idNumber) {
|
||
return "请输入身份证号"
|
||
} else if (!this.idNumberJustImg) {
|
||
return "请上传身份证正面照"
|
||
} else if (!this.idNumberBackImg) {
|
||
return "请上传身份证反面照"
|
||
} else {
|
||
return false
|
||
}
|
||
},
|
||
// 头像
|
||
uploadAvatar(){
|
||
upload.showAvatarModal(this, 400, 400)
|
||
},
|
||
myUpload(rsp){
|
||
this.uplodingImg('realHeadPortrait', rsp.path)
|
||
},
|
||
// 上传图片
|
||
uplodingImg (name, path) {
|
||
let _this = this
|
||
this.callbackList.forEach((v, i)=>{
|
||
if (v.name === name) {
|
||
this.callbackList.splice(i, 1)
|
||
return false
|
||
}
|
||
})
|
||
if (path) {
|
||
this[name] = path
|
||
uni.getImageInfo({
|
||
src: path,
|
||
success: function (image) {
|
||
_this.callbackList.push({
|
||
name: name,
|
||
path: path,
|
||
ossWidth: image.width,
|
||
ossHeight: image.height
|
||
})
|
||
}
|
||
});
|
||
} else {
|
||
uni.chooseImage({
|
||
count: 1,
|
||
success: (res) => {
|
||
let tempFilePath = res.tempFilePaths[0]
|
||
_this[name] = tempFilePath
|
||
uni.getImageInfo({
|
||
src: tempFilePath,
|
||
success: function (image) {
|
||
_this.callbackList.push({
|
||
name: name,
|
||
path: tempFilePath,
|
||
ossWidth: image.width,
|
||
ossHeight: image.height,
|
||
size: res.tempFiles[0].size
|
||
})
|
||
}
|
||
});
|
||
|
||
}
|
||
})
|
||
}
|
||
},
|
||
jumpTo(){
|
||
this.$navigateTo("/pages/notice/agreement?id="+this.noticeId)
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.main{
|
||
padding: 20rpx;
|
||
.cell{
|
||
padding: 0 30rpx;
|
||
height: 130rpx;
|
||
border-radius: 10rpx;
|
||
margin-bottom: 10rpx;
|
||
background-color: white;
|
||
.name{
|
||
color: #555;
|
||
font-size: 36rpx;
|
||
}
|
||
.img{
|
||
border-radius: 10rpx;
|
||
width: 110rpx;
|
||
height: 110rpx;
|
||
background-color: #928add;
|
||
overflow: hidden;
|
||
.icon{
|
||
font-size: 60rpx;
|
||
color: white;
|
||
}
|
||
}
|
||
}
|
||
.list{
|
||
border-radius: 10rpx;
|
||
background-color: white;
|
||
padding: 0 30rpx;
|
||
margin-bottom: 10rpx;
|
||
&-item{
|
||
display: flex;
|
||
align-items: center;
|
||
height: 120rpx;
|
||
border-bottom: 2rpx solid #f5f3f7;
|
||
color: #555;
|
||
font-size: 36rpx;
|
||
.input{
|
||
font-size: 36rpx;
|
||
}
|
||
.icon{
|
||
font-size: 44rpx;
|
||
}
|
||
}
|
||
}
|
||
.grid{
|
||
padding: 20rpx 30rpx;
|
||
font-size: 36rpx;
|
||
color: #555;
|
||
background-color: white;
|
||
border-radius: 10rpx;
|
||
margin-bottom: 10rpx;
|
||
.box{
|
||
width: 350rpx;
|
||
height: 250rpx;
|
||
border: 2rpx solid #EEEEEE;
|
||
border-radius: 14rpx;
|
||
position: relative;
|
||
.img{
|
||
width: 187rpx;
|
||
height: 111rpx;
|
||
}
|
||
.image{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.del{
|
||
position: absolute;
|
||
top: -20rpx;
|
||
right: -20rpx;
|
||
font-size: 40rpx;
|
||
}
|
||
}
|
||
|
||
}
|
||
.fixed{
|
||
position: fixed;
|
||
bottom: 30rpx;
|
||
left: 0rpx;
|
||
right: 0rpx;
|
||
.btn{
|
||
width: 710rpx;
|
||
border-radius: 50rpx;
|
||
}
|
||
}
|
||
}
|
||
</style> |