| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602 |
- <!doctype html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Fresh Mint · 回传卡片 KV 重设计 Demo</title>
- <link rel="preconnect" href="https://fonts.googleapis.com" />
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
- <style>
- :root {
- --primary: #10b981;
- --primary-dark: #059669;
- --primary-bg: #ecfdf5;
- --text: #1e293b;
- --text-muted: #64748b;
- --border: #d9e8e2;
- --border-soft: #e2e8f0;
- --surface: #fff;
- --table-head: #f8fafc;
- --danger: #dc2626;
- --warn: #d97706;
- --radius: 10px;
- }
- * { box-sizing: border-box; }
- body {
- margin: 0;
- font-family: Inter, -apple-system, sans-serif;
- font-size: 14px;
- line-height: 1.5;
- color: var(--text);
- background: #eef2f6;
- }
- .page { max-width: 1200px; margin: 0 auto; padding: 32px 20px 72px; }
- .head { margin-bottom: 28px; }
- .head h1 { margin: 0 0 8px; font-size: 24px; font-weight: 700; }
- .head h1 span { color: var(--primary-dark); }
- .head p { margin: 0; color: var(--text-muted); max-width: 760px; }
- .block { margin-bottom: 36px; }
- .block > h2 {
- margin: 0 0 6px;
- font-size: 16px;
- font-weight: 700;
- }
- .block > .desc {
- margin: 0 0 14px;
- font-size: 13px;
- color: var(--text-muted);
- }
- .pick {
- display: inline-block;
- margin-left: 8px;
- padding: 1px 8px;
- border-radius: 999px;
- font-size: 11px;
- font-weight: 600;
- vertical-align: middle;
- }
- .pick-1 { background: #ecfdf5; color: var(--primary-dark); }
- .pick-2 { background: #eff6ff; color: #1d4ed8; }
- .pick-3 { background: #fff7ed; color: #c2410c; }
- .row3 {
- display: grid;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- gap: 14px;
- }
- @media (max-width: 980px) {
- .row3 { grid-template-columns: 1fr; }
- }
- .panel {
- background: var(--surface);
- border: 1px solid var(--border-soft);
- border-radius: var(--radius);
- padding: 14px;
- min-height: 300px;
- display: flex;
- flex-direction: column;
- }
- .panel-hd {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 8px;
- margin-bottom: 12px;
- }
- .panel-hd h3 {
- margin: 0;
- padding-left: 10px;
- border-left: 3px solid var(--primary);
- color: var(--primary-dark);
- font-size: 14px;
- font-weight: 600;
- line-height: 1.2;
- }
- .ops { display: flex; gap: 6px; }
- .btn {
- height: 28px;
- padding: 0 10px;
- border-radius: 6px;
- border: 1px solid var(--border-soft);
- background: #fff;
- font-size: 12px;
- font-weight: 500;
- color: var(--text);
- }
- .btn-p { background: var(--primary); border-color: var(--primary); color: #fff; }
- /* ========== 方案 1:单据表(系统原生 ViewKv 表格式) ========== */
- .kv-table {
- width: 100%;
- border-collapse: collapse;
- table-layout: fixed;
- border: 1px solid var(--border);
- border-radius: 8px;
- overflow: hidden;
- background: #fff;
- }
- .kv-table th,
- .kv-table td {
- padding: 9px 12px;
- border-bottom: 1px solid #eef2f6;
- border-right: 1px solid #eef2f6;
- vertical-align: top;
- text-align: left;
- line-height: 1.4;
- }
- .kv-table tr:last-child th,
- .kv-table tr:last-child td { border-bottom: none; }
- .kv-table th {
- width: 78px;
- background: var(--table-head);
- color: var(--text-muted);
- font-size: 12px;
- font-weight: 500;
- white-space: nowrap;
- }
- .kv-table td {
- font-size: 13px;
- font-weight: 600;
- color: var(--text);
- word-break: break-word;
- }
- .kv-table td.red { color: var(--danger); font-size: 15px; }
- .kv-table .tag {
- display: inline-block;
- padding: 1px 8px;
- border-radius: 4px;
- background: #059669;
- color: #fff;
- font-size: 12px;
- font-weight: 600;
- }
- .kv-table .thumbs {
- display: flex;
- gap: 6px;
- flex-wrap: wrap;
- }
- .kv-table .thumb {
- width: 40px;
- height: 40px;
- border-radius: 6px;
- background: #ecfdf5;
- border: 1px solid #a7f3d0;
- display: grid;
- place-items: center;
- font-size: 11px;
- color: var(--primary-dark);
- font-weight: 600;
- }
- /* ========== 方案 2:一句摘要 + 次要元信息 ========== */
- .summary-card { display: flex; flex-direction: column; gap: 12px; }
- .summary-hero {
- padding: 14px 14px 12px;
- border-radius: 8px;
- background: #0f172a;
- color: #f8fafc;
- }
- .summary-hero .kicker {
- font-size: 11px;
- font-weight: 500;
- color: #94a3b8;
- margin-bottom: 6px;
- }
- .summary-hero .main {
- font-size: 20px;
- font-weight: 700;
- letter-spacing: -0.02em;
- line-height: 1.25;
- }
- .summary-hero .main strong { color: #fca5a5; font-weight: 700; }
- .summary-hero .sub {
- margin-top: 8px;
- font-size: 12px;
- color: #cbd5e1;
- line-height: 1.45;
- }
- .chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
- .chip {
- display: inline-flex;
- align-items: center;
- gap: 6px;
- max-width: 100%;
- padding: 6px 10px;
- border-radius: 999px;
- background: #f8fafc;
- border: 1px solid var(--border-soft);
- font-size: 12px;
- color: var(--text);
- }
- .chip b { color: var(--text-muted); font-weight: 500; }
- .chip .t { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; }
- .media-row {
- display: flex;
- align-items: center;
- gap: 8px;
- padding-top: 2px;
- }
- .media-row .lab { font-size: 12px; color: var(--text-muted); white-space: nowrap; }
- .media-row .thumb {
- width: 44px;
- height: 44px;
- border-radius: 8px;
- object-fit: cover;
- background: linear-gradient(135deg, #d1fae5, #a7f3d0);
- border: 1px solid #a7f3d0;
- }
- /* ========== 方案 3:回执 / 小票式 ========== */
- .ticket {
- border: 1px solid var(--border-soft);
- border-radius: 8px;
- overflow: hidden;
- background: #fff;
- }
- .ticket-band {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 8px;
- padding: 10px 12px;
- background: linear-gradient(90deg, #ecfdf5 0%, #f0fdf4 60%, #fff 100%);
- border-bottom: 1px solid #d1fae5;
- }
- .ticket-band .who {
- font-size: 12px;
- font-weight: 600;
- color: var(--primary-dark);
- }
- .ticket-band .when {
- font-size: 12px;
- color: var(--text-muted);
- font-variant-numeric: tabular-nums;
- white-space: nowrap;
- }
- .ticket-qty {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 0;
- border-bottom: 1px dashed #e2e8f0;
- }
- .ticket-qty > div {
- padding: 12px;
- text-align: center;
- }
- .ticket-qty > div + div { border-left: 1px dashed #e2e8f0; }
- .ticket-qty .lab {
- font-size: 11px;
- color: var(--text-muted);
- margin-bottom: 4px;
- }
- .ticket-qty .val {
- font-size: 22px;
- font-weight: 700;
- color: var(--danger);
- font-variant-numeric: tabular-nums;
- letter-spacing: -0.02em;
- line-height: 1.1;
- }
- .ticket-qty .val.sm { font-size: 14px; line-height: 1.35; }
- .ticket-lines { padding: 4px 0; }
- .ticket-line {
- display: grid;
- grid-template-columns: 72px 1fr;
- gap: 8px;
- padding: 7px 12px;
- font-size: 13px;
- }
- .ticket-line .lab { color: var(--text-muted); }
- .ticket-line .val { font-weight: 600; color: var(--text); word-break: break-word; }
- .ticket-foot {
- padding: 10px 12px;
- border-top: 1px dashed #e2e8f0;
- background: #f8fafc;
- display: flex;
- align-items: center;
- gap: 8px;
- }
- .ticket-foot .lab { font-size: 12px; color: var(--text-muted); }
- .ticket-foot .thumb {
- width: 36px;
- height: 36px;
- border-radius: 6px;
- background: #ecfdf5;
- border: 1px solid #a7f3d0;
- }
- .footer-note {
- margin-top: 8px;
- padding: 14px 16px;
- background: #fff;
- border: 1px solid var(--border-soft);
- border-radius: 8px;
- font-size: 13px;
- color: var(--text-muted);
- }
- .footer-note strong { color: var(--text); }
- </style>
- </head>
- <body>
- <div class="page">
- <header class="head">
- <h1>回传卡片 · <span>重新设计</span></h1>
- <p>
- 上一版三种「上下 KV / 指标卡 / 左右行」都不合适。本页换成三种完全不同的语言:
- <b>单据表</b>、<b>摘要优先</b>、<b>回执小票</b>。请直接点名要哪一种(或混搭)。
- </p>
- </header>
- <!-- 1 -->
- <section class="block">
- <h2>方案 1 · 单据表 <span class="pick pick-1">贴近现有 ViewKvTable</span></h2>
- <p class="desc">放弃「漂浮的上下摆」,改成管理端熟悉的「左标签右值」表格。数量单元格加大、红色。信息密度高、和系统其它查看弹窗一致。</p>
- <div class="row3">
- <article class="panel">
- <div class="panel-hd">
- <h3>司机回传信息</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <table class="kv-table">
- <tr>
- <th>实际数量</th>
- <td class="red">28.5 吨</td>
- <th>品牌数量</th>
- <td class="red">云化 18.5 / 华谊 10</td>
- </tr>
- <tr>
- <th>回传时间</th>
- <td>2026-07-31 14:22</td>
- <th>回传备注</th>
- <td>货已装完,现场确认无误</td>
- </tr>
- <tr>
- <th>回传附件</th>
- <td colspan="3">
- <div class="thumbs"><span class="thumb">图1</span><span class="thumb">图2</span></div>
- </td>
- </tr>
- </table>
- </article>
- <article class="panel">
- <div class="panel-hd">
- <h3>出库单回传</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <table class="kv-table">
- <tr>
- <th>单号</th>
- <td>CK20260731001</td>
- <th>状态</th>
- <td><span class="tag">已完成</span></td>
- </tr>
- <tr>
- <th>计划号</th>
- <td>PL-202607-088</td>
- <th>车牌</th>
- <td>皖H·D1234</td>
- </tr>
- <tr>
- <th>往来单位</th>
- <td colspan="3">安庆某某化工有限公司</td>
- </tr>
- <tr>
- <th>实际数量</th>
- <td class="red">28.5 吨</td>
- <th>品牌数量</th>
- <td class="red">云化 18.5 / 华谊 10</td>
- </tr>
- <tr>
- <th>现场备注</th>
- <td>过磅完成,单据已签</td>
- <th>现场附件</th>
- <td><div class="thumbs"><span class="thumb">图1</span></div></td>
- </tr>
- </table>
- </article>
- <article class="panel">
- <div class="panel-hd"><h3>地磅单信息(示意)</h3></div>
- <table class="kv-table">
- <tr>
- <th>出入库单号</th>
- <td>RK20260731008</td>
- <th>业务类型</th>
- <td><span class="tag">出库</span></td>
- </tr>
- <tr>
- <th>毛重</th>
- <td>42580 kg</td>
- <th>皮重</th>
- <td>14200 kg</td>
- </tr>
- <tr>
- <th>净重</th>
- <td class="red">28380 kg</td>
- <th>车牌</th>
- <td>皖H·D1234</td>
- </tr>
- </table>
- </article>
- </div>
- </section>
- <!-- 2 -->
- <section class="block">
- <h2>方案 2 · 摘要优先 <span class="pick pick-2">先看结论</span></h2>
- <p class="desc">卡片顶部用一句「结论句」把数量讲清楚,其余降级成胶囊标签。适合一眼扫量,弱化字段罗列感。</p>
- <div class="row3">
- <article class="panel">
- <div class="panel-hd">
- <h3>司机回传信息</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <div class="summary-card">
- <div class="summary-hero">
- <div class="kicker">司机已回传</div>
- <div class="main">实际 <strong>28.5</strong> 吨</div>
- <div class="sub">品牌构成:云化 18.5 · 华谊 10</div>
- </div>
- <div class="chip-row">
- <span class="chip"><b>时间</b><span class="t">2026-07-31 14:22</span></span>
- <span class="chip"><b>备注</b><span class="t">货已装完,现场确认无误</span></span>
- </div>
- <div class="media-row">
- <span class="lab">附件</span>
- <span class="thumb"></span>
- <span class="thumb"></span>
- </div>
- </div>
- </article>
- <article class="panel">
- <div class="panel-hd">
- <h3>出库单回传</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <div class="summary-card">
- <div class="summary-hero">
- <div class="kicker">出库单 · 已完成 · CK20260731001</div>
- <div class="main">实际 <strong>28.5</strong> 吨</div>
- <div class="sub">云化 18.5 · 华谊 10 | 皖H·D1234</div>
- </div>
- <div class="chip-row">
- <span class="chip"><b>计划</b><span class="t">PL-202607-088</span></span>
- <span class="chip"><b>往来</b><span class="t">安庆某某化工有限公司</span></span>
- <span class="chip"><b>备注</b><span class="t">过磅完成,单据已签</span></span>
- </div>
- <div class="media-row">
- <span class="lab">附件</span>
- <span class="thumb"></span>
- </div>
- </div>
- </article>
- <article class="panel">
- <div class="panel-hd"><h3>地磅单信息(示意)</h3></div>
- <div class="summary-card">
- <div class="summary-hero">
- <div class="kicker">地磅 · 出库 · RK20260731008</div>
- <div class="main">净重 <strong>28.38</strong> 吨</div>
- <div class="sub">毛重 42.58 · 皮重 14.20 | 皖H·D1234</div>
- </div>
- <div class="chip-row">
- <span class="chip"><b>往来</b><span class="t">安庆某某化工</span></span>
- <span class="chip"><b>状态</b><span class="t">已过磅</span></span>
- </div>
- </div>
- </article>
- </div>
- </section>
- <!-- 3 -->
- <section class="block">
- <h2>方案 3 · 回执小票 <span class="pick pick-3">像一张回执</span></h2>
- <p class="desc">顶部条带写时间/身份,中间居中放大数量,下方清单式字段。结构像「装车回执」,不是普通表单字段堆叠。</p>
- <div class="row3">
- <article class="panel">
- <div class="panel-hd">
- <h3>司机回传信息</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <div class="ticket">
- <div class="ticket-band">
- <span class="who">司机回传回执</span>
- <span class="when">2026-07-31 14:22</span>
- </div>
- <div class="ticket-qty">
- <div>
- <div class="lab">实际数量(吨)</div>
- <div class="val">28.5</div>
- </div>
- <div>
- <div class="lab">品牌数量</div>
- <div class="val sm">云化 18.5<br />华谊 10</div>
- </div>
- </div>
- <div class="ticket-lines">
- <div class="ticket-line"><span class="lab">回传备注</span><span class="val">货已装完,现场确认无误</span></div>
- </div>
- <div class="ticket-foot">
- <span class="lab">附件</span>
- <span class="thumb"></span>
- <span class="thumb"></span>
- </div>
- </div>
- </article>
- <article class="panel">
- <div class="panel-hd">
- <h3>出库单回传</h3>
- <div class="ops"><button class="btn btn-p" type="button">编辑</button></div>
- </div>
- <div class="ticket">
- <div class="ticket-band">
- <span class="who">出库单 CK20260731001 · 已完成</span>
- <span class="when">PL-202607-088</span>
- </div>
- <div class="ticket-qty">
- <div>
- <div class="lab">实际数量(吨)</div>
- <div class="val">28.5</div>
- </div>
- <div>
- <div class="lab">品牌数量</div>
- <div class="val sm">云化 18.5 / 华谊 10</div>
- </div>
- </div>
- <div class="ticket-lines">
- <div class="ticket-line"><span class="lab">车牌</span><span class="val">皖H·D1234</span></div>
- <div class="ticket-line"><span class="lab">往来单位</span><span class="val">安庆某某化工有限公司</span></div>
- <div class="ticket-line"><span class="lab">现场备注</span><span class="val">过磅完成,单据已签</span></div>
- </div>
- <div class="ticket-foot">
- <span class="lab">附件</span>
- <span class="thumb"></span>
- </div>
- </div>
- </article>
- <article class="panel">
- <div class="panel-hd"><h3>地磅单信息(示意)</h3></div>
- <div class="ticket">
- <div class="ticket-band">
- <span class="who">地磅回执 · 出库</span>
- <span class="when">RK20260731008</span>
- </div>
- <div class="ticket-qty">
- <div>
- <div class="lab">净重(吨)</div>
- <div class="val">28.38</div>
- </div>
- <div>
- <div class="lab">毛重 / 皮重</div>
- <div class="val sm">42.58 / 14.20</div>
- </div>
- </div>
- <div class="ticket-lines">
- <div class="ticket-line"><span class="lab">车牌</span><span class="val">皖H·D1234</span></div>
- <div class="ticket-line"><span class="lab">往来单位</span><span class="val">安庆某某化工</span></div>
- </div>
- </div>
- </article>
- </div>
- </section>
- <div class="footer-note">
- <strong>怎么选:</strong>
- 要和系统其它查看页统一 → 选 <strong>方案 1</strong>;
- 归档时最关心「装了多少」→ 选 <strong>方案 2</strong>;
- 想强调「这是一份回传凭证」→ 选 <strong>方案 3</strong>。
- 也可以说「1 的表格 + 2 的顶部结论」这类混搭。文件:
- <code>docs/fresh-mint-pl-feedback-kv-polish-demo.html</code>
- </div>
- </div>
- </body>
- </html>
|