1252 lines
43 KiB
HTML
1252 lines
43 KiB
HTML
<!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">SKU:TH-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> |