feat(realAuth): 添加证件类型和号码功能

- 在实名认证页面添加证件类型和号码输入字段
- 更新国际化文件,添加相关翻译
- 修改个人资料页面,增加证件类型和号码显示
- 更新收集码签名页面,调整身份证件类型选择
This commit is contained in:
xingyy 2025-02-28 11:14:57 +08:00
parent 5e9df53433
commit f03c312b38
9 changed files with 55 additions and 10 deletions

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
const {t} =useI18n()
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
type: [Number, String] type: [Number, String]

View File

@ -138,8 +138,9 @@ initData()
<van-field :label="$t('realAuth.adress')" v-model="formData.address" class="mb-10px" :placeholder="$t('realAuth.adressPlaceholder')"/> <van-field :label="$t('realAuth.adress')" v-model="formData.address" class="mb-10px" :placeholder="$t('realAuth.adressPlaceholder')"/>
<van-field :label="$t('realAuth.bank')" v-model="formData.bankName" class="mb-10px" :placeholder="$t('realAuth.bankPlaceholder')"/> <van-field :label="$t('realAuth.bank')" v-model="formData.bankName" class="mb-10px" :placeholder="$t('realAuth.bankPlaceholder')"/>
<van-field :label="$t('realAuth.bankCard')" v-model="formData.bankNo" class="mb-10px" :placeholder="$t('realAuth.bankCardPlaceholder')"/> <van-field :label="$t('realAuth.bankCard')" v-model="formData.bankNo" class="mb-10px" :placeholder="$t('realAuth.bankCardPlaceholder')"/>
<x-van-select v-model="formData.cardType" :label="$t('realAuth.idCard')" :columns="columns1"/> <x-van-select v-model="formData.cardType" :label="$t('realAuth.idTye')" :columns="columns1"/>
<van-field :label="$t('realAuth.idCard')" v-model="formData.cardId" class="mb-10px" :placeholder="$t('realAuth.idCardPlaceholder')"/> <van-field :label="$t('realAuth.idCard')" v-model="formData.cardId" class="mb-10px" :placeholder="$t('realAuth.idCardPlaceholder')"/>
<x-van-select v-model="formData.gender" :label="$t('realAuth.gender')" :columns="columns"/>
</template> </template>
</div> </div>

View File

@ -1,13 +1,18 @@
<script setup> <script setup>
import {authStore} from "@/stores/auth/index.js"; import {authStore} from "@/stores/auth/index.js";
import {useI18n} from 'vue-i18n' import {useI18n} from 'vue-i18n'
const {t:$t} = useI18n() const {t} = useI18n()
const props = defineProps({ const props = defineProps({
type: { type: {
type: Number, type: Number,
default: 0 default: 0
} }
}) })
const columns1 = ref([
{text: t('realAuth.idCard'), value: '1'},
{text: t('realAuth.passport'), value: '2'},
{text: t('realAuth.other'), value: '3'},
])
const {userInfo}= authStore() const {userInfo}= authStore()
</script> </script>
@ -35,7 +40,7 @@ const {userInfo}= authStore()
<template v-if="type===1"> <template v-if="type===1">
<div class="flex mb-20px" > <div class="flex mb-20px" >
<div class="mr-10px">{{$t('realAuth.name')}}</div> <div class="mr-10px">{{$t('realAuth.name')}}</div>
<div>{{userInfo.realName}}</div> <div>{{userInfo.realName||userInfo.userExtend.realName||''}}</div>
</div> </div>
<div class="flex mb-20px"> <div class="flex mb-20px">
<div class="mr-10px">{{$t('realAuth.gender')}}</div> <div class="mr-10px">{{$t('realAuth.gender')}}</div>
@ -57,6 +62,14 @@ const {userInfo}= authStore()
<div class="mr-10px">{{$t('realAuth.bankCard')}}</div> <div class="mr-10px">{{$t('realAuth.bankCard')}}</div>
<div>{{userInfo.userExtend.bankNo}}</div> <div>{{userInfo.userExtend.bankNo}}</div>
</div> </div>
<div class="flex mb-20px">
<div class="mr-10px">{{$t('realAuth.idTye')}}</div>
<div>{{columns1.find(x=>x.value===userInfo.userExtend.idType)?.text}}</div>
</div>
<div class="flex mb-20px">
<div class="mr-10px">{{$t('realAuth.idNumber')}}</div>
<div>{{userInfo.userExtend.idNo}}</div>
</div>
</template> </template>
</div> </div>
</template> </template>

View File

@ -17,6 +17,11 @@ const { locale } = useI18n()
const {userInfo,selectedZone}= authStore() const {userInfo,selectedZone}= authStore()
const active=ref(locale.value==='zh-CN'?0:1) const active=ref(locale.value==='zh-CN'?0:1)
const { t } = useI18n() const { t } = useI18n()
const columns1 = ref([
{text: t('realAuth.idCard'), value: '1'},
{text: t('realAuth.passport'), value: '2'},
{text: t('realAuth.other'), value: '3'},
])
const form=ref({ const form=ref({
realName: "", realName: "",
sex:'', sex:'',
@ -124,6 +129,12 @@ const goLogin=()=>{
<van-field v-model="form.userExtend.bankNo" :label="$t('realAuth.bankCard')" clearable <van-field v-model="form.userExtend.bankNo" :label="$t('realAuth.bankCard')" clearable
:placeholder="$t('realAuth.bankCardPlaceholder')"></van-field> :placeholder="$t('realAuth.bankCardPlaceholder')"></van-field>
</div> </div>
<div class="border-b-[1.7px] mt-[8px]">
<x-van-select v-model="form.userExtend.idType" :label="$t('realAuth.idTye')" :columns="columns1"/>
</div>
<div class="border-b-[1.7px] mt-[8px]">
<van-field :label="$t('realAuth.idNumber')" v-model="form.userExtend.idNo" class="mb-10px" :placeholder="$t('realAuth.idNumberPlaceholder')"/>
</div>
</div> </div>
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -135,7 +146,7 @@ const goLogin=()=>{
<detail :type="active"></detail> <detail :type="active"></detail>
</van-tab> </van-tab>
</van-tabs> </van-tabs>
<div class="flex justify-between" v-if="statusCode===0"> <div class="flex justify-between shrink-0 mb-20px" v-if="statusCode===0">
<van-button style="width: 151px;height: 48px" color="#E9F1F8" @click="goLogin"> <van-button style="width: 151px;height: 48px" color="#E9F1F8" @click="goLogin">
<div class="text-#2B53AC text-16px">{{ $t('realAuth.cancel') }}</div> <div class="text-#2B53AC text-16px">{{ $t('realAuth.cancel') }}</div>
</van-button> </van-button>

View File

@ -157,7 +157,12 @@
"male": "Male", "male": "Male",
"female": "Female" "female": "Female"
} }
} },
"idTye": "Document Type",
"passport": "passport",
"other": "other",
"idNumber": "ID number",
"idNumberPlaceholder": "Please enter your ID number"
}, },
"detail": { "detail": {
"text1": "Artist", "text1": "Artist",

View File

@ -157,7 +157,12 @@
"male": "男性", "male": "男性",
"female": "女性" "female": "女性"
} }
} },
"idTye": "ドキュメントタイプ",
"passport": "パスポート",
"other": "他の",
"idNumber": "ID番号",
"idNumberPlaceholder": "ID番号を入力してください"
}, },
"detail": { "detail": {
"text1": "アーティスト", "text1": "アーティスト",

View File

@ -157,7 +157,12 @@
"male": "男", "male": "男",
"female": "女" "female": "女"
} }
} },
"idTye": "证件类型",
"passport": "护照",
"other": "其他",
"idNumber": "证件号",
"idNumberPlaceholder": "请输入证件号"
}, },
"detail": { "detail": {
"text1": "作者", "text1": "作者",

View File

@ -208,7 +208,12 @@
"male": "男", "male": "男",
"female": "女" "female": "女"
} }
} },
"idTye": "證件類型",
"passport": "護照",
"other": "其他",
"idNumber": "證件號",
"idNumberPlaceholder": "請輸入證件號"
}, },
"detail": { "detail": {
"text1": "作者", "text1": "作者",

View File

@ -127,7 +127,7 @@ export default defineNuxtConfig({
compatibilityVersion: 4, compatibilityVersion: 4,
}, },
// 指定 Nuxt 应用程序的兼容性日期,确保应用程序在未来的 Nuxt 版本中保持稳定性 // 指定 Nuxt 应用程序的兼容性日期,确保应用程序在未来的 Nuxt 版本中保持稳定性
compatibilityDate: '2025-01-09', compatibilityDate: '2025-02-28',
devServer: { devServer: {
host: '0.0.0.0', // Set the host to 'localhost' host: '0.0.0.0', // Set the host to 'localhost'
port: 3000, // Set the port to 3000 or any other port you prefer port: 3000, // Set the port to 3000 or any other port you prefer