client-preview.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. <!doctype html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>DTM 业务监测版块预览</title>
  7. <style>
  8. * {
  9. box-sizing: border-box;
  10. }
  11. body {
  12. margin: 0;
  13. font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  14. background: #eef3fb;
  15. color: #17243b;
  16. }
  17. .preview-shell {
  18. max-width: 1440px;
  19. margin: 0 auto;
  20. padding: 28px;
  21. }
  22. .topbar {
  23. display: flex;
  24. align-items: center;
  25. justify-content: space-between;
  26. gap: 20px;
  27. margin-bottom: 22px;
  28. }
  29. .brand {
  30. display: flex;
  31. align-items: center;
  32. gap: 12px;
  33. font-weight: 800;
  34. color: #101b33;
  35. font-size: 18px;
  36. }
  37. .brand-mark {
  38. width: 42px;
  39. height: 42px;
  40. border-radius: 14px;
  41. background: linear-gradient(145deg, #7935f5 0%, #6028ee 100%);
  42. color: #fff;
  43. display: grid;
  44. place-items: center;
  45. box-shadow: 0 14px 28px rgba(99, 50, 236, 0.22);
  46. }
  47. .nav-pills {
  48. display: flex;
  49. gap: 8px;
  50. padding: 4px;
  51. border-radius: 16px;
  52. background: #fff;
  53. box-shadow: 0 14px 30px rgba(42, 61, 115, 0.08);
  54. }
  55. .nav-pills a {
  56. padding: 10px 16px;
  57. border-radius: 12px;
  58. color: #6e778b;
  59. font-size: 14px;
  60. font-weight: 700;
  61. text-decoration: none;
  62. }
  63. .nav-pills a.active {
  64. background: #6267f2;
  65. color: #fff;
  66. }
  67. .hero {
  68. margin-bottom: 24px;
  69. padding: 30px 34px;
  70. border-radius: 26px;
  71. background: linear-gradient(110deg, #ffffff 0%, #f7f9ff 56%, #eaf0ff 100%);
  72. box-shadow: 0 20px 45px rgba(42, 61, 115, 0.08);
  73. display: flex;
  74. align-items: center;
  75. justify-content: space-between;
  76. gap: 24px;
  77. }
  78. .eyebrow {
  79. margin: 0 0 8px;
  80. color: #6267f2;
  81. font-size: 12px;
  82. font-weight: 800;
  83. letter-spacing: .5px;
  84. text-transform: uppercase;
  85. }
  86. h1,
  87. h2,
  88. h3,
  89. p {
  90. margin-top: 0;
  91. }
  92. .hero h1 {
  93. margin-bottom: 10px;
  94. color: #101b33;
  95. font-size: 32px;
  96. line-height: 1.2;
  97. }
  98. .hero p:last-child {
  99. max-width: 700px;
  100. margin-bottom: 0;
  101. color: #7b8498;
  102. line-height: 1.8;
  103. }
  104. .hero-visual {
  105. min-width: 174px;
  106. height: 112px;
  107. border-radius: 24px;
  108. background: #fff;
  109. box-shadow: 0 18px 40px rgba(91, 105, 247, 0.18);
  110. display: flex;
  111. align-items: flex-end;
  112. justify-content: center;
  113. gap: 10px;
  114. padding: 22px;
  115. }
  116. .bar {
  117. width: 12px;
  118. border-radius: 999px;
  119. background: #ffad55;
  120. }
  121. .bar:nth-child(1) { height: 36px; }
  122. .bar:nth-child(2) { height: 60px; background: #6267f2; }
  123. .bar:nth-child(3) { height: 46px; }
  124. .bar:nth-child(4) { height: 72px; background: #ef4c43; }
  125. .section {
  126. margin-bottom: 30px;
  127. }
  128. .section-header {
  129. display: flex;
  130. align-items: flex-end;
  131. justify-content: space-between;
  132. gap: 20px;
  133. margin: 4px 0 16px;
  134. }
  135. .section-header h2 {
  136. margin-bottom: 4px;
  137. color: #101b33;
  138. font-size: 24px;
  139. }
  140. .section-header p {
  141. margin-bottom: 0;
  142. color: #8a93a6;
  143. }
  144. .filter-card {
  145. margin-bottom: 18px;
  146. padding: 16px 18px;
  147. border-radius: 22px;
  148. background: #fff;
  149. box-shadow: 0 16px 36px rgba(38, 51, 96, 0.06);
  150. display: flex;
  151. flex-wrap: wrap;
  152. gap: 12px;
  153. align-items: center;
  154. }
  155. .field {
  156. display: inline-flex;
  157. align-items: center;
  158. gap: 8px;
  159. padding: 3px;
  160. border-radius: 15px;
  161. background: #f6f8ff;
  162. color: #5d667a;
  163. font-size: 13px;
  164. font-weight: 700;
  165. }
  166. .segmented span,
  167. .date-chip,
  168. .btn {
  169. height: 32px;
  170. padding: 0 14px;
  171. border-radius: 11px;
  172. display: inline-flex;
  173. align-items: center;
  174. justify-content: center;
  175. white-space: nowrap;
  176. }
  177. .segmented span.active {
  178. background: #6267f2;
  179. color: #fff;
  180. box-shadow: 0 8px 18px rgba(98, 103, 242, 0.22);
  181. }
  182. .date-chip {
  183. min-width: 300px;
  184. background: #fff;
  185. color: #29364f;
  186. box-shadow: inset 0 0 0 1px rgba(98, 103, 242, 0.12);
  187. justify-content: space-between;
  188. }
  189. .btn {
  190. border: 0;
  191. background: #f6f8ff;
  192. color: #6e778b;
  193. font-weight: 800;
  194. }
  195. .btn.primary {
  196. background: #6267f2;
  197. color: #fff;
  198. box-shadow: 0 8px 18px rgba(98, 103, 242, 0.22);
  199. }
  200. .btn.warn {
  201. background: #fff6e8;
  202. color: #f39a20;
  203. }
  204. .grid {
  205. display: grid;
  206. gap: 18px;
  207. }
  208. .kpi-grid {
  209. grid-template-columns: repeat(4, minmax(0, 1fr));
  210. margin-bottom: 18px;
  211. }
  212. .kpi-card {
  213. min-height: 142px;
  214. padding: 20px;
  215. border-radius: 20px;
  216. background: #fff;
  217. box-shadow: 0 16px 34px rgba(37, 50, 88, 0.08);
  218. position: relative;
  219. overflow: hidden;
  220. display: flex;
  221. flex-direction: column;
  222. justify-content: flex-end;
  223. }
  224. .kpi-card::after {
  225. content: "";
  226. position: absolute;
  227. top: -36px;
  228. right: -30px;
  229. width: 108px;
  230. height: 108px;
  231. border-radius: 50%;
  232. background: rgba(98, 103, 242, 0.1);
  233. }
  234. .kpi-card.primary {
  235. background: linear-gradient(145deg, #7935f5 0%, #6028ee 100%);
  236. color: #fff;
  237. box-shadow: 0 20px 36px rgba(99, 50, 236, 0.24);
  238. }
  239. .kpi-icon {
  240. position: absolute;
  241. top: 18px;
  242. left: 20px;
  243. width: 44px;
  244. height: 44px;
  245. border-radius: 15px;
  246. background: #f1efff;
  247. color: #6267f2;
  248. display: grid;
  249. place-items: center;
  250. font-weight: 900;
  251. }
  252. .primary .kpi-icon {
  253. background: #fff;
  254. color: #6267f2;
  255. }
  256. .kpi-label {
  257. margin-bottom: 8px;
  258. color: #7b8498;
  259. font-size: 13px;
  260. }
  261. .primary .kpi-label,
  262. .primary .kpi-hint,
  263. .primary .kpi-value {
  264. color: #fff;
  265. }
  266. .kpi-value {
  267. color: #121d35;
  268. font-size: 27px;
  269. font-weight: 900;
  270. line-height: 1.2;
  271. }
  272. .kpi-hint {
  273. margin-top: 10px;
  274. color: #a0a8b8;
  275. font-size: 12px;
  276. }
  277. .two-col {
  278. grid-template-columns: minmax(0, 1.4fr) minmax(320px, .6fr);
  279. }
  280. .card {
  281. border-radius: 22px;
  282. background: #fff;
  283. box-shadow: 0 18px 42px rgba(42, 61, 115, 0.08);
  284. padding: 22px;
  285. }
  286. .card h3 {
  287. margin-bottom: 6px;
  288. color: #101b33;
  289. font-size: 18px;
  290. }
  291. .card-subtitle {
  292. margin-bottom: 18px;
  293. color: #8a93a6;
  294. font-size: 12px;
  295. }
  296. table {
  297. width: 100%;
  298. border-collapse: separate;
  299. border-spacing: 0;
  300. overflow: hidden;
  301. border-radius: 14px;
  302. font-size: 13px;
  303. }
  304. th {
  305. padding: 13px 14px;
  306. background: #f8f9fd;
  307. color: #697287;
  308. text-align: left;
  309. font-weight: 900;
  310. }
  311. td {
  312. padding: 14px;
  313. border-bottom: 1px solid #eef1f7;
  314. color: #29364f;
  315. }
  316. tr:last-child td {
  317. border-bottom: 0;
  318. }
  319. .rank-list {
  320. display: grid;
  321. gap: 12px;
  322. }
  323. .rank-item {
  324. display: grid;
  325. grid-template-columns: 34px minmax(0, 1fr) auto;
  326. gap: 10px;
  327. align-items: center;
  328. padding: 11px 0;
  329. border-bottom: 1px solid #f0f2f7;
  330. }
  331. .rank-item:last-child {
  332. border-bottom: 0;
  333. }
  334. .rank-index {
  335. width: 28px;
  336. height: 28px;
  337. border-radius: 10px;
  338. background: #f1efff;
  339. color: #6267f2;
  340. display: grid;
  341. place-items: center;
  342. font-weight: 900;
  343. }
  344. .rank-name {
  345. color: #1b2740;
  346. font-weight: 800;
  347. }
  348. .rank-meta {
  349. margin-top: 4px;
  350. color: #9aa3b4;
  351. font-size: 12px;
  352. }
  353. .rank-value {
  354. color: #101b33;
  355. font-weight: 900;
  356. }
  357. .mini-chart {
  358. height: 260px;
  359. display: flex;
  360. align-items: end;
  361. gap: 14px;
  362. padding: 20px 10px 4px;
  363. border-radius: 18px;
  364. background: #f8f9fd;
  365. }
  366. .mini-chart span {
  367. flex: 1;
  368. min-width: 20px;
  369. border-radius: 12px 12px 6px 6px;
  370. background: linear-gradient(180deg, #6267f2, #8a5cf6);
  371. position: relative;
  372. }
  373. .mini-chart span:nth-child(even) {
  374. background: linear-gradient(180deg, #ffad55, #f39a20);
  375. }
  376. .supplier-layout {
  377. grid-template-columns: repeat(3, minmax(0, 1fr));
  378. }
  379. .supplier-card {
  380. min-height: 160px;
  381. padding: 22px;
  382. border-radius: 20px;
  383. background: #fff;
  384. box-shadow: 0 16px 34px rgba(37, 50, 88, 0.08);
  385. }
  386. .supplier-card h3 {
  387. margin-bottom: 12px;
  388. color: #101b33;
  389. }
  390. .score {
  391. margin-bottom: 12px;
  392. color: #6267f2;
  393. font-size: 34px;
  394. font-weight: 900;
  395. }
  396. .tag-row {
  397. display: flex;
  398. flex-wrap: wrap;
  399. gap: 8px;
  400. }
  401. .tag {
  402. padding: 6px 10px;
  403. border-radius: 999px;
  404. background: #f1efff;
  405. color: #6267f2;
  406. font-size: 12px;
  407. font-weight: 800;
  408. }
  409. .footer-note {
  410. color: #8a93a6;
  411. font-size: 12px;
  412. line-height: 1.7;
  413. text-align: center;
  414. margin: 22px 0 0;
  415. }
  416. @media (max-width: 1100px) {
  417. .kpi-grid,
  418. .supplier-layout {
  419. grid-template-columns: repeat(2, minmax(0, 1fr));
  420. }
  421. .two-col {
  422. grid-template-columns: 1fr;
  423. }
  424. }
  425. @media (max-width: 720px) {
  426. .preview-shell {
  427. padding: 16px;
  428. }
  429. .topbar,
  430. .hero,
  431. .section-header {
  432. align-items: flex-start;
  433. flex-direction: column;
  434. }
  435. .hero-visual {
  436. width: 100%;
  437. }
  438. .kpi-grid,
  439. .supplier-layout {
  440. grid-template-columns: 1fr;
  441. }
  442. .date-chip {
  443. min-width: 220px;
  444. }
  445. }
  446. </style>
  447. </head>
  448. <body>
  449. <main class="preview-shell">
  450. <div class="topbar">
  451. <div class="brand">
  452. <div class="brand-mark">DTM</div>
  453. <span>业务监测驾驶舱预览</span>
  454. </div>
  455. <nav class="nav-pills">
  456. <a href="#order" class="active">订单监测</a>
  457. <a href="#supply">供应监测</a>
  458. </nav>
  459. </div>
  460. <section class="hero">
  461. <div>
  462. <p class="eyebrow">DTM Data Monitor</p>
  463. <h1>订单与供应链核心业务监测</h1>
  464. <p>面向经营分析、渠道跟踪、供应商对比与付款计划,统一采用轻量化后台风格,重点突出指标、趋势、明细和异常。</p>
  465. </div>
  466. <div class="hero-visual" aria-hidden="true">
  467. <span class="bar"></span>
  468. <span class="bar"></span>
  469. <span class="bar"></span>
  470. <span class="bar"></span>
  471. </div>
  472. </section>
  473. <section id="order" class="section">
  474. <div class="section-header">
  475. <div>
  476. <h2>订单监测</h2>
  477. <p>店铺运营、商品价值、渠道表现和订单价值统一分析。</p>
  478. </div>
  479. </div>
  480. <div class="filter-card">
  481. <div class="field segmented">
  482. <strong>统计周期</strong>
  483. <span>日报</span>
  484. <span class="active">月报</span>
  485. <span>年报</span>
  486. <span>全量</span>
  487. </div>
  488. <div class="field">
  489. <strong>日期范围</strong>
  490. <span class="date-chip"><span>2022-12-01</span><span>至</span><span>2022-12-31</span></span>
  491. <button class="btn primary">查询</button>
  492. <button class="btn">重置</button>
  493. <button class="btn warn">导出 Excel</button>
  494. </div>
  495. </div>
  496. <div class="grid kpi-grid">
  497. <div class="kpi-card primary">
  498. <div class="kpi-icon">¥</div>
  499. <div class="kpi-label">销售额</div>
  500. <div class="kpi-value">¥153,298.58</div>
  501. <div class="kpi-hint">当前周期累计销售</div>
  502. </div>
  503. <div class="kpi-card">
  504. <div class="kpi-icon">单</div>
  505. <div class="kpi-label">订单量</div>
  506. <div class="kpi-value">488</div>
  507. <div class="kpi-hint">有效订单总数</div>
  508. </div>
  509. <div class="kpi-card">
  510. <div class="kpi-icon">件</div>
  511. <div class="kpi-label">销量</div>
  512. <div class="kpi-value">1,228</div>
  513. <div class="kpi-hint">商品销售件数</div>
  514. </div>
  515. <div class="kpi-card">
  516. <div class="kpi-icon">客</div>
  517. <div class="kpi-label">平均客单价</div>
  518. <div class="kpi-value">¥314.14</div>
  519. <div class="kpi-hint">销售额 / 订单量</div>
  520. </div>
  521. </div>
  522. <div class="grid two-col">
  523. <div class="card">
  524. <h3>渠道明细</h3>
  525. <p class="card-subtitle">2022-12-01 至 2022-12-31</p>
  526. <table>
  527. <thead>
  528. <tr>
  529. <th>平台</th>
  530. <th>渠道/店铺</th>
  531. <th>订单量</th>
  532. <th>销量</th>
  533. <th>销售额</th>
  534. <th>客单价</th>
  535. </tr>
  536. </thead>
  537. <tbody>
  538. <tr><td>京东自营</td><td>京东自营</td><td>60</td><td>338</td><td>¥44,176.81</td><td>¥736.28</td></tr>
  539. <tr><td>佳奥旗舰店</td><td>佳奥旗舰店</td><td>63</td><td>184</td><td>¥32,623.00</td><td>¥517.83</td></tr>
  540. <tr><td>传统电商平台</td><td>爱梦芽008</td><td>16</td><td>35</td><td>¥9,140.00</td><td>¥571.25</td></tr>
  541. <tr><td>传统电商平台</td><td>佳奥家居专营店</td><td>32</td><td>95</td><td>¥7,299.00</td><td>¥228.09</td></tr>
  542. </tbody>
  543. </table>
  544. </div>
  545. <aside class="card">
  546. <h3>销售 Top 5</h3>
  547. <p class="card-subtitle">按销售额排序</p>
  548. <div class="rank-list">
  549. <div class="rank-item"><div class="rank-index">1</div><div><div class="rank-name">京东自营</div><div class="rank-meta">京东自营</div></div><div class="rank-value">¥44,176.81</div></div>
  550. <div class="rank-item"><div class="rank-index">2</div><div><div class="rank-name">佳奥旗舰店</div><div class="rank-meta">旗舰渠道</div></div><div class="rank-value">¥32,623.00</div></div>
  551. <div class="rank-item"><div class="rank-index">3</div><div><div class="rank-name">爱梦芽008</div><div class="rank-meta">传统电商</div></div><div class="rank-value">¥9,140.00</div></div>
  552. <div class="rank-item"><div class="rank-index">4</div><div><div class="rank-name">佳奥家居专营店</div><div class="rank-meta">传统电商</div></div><div class="rank-value">¥7,299.00</div></div>
  553. <div class="rank-item"><div class="rank-index">5</div><div><div class="rank-name">平台运营</div><div class="rank-meta">华东</div></div><div class="rank-value">¥4,904.00</div></div>
  554. </div>
  555. </aside>
  556. </div>
  557. </section>
  558. <section id="supply" class="section">
  559. <div class="section-header">
  560. <div>
  561. <h2>供应监测</h2>
  562. <p>供应商查询、核心指标对比、付款计划和综合评分统一呈现。</p>
  563. </div>
  564. </div>
  565. <div class="filter-card">
  566. <div class="field">
  567. <strong>供应商名称</strong>
  568. <span class="date-chip"><span>佳奥</span><span></span><span>全部匹配</span></span>
  569. </div>
  570. <div class="field">
  571. <strong>日期范围</strong>
  572. <span class="date-chip"><span>2025-01-01</span><span>至</span><span>2025-05-14</span></span>
  573. <button class="btn primary">查询</button>
  574. <button class="btn">重置</button>
  575. </div>
  576. </div>
  577. <div class="grid supplier-layout">
  578. <div class="supplier-card">
  579. <h3>供应商总数</h3>
  580. <div class="score">156</div>
  581. <div class="tag-row"><span class="tag">实时</span><span class="tag">覆盖采购数据</span></div>
  582. </div>
  583. <div class="supplier-card">
  584. <h3>平均综合得分</h3>
  585. <div class="score">82.5</div>
  586. <div class="tag-row"><span class="tag">成本</span><span class="tag">交付</span><span class="tag">账期</span></div>
  587. </div>
  588. <div class="supplier-card">
  589. <h3>预计付款计划</h3>
  590. <div class="score">¥326.8万</div>
  591. <div class="tag-row"><span class="tag">7天内到期</span><span class="tag">账期推算</span></div>
  592. </div>
  593. </div>
  594. <div class="grid two-col" style="margin-top: 18px;">
  595. <div class="card">
  596. <h3>供应商核心指标对比</h3>
  597. <p class="card-subtitle">订单金额、入库金额、交付及时率和完成率</p>
  598. <div class="mini-chart" aria-label="供应商核心指标柱状图">
  599. <span style="height: 72%;"></span>
  600. <span style="height: 54%;"></span>
  601. <span style="height: 88%;"></span>
  602. <span style="height: 64%;"></span>
  603. <span style="height: 46%;"></span>
  604. <span style="height: 70%;"></span>
  605. <span style="height: 58%;"></span>
  606. <span style="height: 82%;"></span>
  607. </div>
  608. </div>
  609. <div class="card">
  610. <h3>付款计划提醒</h3>
  611. <p class="card-subtitle">按预计付款日期排序</p>
  612. <div class="rank-list">
  613. <div class="rank-item"><div class="rank-index">1</div><div><div class="rank-name">深圳某电子有限公司</div><div class="rank-meta">2025-05-18 到期</div></div><div class="rank-value">¥86,420</div></div>
  614. <div class="rank-item"><div class="rank-index">2</div><div><div class="rank-name">华东供应链服务商</div><div class="rank-meta">2025-05-21 到期</div></div><div class="rank-value">¥62,800</div></div>
  615. <div class="rank-item"><div class="rank-index">3</div><div><div class="rank-name">佳奥配套工厂</div><div class="rank-meta">2025-05-28 到期</div></div><div class="rank-value">¥45,600</div></div>
  616. </div>
  617. </div>
  618. </div>
  619. </section>
  620. <p class="footer-note">该页面为静态 HTML 预览稿,仅用于向甲方展示新版订单监测与供应监测的视觉方向和信息组织方式。</p>
  621. </main>
  622. </body>
  623. </html>