Commit e16bc30c by 赵月辉

完成企业申请认证接口对接

parent 0ffcdf3c
// 控制台相关接口
import request from '@/utils/request'
// 获取首页banner
export function enterpriseAudit (query) {
return request({
url: '/api/v1/enterpriseAudit',
method: 'post',
data: query
})
}
......@@ -94,7 +94,6 @@ const showTip = computed(
)
watch(() => props.modelValue, val => {
console.log(val)
if (val) {
// 首先将值转为数组
const list = Array.isArray(val) ? val : props.modelValue.split(',')
......
......@@ -31,15 +31,17 @@
</el-step>
</el-steps>
<div class="step-content">
<step0 ref="step0Ref" v-if="stepActive === 0"></step0>
<step1 ref="step1Ref" v-if="stepActive === 1"></step1>
<step2 ref="step2Ref" v-if="stepActive === 2"></step2>
<step3 ref="step3Ref" v-if="stepActive === 3"></step3>
<step4 ref="step4Ref" v-if="stepActive === 4"></step4>
<step0 ref="step0Ref" v-show="stepActive === 0"></step0>
<step1 ref="step1Ref" v-show="stepActive === 1"></step1>
<step2 ref="step2Ref" v-show="stepActive === 2"></step2>
<step3 v-show="stepActive === 3" :form-data="formData"></step3>
<step4 v-show="stepActive === 4"></step4>
<div class="footer-bar">
<div v-if="stepActive < 4" class="footer-bar">
<el-button @click="prev">上一步</el-button>
<el-button type="primary" @click="next">下一步</el-button>
<el-button v-if="stepActive < 3" type="primary" @click="next">下一步</el-button>
<el-button v-if="stepActive === 3" type="primary" @click="submit">提交</el-button>
</div>
</div>
</div>
......@@ -51,6 +53,7 @@ import step1 from './components/step-1.vue'
import step2 from './components/step-2.vue'
import step3 from './components/step-3.vue'
import step4 from './components/step-4.vue'
import { enterpriseAudit } from '@/api/console.js'
export default {
name: 'Authentication',
......@@ -63,7 +66,8 @@ export default {
},
data () {
return {
stepActive: 0
stepActive: 0,
formData: {}
}
},
methods: {
......@@ -73,9 +77,19 @@ export default {
}
},
next () {
if (this.stepActive < 4) {
// this.$refs[`step${this.stepActive}Ref`].$refs.formRef.validate().then(res => {
this.stepActive += 1
}
if (this.stepActive === 3) {
this.formData = {...this.$refs.step0Ref.ruleForm, ...this.$refs.step1Ref.ruleForm, ...this.$refs.step2Ref.ruleForm}
}
// }).catch(err => {
// console.log(err)
// })
},
submit () {
enterpriseAudit(this.formData).then(res => {
this.stepActive += 1
})
}
}
}
......
......@@ -6,16 +6,22 @@
</div>
</template>
<div class="">
<el-form label-width="145px" label-position="left">
<el-form-item label="姓名">
<el-input placeholder="请输入姓名" size="large" style="width: 343px"></el-input>
<el-form
ref="formRef"
:model="ruleForm"
:rules="rules"
label-width="145px"
label-position="left">
<el-form-item label="姓名" prop="contactUser">
<el-input v-model="ruleForm.contactUser" placeholder="请输入姓名" size="large"
style="width: 343px"></el-input>
</el-form-item>
<el-form-item label="身份证">
<el-input placeholder="请输入身份证号" size="large" style="width: 343px"></el-input>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="ruleForm.idCard" placeholder="请输入身份证号" size="large" style="width: 343px"></el-input>
</el-form-item>
<el-form-item label="身份证图片">
<image-upload style="margin-right: 20px" :limit="1">
<el-form-item label="身份证图片" required prop="idCardImage">
<image-upload v-model="ruleForm.idCardBackImage" style="margin-right: 20px" :limit="1">
<template #uploader-icon>
<div style="text-align: center">
<el-icon class="avatar-uploader-icon" size="32px">
......@@ -30,7 +36,7 @@
<div style="text-align: center;font-size: 14px;color: #626566;">人像面</div>
</template>
</image-upload>
<image-upload :limit="1">
<image-upload v-model="ruleForm.idCardFrontImage" :limit="1">
<template #uploader-icon>
<div style="text-align: center">
<el-icon class="avatar-uploader-icon" size="32px">
......@@ -53,6 +59,45 @@
<script setup>
import ImageUpload from '@/components/ImageUpload/index.vue'
import { ref, computed, defineExpose } from 'vue'
const formRef = ref()
const ruleForm = ref({
contactUser: '',
idCard: '',
idCardImage: '1',
idCardBackImage: '',
idCardFrontImage: ''
})
function validateIdCardImage (rule, value, callback) {
if (!ruleForm.value.idCardFrontImage || !ruleForm.value.idCardFrontImage) {
callback(new Error('请上传身份证人像面和身份证国徽面'))
return
}
callback()
}
const rules = computed(() => {
return {
contactUser: [
{required: true, message: '请输入姓名', trigger: 'blur'}
],
idCard: [
{required: true, message: '请输入身份证号', trigger: 'blur'},
{
pattern: '/(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)/',
message: '请输入正确的身份证号码',
trigger: 'blur'
}
],
idCardImage: [{validator: validateIdCardImage, trigger: 'blur'}]
}
})
defineExpose({formRef, ruleForm})
</script>
<style scoped lang="scss">
......
......@@ -6,16 +6,21 @@
</div>
</template>
<div class="">
<el-form label-width="145px" label-position="left">
<el-form-item label="企业名称">
<el-input placeholder="请输入企业名称" size="large" style="width: 343px"></el-input>
<el-form
ref="formRef"
:model="ruleForm"
:rules="rules"
label-width="145px"
label-position="left">
<el-form-item label="企业名称" prop="name">
<el-input v-model="ruleForm.name" placeholder="请输入企业名称" size="large" style="width: 343px"></el-input>
</el-form-item>
<el-form-item label="法人代表">
<el-input placeholder="请输入法人代表" size="large" style="width: 343px"></el-input>
<el-form-item label="法人代表" prop="legalPerson">
<el-input v-model="ruleForm.legalPerson" placeholder="请输入法人代表" size="large"
style="width: 343px"></el-input>
</el-form-item>
<el-form-item label="企业营业执照">
<image-upload :limit="1" :is-show-tip="false">
<el-form-item label="企业营业执照" prop="licenseImages">
<image-upload v-model="ruleForm.licenseImages" :limit="1" :is-show-tip="false">
<template #uploader-icon>
<div style="text-align: center">
<el-icon class="avatar-uploader-icon" size="32px">
......@@ -35,6 +40,22 @@
<script setup>
import ImageUpload from '@/components/ImageUpload/index.vue'
import { ref, computed, defineExpose } from 'vue'
const formRef = ref()
const ruleForm = ref({})
const rules = computed(() => {
return {
name: [{required: true, message: '请输入企业名称', trigger: 'blur'}],
legalPerson: [{required: true, message: '请输入法人代表', trigger: 'blur'}],
licenseImages: [{required: true, message: '请上传企业营业执照', trigger: 'change'}]
}
})
defineExpose({formRef, ruleForm})
</script>
<style scoped lang="scss">
......
......@@ -6,16 +6,22 @@
</div>
</template>
<div class="">
<el-form label-width="145px" label-position="left">
<el-form-item label="手机号">
<el-input placeholder="请输入手机号" size="large" style="width: 343px"></el-input>
<el-form
ref="formRef"
:model="ruleForm"
:rules="rules"
label-width="145px"
label-position="left">
<el-form-item label="手机号" prop="contactPhone">
<el-input v-model.number="ruleForm.contactPhone" placeholder="请输入手机号" size="large"
style="width: 343px"></el-input>
</el-form-item>
<el-form-item label="承诺书模板">
<el-button link type="primary">下载模板</el-button>
<el-button link type="primary" @click="openPage">下载模板</el-button>
</el-form-item>
<el-form-item label="承诺书上传">
<image-upload :limit="1" :is-show-tip="false">
<el-form-item label="承诺书上传" prop="wordUrl">
<image-upload v-model="ruleForm.wordUrl" :limit="1" :is-show-tip="false">
<template #uploader-icon>
<div style="text-align: center">
<el-icon class="avatar-uploader-icon" size="32px">
......@@ -35,6 +41,42 @@
<script setup>
import ImageUpload from '@/components/ImageUpload/index.vue'
import { ref, computed, defineExpose } from 'vue'
const formRef = ref()
const ruleForm = ref({})
function validatePhone (rule, value, callback) {
const reg = /^1[3456789]\d{9}$/
if (!reg.test(value)) {
callback(new Error('请输入正确的手机号'))
return
}
callback()
}
const rules = computed(() => {
return {
contactPhone: [
{required: true, message: '请输入手机号', trigger: 'blur'},
{
validator: validatePhone,
trigger: 'blur'
}
],
wordUrl: [{required: true, message: '请上传承诺书', trigger: 'change'}]
}
})
const baseUrl = import.meta.env.VITE_APP_BASE_API
function openPage () {
window.open(baseUrl + '/prod-api/profile/upload/2024/04/29/网络安全承诺书模板_20240429114604A005.doc')
}
defineExpose({formRef, ruleForm})
</script>
<style scoped lang="scss">
......
......@@ -10,20 +10,20 @@
<el-col :span="12">
<el-form label-width="145px" label-position="left">
<el-form-item label="姓名">
姓名
{{ formData.contactUser }}
</el-form-item>
<el-form-item label="身份证">
身份证号
{{ formData.idCard }}
</el-form-item>
<el-form-item label="身份证图片">
<div class="mr20">
<el-image style="width: 200px; height: 130px" fit="cover"/>
<el-image :src="baseUrl + formData.idCardBackImage" style="width: 200px; height: 130px" fit="cover"/>
<div style="text-align: center;font-size: 14px;color: #626566;">人像面</div>
</div>
<div>
<el-image style="width: 200px; height: 130px" fit="cover"/>
<el-image :src="baseUrl + formData.idCardFrontImage" style="width: 200px; height: 130px" fit="cover"/>
<div style="text-align: center;font-size: 14px;color: #626566;">国徽面</div>
</div>
</el-form-item>
......@@ -32,16 +32,15 @@
<el-col :span="12">
<el-form label-width="145px" label-position="left">
<el-form-item label="企业名称">
企业名称
{{ formData.name }}
</el-form-item>
<el-form-item label="法人代表">
法人代表
{{ formData.legalPerson }}
</el-form-item>
<el-form-item label="企业营业执照">
<div class="mr20">
<el-image style="width: 200px; height: 130px" fit="cover"/>
<div style="text-align: center;font-size: 14px;color: #626566;">人像面</div>
<el-image :src="baseUrl + formData.licenseImages" style="width: 200px; height: 130px" fit="cover"/>
</div>
</el-form-item>
</el-form>
......@@ -49,16 +48,12 @@
<el-col :span="12">
<el-form label-width="145px" label-position="left" style="padding-top: 30px">
<el-form-item label="手机号">
手机号
</el-form-item>
<el-form-item label="承诺书模板">
承诺书模板
{{ formData.contactPhone }}
</el-form-item>
<el-form-item label="承诺书上传">
<div class="mr20">
<el-image style="width: 132px; height: 200px" fit="cover"/>
<div style="text-align: center;font-size: 14px;color: #626566;">人像面</div>
<el-image :src="baseUrl + formData.wordUrl" style="width: 132px; height: 200px" fit="cover"/>
</div>
</el-form-item>
</el-form>
......@@ -70,6 +65,16 @@
<script setup>
import ImageUpload from '@/components/ImageUpload/index.vue'
import { defineProps } from 'vue'
defineProps({
formData: {
type: Object
}
})
const baseUrl = import.meta.env.VITE_APP_BASE_API
</script>
<style scoped lang="scss">
......
......@@ -62,7 +62,7 @@
<div class="bg-text">APPLICATION</div>
行业应用
</div>
<div class=block-sub-title>
<div class="block-sub-title">
集成机器学习、深度学习、自然语言处理、图像识别等先进技术,为金融、医疗、教育、零售、制造业等多个领域提供智能化解决方案。
</div>
<el-row :gutter="24">
......@@ -106,7 +106,7 @@
<div class="bg-text">INFORMATION</div>
活动资讯
</div>
<!--<div class=block-sub-title>活动时间待定,活动内容待定,活动礼品自带</div>-->
<!--<div class="block-sub-title">活动时间待定,活动内容待定,活动礼品自带</div>-->
<div class="flex flex-justify-center">
<div class="information" style="margin-right: 182px">
<div class="information-item"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment