+
+
+
+ 订单
+
+
+ {row.order_no}
+
+
+ {row.listing_no ? (
+
+
+ 商品
+
+
+ {row.listing_no}
+
+
+ ) : null}
+
{row.created_at ? new Date(row.created_at).toLocaleString('zh-CN', { hour12: false }) : '-'}
@@ -238,14 +320,18 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
},
{
title: '商品与游戏',
- minWidth: 220,
+ width: 260,
render: (_: unknown, row: DistributionOrder) => (
-
- {row.title || (row.listing_no ? `商品 #${row.listing_no}` : `订单商品 #${row.order_id}`)}
+
+ {row.title || `商品 #${row.listing_no || row.order_id}`}
- {row.game_name && {row.game_name}}
+ {row.game_name && {formatGameName(row.game_name)}}
{row.server_region && {row.server_region}}
{row.login_platform && {row.login_platform}}
{row.rent_duration_hours ? 租期: {row.rent_duration_hours}h : null}
@@ -255,28 +341,30 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
},
{
title: '租客',
- width: 140,
+ width: 130,
render: (_: unknown, row: DistributionOrder) => (
-
{row.renter_nickname || '平台租客'}
-
+ {row.renter_nickname || '平台租客'}
+
{maskPhone(row.renter_phone)}
),
},
{
- title: '实付租金 / 押金',
+ title: '实付 / 押金',
width: 140,
render: (_: unknown, row: DistributionOrder) => {
const netPaid = row.net_paid_amount_cent || row.gross_paid_amount_cent || 0
return (
-
+
{formatMoney(netPaid)}
{row.deposit_amount_cent ? (
- 押金: {formatMoney(row.deposit_amount_cent)}
+
+ 押金: {formatMoney(row.deposit_amount_cent)}
+
) : null}
)
@@ -284,30 +372,42 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
},
{
title: '本站净收益',
- width: 180,
+ width: 150,
render: (_: unknown, row: DistributionOrder) => {
const earning = row.distributor_earning_cent ?? 0
+ const isSell = row.distributor_role?.includes('sell')
+ const isRecv = row.distributor_role?.includes('receive')
const roleLabel =
- row.distributor_role === 'seller'
- ? '售出方'
- : row.distributor_role === 'receiver'
- ? '收号方'
- : row.distributor_role === 'two_party_distributor'
- ? '分销方'
+ isSell && isRecv
+ ? '自收自售'
+ : isSell
+ ? '渠道代销'
+ : isRecv
+ ? '号源出租'
: '本站收益'
+ const tagColor =
+ isSell && isRecv
+ ? 'purple'
+ : isSell
+ ? 'green'
+ : isRecv
+ ? 'blue'
+ : earning > 0
+ ? 'green'
+ : 'default'
return (
-
+
+{formatMoney(earning)}
- 0 ? 'green' : 'default'} style={{ fontSize: 11 }}>
+
{roleLabel}
{row.distributor_markup_cent && row.distributor_markup_cent > 0 ? (
-
- 含自主溢价: +{formatMoney(row.distributor_markup_cent)}
+
+ 含加价: +{formatMoney(row.distributor_markup_cent)}
) : null}
@@ -315,22 +415,11 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
},
},
{
- title: '订单履约状态',
- width: 120,
+ title: '履约状态',
+ width: 110,
render: (_: unknown, row: DistributionOrder) => {
const conf = ORDER_STATUS_MAP[row.status] || { label: row.status, color: 'default' }
- return (
-
-
{conf.label}
- {row.refund_status && row.refund_status !== 'none' && (
-
-
- 退款: {row.refund_status}
-
-
- )}
-
- )
+ return {conf.label}
},
},
{
@@ -346,12 +435,14 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
},
{
title: '操作',
- width: 110,
+ width: 90,
+ fixed: 'right' as const,
render: (_: unknown, row: DistributionOrder) => (
}
+ style={{ padding: 0 }}
onClick={() => {
setSelectedOrder(row)
setDrawerVisible(true)
@@ -474,7 +565,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
{row.title || '无标题'}
- {row.game_name}
+ {formatGameName(row.game_name)}
{row.server_region && {row.server_region}}
{row.login_platform && {row.login_platform}}
{row.rank_level && {row.rank_level}}
@@ -604,6 +695,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
loading={orderLoading}
dataSource={orders}
columns={orderColumns}
+ scroll={{ x: 1200 }}
pagination={{
current: orderPage,
pageSize,
@@ -657,6 +749,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
loading={orderLoading}
dataSource={orders}
columns={orderColumns}
+ scroll={{ x: 1200 }}
pagination={{
current: orderPage,
pageSize,
@@ -741,6 +834,22 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
size="small"
column={2}
items={[
+ {
+ key: 'order_no',
+ label: '订单编号',
+ children: {selectedOrder.order_no},
+ },
+ {
+ key: 'listing_no',
+ label: '商品编号',
+ children: selectedOrder.listing_no ? (
+
+ {selectedOrder.listing_no}
+
+ ) : (
+ '-'
+ ),
+ },
{
key: 'title',
label: '商品名称',
@@ -750,7 +859,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
{
key: 'game',
label: '游戏 / 区服',
- children: `${selectedOrder.game_name || '-'} / ${selectedOrder.server_region || '-'}`,
+ children: `${formatGameName(selectedOrder.game_name) || '-'} / ${selectedOrder.server_region || '-'}`,
},
{
key: 'platform',
@@ -781,6 +890,20 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
),
},
+ {
+ key: 'refund_status',
+ label: '资金原路退还',
+ children:
+ selectedOrder.refund_status && selectedOrder.refund_status !== 'none' ? (
+
+ {selectedOrder.status === 'completed' && selectedOrder.refund_status === 'refunded'
+ ? '已退还押金/租金差额'
+ : REFUND_STATUS_MAP[selectedOrder.refund_status]?.label || selectedOrder.refund_status}
+
+ ) : (
+ '无退款'
+ ),
+ },
{
key: 'created_at',
label: '下单时间',
@@ -837,10 +960,12 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
本分销站角色:
- {selectedOrder.distributor_role === 'seller'
- ? '售出方 (享 40% 提成分润 + 100% 自主加价溢价)'
- : selectedOrder.distributor_role === 'receiver'
- ? '收号方 (享 35% 提成分润)'
+ {selectedOrder.distributor_role?.includes('sell') && selectedOrder.distributor_role?.includes('receive')
+ ? '自收自售 (独享全部分润与自主溢价)'
+ : selectedOrder.distributor_role?.includes('sell')
+ ? '售出方 / 渠道代销 (享 40% 提成分润 + 100% 自主加价溢价)'
+ : selectedOrder.distributor_role?.includes('receive')
+ ? '供号方 / 收号出租 (享 35% 提成分润)'
: '分销合作方'}
diff --git a/distribution-admin/src/pages/SiteSettings.tsx b/distribution-admin/src/pages/SiteSettings.tsx
index 67e87e6..20ee8ac 100644
--- a/distribution-admin/src/pages/SiteSettings.tsx
+++ b/distribution-admin/src/pages/SiteSettings.tsx
@@ -348,7 +348,7 @@ export default function SiteSettings() {
-
+