Browse Source

企业认证提交

master
chenkun 10 months ago
parent
commit
d2e2d63d59
4 changed files with 425 additions and 375 deletions
  1. +221
    -166
      pages_mine/mine/authFirm.vue
  2. +1
    -2
      pages_mine/mine/authOption.vue
  3. +36
    -45
      pages_mine/mine/authPerson.vue
  4. +167
    -162
      pages_mine/mine/certifiedIndividual.vue

+ 221
- 166
pages_mine/mine/authFirm.vue View File

@ -1,173 +1,228 @@
<template>
<view class="auth-firm">
<!--顶部导航栏-->
<navbar leftClick @leftClick="$utils.navigateBack" title="认证企业"/>
<!--身份信息页面-->
<view class="container">
<view class="form-item">
<view class="label">法人真实姓名</view>
<view class="input">{{ name }}</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">法人身份证号</view>
<view class="input">{{ idCard }}</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">营业执照</view>
<view class="upload">
<uv-upload
:fileList="yxzzFileList"
:maxCount="5"
multiple
width="150rpx"
height="150rpx"
@delete="yxzzDeleteImage"
@afterRead="yxzzAfterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">其他资质</view>
<view class="upload">
<uv-upload
:fileList="qtzzFileList"
:maxCount="5"
multiple
width="150rpx"
height="150rpx"
@delete="qtzzDeleteImage"
@afterRead="qtzzAfterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
</view>
<!--请仔细阅读平台用户协议隐私协议-->
<view class="agree">
<view>
请仔细阅读平台<span style="color:#009dff">用户协议</span><span style="color:#009dff">隐私协议</span>
</view>
</view>
<!--下一步按钮-->
<button @click="onNextClick" class="bottomBtn">
立即认证
</button>
</view>
<view class="auth-firm">
<!--顶部导航栏-->
<navbar leftClick @leftClick="$utils.navigateBack" title="认证企业" />
<!--身份信息页面-->
<view class="container">
<view class="form-item">
<view class="label">法人真实姓名</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.name" />
</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">法人身份证号</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.card" />
</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">营业执照</view>
<view class="avatarFace" @click="uploadImage('tradeImage')">
<image v-if="certifiedIndividual.tradeImage" :src="certifiedIndividual.tradeImage"
style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
</view>
<uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
<view class="form-item">
<view class="label">其他资质</view>
<view class="avatarFace" @click="uploadImage('otherImage')">
<image v-if="certifiedIndividual.otherImage" :src="certifiedIndividual.otherImage"
style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
</view>
</view>
<!--请仔细阅读平台用户协议隐私协议-->
<view class="agree">
<!-- <view> -->
<uv-checkbox-group v-model="checkboxValue" placement="column" size="35" activeColor="#008000"
inactiveColor="#999999">
<uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
iconSize="35">
</uv-checkbox>
</uv-checkbox-group>
请仔细阅读平台<span style="color:#009dff">用户协议</span><span style="color:#009dff">隐私协议</span>
<!-- </view> -->
</view>
<!--下一步按钮-->
<button @click="onNextClick" class="bottomBtn">
立即认证
</button>
<confirmationPopup ref="confirmationPopup" title="提示" cancel :cancelText="cancelText[type]" @confirm="submit"
round="0" @cancel="$refs.confirmationPopup.close()" :confirmText="confirmText[type]">
<view class="confirmationPopup" v-if="type == 0">
电子认证服务协议
数字证书(以下简称证书)是电子商务认证有限公司(以下简称广东)签发的网上凭证是为身份确实资信可靠的个人单位和服务器等在网上进行安全电子交易安全电子事务处理等提供的一种身份认证凡企业机关团体行政事业等单位个人和服务器数字证书申请人(以下简称证书申请人)均可向广东业务受理审批单位申请领用数字证书为了保障数字证书申请人的合法权利维护电子商务认证有限公司的合法经营权益双方本着自愿平等的原则达成以下协议书条款双方共同遵守执行第三方认证是
XX制造网为其XX通会员提供的一项以标准化审核认证为主要内容的服务
含资质认证与实地认证
实地认证的审核认证服务内容要包括会员的工商注册信息销售贸易能力和()产品设计开发能力体系和产品认证生产能力和质量管理实景照片等内容资质认证的审核认证服务内容主要包括会员的工商注册信息经营资
生产许可资质等内容
第三方认证审核分为初次审核和年度复审两种类型初次审核是指对会员进行首次审核并出具报告年度复审是指为了认证保证报告所反映的实际情况的时效性而对会员进行的每年一次的复审XX制造网根据用户提交的服务申请及用户进行的自评情况与用户确定服务购买意向并签署合同用户支付相应费用后XX制造网委托第三方认证机构在约定的日期进行审核并出具相应的认证报告XX制造网将使用专有标识对通过审核
的用户的展示厅进行标注
</view>
<view class="confirmationPopup" style="padding: 70rpx 20rpx;" v-if="type == 1">
本次认证需付费确认
</view>
</confirmationPopup>
</view>
</template>
<script>
import '../../common.css'; // CSS
export default {
data() {
return {
name: 'xiaohua',
idCard: '2101472154874512',
yxzzFileList: [
{url: 'https://cdn.uviewui.com/uview/swiper/2.jpg'},
],
qtzzFileList: [
{url: 'https://cdn.uviewui.com/uview/swiper/2.jpg'},
],
}
},
methods: {
onNextClick() {
this.$utils.navigateTo("/mine/purse");
},
yxzzDeleteImage(e){
this.yxzzFileList.splice(e.index, 1)
},
qtzzDeleteImage(e){
this.qtzzFileList.splice(e.index, 1)
},
yxzzAfterRead(e){
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.yxzzFileList.push({
url
})
})
})
},
qtzzAfterRead(e){
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.qtzzFileList.push({
url
})
})
})
},
}
}
import '../../common.css'; // CSS
import confirmationPopup from '@/components/toast/confirmationPopup.vue';
import {
mapState
} from 'vuex'
export default {
data() {
return {
name: 'xiaohua',
idCard: '2101472154874512',
cancelText: ['不同意', '取消'],
confirmText: ['同意', '同意并支付'],
type: 0,
labelValue: '', // labelValue
checkboxValue: [],
}
},
components: {
confirmationPopup,
},
computed: {
...mapState(['certifiedIndividual']),
},
methods: {
uploadImage(key) {
this.$Oss.ossUploadImage({
success: url => {
this.$nextTick(() => {
this.$set(this.certifiedIndividual, key, url);
})
}
})
},
onNextClick() {
if (this.$utils.verificationAll(this.certifiedIndividual, {
imageReverseSide: '请上传身份证背面',
imageStraight: '请上传身份证正面',
card: '请输入身份证号',
name: '请输入姓名',
})) {
return
}
this.$refs.confirmationPopup.open()
},
submit() {
this.$refs.confirmationPopup.close()
if (this.type == 0) {
setTimeout(() => {
this.type = 1
this.$refs.confirmationPopup.open()
}, 500)
} else {
this.$api('infoSubmitCompanyCertification', this.certifiedIndividual,
res => {
if (res.code == 200) {
uni.showToast({
title: '认证成功',
icon: 'none'
})
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/center'
})
}, 500)
}
})
}
},
}
}
</script>
<style scoped lang="scss">
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.auth-firm {
.container {
padding: 100rpx 50rpx 50rpx 50rpx;
//border: 1px solid red;
.header {
margin-bottom: 40rpx;
font-size: 28rpx;
color: #666;
}
.form-item {
margin-bottom: 40rpx;
.label {
font-size: 36rpx;
margin-bottom: 10px;
display: block;
}
.input {
width: 100vw;
font-size: 38rpx;
margin-top: 40rpx;
}
.upload {
}
}
}
.agree {
display: flex;
justify-content: center;
position: fixed;
bottom: 12%;
width: 100vw;
}
}
</style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.auth-firm {
.container {
padding: 100rpx 50rpx 50rpx 50rpx;
//border: 1px solid red;
.header {
margin-bottom: 40rpx;
font-size: 28rpx;
color: #666;
}
.form-item {
margin-bottom: 40rpx;
.label {
font-size: 36rpx;
margin-bottom: 10px;
display: block;
}
.input {
font-size: 30rpx;
margin-top: 40rpx;
background-color: #f7f7f7;
padding: 20rpx;
border: 1px solid #66666633;
}
.avatarFace {
width: 150rpx;
height: 150rpx;
}
}
}
.agree {
display: flex;
justify-content: center;
position: fixed;
bottom: 12%;
left: 5%;
}
.confirmationPopup {
max-height: 60vh;
overflow-y: auto;
overflow-x: hidden;
width: 600rpx;
padding: 20rpx;
text-align: center;
}
}
</style>

+ 1
- 2
pages_mine/mine/authOption.vue View File

@ -36,9 +36,8 @@ export default {
},
firmAuth() {
uni.redirectTo({
url: '/pages_mine/mine/enterpriseCertification'
url: '/pages_mine/mine/certifiedIndividual?type=firm'
})
// this.$utils.navigateTo('/mine/certifiedIndividual?type=firm')
},
},


+ 36
- 45
pages_mine/mine/authPerson.vue View File

@ -8,7 +8,7 @@
<view class="form-item">
<view class="label">姓名</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.name"/>
<input type="text" v-model="certifiedIndividual.name" />
</view>
</view>
@ -17,7 +17,7 @@
<view class="form-item">
<view class="label">身份证号</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.card"/>
<input type="text" v-model="certifiedIndividual.card" />
</view>
</view>
@ -28,29 +28,20 @@
<button @click="onNextClick" class="bottomBtn">
立即认证
</button>
<confirmationPopup
ref="confirmationPopup"
title="提示"
cancel
:cancelText="cancelText[type]"
@confirm="submit"
round="0"
@cancel="$refs.confirmationPopup.close()"
:confirmText="confirmText[type]">
<view class="confirmationPopup"
v-if="type == 0">
<confirmationPopup ref="confirmationPopup" title="提示" cancel :cancelText="cancelText[type]" @confirm="submit"
round="0" @cancel="$refs.confirmationPopup.close()" :confirmText="confirmText[type]">
<view class="confirmationPopup" v-if="type == 0">
电子认证服务协议
数字证书(以下简称证书)是电子商务认证有限公司(以下简称广东)签发的网上凭证是为身份确实资信可靠的个人单位和服务器等在网上进行安全电子交易安全电子事务处理等提供的一种身份认证凡企业机关团体行政事业等单位个人和服务器数字证书申请人(以下简称证书申请人)均可向广东业务受理审批单位申请领用数字证书为了保障数字证书申请人的合法权利维护电子商务认证有限公司的合法经营权益双方本着自愿平等的原则达成以下协议书条款双方共同遵守执行第三方认证是 XX制造网为其XX通会员提供的一项以标准化审核认证为主要内容的服务
数字证书(以下简称证书)是电子商务认证有限公司(以下简称广东)签发的网上凭证是为身份确实资信可靠的个人单位和服务器等在网上进行安全电子交易安全电子事务处理等提供的一种身份认证凡企业机关团体行政事业等单位个人和服务器数字证书申请人(以下简称证书申请人)均可向广东业务受理审批单位申请领用数字证书为了保障数字证书申请人的合法权利维护电子商务认证有限公司的合法经营权益双方本着自愿平等的原则达成以下协议书条款双方共同遵守执行第三方认证是
XX制造网为其XX通会员提供的一项以标准化审核认证为主要内容的服务
含资质认证与实地认证
实地认证的审核认证服务内容要包括会员的工商注册信息销售贸易能力和()产品设计开发能力体系和产品认证生产能力和质量管理实景照片等内容资质认证的审核认证服务内容主要包括会员的工商注册信息经营资
生产许可资质等内容
第三方认证审核分为初次审核和年度复审两种类型初次审核是指对会员进行首次审核并出具报告年度复审是指为了认证保证报告所反映的实际情况的时效性而对会员进行的每年一次的复审XX制造网根据用户提交的服务申请及用户进行的自评情况与用户确定服务购买意向并签署合同用户支付相应费用后XX制造网委托第三方认证机构在约定的日期进行审核并出具相应的认证报告XX制造网将使用专有标识对通过审核
的用户的展示厅进行标注
</view>
<view class="confirmationPopup"
style="padding: 70rpx 20rpx;"
v-if="type == 1">
<view class="confirmationPopup" style="padding: 70rpx 20rpx;" v-if="type == 1">
本次认证需付费确认
</view>
</confirmationPopup>
@ -59,20 +50,22 @@
<script>
import '../../common.css'; // CSS
import { mapState } from 'vuex'
import {
mapState
} from 'vuex'
import confirmationPopup from '@/components/toast/confirmationPopup.vue'
export default {
components : {
components: {
confirmationPopup,
},
data() {
return {
type : 0,
cancelText : ['不同意', '取消'],
confirmText : ['同意', '同意并支付'],
type: 0,
cancelText: ['不同意', '取消'],
confirmText: ['同意', '同意并支付'],
}
},
computed : {
computed: {
...mapState(['certifiedIndividual']),
},
methods: {
@ -80,7 +73,6 @@
//
},
onNextClick() {
if (this.$utils.verificationAll(this.certifiedIndividual, {
imageReverseSide: '请上传身份证背面',
imageStraight: '请上传身份证正面',
@ -89,34 +81,33 @@
})) {
return
}
this.$refs.confirmationPopup.open()
},
submit(){
submit() {
this.$refs.confirmationPopup.close()
if(this.type == 0){
if (this.type == 0) {
setTimeout(() => {
this.type = 1
this.$refs.confirmationPopup.open()
}, 500)
}else{
} else {
this.$api('infoSubmitCertification', this.certifiedIndividual,
res => {
if(res.code == 200){
uni.showToast({
title:'认证成功',
icon : 'none'
})
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/center'
res => {
if (res.code == 200) {
uni.showToast({
title: '认证成功',
icon: 'none'
})
}, 500)
}
})
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/center'
})
}, 500)
}
})
}
},
}
}
@ -128,8 +119,8 @@
margin: 0;
padding: 0;
}
.confirmationPopup{
.confirmationPopup {
max-height: 60vh;
overflow-y: auto;
overflow-x: hidden;


+ 167
- 162
pages_mine/mine/certifiedIndividual.vue View File

@ -1,170 +1,175 @@
<template>
<view class="certified-individual">
<!--顶部导航栏-->
<navbar leftClick @leftClick="$utils.navigateBack" title="个人认证" />
<!--内容区域-->
<view class="content">
<view class="title">
<view class="image">
<image src="../static/auth/1.svg" style="width: 100%;height: 100%"></image>
</view>
请确保二代身份证有效,并且头像文字清晰四角对齐,无反光无遮挡
</view>
<view class="center">
<view class="avatarFace" @click="uploadImage('imageStraight')">
<image v-if="certifiedIndividual.imageStraight" :src="certifiedIndividual.imageStraight" style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
<view class="reverseSide" @click="uploadImage('imageReverseSide')">
<image v-if="certifiedIndividual.imageReverseSide" :src="certifiedIndividual.imageReverseSide" style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
</view>
</view>
<!--立即认证按钮-->
<view @click="nowAuth" class="bottomBtn">
立即认证
</view>
<!--人脸识别服务协议-->
<view class="agree">
<uv-checkbox-group v-model="checkboxValue" placement="column" size="35" activeColor="#008000"
inactiveColor="#999999">
<uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
iconSize="35">
</uv-checkbox>
</uv-checkbox-group>
我已阅读并同意签署 <span style="color:#009dff">服务协议</span>
<span style="color:#009dff">隐私政策</span>
</view>
</view>
<view class="certified-individual">
<!--顶部导航栏-->
<navbar leftClick @leftClick="$utils.navigateBack" title="上传身份证信息"/>
<!--内容区域-->
<view class="content">
<view class="title">
<view class="image">
<image src="../static/auth/1.svg" style="width: 100%;height: 100%"></image>
</view>
请确保二代身份证有效,并且头像文字清晰四角对齐,无反光无遮挡
</view>
<view class="center">
<view class="avatarFace" @click="uploadImage('imageStraight')">
<image v-if="certifiedIndividual.imageStraight" :src="certifiedIndividual.imageStraight"
style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
<view class="reverseSide" @click="uploadImage('imageReverseSide')">
<image v-if="certifiedIndividual.imageReverseSide" :src="certifiedIndividual.imageReverseSide"
style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
</view>
</view>
<!--立即认证按钮-->
<view @click="nowAuth" class="bottomBtn">
立即认证
</view>
<!--人脸识别服务协议-->
<view class="agree">
<uv-checkbox-group v-model="checkboxValue" placement="column" size="35" activeColor="#008000"
inactiveColor="#999999">
<uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
iconSize="35">
</uv-checkbox>
</uv-checkbox-group>
我已阅读并同意签署 <span style="color:#009dff">服务协议</span>
<span style="color:#009dff">隐私政策</span>
</view>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
onLoad: function(options) {
this.type = options.type;
},
computed : {
...mapState(['certifiedIndividual']),
},
data() {
return {
checkboxValue: [],
labelValue: '', // labelValue
type: '',
};
},
methods: {
uploadImage(key) {
this.$Oss.ossUploadImage({
success : url => {
this.certifiedIndividual[key] = url
}
})
},
nowAuth() {
// if(!this.certifiedIndividual.imageReverseSide){
// return uni.showToast({
// title: '',
// icon: 'none'
// })
// }
// if(!this.certifiedIndividual.imageStraight){
// return uni.showToast({
// title: '',
// icon: 'none'
// })
// }
uni.redirectTo({
url: '/pages_mine/mine/authPerson'
})
// if (this.type == "person") {
// uni.redirectTo({
// url: '/pages_mine/mine/authPerson'
// })
// // this.$utils.navigateTo('/mine/authPerson')
// } else if (this.type == "firm") {
// uni.redirectTo({
// url: '/pages_mine/mine/authFirm'
// })
// // this.$utils.navigateTo('/mine/authFirm')
// }
}
}
}
import {mapState} from 'vuex'
export default {
onLoad: function (options) {
this.type = options.type;
},
computed: {
...mapState(['certifiedIndividual']),
},
data() {
return {
checkboxValue: [],
labelValue: '', // labelValue
type: '',
};
},
methods: {
uploadImage(key) {
this.$Oss.ossUploadImage({
success: url => {
this.certifiedIndividual[key] = url
}
})
},
nowAuth() {
// if(!this.certifiedIndividual.imageReverseSide){
// return uni.showToast({
// title: '',
// icon: 'none'
// })
// }
// if(!this.certifiedIndividual.imageStraight){
// return uni.showToast({
// title: '',
// icon: 'none'
// })
// }
// uni.redirectTo({
// url: '/pages_mine/mine/authPerson'
// })
// type(/)
if (this.type == "person") {
uni.redirectTo({
url: '/pages_mine/mine/authPerson'
})
// this.$utils.navigateTo('/mine/authPerson')
} else if (this.type == "firm") {
uni.redirectTo({
url: '/pages_mine/mine/authFirm'
})
// this.$utils.navigateTo('/mine/authFirm')
}
}
}
}
</script>
<style lang="scss" scoped>
.certified-individual {
.content {
padding: 40rpx;
.title {
display: flex;
font-size: 30rpx;
.image {
display: flex;
align-items: flex-start;
width: 10vw;
height: 3vh;
}
}
.center {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 150rpx;
margin-top: 15%;
.avatarFace {
width: 80vw;
height: 20vh;
}
.reverseSide {
width: 80vw;
height: 20vh;
}
}
}
.bottomBtn {
position: fixed;
bottom: 15%;
left: 25%;
width: 50%;
height: 60rpx;
line-height: 60rpx;
font-size: 30rpx;
color: #FFFFFF;
text-align: center;
//border: 1px solid red;
background: $uni-linear-gradient-color;
-webkit-background-clip: text;
/*将设置的背景颜色限制在文字中*/
-webkit-text-fill-color: transparent;
/*给文字设置成透明*/
}
.agree {
position: fixed;
bottom: 7%;
display: flex;
font-size: 26rpx;
justify-content: center;
//border: 1px solid red;
}
}
.certified-individual {
.content {
padding: 40rpx;
.title {
display: flex;
font-size: 30rpx;
.image {
display: flex;
align-items: flex-start;
width: 10vw;
height: 3vh;
}
}
.center {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 150rpx;
margin-top: 15%;
.avatarFace {
width: 80vw;
height: 20vh;
}
.reverseSide {
width: 80vw;
height: 20vh;
}
}
}
.bottomBtn {
position: fixed;
bottom: 15%;
left: 25%;
width: 50%;
height: 60rpx;
line-height: 60rpx;
font-size: 30rpx;
color: #FFFFFF;
text-align: center;
//border: 1px solid red;
background: $uni-linear-gradient-color;
-webkit-background-clip: text;
/*将设置的背景颜色限制在文字中*/
-webkit-text-fill-color: transparent;
/*给文字设置成透明*/
}
.agree {
position: fixed;
bottom: 7%;
left: 15%;
display: flex;
font-size: 26rpx;
justify-content: center;
//border: 1px solid red;
}
}
</style>

Loading…
Cancel
Save