This commit is contained in:
parent
27c1c02dcf
commit
6d3a6f4358
|
|
@ -129,6 +129,10 @@ export default {
|
|||
bankAddressPlaceholder: 'Please enter bank address',
|
||||
bankAccount: 'Bank Account',
|
||||
bankAccountPlaceholder: 'Please enter bank account',
|
||||
beneficiaryEnname: 'Beneficiary English Name',
|
||||
beneficiaryEnnamePlaceholder: 'Please enter beneficiary English name',
|
||||
bankTipsTitle: 'Warm Reminder',
|
||||
bankTipsContent: 'It is recommended to use large commercial banks such as ICBC, BOC, CCB, CMB, PSBC, or BOCOM. Rural commercial banks may not be able to receive the transfer. Only single-currency UnionPay cards are supported. A single-currency UnionPay card is a debit card with only UnionPay logo. Cards with both UnionPay and VISA or MasterCard logos cannot receive transfers. To ensure normal withdrawal, please use your own bank card.',
|
||||
nextStep: 'Next Step',
|
||||
confirmWithdraw: 'Confirm Withdraw',
|
||||
submitSuccess: 'Withdraw application submitted',
|
||||
|
|
|
|||
|
|
@ -129,6 +129,10 @@ export default {
|
|||
bankAddressPlaceholder: '请输入银行地址',
|
||||
bankAccount: '银行账号',
|
||||
bankAccountPlaceholder: '请输入银行账号',
|
||||
beneficiaryEnname: '收款人英文名字',
|
||||
beneficiaryEnnamePlaceholder: '请输入收款人英文名字',
|
||||
bankTipsTitle: '温馨提示',
|
||||
bankTipsContent: '建议使用工商银行、中国银行、建设银行、招商银行、邮政储蓄银行、交通银行等大型商业银行,村镇商业银行等可能无法到账。仅支持单币种银联卡。单币种银联卡是指卡标识只有银联的借记卡,如果有银联加VISA或MasterCard一起标识的无法到账,同时为保证取款正常,请使用本人银行卡。',
|
||||
nextStep: '下一步',
|
||||
confirmWithdraw: '确认取款',
|
||||
submitSuccess: '取款申请已提交',
|
||||
|
|
|
|||
|
|
@ -92,28 +92,31 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 钱包地址 -->
|
||||
<el-form-item :label="t('withdraw.dialog.walletAddress')" prop="withdraw_address">
|
||||
<!-- 银行提示(仅 BANK 渠道显示) -->
|
||||
<div v-if="isBankChannel" class="bank-tips">
|
||||
<div class="tips-title">{{ t('withdraw.dialog.bankTipsTitle') }}</div>
|
||||
<div class="tips-content">{{ t('withdraw.dialog.bankTipsContent') }}</div>
|
||||
</div>
|
||||
|
||||
<!-- 钱包地址(TRC/ERC 渠道) -->
|
||||
<el-form-item v-if="isCryptoChannel" :label="t('withdraw.dialog.walletAddress')" prop="withdraw_address">
|
||||
<el-input v-model="formData.withdraw_address" :placeholder="t('withdraw.dialog.walletAddressPlaceholder')" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 用户取款额外字段 (role_id >= 5) -->
|
||||
<template v-if="!isAgent">
|
||||
<!-- 银行信息(BANK 渠道) -->
|
||||
<template v-if="isBankChannel && !isAgent">
|
||||
<el-form-item :label="t('withdraw.dialog.beneficiaryName')" prop="beneficiary_name">
|
||||
<el-input v-model="formData.beneficiary_name"
|
||||
:placeholder="t('withdraw.dialog.beneficiaryNamePlaceholder')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('withdraw.dialog.beneficiaryEnname')" prop="beneficiary_enname">
|
||||
<el-input v-model="formData.beneficiary_enname"
|
||||
:placeholder="t('withdraw.dialog.beneficiaryEnnamePlaceholder')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('withdraw.dialog.bankName')" prop="beneficiary_bank_name">
|
||||
<el-input v-model="formData.beneficiary_bank_name"
|
||||
:placeholder="t('withdraw.dialog.bankNamePlaceholder')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('withdraw.dialog.swiftCode')" prop="swift_bic_code">
|
||||
<el-input v-model="formData.swift_bic_code" :placeholder="t('withdraw.dialog.swiftCodePlaceholder')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('withdraw.dialog.bankAddress')" prop="beneficiary_bank_address">
|
||||
<el-input v-model="formData.beneficiary_bank_address"
|
||||
:placeholder="t('withdraw.dialog.bankAddressPlaceholder')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('withdraw.dialog.bankAccount')" prop="beneficiary_bank_account">
|
||||
<el-input v-model="formData.beneficiary_bank_account"
|
||||
:placeholder="t('withdraw.dialog.bankAccountPlaceholder')" />
|
||||
|
|
@ -144,9 +147,11 @@ const { t } = useI18n()
|
|||
interface Props {
|
||||
visible: boolean
|
||||
channelId?: number
|
||||
channelCode?: string
|
||||
channelInfo?: {
|
||||
id: number
|
||||
symbol?: string
|
||||
channel_code?: string
|
||||
currency?: {
|
||||
symbol: string
|
||||
|
||||
|
|
@ -363,6 +368,21 @@ const totalDeducted = computed(() => {
|
|||
// 快捷金额
|
||||
const quickAmounts = ['100', '500', '1000', '5000']
|
||||
|
||||
// 当前选中的渠道编码(优先从 props 获取,否则从 channelInfo 获取)
|
||||
const currentChannelCode = computed(() => {
|
||||
return props.channelCode || props.channelInfo?.channel_code || ''
|
||||
})
|
||||
|
||||
// 是否为加密货币渠道(TRC/ERC)
|
||||
const isCryptoChannel = computed(() => {
|
||||
return ['TRC', 'ERC', "ADJUST"].includes(currentChannelCode.value)
|
||||
})
|
||||
|
||||
// 是否为银行渠道(BANK)
|
||||
const isBankChannel = computed(() => {
|
||||
return currentChannelCode.value === 'BANK'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formRef = ref<FormInstance>()
|
||||
const formData = ref({
|
||||
|
|
@ -377,6 +397,7 @@ const formData = ref({
|
|||
withdraw_blance: '', // 可用余额使用量
|
||||
// 用户取款额外字段
|
||||
beneficiary_name: '',
|
||||
beneficiary_enname: '',
|
||||
beneficiary_bank_name: '',
|
||||
swift_bic_code: '',
|
||||
beneficiary_bank_address: '',
|
||||
|
|
@ -387,9 +408,8 @@ const formData = ref({
|
|||
const formRules: FormRules = {
|
||||
withdraw_address: [{ required: true, message: '请输入钱包地址', trigger: 'blur' }],
|
||||
beneficiary_name: [{ required: true, message: '请输入收款人姓名', trigger: 'blur' }],
|
||||
beneficiary_enname: [{ required: true, message: '请输入收款人英文名字', trigger: 'blur' }],
|
||||
beneficiary_bank_name: [{ required: true, message: '请输入银行名称', trigger: 'blur' }],
|
||||
swift_bic_code: [{ required: true, message: '请输入SWIFT代码', trigger: 'blur' }],
|
||||
beneficiary_bank_address: [{ required: true, message: '请输入银行地址', trigger: 'blur' }],
|
||||
beneficiary_bank_account: [{ required: true, message: '请输入银行账号', trigger: 'blur' }],
|
||||
}
|
||||
|
||||
|
|
@ -441,13 +461,19 @@ const initData = async () => {
|
|||
channelList.value = res.map((item: any) => ({
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
channel_code: item.channel_code || '',
|
||||
}))
|
||||
} else if (res?.data) {
|
||||
channelList.value = res.data.map((item: any) => ({
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
channel_code: item.channel_code || '',
|
||||
}))
|
||||
}
|
||||
// 如果有默认渠道,设置当前渠道编码
|
||||
if (channelList.value.length > 0) {
|
||||
currentChannelCode.value = channelList.value[0].channel_code || ''
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取渠道列表失败', error)
|
||||
}
|
||||
|
|
@ -610,16 +636,39 @@ const handleSubmit = async () => {
|
|||
}
|
||||
|
||||
if (isAgent.value) {
|
||||
// 用户取款
|
||||
// 用户取款 - 根据渠道类型处理字段
|
||||
if (isCryptoChannel.value) {
|
||||
// 加密货币渠道 - 只传钱包地址,其他字段默认 --
|
||||
params.beneficiary_name = '--'
|
||||
params.beneficiary_enname = '--'
|
||||
params.beneficiary_bank_name = '--'
|
||||
params.beneficiary_bank_account = '--'
|
||||
} else if (isBankChannel.value) {
|
||||
// 银行渠道 - 传银行相关字段
|
||||
params.beneficiary_name = formData.value.beneficiary_name
|
||||
params.beneficiary_enname = formData.value.beneficiary_enname
|
||||
params.beneficiary_bank_name = formData.value.beneficiary_bank_name
|
||||
params.swift_bic_code = formData.value.swift_bic_code
|
||||
params.beneficiary_bank_address = formData.value.beneficiary_bank_address
|
||||
params.beneficiary_bank_account = formData.value.beneficiary_bank_account
|
||||
// 银行渠道不需要钱包地址
|
||||
params.withdraw_address = '--'
|
||||
}
|
||||
// 统一默认 -- 的字段
|
||||
params.swift_bic_code = '--'
|
||||
params.beneficiary_bank_address = '--'
|
||||
|
||||
await withdraw(params)
|
||||
} else {
|
||||
// 代理取款
|
||||
// 代理取款 - 所有未展示字段默认传 --
|
||||
|
||||
if (isBankChannel.value) {
|
||||
params.withdraw_address = '--'
|
||||
}
|
||||
params.beneficiary_name = '--'
|
||||
params.beneficiary_enname = '--'
|
||||
params.beneficiary_bank_name = '--'
|
||||
params.beneficiary_bank_account = '--'
|
||||
params.swift_bic_code = '--'
|
||||
params.beneficiary_bank_address = '--'
|
||||
await agentWithdraw(params)
|
||||
}
|
||||
|
||||
|
|
@ -853,5 +902,26 @@ const handleSubmit = async () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bank-tips {
|
||||
margin-bottom: 20px;
|
||||
padding: 12px 16px;
|
||||
background: #fffbe6;
|
||||
border: 1px solid #ffe58f;
|
||||
border-radius: 4px;
|
||||
|
||||
.tips-title {
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #d48806;
|
||||
}
|
||||
|
||||
.tips-content {
|
||||
font-size: 13px;
|
||||
color: #8c8c8c;
|
||||
line-height: 1.6;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ defineOptions({
|
|||
interface TableRow {
|
||||
id: number
|
||||
name: string
|
||||
channel_code?: string
|
||||
channel_fee: string
|
||||
api_url: string
|
||||
api_appid: string
|
||||
|
|
@ -77,6 +78,7 @@ const getList = async () => {
|
|||
if (res) {
|
||||
tableData.value = res.map((item: any) => ({
|
||||
...item,
|
||||
symbol:item.currency.symbol,
|
||||
statusStr: item.status === 1 ? '正常' : '禁用',
|
||||
}))
|
||||
total.value = res.length
|
||||
|
|
@ -99,6 +101,7 @@ const handleWithdraw = (row: TableRow) => {
|
|||
currentChannelInfo.value = {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
channel_code: row.channel_code,
|
||||
currency: row.currency || 'USD'
|
||||
}
|
||||
withdrawDialogVisible.value = true
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export const tableColumns = [
|
|||
{ label: '渠道费用', prop: 'channel_fee', isNumber: true },
|
||||
{
|
||||
label: '出金货币',
|
||||
prop: 'currency.symbol',
|
||||
prop: 'symbol',
|
||||
type: 'select',
|
||||
placeholder: '请选择入金货币',
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue