完善支付宝提现收款码

This commit is contained in:
yml2213
2026-08-21 00:00:05 +08:00
parent 81a412323b
commit 361b84931f
14 changed files with 362 additions and 35 deletions
@@ -235,9 +235,7 @@ export default function FinancePanel() {
minWidth: 140,
render: (_, row) => (
<ImagePreviewList
files={
row.requestType === 'recharge' ? getRechargeProofs(row) : getWechatWithdrawQrCode(row)
}
files={row.requestType === 'recharge' ? getRechargeProofs(row) : getWithdrawQrCode(row)}
size={48}
/>
),
@@ -516,13 +514,21 @@ export default function FinancePanel() {
</Descriptions.Item>
{reviewState.request.requestType === 'withdraw' &&
reviewState.request.accountChannel === 'alipay' ? (
<Descriptions.Item label="支付宝账号">
{reviewState.request.accountNo ? (
<Typography.Text copyable>{reviewState.request.accountNo}</Typography.Text>
) : (
'-'
)}
</Descriptions.Item>
<>
<Descriptions.Item label="支付宝账号">
{reviewState.request.accountNo ? (
<Typography.Text copyable>{reviewState.request.accountNo}</Typography.Text>
) : (
'-'
)}
</Descriptions.Item>
<Descriptions.Item label="支付宝收款二维码">
<ImagePreviewList
files={getAlipayWithdrawQrCode(reviewState.request)}
size={88}
/>
</Descriptions.Item>
</>
) : null}
{reviewState.request.requestType === 'recharge' ? (
<>
@@ -697,6 +703,30 @@ function getWechatWithdrawQrCode(request: WorkerFinanceRequest): UploadedFile[]
]
}
function getWithdrawQrCode(request: WorkerFinanceRequest): UploadedFile[] {
if (request.accountChannel === 'alipay') return getAlipayWithdrawQrCode(request)
return getWechatWithdrawQrCode(request)
}
function getAlipayWithdrawQrCode(request: WorkerFinanceRequest): UploadedFile[] {
if (request.requestType !== 'withdraw' || request.accountChannel !== 'alipay') return []
const payload = asRecord(request.payload)
const file = asRecord(payload.alipayQrCodeImage)
const url = String(file.url || '').trim()
if (!url) return []
return [
{
url,
mediumUrl: String(file.mediumUrl || '').trim(),
thumbnailUrl: String(file.thumbnailUrl || '').trim(),
objectKey: String(file.objectKey || '').trim(),
filename: String(file.filename || '').trim(),
contentType: String(file.contentType || '').trim(),
size: Number(file.size || 0),
},
]
}
function getRechargePaidAt(request: WorkerFinanceRequest): string {
const payload = asRecord(request.payload)
return String(payload.paidAt || '').trim()
@@ -39,6 +39,7 @@ type WithdrawalAccountFormValues = {
accountChannel?: string
accountName?: string
accountNo?: string
alipayQrCodeImages?: UploadedFile[]
wechatQrCodeImages?: UploadedFile[]
}
@@ -69,6 +70,9 @@ export default function WorkersPanel() {
const [resetPasswordForm] = Form.useForm<{ password: string }>()
const [freezeForm] = Form.useForm<FreezeWorkerFormValues>()
const withdrawalAccountChannel = Form.useWatch('accountChannel', withdrawalAccountForm)
const editingAlipayAccount = withdrawalAccounts.find(
(account) => account.accountChannel === 'alipay',
)
const workersQuery = useQuery({
queryKey: ['admin-worker-platform-workers', status, keyword, workerType, page, pageSize],
@@ -225,6 +229,7 @@ export default function WorkersPanel() {
accountChannel,
accountName: account?.accountName || '',
accountNo: account?.accountNo || '',
alipayQrCodeImages: account?.alipayQrCodeImage ? [account.alipayQrCodeImage] : [],
wechatQrCodeImages: account?.wechatQrCodeImage ? [account.wechatQrCodeImage] : [],
})
}
@@ -240,6 +245,7 @@ export default function WorkersPanel() {
{
accountName: String(values.accountName || '').trim(),
accountNo: String(values.accountNo || '').trim(),
alipayQrCodeImages: values.alipayQrCodeImages || [],
wechatQrCodeImages: values.wechatQrCodeImages || [],
},
)
@@ -559,13 +565,28 @@ export default function WorkersPanel() {
<ImageUpload scene="admin-worker-withdrawal-wechat-qr" scope="admin" maxCount={1} />
</Form.Item>
) : (
<Form.Item
label="支付宝账号"
name="accountNo"
rules={[{ required: true, message: '请输入支付宝账号' }]}
>
<Input placeholder="请输入支付宝账号" />
</Form.Item>
<>
<Form.Item
label="支付宝账号"
name="accountNo"
rules={
editingAlipayAccount ? [] : [{ required: true, message: '请输入支付宝账号' }]
}
>
<Input
placeholder={
editingAlipayAccount ? '历史账户未登记账号,可仅补充二维码' : '请输入支付宝账号'
}
/>
</Form.Item>
<Form.Item
label="支付宝收款二维码"
name="alipayQrCodeImages"
rules={[{ required: true, message: '请上传支付宝收款二维码' }]}
>
<ImageUpload scene="admin-worker-withdrawal-alipay-qr" scope="admin" maxCount={1} />
</Form.Item>
</>
)}
</Form>
</Modal>