Handy_Cao vor 9 Monaten
Ursprung
Commit
2773563fe9

+ 9 - 0
public/locales/en-US.json

@@ -1410,6 +1410,15 @@
                 "amount": "Amount",
                 "pay": "Pay"
             }
+        },
+        "reciver": {
+            "title": "Choice",
+            "name": "UserName:",
+            "phone_number": "PhoneNo:",
+            "cert_no": "CardNo:",
+            "bank_name": "BankName:",
+            "bank_account": "BankCardNo:",
+            "channel_code": "BankCHannel:"
         }
     },
     "user": {

+ 9 - 0
public/locales/th-TH.json

@@ -1413,6 +1413,15 @@
                 "amount": "ยอดเงิน",
                 "pay": "ชำระเงิน"
             }
+        },
+        "reciver": {
+            "title": "เลือกข้อมูลผู้รับ",
+            "name": "ผู้รับ:",
+            "phone_number": "หมายเลขโทรศัพท์:",
+            "cert_no": "หมายเลขบัตร:",
+            "bank_name": "ธนาคาร ที่ได้รับ:",
+            "bank_account": "เลขบัตรธนาคาร:",
+            "channel_code": "ช่องทางการธนาคาร:"
         }
     },
     "user": {

+ 9 - 0
public/locales/zh-CN.json

@@ -1413,6 +1413,15 @@
                 "amount": "金额",
                 "pay": "支付"
             }
+        },
+        "reciver": {
+            "title": "选择接收人信息",
+            "name": "接收人:",
+            "phone_number": "电话号码:",
+            "cert_no": "证件号码:",
+            "bank_name": "接收银行:",
+            "bank_account": "银行卡号:",
+            "channel_code": "银行渠道:"
         }
     },
     "user": {

+ 9 - 0
public/locales/zh-TW.json

@@ -1413,6 +1413,15 @@
                 "amount": "金額",
                 "pay": "付款"
             }
+        },
+        "reciver": {
+            "title": "選擇接收人信息",
+            "name": "接收人:",
+            "phone_number": "電話號碼:",
+            "cert_no": "證件號碼:",
+            "bank_name": "接收銀行:",
+            "bank_account": "銀行卡號:",
+            "channel_code": "銀行渠道:"
         }
     },
     "user": {

+ 25 - 9
src/packages/tss/views/bank/wallet/components/deposit/Index.vue

@@ -43,12 +43,9 @@
                         <app-select v-model="method_type" :options="methodTypes" @confirm="onMethodTypeChange"/>
                     </template>
                 </Field>
-                <Field v-if="sign.ismix === 1 && bank_code != ''" :label="$t('banksign.bankname1')" name="bank_code" is-link >
-                    <template #input>
-                        <app-select v-model="bank_code" :options="channel_banks"
-                            :optionProps="{ label: 'bank_name', value: 'bank_code' }" />
-                    </template>
-                </Field>
+                <Field v-if="sign.ismix === 1 && channel_banks.length != 0" :label="$t('banksign.bankname1')" 
+                    :placeholder="$t('banksign.Pleaseselectyourbank')" name="bank_code" v-model="hyBankName"
+                    @click-input="showSelect = true" :rules="formRules.hyBankName" is-link />
             </CellGroup>
             <CellGroup>
                 <Cell :title="$t('banksign.wallet.deposit.platformdepositbankname')" v-if="msg_320">
@@ -90,6 +87,7 @@
             </div>
         </template>
         <component ref="componentRef" :is="componentMap.get(componentId)" @closed="closeComponent" v-if="componentId" />
+        <SelectBank v-model:show="showSelect" :data-list="channel_banks" @change="onSelectBankChange" />
     </app-view>
 </template>
 
@@ -124,6 +122,17 @@ const msg_322 = getSystemParamValue('322')
 const msg_323 = getSystemParamValue('323')
 const msg_324 = getSystemParamValue('324')
 
+const hyBankName = shallowRef('')
+// 弹出客户选择界面
+const showSelect = shallowRef(false) 
+// 选择银行
+const SelectBank = defineAsyncComponent(() => import('../hybank/Index.vue'))
+
+const onSelectBankChange = (item: Model.HybridBank) => {
+    hyBankName.value = item.bank_name
+    bank_code.value = item.bank_code
+}
+
 const componentMap = new Map<string, unknown>([
     ['inoutapply', defineAsyncComponent(() => import('../inoutapply/Index.vue'))], // 申请流水
 ])
@@ -152,17 +161,20 @@ const onHibirdChange = (code: string) => {
         channel_banks.value = hybird.in_bank_infos[method_type.value]
         if (channel_banks.value.length != 0) {
             bank_code.value = channel_banks.value[0].bank_code
-            console.log(method_types.value, method_type.value, hybird.in_bank_infos[method_type.value], bank_code.value)
+            hyBankName.value = channel_banks.value[0].bank_name
         }
     }
 }
 
 const onMethodTypeChange = (code: string) => {
-     // 默认选择第一个下面的银行类型
-     const hybird = hybrids.value.filter(e => e.channel_code === channel_code.value)[0]
+    // 默认选择第一个下面的银行类型
+    const hybird = hybrids.value.filter(e => e.channel_code === channel_code.value)[0]
+    bank_code.value = ''
+    hyBankName.value = ''
     channel_banks.value = hybird.in_bank_infos[code]
     if (channel_banks.value.length != 0) {
         bank_code.value = channel_banks.value[0].bank_code
+        hyBankName.value = channel_banks.value[0].bank_name
     }
 }
 
@@ -179,6 +191,10 @@ const formRules: { [key: string]: FieldRule[] } = {
             const ismandatory = Number(getSystemParamValue('316'))
             return ismandatory === 0 ? true : !!certificate_photo_url.value
         }
+    }],
+    hyBankName: [{
+        message: t('banksign.Pleaseselectyourbank'),
+        required: true
     }]
 }
 

+ 68 - 0
src/packages/tss/views/bank/wallet/components/hybank/Index.vue

@@ -0,0 +1,68 @@
+<template>
+    <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal">
+        <app-view class="g-form">
+            <template #header>
+                <app-navbar :title="$t('banksign.tips14')">
+                    <template #footer>
+                        <Form action="/">
+                            <Search :placeholder="$t('banksign.tips15')" v-model="keyword" />
+                        </Form>
+                    </template>
+                </app-navbar>
+            </template>
+            <RadioGroup v-model="checked" style="padding-bottom: 50px;" v-if="bankList.length">
+                <CellGroup :title="$t('banksign.tips15')">
+                    <template v-for="(item, index) in bankList" :key="index">
+                        <Cell :title="item.bank_name" :label="item.bank_code" clickable @click="onChange(item)">
+                            <template #icon>
+                                <Radio :name="item" style="padding: 0 10px;" />
+                            </template>
+                        </Cell>
+                    </template>
+                </CellGroup>
+            </RadioGroup>
+            <Empty :description="$t('banksign.search.nodatas')" v-else />
+        </app-view>
+    </app-modal>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, computed, toRaw, PropType } from 'vue'
+import { Form, Search, Empty, Cell, CellGroup, RadioGroup, Radio } from 'vant'
+import AppModal from '@/components/base/modal/index.vue'
+
+const props = defineProps({
+    show: {
+        type: Boolean,
+        default: false
+    },
+    dataList: {
+        type: Array as PropType<Model.HybridBank[]>,
+        default: () => []
+    }
+})
+
+const emit = defineEmits(['update:show', 'change'])
+const keyword = shallowRef('')
+const checked = shallowRef<Model.HybridBank>()
+
+const showModal = computed({
+    get: () => props.show,
+    set: (val) => emit('update:show', val)
+})
+
+const bankList = computed(() => {
+    const filteredList = props.dataList.filter(e => {
+        const a = e.bank_name.toLowerCase()
+        const b = keyword.value.toLowerCase()
+        return !b || a.includes(b)
+    })
+    return filteredList.slice(0, 30)
+})
+
+const onChange = (item: Model.HybridBank) => {
+    checked.value = item
+    showModal.value = false
+    emit('change', toRaw(item))
+}
+</script>

+ 23 - 8
src/packages/tss/views/bank/wallet/components/withdraw/Index.vue

@@ -41,11 +41,9 @@
                         <app-select v-model="method_type" :options="methodTypes" @confirm="onMethodTypeChange"/>
                     </template>
                 </Field>
-                <Field v-if="sign.ismix === 1 && channel_banks.length != 0" :label="$t('banksign.bankname1')" name="bank_code" is-link >
-                    <template #input>
-                        <app-select v-model="bank_code" :options="channel_banks" :optionProps="{ label: 'bank_name', value: 'bank_code' }" />
-                    </template>
-                </Field>
+                <Field v-if="sign.ismix === 1 && channel_banks.length != 0" :label="$t('banksign.bankname1')" 
+                    :placeholder="$t('banksign.Pleaseselectyourbank')" name="bank_code" v-model="hyBankName" 
+                    @click-input="showSelect = true" :rules="formRules.hyBankName" is-link />
                 <Field v-if="sign.ismix === 1" type="number" name="bank_account" :label="$t('banksign.bankno')" maxlength="30" v-model.trim="onboard.bank_account" :placeholder="$t('banksign.Pleaseenterbankaccountno')"
                         :rules="formRules.bank_account" />
             </CellGroup>
@@ -75,6 +73,7 @@
         </template>
     </app-view>
     <component :is="Reciver" v-model:show="showReciver" @change="onChange" />
+    <SelectBank v-model:show="showSelect" :data-list="channel_banks" @change="onSelectBankChange" />
 </template>
 
 <script lang="ts" setup>
@@ -107,6 +106,12 @@ const { userinfotype } = userStore.userInfo
 const showReciver = shallowRef(false)
 const Reciver = defineAsyncComponent(() => import('./reciver/Index.vue'))
 
+const hyBankName = shallowRef('')
+// 弹出客户选择界面
+const showSelect = shallowRef(false) 
+// 选择银行
+const SelectBank = defineAsyncComponent(() => import('../hybank/Index.vue'))
+
 const onboard = reactive<Partial<Model.HybridReceiverOnboard>>({
     receiver_type: userinfotype === 1 ? 'Individual' : 'Organization'
 })
@@ -115,6 +120,11 @@ const methodTypes = computed(() => {
     return method_types.value.map(e => { return { label: e, value: e } })
 })
 
+const onSelectBankChange = (item: Model.HybridBank) => {
+    hyBankName.value = item.bank_name
+    bank_code.value = item.bank_code
+}
+
 // 选择接收人信息
 const onChange = (item: Model.HybridReceiverOnboard) => {
     channel_code.value = item.channel_code
@@ -136,17 +146,18 @@ const onHibirdChange = (code: string) => {
         channel_banks.value = hybird.out_bank_infos[method_type.value]
         if (channel_banks.value.length != 0) {
             bank_code.value = channel_banks.value[0].bank_code
-            console.log(method_types.value, method_type.value, hybird.out_bank_infos[method_type.value], bank_code.value)
+            hyBankName.value = channel_banks.value[0].bank_name
         }
     }
 }
 
 const onMethodTypeChange = (code: string) => {
-     // 默认选择第一个下面的银行类型
-     const hybird = hybrids.value.filter(e => e.channel_code === channel_code.value)[0]
+    // 默认选择第一个下面的银行类型
+    const hybird = hybrids.value.filter(e => e.channel_code === channel_code.value)[0]
     channel_banks.value = hybird.out_bank_infos[code]
     if (channel_banks.value.length != 0) {
         bank_code.value = channel_banks.value[0].bank_code
+        hyBankName.value = channel_banks.value[0].bank_name
     }
 }
 
@@ -176,6 +187,10 @@ const formRules: { [key: string]: FieldRule[] } = {
     bank_account: [{
         required: true,
         message: t('banksign.Pleaseenterbankno'),
+    }],
+    hyBankName: [{
+        message: t('banksign.Pleaseselectyourbank'),
+        required: true
     }]
 }
 

+ 7 - 7
src/packages/tss/views/bank/wallet/components/withdraw/reciver/Index.vue

@@ -2,7 +2,7 @@
     <app-modal direction="right-top" height="100%" width="100%">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="选择接收人信息" @back="closed" />
+                <app-navbar :title="$t('banksign.reciver.title')" @back="closed" />
             </template>
             <RadioGroup class="g-form__container" v-model="checkedRow" v-if="dataList.length">
                 <CellGroup v-for="(item, index) in dataList" :key="index" @click="onChange(item)" inset>
@@ -11,27 +11,27 @@
                             <Radio :name="item" checked-color="#ee0a24">
                                 <ul style="margin-left: 10px;">
                                     <li>
-                                        <span>接收人:</span>
+                                        <span>{{ $t('banksign.reciver.name') }}</span>
                                         <span>{{ item.name }}</span>
                                     </li>
                                     <li>
-                                        <span>电话号码:</span>
+                                        <span>{{ $t('banksign.reciver.phone_number') }}</span>
                                         <span>{{ item.phone_number }}</span>
                                     </li>
                                     <li>
-                                        <span>证件号码:</span>
+                                        <span>{{ $t('banksign.reciver.cert_no') }}</span>
                                         <span>{{ item.cert_no }}</span>
                                     </li>
                                     <li>
-                                        <span>接收银行:</span>
+                                        <span>{{ $t('banksign.reciver.bank_name') }}</span>
                                         <span>{{ item.bank_name }}</span>
                                     </li>
                                     <li>
-                                        <span>银行卡号:</span>
+                                        <span>{{ $t('banksign.reciver.bank_account') }}</span>
                                         <span>{{ item.bank_account }}</span>
                                     </li>
                                     <li>
-                                        <span>银行渠道:</span>
+                                        <span>{{ $t('banksign.reciver.channel_code') }}</span>
                                         <span>{{ item.channel_code }}</span>
                                     </li>
                                 </ul>