From 71bdbf527cd6e70f1d07f3568e5b736a6bea369b Mon Sep 17 00:00:00 2001 From: yml2213 Date: Tue, 4 Aug 2026 11:07:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=AF=E5=88=86=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E4=B8=8E=E5=95=86=E6=88=B7=E4=B8=AD=E5=BF=83UI?= =?UTF-8?q?=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/MerchantCenter.tsx | 148 +++++++++++++++++--------- 1 file changed, 99 insertions(+), 49 deletions(-) diff --git a/frontend/src/pages/MerchantCenter.tsx b/frontend/src/pages/MerchantCenter.tsx index f0b93b9..a85b06a 100644 --- a/frontend/src/pages/MerchantCenter.tsx +++ b/frontend/src/pages/MerchantCenter.tsx @@ -3,12 +3,14 @@ import { useLocation } from 'react-router-dom' import { Button, Card, + Col, Descriptions, Form, Input, InputNumber, Modal, Popconfirm, + Row, Select, Space, Table, @@ -19,7 +21,9 @@ import { } from 'antd' import { ApiOutlined, + ClockCircleOutlined, CopyOutlined, + DollarOutlined, LinkOutlined, PlusOutlined, ReloadOutlined, @@ -28,6 +32,7 @@ import { import type { ColumnsType } from 'antd/es/table' import { merchantApi } from '../api' import { formatDateTime } from '../utils/time' +import { PageHeader } from '../components/PageHeader' import type { ApiClient, ApiCredential, @@ -553,13 +558,13 @@ export default function MerchantCenter({ fixedTab, title = '商户中心' }: Mer ] const ledgerColumns: ColumnsType = [ - { title: '流水号', dataIndex: 'entry_no', width: 300, render: (v) => {v} }, - { title: '类型', dataIndex: 'type', width: 80, render: ledgerTypeTag }, - { title: '金额', dataIndex: 'amount', width: 120, render: moneyWithSign }, - { title: '余额', dataIndex: 'balance_after', width: 120, render: money }, + { title: '流水号', dataIndex: 'entry_no', width: 260, render: (v) => {v} }, + { title: '类型', dataIndex: 'type', width: 90, render: ledgerTypeTag }, + { title: '变动积分', dataIndex: 'amount', width: 130, render: moneyWithSign }, + { title: '结余积分', dataIndex: 'balance_after', width: 130, render: (v) => {money(v)} }, { title: '关联单号', dataIndex: 'reference_no', width: 200, ellipsis: true, render: (v) => v ? {v} : '-' }, - { title: '备注', dataIndex: 'note', width: 150, ellipsis: { showTitle: false }, render: (v) => {v || '-'} }, - { title: '时间', dataIndex: 'created_at', width: 170, render: formatDateTime }, + { title: '备注说明', dataIndex: 'note', width: 220, ellipsis: { showTitle: false }, render: (v) => {v || '-'} }, + { title: '变动时间', dataIndex: 'created_at', width: 170, render: formatDateTime }, ] const apiClientColumns: ColumnsType = [ @@ -645,38 +650,88 @@ export default function MerchantCenter({ fixedTab, title = '商户中心' }: Mer const walletContent = ( - - - {money(wallet?.available_balance ?? 0)} - {money(wallet?.frozen_balance ?? 0)} - {wallet?.currency || 'POINT'} - - {canFinance && ( - - )} - + + +
+
+ 可用余额 +
+
+
+ {(wallet?.available_balance ?? 0).toLocaleString('zh-CN')} + 积分 +
+ {canFinance && ( +
+ 手动划拨/调账 + +
+ )} +
+ + +
+
+ 冻结余额 +
+
+
+ {(wallet?.frozen_balance ?? 0).toLocaleString('zh-CN')} + 积分 +
+
+ 提现/发货预扣 + 0 笔预扣 +
+
+ + +
+
+ 结算币种与状态 +
+
+
+ + {wallet?.currency || 'POINT'} + + + + 账户正常 + +
+
+ 计费方式 + 自动按单扣减 +
+
+ +
+ {canFinance && ( - +
- + - - + 入账 (Credit) + 扣款 (Debit) + 退款 (Refund) + 调账 (Adjust) @@ -796,21 +851,16 @@ export default function MerchantCenter({ fixedTab, title = '商户中心' }: Mer return (
- -
- - {title} - - {!fixedTab && ( - - {merchant ? `${merchant.name} / ${merchant.code}` : '加载中'} · {merchantRole ? roleText(merchantRole) : '-'} - - )} -
- -
+ } loading={loading} onClick={loadAll}> + 刷新 + + } + /> {fixedTab ? fixedTabContent : (