Files
jjx-web/pages/user/components/notary-union-pay.vue
T
2026-10-08 18:18:21 +08:00

200 lines
8.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<el-card>
<div slot="header" class="clearfix">
<div class="flex justify-between items-center">
<div class="text-main text-40">金久信公正银联资料</div>
<el-tag :type="statusTagType">{{ statusText }}</el-tag>
</div>
</div>
<div class="text-25 text-main leading-8 mb-20">
<p>银联提供资料明细</p>
<p class="my-20">根据银联交易要求,为防止网络犯罪,金久信公正交易您需向银联提供以下资料:</p>
<p class="my-20">1、营业执照(原件手机拍照或复印件加盖公章);</p>
<p class="my-20">2、法人身份证正反面(原件手机拍照或复印件加盖公章);</p>
<p class="my-20">3、结算账户信息(结算账户信息需要开户许可证或银行回单等盖有银行印章的证明文件);</p>
<p class="my-20">4.店铺/办公地址照片(门头+门牌+经营场所的照片,收银台照片);</p>
<p class="my-20">5.法人手机号(用于电子签約)</p>
<p class="my-20">如由授权代理人负责,需要加收代理人身份证+代理人签约授权书,授权书我司提供模板;</p>
<p class="my-20">6、金久信平台入驻协议、授权书(请联系平台工作人员签约)</p>
<p class="my-20">7、审核时间2-3天,建议注册提前开通。</p>
<p>8、如果您完成审核请联系平台客服开通。</p>
</div>
<div class="mb-30">
<div class="flex justify-start items-center flex-wrap">
<el-button v-if="extraInfo.agreementUrl" type="primary" plain @click="openLink(extraInfo.agreementUrl)">金久信平台入驻协议下载</el-button>
<el-button v-if="extraInfo.authorizationUrl" type="primary" plain class="ml-20" @click="openLink(extraInfo.authorizationUrl)">授权书下载</el-button>
</div>
<div class="mt-30 flex justify-start items-start">
<div v-if="extraInfo.unionWechat" class="mr-35">
<div class="mb-10">银联工作人员微信</div>
<el-image :src="extraInfo.unionWechat" style="width: 160px;height: 160px" fit="cover" :preview-src-list="[extraInfo.unionWechat]"/>
</div>
<div v-if="extraInfo.platformWechat">
<div class="mb-10">金久信工作人员微信</div>
<el-image :src="extraInfo.platformWechat" style="width: 160px;height: 160px" fit="cover" :preview-src-list="[extraInfo.platformWechat]"/>
</div>
</div>
</div>
<el-form ref="form" :model="form" label-width="160px">
<el-form-item label="营业执照" required>
<vk-data-upload :limit="1" v-model="form.businessLicenseFile" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="法人身份证正面" required>
<vk-data-upload :limit="1" v-model="form.legalIdCardFront" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="法人身份证反面" required>
<vk-data-upload :limit="1" v-model="form.legalIdCardBack" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="结算账户证明" required>
<vk-data-upload :limit="10" v-model="form.settlementAccountFiles" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="店铺/办公照片" required>
<vk-data-upload :limit="10" v-model="form.shopPhotos" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="法人手机号" required>
<el-input v-model="form.legalMobile" placeholder="请输入法人手机号" :disabled="isLocked"/>
</el-form-item>
<el-form-item label="是否有代理人">
<el-switch v-model="form.hasAgent" :disabled="isLocked"/>
</el-form-item>
<template v-if="form.hasAgent">
<el-form-item label="代理人身份证正面" required>
<vk-data-upload :limit="1" v-model="form.agentIdCardFront" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="代理人身份证反面" required>
<vk-data-upload :limit="1" v-model="form.agentIdCardBack" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="代理人授权书" required>
<vk-data-upload :limit="10" v-model="form.agentAuthorizationFiles" :disabled="isLocked"></vk-data-upload>
</el-form-item>
</template>
<el-form-item label="入驻协议/授权书" required>
<vk-data-upload :limit="10" v-model="form.platformAgreementFiles" :disabled="isLocked"></vk-data-upload>
</el-form-item>
<el-form-item label="平台授权书" required>
<vk-data-upload :limit="10" v-model="form.platformAuthorizationFiles" :disabled="isLocked"></vk-data-upload>
</el-form-item>
</el-form>
<div class="mt-30 flex justify-center items-center">
<el-button type="primary" @click="submit" :disabled="isLocked">提交资料</el-button>
<el-button class="ml-20" @click="refresh">刷新</el-button>
</div>
</el-card>
</template>
<script>
const PROFILE_KEY = 'notaryUnionPayProfile'
export default {
name: "notary-union-pay",
data() {
return {
userInfo: null,
form: {
businessLicenseFile: '',
legalIdCardFront: '',
legalIdCardBack: '',
settlementAccountFiles: [],
shopPhotos: [],
legalMobile: '',
hasAgent: false,
agentIdCardFront: '',
agentIdCardBack: '',
agentAuthorizationFiles: [],
platformAgreementFiles: [],
platformAuthorizationFiles: []
},
extraInfo: {
agreementUrl: '',
authorizationUrl: '',
unionWechat: '',
platformWechat: ''
}
}
},
computed: {
profile() {
return (this.userInfo && this.userInfo[PROFILE_KEY]) || {}
},
statusText() {
if (this.profile.status === 1) return '已通过'
if (this.profile.status === 2) return '已拒绝'
if (this.profile.status === 0) return '审核中'
return '未提交'
},
statusTagType() {
if (this.profile.status === 1) return 'success'
if (this.profile.status === 2) return 'danger'
if (this.profile.status === 0) return 'warning'
return 'info'
},
isLocked() {
return [0, 1].includes(this.profile.status)
}
},
methods: {
async refresh() {
const {data} = await vk.callFunction({
url: 'client/user/kh/getNotaryUnionPayProfile',
})
this.userInfo = {
...(vk.getVuex('$user.userInfo') || {}),
[PROFILE_KEY]: data
}
this.fillForm()
if (!this.extraInfo.agreementUrl && !this.extraInfo.authorizationUrl && !this.extraInfo.unionWechat && !this.extraInfo.platformWechat) {
this.getExtraInfo()
}
},
async getExtraInfo() {
const dictIds = {
agreementUrl: 'd6a300ae6a2f6d98009a50e36a4f0766',
authorizationUrl: 'ed693ef16a2f6db00036fcd95c9dabf8',
unionWechat: 'ed693ef16a2f6dcf0037006c1e6aec14',
platformWechat: 'd6a300ae6a2f6dda009a81bc6b8b1fab'
}
const entries = await Promise.all(Object.entries(dictIds).map(async ([key, id]) => {
const res = await vk.callFunction({
url: 'client/dict/pub/getDetail',
data: {id}
})
return [key, res.content || '']
}))
this.extraInfo = Object.fromEntries(entries)
},
fillForm() {
const profile = this.profile
this.form = {
businessLicenseFile: profile.businessLicenseFile || '',
legalIdCardFront: profile.legalIdCardFront || '',
legalIdCardBack: profile.legalIdCardBack || '',
settlementAccountFiles: profile.settlementAccountFiles || [],
shopPhotos: profile.shopPhotos || [],
legalMobile: profile.legalMobile || '',
hasAgent: !!profile.hasAgent,
agentIdCardFront: profile.agentIdCardFront || '',
agentIdCardBack: profile.agentIdCardBack || '',
agentAuthorizationFiles: profile.agentAuthorizationFiles || [],
platformAgreementFiles: profile.platformAgreementFiles || [],
platformAuthorizationFiles: profile.platformAuthorizationFiles || []
}
},
async submit() {
await vk.callFunction({
url: 'client/user/kh/saveNotaryUnionPayProfile',
title: '提交中...',
data: this.form
})
this.$message.success('提交成功')
await this.refresh()
},
openLink(url) {
window.open(url)
}
},
mounted() {
this.refresh()
}
}
</script>