|
|
@ -47,22 +47,104 @@ |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<!-- step 3 --> |
|
|
<!-- step 3 --> |
|
|
|
|
|
<view class="vfbox" v-if="step==3"> |
|
|
|
|
|
|
|
|
|
|
|
<view class="ver-form"> |
|
|
|
|
|
<view class="form-item sfsel"> |
|
|
|
|
|
<view class="sf-tit">选择身份</view> |
|
|
|
|
|
<view class="sf-item"> |
|
|
|
|
|
<view class="sfiv" :class="{ active: sfval == 10 }" @click="selsf(10)">法 人</view> |
|
|
|
|
|
<view class="sfiv" :class="{ active: sfval == 20 }" @click="selsf(20)">经办人</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 如果是代办,需要下面的 --> |
|
|
|
|
|
<view v-if="sfval==20"> |
|
|
|
|
|
<!-- 经办人授权委托书 预览图 --> |
|
|
|
|
|
<view class="image-list" v-if="jfr_entfile!=''"> |
|
|
|
|
|
<view class="image-preview" v-for="(image, imageIndex) in jfr_entfile[0]"> |
|
|
|
|
|
<image class="image" mode="aspectFill" :src="image.path"></image> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="form-item" v-else> |
|
|
|
|
|
<button class="form-item--input" @click="chooseImage('jfr_entfile')">上传经办人授权委托书</button> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 经办人身份证扫描件(需盖章) --> |
|
|
|
|
|
<!-- 预览图 --> |
|
|
|
|
|
<view class="image-list" v-if="jfr_idafile!=''"> |
|
|
|
|
|
<view class="image-preview" v-for="(image, imageIndex) in jfr_idafile[0]"> |
|
|
|
|
|
<image class="image" mode="aspectFill" :src="image.path"></image> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view class="form-item" v-else> |
|
|
|
|
|
<button class="form-item--input" @click="chooseImage('jfr_idafile')">经办人身份证扫描件(需盖章)国徽面</button> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 经办人身份证扫描件(需盖章) 预览图 --> |
|
|
|
|
|
<view class="image-list" v-if="jfr_idbfile!=''"> |
|
|
|
|
|
<view class="image-preview" v-for="(image, imageIndex) in jfr_idbfile[0]"> |
|
|
|
|
|
<image class="image" mode="aspectFill" :src="image.path"></image> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="form-item" v-else> |
|
|
|
|
|
<button class="form-item--input" @click="chooseImage('jfr_idbfile')">经办人身份证扫描件(需盖章)头像面</button> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 经办人姓名 --> |
|
|
|
|
|
<view class="form-item"> |
|
|
|
|
|
<input class="form-item--input" v-model="managerName" autocomplete="off" placeholder="经办人姓名" /> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 经办人身份证号 --> |
|
|
|
|
|
<view class="form-item"> |
|
|
|
|
|
<input class="form-item--input" v-model="managerIdnum" autocomplete="off" placeholder="经办人身份证号" /> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 公用表单部分 --> |
|
|
|
|
|
<!-- 机构名称 --> |
|
|
|
|
|
<view class="form-item"> |
|
|
|
|
|
<input class="form-item--input" v-model="name" autocomplete="off" placeholder="机构名称" /> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 行业类别 --> |
|
|
|
|
|
<view class="form-item"> |
|
|
|
|
|
<select class="form-item--input" v-model="industryType" placeholder="行业类别"> |
|
|
|
|
|
<option>选择行业类别</option> |
|
|
|
|
|
<option value="0">IT</option> |
|
|
|
|
|
<option value="1">金融</option> |
|
|
|
|
|
<option value="2">空乘</option> |
|
|
|
|
|
</select> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<!-- step 4 --> |
|
|
</view> |
|
|
</view> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
|
|
|
// 认证api |
|
|
|
|
|
import * as VerifyApi from '@/api/verify' |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
// 认证步骤 |
|
|
// 认证步骤 |
|
|
step:1, |
|
|
step:3, |
|
|
// 当前标签索引 |
|
|
// 当前标签索引 |
|
|
curvf: 0, |
|
|
curvf: 0, |
|
|
// 需要认证的类型 |
|
|
// 需要认证的类型 |
|
|
vfindex:0, |
|
|
vfindex:0, |
|
|
//统一社会组织代码 |
|
|
//统一社会组织代码 |
|
|
Organizationcode:"", |
|
|
Organizationcode:"", |
|
|
|
|
|
// 用户角色 默认代办 |
|
|
|
|
|
sfval:10, |
|
|
|
|
|
// 经办人受权书 |
|
|
|
|
|
dbsqfile:"", |
|
|
|
|
|
//机构名称 |
|
|
|
|
|
name:"", |
|
|
|
|
|
//经办人授权委托书 |
|
|
|
|
|
jfr_entfile:[], |
|
|
|
|
|
// 经办人身份证 |
|
|
|
|
|
jfr_idafile:[], |
|
|
|
|
|
jfr_idbfile:[], |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
@ -114,13 +196,68 @@ |
|
|
this.$toast("统一社会信用代码格式不对") |
|
|
this.$toast("统一社会信用代码格式不对") |
|
|
return false; |
|
|
return false; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
this.step =3 |
|
|
console.info("yes"); |
|
|
console.info("yes"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// this.$toast("验证通过") |
|
|
|
|
|
// return true; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
// 身份选择 |
|
|
|
|
|
selsf(val){ |
|
|
|
|
|
this.sfval = val |
|
|
|
|
|
}, |
|
|
|
|
|
// 选择图片 |
|
|
|
|
|
chooseImage( item) { |
|
|
|
|
|
const app = this |
|
|
|
|
|
const oldImageList = app.$data[item] |
|
|
|
|
|
// 选择图片 |
|
|
|
|
|
uni.chooseImage({ |
|
|
|
|
|
count: 1, |
|
|
|
|
|
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 |
|
|
|
|
|
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 |
|
|
|
|
|
success({ tempFiles }) { |
|
|
|
|
|
//tempFiles = [{path:'xxx', size:100}] |
|
|
|
|
|
//app.formData[index].imageList = oldImageList.concat(tempFiles) |
|
|
|
|
|
//oldImageList.concat(tempFiles) |
|
|
|
|
|
oldImageList.push(tempFiles) |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
console.log(oldImageList.length) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 删除图片 |
|
|
|
|
|
deleteImage(index, imageIndex) { |
|
|
|
|
|
this.formData[index].imageList.splice(imageIndex, 1) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 上传图片 |
|
|
|
|
|
uploadFile() { |
|
|
|
|
|
const app = this |
|
|
|
|
|
const { formData } = app |
|
|
|
|
|
// 整理上传文件路径 |
|
|
|
|
|
const files = [] |
|
|
|
|
|
formData.forEach((item, index) => { |
|
|
|
|
|
if (item.content.trim() && item.imageList.length) { |
|
|
|
|
|
const images = item.imageList.map(image => image) |
|
|
|
|
|
files.push({ formDataIndex: index, images }) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
// 批量上传 |
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
|
Promise.all(files.map((file, index) => { |
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
|
VerifyApi.upload(file.images) |
|
|
|
|
|
.then(fileIds => { |
|
|
|
|
|
app.formData[index].uploaded = fileIds |
|
|
|
|
|
resolve(fileIds) |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(reject) |
|
|
|
|
|
}) |
|
|
|
|
|
})) |
|
|
|
|
|
.then(resolve, reject) |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
@ -183,6 +320,43 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.ver-form{ |
|
|
|
|
|
// todo o |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sfsel{ |
|
|
|
|
|
float: left; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
|
|
|
|
.sf-tit{ |
|
|
|
|
|
width: 20%; |
|
|
|
|
|
padding: 10rpx 0; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
flex-direction: center; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sf-item{ |
|
|
|
|
|
background: #EAEAEA; |
|
|
|
|
|
width: 80%; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
color: #333; |
|
|
|
|
|
border-radius: 12rpx; |
|
|
|
|
|
|
|
|
|
|
|
.sfiv{ |
|
|
|
|
|
width: 50%; |
|
|
|
|
|
padding: 10rpx; |
|
|
|
|
|
|
|
|
|
|
|
&.active{ |
|
|
|
|
|
border-radius: 12rpx; |
|
|
|
|
|
background: #487AEE; |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 输入框元素 |
|
|
// 输入框元素 |
|
|
.form-item { |
|
|
.form-item { |
|
|
display: flex; |
|
|
display: flex; |
|
|
@ -205,6 +379,76 @@ |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.image-list { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
padding: 0 20rpx; |
|
|
|
|
|
margin-top: 20rpx; |
|
|
|
|
|
margin-bottom: -20rpx; |
|
|
|
|
|
|
|
|
|
|
|
&:after { |
|
|
|
|
|
clear: both; |
|
|
|
|
|
content: " "; |
|
|
|
|
|
display: table; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.image { |
|
|
|
|
|
display: block; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.image-picker, |
|
|
|
|
|
.image-preview { |
|
|
|
|
|
width: 196rpx; |
|
|
|
|
|
height: 196rpx; |
|
|
|
|
|
margin-right: 30rpx; |
|
|
|
|
|
margin-bottom: 30rpx; |
|
|
|
|
|
float: left; |
|
|
|
|
|
|
|
|
|
|
|
&:nth-child(3n+0) { |
|
|
|
|
|
margin-right: 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.image-picker { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
flex-direction: column; |
|
|
|
|
|
justify-content: center; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
border: 1rpx dashed #ccc; |
|
|
|
|
|
color: #ccc; |
|
|
|
|
|
|
|
|
|
|
|
.choose-icon { |
|
|
|
|
|
font-size: 48rpx; |
|
|
|
|
|
margin-bottom: 6rpx; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.choose-text { |
|
|
|
|
|
font-size: 24rpx; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.image-preview { |
|
|
|
|
|
position: relative; |
|
|
|
|
|
|
|
|
|
|
|
.image-delete { |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
top: -15rpx; |
|
|
|
|
|
right: -15rpx; |
|
|
|
|
|
height: 42rpx; |
|
|
|
|
|
width: 42rpx; |
|
|
|
|
|
line-height: 42rpx; |
|
|
|
|
|
background: rgba(0, 0, 0, 0.64); |
|
|
|
|
|
border-radius: 50%; |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
font-weight: bolder; |
|
|
|
|
|
font-size: 22rpx; |
|
|
|
|
|
z-index: 10; |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|