style(distribution): 完成分销后台品牌与登录页轻改

This commit is contained in:
yml2213
2026-10-30 12:52:38 +08:00
parent e8a20ebea7
commit d96e07e2d3
22 changed files with 343 additions and 88 deletions
+6 -6
View File
@@ -596,7 +596,7 @@ export default function Accounts() {
icon={<SyncOutlined spin={syncing} />}
loading={syncing}
onClick={handleOpenSyncModal}
style={{ background: '#1677ff' }}
style={{ background: '#1e4d42' }}
>
一键同步主站商品
</Button>
@@ -660,7 +660,7 @@ export default function Accounts() {
{/* Batch actions */}
{selectedRowKeys.length > 0 && (
<Space>
<Typography.Text strong style={{ color: '#1677ff' }}>
<Typography.Text strong style={{ color: '#1e4d42' }}>
已选 {selectedRowKeys.length} 项
</Typography.Text>
<Button
@@ -776,7 +776,7 @@ export default function Accounts() {
className="mono-code"
style={{
fontSize: 13,
color: '#1677ff',
color: '#1e4d42',
whiteSpace: 'nowrap',
wordBreak: 'keep-all',
display: 'inline-flex',
@@ -1004,7 +1004,7 @@ export default function Accounts() {
</Col>
<Col span={12}>
<Typography.Text type="secondary">主站基准价:</Typography.Text>
<strong style={{ color: '#1677ff' }}>¥{((targetAccount.price_cent || 0) / 100).toFixed(2)}</strong>
<strong style={{ color: '#1e4d42' }}>¥{((targetAccount.price_cent || 0) / 100).toFixed(2)}</strong>
</Col>
<Col span={12}>
<Typography.Text type="secondary">主站基准比例:</Typography.Text>
@@ -1265,7 +1265,7 @@ export default function Accounts() {
<Modal
title={
<Space>
<SyncOutlined style={{ color: '#1677ff' }} />
<SyncOutlined style={{ color: '#1e4d42' }} />
<span>一键同步主站商品设置</span>
</Space>
}
@@ -1362,7 +1362,7 @@ export default function Accounts() {
<Statistic
title="已在货架保持"
value={syncResult?.skipped_count ?? 0}
valueStyle={{ color: '#1677ff', fontWeight: 'bold' }}
valueStyle={{ color: '#1e4d42', fontWeight: 'bold' }}
suffix="个"
/>
</Card>
@@ -235,7 +235,7 @@ export default function Announcements() {
<Card>
<Space direction="vertical" size="small" style={{ width: '100%' }}>
<Space align="center" size={8}>
<BellOutlined style={{ color: '#1677ff' }} />
<BellOutlined style={{ color: '#1e4d42' }} />
<Typography.Title level={4} style={{ margin: 0 }}>
公告中心
</Typography.Title>
+5 -5
View File
@@ -260,7 +260,7 @@ export default function Dashboard() {
title="今日收号 / 累计收号"
value={analytics?.today_received_count ?? 0}
suffix={`/ ${analytics?.total_received_count ?? 0} 个`}
valueStyle={{ color: '#1677ff', fontWeight: 'bold' }}
valueStyle={{ color: '#1e4d42', fontWeight: 'bold' }}
/>
<div style={{ marginTop: 8 }}>
<Link to="/receive" style={{ fontSize: 12 }}>查看收号资产 <ArrowRightOutlined /></Link>
@@ -300,9 +300,9 @@ export default function Dashboard() {
<Statistic
title="钱包可提现余额"
value={((analytics?.available_balance_cent ?? 0) / 100).toFixed(2)}
prefix={<WalletOutlined style={{ color: '#1677ff' }} />}
prefix={<WalletOutlined style={{ color: '#1e4d42' }} />}
suffix="元"
valueStyle={{ color: '#1677ff', fontWeight: 'bold' }}
valueStyle={{ color: '#1e4d42', fontWeight: 'bold' }}
/>
<div style={{ marginTop: 8 }}>
<Link to="/wallet" style={{ fontSize: 12 }}>立即提现 <ArrowRightOutlined /></Link>
@@ -422,7 +422,7 @@ export default function Dashboard() {
className="mono-code"
style={{
fontSize: 13,
color: '#1677ff',
color: '#1e4d42',
fontWeight: 600,
whiteSpace: 'nowrap',
wordBreak: 'keep-all',
@@ -461,7 +461,7 @@ export default function Dashboard() {
title: '实付金额',
width: 120,
render: (_: unknown, row: DistributionOrder) => (
<Typography.Text strong style={{ color: '#1677ff', fontSize: 15, whiteSpace: 'nowrap' }}>
<Typography.Text strong style={{ color: '#1e4d42', fontSize: 15, whiteSpace: 'nowrap' }}>
{formatMoney(row.net_paid_amount_cent || row.gross_paid_amount_cent || 0)}
</Typography.Text>
),
+24 -7
View File
@@ -1,7 +1,8 @@
import { useState } from 'react'
import { Card, Form, Input, Button, Alert, Typography, Space } from 'antd'
import { UserOutlined, LockOutlined, SafetyCertificateOutlined } from '@ant-design/icons'
import { UserOutlined, LockOutlined } from '@ant-design/icons'
import { login, type CurrentMember } from '../api'
import { BrandLogo } from '../BrandLogo'
interface LoginProps {
onSuccess: (member: CurrentMember) => void
@@ -28,16 +29,32 @@ export default function Login({ onSuccess }: LoginProps) {
return (
<div className="login-container">
<aside className="login-brand">
<BrandLogo height={46} variant="light" className="login-brand__logo" />
<div className="login-brand__eyebrow">JIEYOU · DISTRIBUTION</div>
<h1>
分销运营台
<span>把站点、订单与结算放在一处</span>
</h1>
<p>独立站点、独立流水与周期对账。每一笔分销收益都能回溯到订单。</p>
<ul>
<li>多站点隔离,权限按角色收敛</li>
<li>订单归属与分成比例逐单留痕</li>
<li>结算批次、钱包与提现统一核对</li>
</ul>
<span className="login-brand__seal">解忧</span>
</aside>
<Card className="login-card" bordered={false}>
<div className="login-header">
<div className="login-logo">
<SafetyCertificateOutlined style={{ fontSize: 32, color: '#1677ff' }} />
<div className="login-header__mobile-logo">
<BrandLogo height={34} />
</div>
<Typography.Title level={3} style={{ margin: '12px 0 4px' }}>
HFB 分销系统
<Typography.Title level={3} style={{ margin: '0 0 6px' }}>
登录分销台
</Typography.Title>
<Typography.Text type="secondary">
独立分销商 · 多站点综合管理后台
使用分销管理员账号进入 · distribution.zuhaoc.com
</Typography.Text>
</div>
@@ -83,7 +100,7 @@ export default function Login({ onSuccess }: LoginProps) {
block
style={{ height: 44, fontWeight: 500 }}
>
登录分销后台
进入解忧分销台
</Button>
</Form.Item>
</Form>
+6 -6
View File
@@ -348,7 +348,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
copyable={{ text: row.listing_no }}
style={{
fontSize: 13,
color: '#1677ff',
color: '#1e4d42',
fontWeight: 600,
fontFamily: 'monospace',
whiteSpace: 'nowrap',
@@ -406,7 +406,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
const netPaid = row.net_paid_amount_cent || row.gross_paid_amount_cent || 0
return (
<div>
<Typography.Text strong style={{ color: '#1677ff', fontSize: 15, whiteSpace: 'nowrap', display: 'block' }}>
<Typography.Text strong style={{ color: '#1e4d42', fontSize: 15, whiteSpace: 'nowrap', display: 'block' }}>
{formatMoney(netPaid)}
</Typography.Text>
{row.deposit_amount_cent ? (
@@ -611,7 +611,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
strong
style={{
fontSize: 13,
color: '#1677ff',
color: '#1e4d42',
fontFamily: 'monospace',
whiteSpace: 'nowrap',
display: 'inline-flex',
@@ -908,7 +908,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
).toFixed(2)}
precision={2}
prefix="¥"
valueStyle={{ color: '#1677ff' }}
valueStyle={{ color: '#1e4d42' }}
/>
</Col>
<Col span={8}>
@@ -952,7 +952,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
copyable={{ text: selectedOrder.listing_no, tooltips: ['复制商品编号', '已复制'] }}
strong
className="mono-code"
style={{ color: '#1677ff', fontSize: 13, whiteSpace: 'nowrap', wordBreak: 'keep-all', display: 'inline-flex', alignItems: 'center' }}
style={{ color: '#1e4d42', fontSize: 13, whiteSpace: 'nowrap', wordBreak: 'keep-all', display: 'inline-flex', alignItems: 'center' }}
>
{selectedOrder.listing_no}
</Typography.Text>
@@ -1040,7 +1040,7 @@ export default function Orders({ kind }: { kind: 'all' | 'sold' | 'receive' }) {
>
<div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 8 }}>
<span style={{ color: '#595959' }}>1. 租客实付租金总额:</span>
<strong style={{ color: '#1677ff' }}>
<strong style={{ color: '#1e4d42' }}>
¥
{(
(selectedOrder.net_paid_amount_cent || selectedOrder.gross_paid_amount_cent || 0) /
+2 -2
View File
@@ -146,8 +146,8 @@ export default function Rules() {
>
<Space direction="vertical" style={{ width: '100%' }}>
<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
<DollarCircleOutlined style={{ color: '#1677ff', fontSize: 20 }} />
<Typography.Text strong style={{ fontSize: 16, color: '#0958d9' }}>
<DollarCircleOutlined style={{ color: '#1e4d42', fontSize: 20 }} />
<Typography.Text strong style={{ fontSize: 16, color: '#153a32' }}>
卖号分成 40%
</Typography.Text>
</div>
@@ -625,7 +625,7 @@ export default function SiteSettings() {
<Space direction="vertical" style={{ width: '100%' }} size="middle">
<div>
<Space align="center">
<MessageOutlined style={{ fontSize: 18, color: '#1677ff' }} />
<MessageOutlined style={{ fontSize: 18, color: '#1e4d42' }} />
<Typography.Title level={5} style={{ margin: 0 }}>
独立短信验证码配置
</Typography.Title>
@@ -1277,8 +1277,8 @@ export default function SiteSettings() {
<img src={logoUrl} alt="Logo" style={{ height: 26, objectFit: 'contain' }} />
) : (
<span style={{ display: 'flex', flexDirection: 'column' }}>
<strong style={{ fontSize: 14, color: '#1677ff' }}>
{currentSite?.site_name || 'HFB 分销商城'}
<strong style={{ fontSize: 14, color: '#1e4d42' }}>
{currentSite?.site_name || '解忧分销商城'}
</strong>
<small style={{ fontSize: 10, color: '#94a3b8' }}>
{storefrontText.tagline.trim() || DEFAULT_STOREFRONT_TEXT.tagline}
@@ -1405,7 +1405,7 @@ export default function SiteSettings() {
>
<div>{footerInfo.copyright || `© 2026 ${currentSite?.site_name || '分销网'}`}</div>
{footerInfo.icp && <div>{footerInfo.icp}</div>}
{footerInfo.contact && <div style={{ color: '#1677ff' }}>{footerInfo.contact}</div>}
{footerInfo.contact && <div style={{ color: '#1e4d42' }}>{footerInfo.contact}</div>}
</div>
</div>
</Card>
+1 -1
View File
@@ -301,7 +301,7 @@ export default function Sites({ isSuperadmin = true }: { isSuperadmin?: boolean
width: 180,
render: (v: string) => (
<Space>
<ShopOutlined style={{ color: '#1677ff' }} />
<ShopOutlined style={{ color: '#1e4d42' }} />
<strong>{v}</strong>
</Space>
),
+5 -5
View File
@@ -155,7 +155,7 @@ export default function Users() {
width: 170,
render: (phone: string) => (
<Space size="small">
<Typography.Text strong style={{ fontFamily: 'monospace', fontSize: 13, color: '#1677ff' }}>
<Typography.Text strong style={{ fontFamily: 'monospace', fontSize: 13, color: '#1e4d42' }}>
{phone}
</Typography.Text>
<Tooltip title={copiedPhone === phone ? '已复制' : '点击复制完整手机号'}>
@@ -179,7 +179,7 @@ export default function Users() {
size="small"
src={row.avatar_url || undefined}
icon={!row.avatar_url ? <UserOutlined /> : undefined}
style={{ backgroundColor: '#1677ff' }}
style={{ backgroundColor: '#1e4d42' }}
/>
<Typography.Text style={{ fontSize: 13 }}>{row.nickname || '-'}</Typography.Text>
</Space>
@@ -351,11 +351,11 @@ export default function Users() {
<Statistic
title="关联用户总规模"
value={total}
prefix={<UserOutlined style={{ color: '#1677ff' }} />}
prefix={<UserOutlined style={{ color: '#1e4d42' }} />}
suffix="人"
valueStyle={{ color: '#1677ff', fontWeight: 'bold' }}
valueStyle={{ color: '#1e4d42', fontWeight: 'bold' }}
/>
<div style={{ marginTop: 6, fontSize: 12, color: '#1677ff' }}>
<div style={{ marginTop: 6, fontSize: 12, color: '#1e4d42' }}>
本站注册或产生过消费行为的全部用户总计
</div>
</Card>
+3 -3
View File
@@ -198,7 +198,7 @@ export default function Wallet() {
<Row gutter={16}>
<Col flex="1">
<Card bordered={false} style={{ background: 'linear-gradient(135deg, #1677ff 0%, #0958d9 100%)', color: '#fff' }}>
<Card bordered={false} style={{ background: 'linear-gradient(135deg, #1e4d42 0%, #153a32 100%)', color: '#fff' }}>
<Statistic
title={<span style={{ color: 'rgba(255,255,255,0.85)' }}>可提现余额</span>}
value={((wallet?.available_balance_cent ?? 0) / 100).toFixed(2)}
@@ -213,9 +213,9 @@ export default function Wallet() {
<Statistic
title="待释放收益 (冷却期内)"
value={((wallet?.pending_release_cent ?? 0) / 100).toFixed(2)}
prefix={<HourglassOutlined style={{ color: '#1677ff' }} />}
prefix={<HourglassOutlined style={{ color: '#1e4d42' }} />}
suffix="元"
valueStyle={{ color: '#1677ff' }}
valueStyle={{ color: '#1e4d42' }}
/>
</Card>
</Col>