feat(ui): 新增运营后台站点图标并统一登录页品牌标记

- 新增橙色渐变仪表盘图标(SVG / ICO / apple-touch-icon / 192 / 512)
- 登录页侧栏与移动端品牌标记改用同一 BrandMark
- index.html 补齐图标、theme-color 与页面描述,标题改为「运营后台管理中心」
This commit is contained in:
yml2213
2026-10-21 22:10:33 +08:00
parent ef36453694
commit 7a03abf8a1
7 changed files with 68 additions and 3 deletions
+9 -1
View File
@@ -3,7 +3,15 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>order-site react</title>
<meta name="theme-color" content="#f97316" />
<meta
name="description"
content="Order Site 运营后台管理中心:订单、工单、成本与财务的一体化管理平台。"
/>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" href="/favicon.ico" sizes="16x16 32x32 48x48" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<title>运营后台管理中心</title>
</head>
<body>
<div id="root"></div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

+21
View File
@@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="运营后台管理中心">
<defs>
<linearGradient id="brand" x1="6" y1="2" x2="58" y2="62" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#FB923C" />
<stop offset="0.5" stop-color="#F97316" />
<stop offset="1" stop-color="#EA580C" />
</linearGradient>
<linearGradient id="gloss" x1="10" y1="4" x2="40" y2="50" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#FFFFFF" stop-opacity="0.3" />
<stop offset="1" stop-color="#FFFFFF" stop-opacity="0" />
</linearGradient>
</defs>
<rect width="64" height="64" rx="17" fill="url(#brand)" />
<rect width="64" height="64" rx="17" fill="url(#gloss)" />
<g fill="#FFFFFF">
<rect x="15" y="15" width="15" height="19" rx="4.5" />
<rect x="34" y="15" width="15" height="13" rx="4.5" />
<rect x="15" y="38" width="15" height="11" rx="4.5" opacity="0.72" />
<rect x="34" y="32" width="15" height="17" rx="4.5" opacity="0.9" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

@@ -46,6 +46,42 @@ const brandFeatures = [
},
]
/** 与站点图标同源的品牌标记:橙色渐变圆角方块 + 白色仪表盘四宫格。 */
function BrandMark({ size = 42 }: { size?: number }) {
return (
<svg
width={size}
height={size}
viewBox="0 0 64 64"
role="img"
aria-label="运营后台管理中心"
style={{ display: 'block', borderRadius: 10 }}
>
<defs>
<linearGradient
id="orderBrand"
x1="6"
y1="2"
x2="58"
y2="62"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stopColor="#FB923C" />
<stop offset="0.5" stopColor="#F97316" />
<stop offset="1" stopColor="#EA580C" />
</linearGradient>
</defs>
<rect width="64" height="64" rx="17" fill="url(#orderBrand)" />
<g fill="#fff">
<rect x="15" y="15" width="15" height="19" rx="4.5" />
<rect x="34" y="15" width="15" height="13" rx="4.5" />
<rect x="15" y="38" width="15" height="11" rx="4.5" opacity="0.72" />
<rect x="34" y="32" width="15" height="17" rx="4.5" opacity="0.9" />
</g>
</svg>
)
}
export default function AdminLoginPage() {
const navigate = useNavigate()
const { message } = App.useApp()
@@ -188,7 +224,7 @@ export default function AdminLoginPage() {
<aside className="auth-brand">
<div className="auth-brand-logo">
<span className="auth-logo-mark">
<DashboardOutlined />
<BrandMark size={42} />
</span>
<strong>Order Site Admin</strong>
</div>
@@ -218,7 +254,7 @@ export default function AdminLoginPage() {
<div className="auth-form-card">
<div className="auth-mobile-brand">
<span className="auth-logo-mark">
<DashboardOutlined />
<BrandMark size={36} />
</span>
<strong>Order Site Admin</strong>
</div>