优化展示页 UI:未成年人提示与公告滚动、压缩页脚,统一大锤商行品牌

This commit is contained in:
yml2213
2026-07-13 23:17:08 +08:00
parent da2a6d9faf
commit b82d7c4d1d
3 changed files with 255 additions and 109 deletions
+45 -26
View File
@@ -2,7 +2,6 @@ import CopyOutlined from "@ant-design/icons/es/icons/CopyOutlined";
import DownOutlined from "@ant-design/icons/es/icons/DownOutlined";
import ReloadOutlined from "@ant-design/icons/es/icons/ReloadOutlined";
import SearchOutlined from "@ant-design/icons/es/icons/SearchOutlined";
import StarFilled from "@ant-design/icons/es/icons/StarFilled";
import Alert from "antd/es/alert";
import Button from "antd/es/button";
import ConfigProvider from "antd/es/config-provider";
@@ -119,7 +118,7 @@ export default function App() {
<ConfigProvider
theme={{
token: {
colorPrimary: "#00d7a0",
colorPrimary: "#ff6b00",
borderRadius: 5,
fontFamily: 'Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif',
},
@@ -191,11 +190,11 @@ function Showcase() {
const topBanner = useMemo(
() =>
banners[0] || {
eyebrow: "三角洲行动账号专区",
title: "哈夫币号实时展示",
eyebrow: "大锤商行 · 资源号租赁",
title: "哈夫币资源号实时租赁",
badge: "24H",
pill: "安全交易 · 诚信服务 · 专业保障",
tone: "green",
tone: "orange",
},
[banners]
);
@@ -301,7 +300,7 @@ function Showcase() {
const heroStyle: CSSProperties | undefined = topBanner.image_url
? {
backgroundImage: `linear-gradient(90deg, rgba(17, 28, 31, .9), rgba(17, 28, 31, .42)), url(${topBanner.image_url})`,
backgroundImage: `linear-gradient(90deg, rgba(255, 246, 237, .94), rgba(255, 246, 237, .72)), url(${topBanner.image_url})`,
}
: undefined;
@@ -310,34 +309,34 @@ function Showcase() {
<header className="site-header">
<div className="nav-inner">
<div className="brand">
<span className="brand-mark">
<StarFilled />
</span>
<span className="brand-mark"></span>
<div>
<strong></strong>
<span></span>
<strong></strong>
<span></span>
</div>
</div>
<nav className="nav-links">
<a className="active"></a>
<a></a>
<a></a>
<a></a>
</nav>
<div className="nav-actions">
<span> · </span>
<span> · </span>
<Button type="primary">24h在线客服</Button>
</div>
</div>
<div className="warning-line"></div>
<div className="warning-line" role="note" aria-label="未成年人保护提示">
<div className="marquee-track">
<span></span>
<span aria-hidden="true"></span>
</div>
</div>
</header>
<section className="hero-strip" style={heroStyle}>
<div>
<span>{topBanner.eyebrow || "三角洲行动账号专区"}</span>
<strong>{topBanner.title || "哈夫币号实时展示"}</strong>
<span>{topBanner.eyebrow || "大锤商行 · 资源号租赁"}</span>
<strong>{topBanner.title || "哈夫币资源号实时租赁"}</strong>
</div>
<Tag color="success">{topBanner.badge || "HOT"}</Tag>
<Tag color="orange">{topBanner.badge || "HOT"}</Tag>
<p>{topBanner.pill || "安全交易 · 诚信服务 · 专业保障"}</p>
</section>
@@ -351,7 +350,17 @@ function Showcase() {
/>
</section>
{announcements[0] ? <div className="notice-line">{announcements[0]}</div> : null}
{announcements.length ? (
<div className="notice-line" role="status" aria-live="polite">
<span className="notice-label"></span>
<div className="notice-marquee">
<div className="marquee-track">
<span>{announcements.join("  ")}</span>
<span aria-hidden="true">{announcements.join("  ")}</span>
</div>
</div>
</div>
) : null}
<section className="filter-board">
<div className="section-title"></div>
@@ -527,9 +536,19 @@ function Showcase() {
</section>
<footer className="site-footer">
<strong></strong>
<span> · · </span>
<small></small>
<div className="footer-inner">
<strong></strong>
<span className="footer-divider" aria-hidden="true">
·
</span>
<span> ©2026 </span>
<span className="footer-divider" aria-hidden="true">
·
</span>
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noreferrer">
ICP备2025146668号
</a>
</div>
</footer>
</main>
);
@@ -598,8 +617,8 @@ function ListingRow({ copied, item, onCopy }: ListingRowProps) {
<div className="listing-main">
<div className="listing-head">
<div>
<Tag color="green"></Tag>
<strong>{code}</strong>
<strong>{item.title || `纯币${formatCoin(item)}资源号`}</strong>
<Tag color="orange">{code}</Tag>
<Button icon={<CopyOutlined />} size="small" type="text" onClick={() => onCopy(item)}>
{copied ? "已复制" : ""}
</Button>
@@ -639,7 +658,7 @@ function ListingRow({ copied, item, onCopy }: ListingRowProps) {
<span>
<strong>{totalPrice.toFixed(2)}</strong>
</span>
<Button type="link"></Button>
<Button type="primary"></Button>
</div>
</div>
</article>