Files
teapot_system/ui-preview.html

1252 lines
43 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>铜壶管理系统 UI 效果图</title>
<style>
:root {
--bg: #f4efe8;
--panel: rgba(251, 248, 243, 0.9);
--panel-strong: #fbf8f3;
--text: #2f2923;
--muted: #5b544d;
--brand: #a66536;
--brand-deep: #8f552c;
--side: #24353a;
--line: #d9cabb;
--success: #56735d;
--warning: #c68a35;
--danger: #b5533d;
--info: #4f6d7a;
--shadow: 0 24px 60px rgba(58, 39, 23, 0.12);
--soft-shadow: 0 10px 25px rgba(36, 53, 58, 0.08);
--radius-xl: 28px;
--radius-lg: 20px;
--radius-md: 16px;
--radius-sm: 12px;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
color: var(--text);
background:
radial-gradient(circle at top left, rgba(166, 101, 54, 0.18), transparent 28%),
radial-gradient(circle at bottom right, rgba(79, 109, 122, 0.15), transparent 24%),
linear-gradient(160deg, #f7f1e9 0%, #efe6dc 100%);
background-attachment: fixed;
}
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(166, 101, 54, 0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(166, 101, 54, 0.035) 1px, transparent 1px);
background-size: 32px 32px;
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.7), transparent 82%);
}
.page {
width: min(1480px, calc(100vw - 48px));
margin: 0 auto;
padding: 40px 0 56px;
position: relative;
z-index: 1;
}
.hero {
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 24px;
align-items: stretch;
margin-bottom: 28px;
}
.hero-card {
border: 1px solid rgba(217, 202, 187, 0.8);
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
overflow: hidden;
background: rgba(255, 252, 247, 0.65);
backdrop-filter: blur(12px);
}
.hero-brand {
min-height: 290px;
padding: 40px;
background:
linear-gradient(135deg, rgba(36, 53, 58, 0.88), rgba(67, 45, 31, 0.8)),
linear-gradient(180deg, rgba(166, 101, 54, 0.8), rgba(36, 53, 58, 0.85));
color: #f9f2ea;
position: relative;
}
.hero-brand::before,
.hero-brand::after {
content: "";
position: absolute;
border-radius: 999px;
border: 1px solid rgba(255, 231, 213, 0.14);
}
.hero-brand::before {
width: 420px;
height: 420px;
right: -100px;
top: -140px;
background: radial-gradient(circle, rgba(255, 205, 158, 0.18), transparent 60%);
}
.hero-brand::after {
width: 260px;
height: 260px;
left: -60px;
bottom: -120px;
background: radial-gradient(circle, rgba(255, 222, 193, 0.12), transparent 60%);
}
.brand-tag {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 14px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.14);
font-size: 13px;
letter-spacing: 0.08em;
}
.hero-title {
margin: 22px 0 12px;
font-family: "Source Han Serif SC", "STSong", serif;
font-size: 42px;
line-height: 1.2;
letter-spacing: 0.02em;
}
.hero-desc {
max-width: 540px;
font-size: 16px;
line-height: 1.8;
color: rgba(250, 242, 234, 0.84);
}
.brand-points {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 24px;
}
.brand-points span {
padding: 10px 14px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.08);
font-size: 13px;
}
.hero-login {
padding: 26px;
display: flex;
align-items: center;
justify-content: center;
background:
linear-gradient(180deg, rgba(255, 252, 247, 0.88), rgba(251, 248, 243, 0.92));
}
.login-panel {
width: min(420px, 100%);
padding: 28px;
background: var(--panel-strong);
border: 1px solid rgba(217, 202, 187, 0.9);
border-radius: 24px;
box-shadow: var(--soft-shadow);
}
.section-kicker {
font-size: 12px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--brand);
font-weight: 700;
}
.section-title {
margin: 10px 0 8px;
font-family: "Source Han Serif SC", "STSong", serif;
font-size: 28px;
line-height: 1.25;
}
.section-copy {
margin: 0 0 22px;
color: var(--muted);
line-height: 1.7;
font-size: 14px;
}
.field {
margin-bottom: 16px;
}
.field label {
display: block;
margin-bottom: 8px;
font-size: 13px;
color: var(--muted);
}
.input {
width: 100%;
padding: 14px 16px;
border: 1px solid var(--line);
border-radius: 14px;
background: #fffdf9;
color: var(--text);
font-size: 14px;
outline: none;
}
.input::placeholder {
color: #9a8f84;
}
.login-meta {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 13px;
color: var(--muted);
margin-bottom: 18px;
}
.checkbox {
display: inline-flex;
align-items: center;
gap: 8px;
}
.checkbox span:first-child {
width: 16px;
height: 16px;
border-radius: 4px;
border: 1px solid var(--brand);
background: linear-gradient(180deg, rgba(166, 101, 54, 0.18), rgba(166, 101, 54, 0.06));
box-shadow: inset 0 0 0 3px #fffaf5;
}
.button-primary,
.button-secondary,
.button-danger,
.chip,
.tab {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
white-space: nowrap;
}
.button-primary {
width: 100%;
padding: 15px 20px;
border: 0;
border-radius: 14px;
background: linear-gradient(135deg, var(--brand), var(--brand-deep));
color: #fff7f0;
font-size: 15px;
font-weight: 700;
box-shadow: 0 16px 24px rgba(166, 101, 54, 0.22);
}
.login-footer {
margin-top: 16px;
display: flex;
justify-content: space-between;
font-size: 12px;
color: #877a6f;
}
.board {
border-radius: 36px;
background: linear-gradient(180deg, rgba(255, 252, 248, 0.9), rgba(248, 243, 237, 0.92));
border: 1px solid rgba(217, 202, 187, 0.9);
box-shadow: var(--shadow);
overflow: hidden;
}
.board-topbar {
height: 74px;
padding: 0 28px;
display: flex;
align-items: center;
justify-content: space-between;
background: rgba(255, 251, 246, 0.8);
border-bottom: 1px solid rgba(217, 202, 187, 0.8);
}
.brand-mini {
display: flex;
align-items: center;
gap: 14px;
}
.brand-seal {
width: 42px;
height: 42px;
border-radius: 14px;
background: linear-gradient(135deg, var(--brand), #c78d60);
box-shadow: 0 10px 22px rgba(166, 101, 54, 0.22);
}
.brand-mini strong {
display: block;
font-size: 16px;
}
.brand-mini span {
font-size: 12px;
color: var(--muted);
}
.top-actions {
display: flex;
align-items: center;
gap: 12px;
}
.searchbox {
width: 320px;
padding: 12px 16px;
border-radius: 999px;
border: 1px solid rgba(217, 202, 187, 0.9);
background: rgba(255, 254, 251, 0.95);
font-size: 14px;
color: var(--muted);
}
.chip {
padding: 10px 14px;
border-radius: 999px;
border: 1px solid rgba(217, 202, 187, 0.9);
background: rgba(255, 252, 246, 0.92);
font-size: 13px;
color: var(--muted);
}
.chip.brand {
background: rgba(166, 101, 54, 0.12);
color: var(--brand-deep);
border-color: rgba(166, 101, 54, 0.24);
font-weight: 700;
}
.chip.success {
background: rgba(86, 115, 93, 0.12);
color: var(--success);
border-color: rgba(86, 115, 93, 0.24);
}
.dashboard {
display: grid;
grid-template-columns: 276px minmax(0, 1fr);
min-height: 980px;
}
.sidebar {
padding: 24px 20px 28px;
background: linear-gradient(180deg, #24353a, #1f2d31);
color: rgba(247, 241, 233, 0.92);
}
.sidebar-head {
padding: 14px 10px 20px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
margin-bottom: 20px;
}
.sidebar-head strong {
display: block;
font-size: 18px;
margin-bottom: 6px;
}
.sidebar-head span {
font-size: 13px;
color: rgba(247, 241, 233, 0.62);
}
.tree-group {
margin-bottom: 18px;
}
.tree-label {
margin: 0 0 10px;
padding: 0 10px;
font-size: 12px;
letter-spacing: 0.14em;
color: rgba(255, 237, 219, 0.46);
}
.tree-item,
.tree-subitem {
border-radius: 14px;
}
.tree-item {
padding: 12px 14px;
margin-bottom: 8px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid transparent;
font-size: 14px;
}
.tree-item.active {
background: linear-gradient(90deg, rgba(166, 101, 54, 0.26), rgba(166, 101, 54, 0.08));
border-color: rgba(255, 212, 176, 0.2);
box-shadow: inset 3px 0 0 rgba(255, 209, 169, 0.75);
}
.tree-sublist {
display: grid;
gap: 8px;
margin: 8px 0 0 12px;
}
.tree-subitem {
padding: 10px 12px;
font-size: 13px;
color: rgba(249, 242, 234, 0.78);
background: rgba(255, 255, 255, 0.03);
}
.tree-subitem.current {
background: rgba(255, 237, 219, 0.12);
color: #fff4ea;
}
.content {
padding: 24px;
background: rgba(248, 242, 235, 0.55);
}
.content-grid {
display: grid;
gap: 22px;
}
.title-row,
.toolbar,
.stat-row,
.detail-layout {
display: grid;
gap: 18px;
}
.title-row {
grid-template-columns: minmax(0, 1fr) auto;
align-items: end;
}
.page-title {
margin: 0;
font-family: "Source Han Serif SC", "STSong", serif;
font-size: 32px;
line-height: 1.2;
}
.page-subtitle {
margin-top: 8px;
color: var(--muted);
font-size: 14px;
}
.action-row {
display: flex;
gap: 12px;
align-items: center;
}
.button-secondary,
.button-danger {
padding: 12px 16px;
border-radius: 14px;
font-size: 14px;
font-weight: 700;
}
.button-secondary {
border: 1px solid rgba(166, 101, 54, 0.28);
background: rgba(255, 250, 245, 0.94);
color: var(--brand-deep);
}
.button-danger {
border: 1px solid rgba(181, 83, 61, 0.28);
background: rgba(181, 83, 61, 0.08);
color: var(--danger);
}
.toolbar {
grid-template-columns: repeat(6, minmax(0, 1fr));
padding: 18px;
border-radius: 24px;
background: var(--panel);
border: 1px solid rgba(217, 202, 187, 0.9);
box-shadow: var(--soft-shadow);
}
.toolbar .mini-field {
padding: 12px 14px;
border-radius: 14px;
border: 1px solid var(--line);
background: rgba(255, 253, 250, 0.95);
color: #81766b;
font-size: 13px;
}
.stat-row {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.stat-card,
.surface,
.product-card,
.detail-card,
.order-side {
background: var(--panel);
border: 1px solid rgba(217, 202, 187, 0.9);
border-radius: 24px;
box-shadow: var(--soft-shadow);
}
.stat-card {
padding: 20px;
}
.stat-label {
color: var(--muted);
font-size: 13px;
margin-bottom: 10px;
}
.stat-value {
font-size: 28px;
font-weight: 800;
letter-spacing: -0.03em;
}
.stat-note {
margin-top: 8px;
font-size: 12px;
color: #8d8277;
}
.products-layout {
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 22px;
}
.surface {
padding: 18px;
}
.surface-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.surface-title {
margin: 0;
font-size: 17px;
font-weight: 800;
}
.surface-subtitle {
margin-top: 6px;
color: var(--muted);
font-size: 13px;
}
.product-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.product-card {
overflow: hidden;
}
.product-image {
height: 170px;
background:
radial-gradient(circle at 50% 38%, rgba(255, 234, 213, 0.9), rgba(166, 101, 54, 0.22) 42%, rgba(36, 53, 58, 0.16) 68%),
linear-gradient(180deg, #ead8c6 0%, #d3baa2 100%);
position: relative;
overflow: hidden;
}
.product-image::after {
content: "";
position: absolute;
inset: 18px 56px 28px;
border-radius: 48% 48% 42% 42% / 44% 44% 52% 52%;
background: linear-gradient(180deg, rgba(112, 69, 38, 0.95), rgba(155, 101, 56, 0.88));
box-shadow:
inset -12px -18px 30px rgba(255, 214, 171, 0.2),
inset 10px 18px 24px rgba(34, 18, 10, 0.24),
0 18px 30px rgba(74, 45, 21, 0.18);
}
.product-image::before {
content: "";
position: absolute;
width: 56px;
height: 56px;
right: 48px;
top: 48px;
border-radius: 50%;
border: 8px solid rgba(111, 66, 35, 0.9);
box-shadow: 0 0 0 4px rgba(226, 196, 162, 0.65);
}
.product-body {
padding: 16px;
}
.product-title {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 12px;
margin-bottom: 10px;
}
.product-name {
margin: 0;
font-size: 15px;
font-weight: 800;
}
.product-meta {
color: #867a6f;
font-size: 12px;
margin-top: 6px;
}
.status-pill {
padding: 7px 10px;
border-radius: 999px;
font-size: 11px;
font-weight: 800;
}
.status-pill.success {
color: var(--success);
background: rgba(86, 115, 93, 0.12);
}
.status-pill.warning {
color: var(--warning);
background: rgba(198, 138, 53, 0.14);
}
.status-pill.info {
color: var(--info);
background: rgba(79, 109, 122, 0.12);
}
.product-price {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
margin-bottom: 14px;
}
.metric-box {
padding: 10px 12px;
border-radius: 14px;
background: rgba(255, 255, 255, 0.62);
border: 1px solid rgba(217, 202, 187, 0.85);
}
.metric-label {
font-size: 11px;
color: #8f8479;
margin-bottom: 6px;
}
.metric-value {
font-size: 16px;
font-weight: 800;
}
.product-actions {
display: flex;
justify-content: space-between;
gap: 10px;
}
.ghost-link {
padding: 11px 14px;
border-radius: 12px;
border: 1px solid rgba(217, 202, 187, 0.9);
background: rgba(255, 252, 246, 0.9);
color: var(--muted);
font-size: 13px;
text-align: center;
flex: 1;
}
.mini-primary {
padding: 11px 14px;
border-radius: 12px;
background: linear-gradient(135deg, var(--brand), var(--brand-deep));
color: #fff7f0;
font-size: 13px;
font-weight: 800;
text-align: center;
flex: 1;
}
.detail-layout {
grid-template-columns: 1.15fr 0.85fr;
}
.detail-card {
padding: 20px;
}
.detail-card .surface-head {
margin-bottom: 18px;
}
.detail-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.read-only {
padding: 14px;
border-radius: 14px;
border: 1px dashed rgba(79, 109, 122, 0.32);
background: rgba(79, 109, 122, 0.06);
color: var(--info);
font-size: 13px;
margin-bottom: 14px;
}
.image-stage {
height: 240px;
border-radius: 18px;
border: 1px solid rgba(217, 202, 187, 0.9);
background:
radial-gradient(circle at 50% 34%, rgba(255, 225, 196, 0.92), rgba(166, 101, 54, 0.18) 42%, rgba(36, 53, 58, 0.1) 70%),
linear-gradient(180deg, #efe2d2, #dcc3ab);
position: relative;
margin-bottom: 14px;
overflow: hidden;
}
.image-stage::before {
content: "";
position: absolute;
inset: 30px 110px 34px;
border-radius: 48% 48% 42% 42% / 44% 44% 54% 54%;
background: linear-gradient(180deg, rgba(108, 65, 35, 0.96), rgba(153, 97, 53, 0.9));
box-shadow: inset -14px -18px 24px rgba(255, 214, 171, 0.18);
}
.image-thumbs {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
}
.thumb {
height: 68px;
border-radius: 14px;
background: linear-gradient(180deg, #ead7c5, #dbc0a4);
border: 1px solid rgba(217, 202, 187, 0.9);
}
.order-side {
padding: 18px;
}
.order-field {
padding: 14px;
border-radius: 14px;
border: 1px solid rgba(217, 202, 187, 0.9);
background: rgba(255, 252, 247, 0.96);
color: #887d72;
margin-bottom: 12px;
font-size: 13px;
}
.stack {
display: grid;
gap: 12px;
}
.line-table {
overflow: hidden;
}
.table-row {
display: grid;
grid-template-columns: 1.2fr 1fr 0.8fr 0.8fr 0.9fr;
gap: 10px;
padding: 14px 16px;
align-items: center;
}
.table-row.header {
background: rgba(217, 202, 187, 0.22);
color: #6d6359;
font-size: 12px;
font-weight: 700;
}
.table-row:not(.header) {
border-top: 1px solid rgba(217, 202, 187, 0.56);
background: rgba(255, 252, 248, 0.62);
}
.caption-row {
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
margin-bottom: 10px;
}
.frame-label {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
border-radius: 999px;
background: rgba(36, 53, 58, 0.08);
color: var(--side);
font-size: 13px;
font-weight: 700;
}
.footer-note {
margin-top: 18px;
text-align: center;
color: #8a7f74;
font-size: 13px;
}
@media (max-width: 1280px) {
.hero,
.products-layout,
.detail-layout {
grid-template-columns: 1fr;
}
.product-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 960px) {
.page {
width: min(100vw - 24px, 1480px);
padding-top: 20px;
}
.dashboard {
grid-template-columns: 1fr;
}
.sidebar {
display: none;
}
.toolbar,
.stat-row,
.product-grid,
.detail-form,
.image-thumbs {
grid-template-columns: 1fr;
}
.board-topbar {
height: auto;
padding: 18px;
flex-direction: column;
align-items: stretch;
gap: 16px;
}
.top-actions {
flex-wrap: wrap;
}
.searchbox {
width: 100%;
}
}
</style>
</head>
<body>
<div class="page">
<section class="hero">
<div class="hero-card hero-brand">
<div class="brand-tag">UI PREVIEW · COPPER TEAPOT SYSTEM</div>
<h1 class="hero-title">铜壶管理系统<br />前端效果图预览</h1>
<p class="hero-desc">
这版效果图按“铜器仓储 + 茶纸账册”的视觉方向展开,重点展示登录页、商品中心、商品详情和订单处理主界面,便于先确认整体气质和页面层次。
</p>
<div class="brand-points">
<span>铜棕主色</span>
<span>米白纸感背景</span>
<span>深青侧栏</span>
<span>商品图优先</span>
<span>多角色可视化差异</span>
</div>
</div>
<div class="hero-card hero-login">
<div class="login-panel">
<div class="section-kicker">Login Preview</div>
<h2 class="section-title">欢迎进入铜壶管理系统</h2>
<p class="section-copy">商品、订单、标签与权限统一管理。管理员、客户用户、打包工用户进入后将看到不同的操作界面。</p>
<div class="field">
<label>账号</label>
<div class="input">admin</div>
</div>
<div class="field">
<label>密码</label>
<div class="input">••••••••••••</div>
</div>
<div class="login-meta">
<span class="checkbox"><span></span><span>记住登录状态</span></span>
<span>内部业务系统</span>
</div>
<div class="button-primary">登录系统</div>
<div class="login-footer">
<span>Version 1.0 Preview</span>
<span>技术支持 · 内部使用</span>
</div>
</div>
</div>
</section>
<div class="caption-row">
<span class="frame-label">主工作台效果图</span>
<span class="chip brand">管理员视角</span>
<span class="chip success">商品管理 + 订单处理 + 用户管理</span>
</div>
<section class="board">
<div class="board-topbar">
<div class="brand-mini">
<div class="brand-seal"></div>
<div>
<strong>铜壶管理系统</strong>
<span>商品、订单、标签、权限统一管理</span>
</div>
</div>
<div class="top-actions">
<div class="searchbox">搜索 SKU / 商品名 / 订单号</div>
<div class="chip brand">待处理订单 12</div>
<div class="chip">管理员 · 张经理</div>
<div class="chip">退出登录</div>
</div>
</div>
<div class="dashboard">
<aside class="sidebar">
<div class="sidebar-head">
<strong>系统导航</strong>
<span>固定左侧目录,保留工作上下文</span>
</div>
<div class="tree-group">
<div class="tree-label">商品目录</div>
<div class="tree-item active">1号普通壶</div>
<div class="tree-sublist">
<div class="tree-subitem current">花纹A</div>
<div class="tree-subitem">花纹B</div>
<div class="tree-subitem">花纹C</div>
</div>
<div class="tree-item">2号锤纹壶</div>
<div class="tree-item">3号福字壶</div>
</div>
<div class="tree-group">
<div class="tree-label">业务模块</div>
<div class="tree-item">订单中心</div>
<div class="tree-item">经营统计</div>
<div class="tree-item">用户管理</div>
<div class="tree-item">宣传物料</div>
</div>
</aside>
<main class="content">
<div class="content-grid">
<div class="title-row">
<div>
<h2 class="page-title">商品中心</h2>
<div class="page-subtitle">以图片浏览效率为主,配合目录树、状态标签和快捷加购操作。</div>
</div>
<div class="action-row">
<div class="button-primary" style="width:auto; padding:12px 18px;">新增商品</div>
</div>
</div>
<div class="toolbar">
<div class="mini-field">关键词花纹A / SKU</div>
<div class="mini-field">状态:可售</div>
<div class="mini-field">类目1号普通壶</div>
<div class="mini-field">价格区间100 - 300</div>
<div class="mini-field">排序:更新时间</div>
<div class="mini-field">重置筛选</div>
</div>
<div class="stat-row">
<div class="stat-card">
<div class="stat-label">当前型号款式数</div>
<div class="stat-value">18</div>
<div class="stat-note">花纹、盖型、表面工艺合并管理</div>
</div>
<div class="stat-card">
<div class="stat-label">可售款式</div>
<div class="stat-value">12</div>
<div class="stat-note">库存充足,可快速下单</div>
</div>
<div class="stat-card">
<div class="stat-label">库存偏少</div>
<div class="stat-value">4</div>
<div class="stat-note">建议优先提醒打包或补货</div>
</div>
<div class="stat-card">
<div class="stat-label">待处理订单</div>
<div class="stat-value">12</div>
<div class="stat-note">标签待下载 5 单</div>
</div>
</div>
<div class="products-layout">
<section class="surface">
<div class="surface-head">
<div>
<h3 class="surface-title">商品卡片墙</h3>
<div class="surface-subtitle">缩略图优先,价格、库存和状态在同一视线内完成识别。</div>
</div>
<div class="chip">管理员可编辑</div>
</div>
<div class="product-grid">
<article class="product-card">
<div class="product-image"></div>
<div class="product-body">
<div class="product-title">
<div>
<p class="product-name">1号普通壶 · 花纹A</p>
<div class="product-meta">SKU TH-001-A</div>
</div>
<span class="status-pill success">可售</span>
</div>
<div class="product-price">
<div class="metric-box">
<div class="metric-label">批发价</div>
<div class="metric-value">198</div>
</div>
<div class="metric-box">
<div class="metric-label">库存</div>
<div class="metric-value">82</div>
</div>
</div>
<div class="product-actions">
<div class="ghost-link">查看详情</div>
<div class="mini-primary">加入订单</div>
</div>
</div>
</article>
<article class="product-card">
<div class="product-image" style="filter:hue-rotate(8deg) saturate(0.95);"></div>
<div class="product-body">
<div class="product-title">
<div>
<p class="product-name">1号普通壶 · 花纹B</p>
<div class="product-meta">SKU TH-001-B</div>
</div>
<span class="status-pill warning">库存少</span>
</div>
<div class="product-price">
<div class="metric-box">
<div class="metric-label">批发价</div>
<div class="metric-value">228</div>
</div>
<div class="metric-box">
<div class="metric-label">库存</div>
<div class="metric-value">9</div>
</div>
</div>
<div class="product-actions">
<div class="ghost-link">查看详情</div>
<div class="mini-primary">加入订单</div>
</div>
</div>
</article>
<article class="product-card">
<div class="product-image" style="filter:hue-rotate(-10deg) saturate(1.08);"></div>
<div class="product-body">
<div class="product-title">
<div>
<p class="product-name">1号普通壶 · 花纹C</p>
<div class="product-meta">SKU TH-001-C</div>
</div>
<span class="status-pill info">库存多</span>
</div>
<div class="product-price">
<div class="metric-box">
<div class="metric-label">批发价</div>
<div class="metric-value">268</div>
</div>
<div class="metric-box">
<div class="metric-label">库存</div>
<div class="metric-value">145</div>
</div>
</div>
<div class="product-actions">
<div class="ghost-link">查看详情</div>
<div class="mini-primary">加入订单</div>
</div>
</div>
</article>
</div>
</section>
<section class="surface">
<div class="surface-head">
<div>
<h3 class="surface-title">订单概览</h3>
<div class="surface-subtitle">打包工用户登录时,这一块将替代部分商品管理操作成为视觉重点。</div>
</div>
<div class="chip success">未完成 8</div>
</div>
<div class="stack">
<div class="order-field">订单号TH20260411-008</div>
<div class="order-field">客户:常州仓储客户</div>
<div class="order-field">总数量36 件</div>
<div class="order-field">总金额7,820</div>
<div class="button-primary" style="width:auto;">继续处理订单</div>
</div>
</section>
</div>
<div class="detail-layout">
<section class="detail-card">
<div class="surface-head">
<div>
<h3 class="surface-title">商品详情页效果</h3>
<div class="surface-subtitle">兼顾管理员编辑态与客户用户只读态。</div>
</div>
<div class="chip">只读 / 可编辑双态</div>
</div>
<div class="read-only">客户用户进入时,这里显示只读查看标识,保存、上传、删除类按钮将自动隐藏。</div>
<div class="detail-form">
<div class="stack">
<div class="mini-field">SKUTH-001-A</div>
<div class="mini-field">名称1号普通壶 · 花纹A</div>
<div class="mini-field">批发价198</div>
<div class="mini-field">库存82</div>
<div class="mini-field">状态:可售</div>
<div class="mini-field">备注:适合常规批发发货</div>
</div>
<div>
<div class="image-stage"></div>
<div class="image-thumbs">
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
<div class="thumb"></div>
</div>
</div>
</div>
</section>
<aside class="order-side">
<div class="surface-head">
<div>
<h3 class="surface-title">订单详情页效果</h3>
<div class="surface-subtitle">突出标签下载与完成订单操作。</div>
</div>
<div class="chip brand">打包工视角</div>
</div>
<div class="line-table">
<div class="table-row header">
<div>款式</div>
<div>SKU</div>
<div>单价</div>
<div>数量</div>
<div>小计</div>
</div>
<div class="table-row">
<div>花纹A</div>
<div>TH-001-A</div>
<div>198</div>
<div>10</div>
<div>1980</div>
</div>
<div class="table-row">
<div>花纹B</div>
<div>TH-001-B</div>
<div>228</div>
<div>8</div>
<div>1824</div>
</div>
<div class="table-row">
<div>花纹C</div>
<div>TH-001-C</div>
<div>268</div>
<div>6</div>
<div>1608</div>
</div>
</div>
<div style="height: 14px;"></div>
<div class="stack">
<div class="button-secondary">下载标签文件</div>
<div class="order-field">快递单号SF8472 6601 2210</div>
<div class="button-primary" style="width:auto;">完成订单</div>
<div class="button-danger">删除未完成订单</div>
</div>
</aside>
</div>
</div>
</main>
</div>
</section>
<div class="footer-note">预览说明:这是一版静态视觉效果稿,用于确认风格、布局与重点操作区域,不代表最终像素级交互实现。</div>
</div>
</body>
</html>