sanqiang-deliverer-ui-demo.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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.0, maximum-scale=1.0, user-scalable=no" />
  6. <title>陇耘鲜达 - 配送员端UI Demo(同供应商风格)</title>
  7. <style>
  8. :root {
  9. --green: #0a9f6d;
  10. --green-dark: #087f57;
  11. --yellow: #d6a343;
  12. --bg: #f3f7f5;
  13. --card: #ffffff;
  14. --text: #1f2a26;
  15. --muted: #6f7e77;
  16. --border: #d9e9e1;
  17. --warn: #cf8a19;
  18. --ok: #189b65;
  19. --shadow: 0 8px 20px rgba(10, 159, 109, 0.1);
  20. }
  21. * { box-sizing: border-box; margin: 0; padding: 0; }
  22. body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif; }
  23. .phone {
  24. max-width: 420px;
  25. margin: 0 auto;
  26. min-height: 100vh;
  27. padding-bottom: 20px;
  28. position: relative;
  29. overflow: hidden;
  30. }
  31. .phone > *:not(.watermark-layer) {
  32. position: relative;
  33. z-index: 1;
  34. }
  35. .watermark-layer {
  36. position: absolute;
  37. inset: 0;
  38. pointer-events: none;
  39. z-index: 0;
  40. overflow: hidden;
  41. }
  42. .watermark-grid {
  43. width: 100%;
  44. min-height: 100%;
  45. padding: 24px 10px;
  46. opacity: 0.055;
  47. transform: rotate(-16deg) scale(1.08);
  48. transform-origin: center;
  49. display: grid;
  50. grid-template-columns: repeat(3, minmax(0, 1fr));
  51. gap: 34px 14px;
  52. }
  53. .watermark-item {
  54. display: flex;
  55. flex-direction: column;
  56. align-items: center;
  57. justify-content: center;
  58. gap: 8px;
  59. }
  60. .watermark-item img {
  61. width: 84px;
  62. height: 84px;
  63. object-fit: contain;
  64. display: block;
  65. filter: grayscale(10%);
  66. }
  67. .watermark-item span {
  68. font-size: 13px;
  69. font-weight: 700;
  70. letter-spacing: 1px;
  71. color: #0b8a61;
  72. }
  73. .header {
  74. background: linear-gradient(145deg, var(--green-dark), var(--green));
  75. border-bottom-left-radius: 24px; border-bottom-right-radius: 24px;
  76. color: #fff; padding: 16px;
  77. box-shadow: var(--shadow);
  78. }
  79. .topline { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
  80. .topline h1 { font-size: 18px; font-weight: 700; }
  81. .logout { min-height: 36px; padding: 0 12px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, 0.4); display: inline-flex; align-items: center; font-size: 12px; }
  82. .driver { display: flex; gap: 12px; align-items: center; }
  83. .avatar {
  84. width: 48px;
  85. height: 48px;
  86. border-radius: 50%;
  87. background: rgba(255, 255, 255, 0.24);
  88. border: 1px solid rgba(255, 255, 255, 0.35);
  89. display: inline-flex;
  90. align-items: center;
  91. justify-content: center;
  92. overflow: hidden;
  93. }
  94. .deliverer-logo {
  95. width: 30px;
  96. height: 30px;
  97. border-radius: 50%;
  98. background: rgba(255, 255, 255, 0.92);
  99. color: var(--green-dark);
  100. font-size: 14px;
  101. font-weight: 700;
  102. line-height: 30px;
  103. text-align: center;
  104. }
  105. .driver p { font-size: 12px; opacity: 0.9; margin-top: 2px; }
  106. .stats {
  107. margin: -14px 16px 12px; background: var(--card); border-radius: 16px; border: 1px solid var(--border);
  108. display: grid; grid-template-columns: repeat(3, 1fr); padding: 14px 8px;
  109. }
  110. .stat { text-align: center; }
  111. .stat strong { font-size: 20px; color: var(--green-dark); display: block; }
  112. .stat span { font-size: 11px; color: var(--muted); }
  113. .tabs { margin: 10px 16px; display: flex; background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 4px; }
  114. .tab { flex: 1; min-height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 13px; color: var(--muted); }
  115. .tab.active { background: #e9f9f2; color: var(--ok); font-weight: 600; }
  116. .section { margin: 12px 16px; }
  117. .section-head { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; }
  118. .section-head h2 { font-size: 16px; }
  119. .section-head a { color: var(--muted); font-size: 12px; }
  120. .task-list { display: flex; flex-direction: column; gap: 10px; }
  121. .task {
  122. background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 12px;
  123. box-shadow: 0 4px 12px rgba(10, 159, 109, 0.06);
  124. }
  125. .line1 { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
  126. .no { font-size: 13px; font-weight: 600; }
  127. .status { min-height: 26px; padding: 0 10px; border-radius: 13px; font-size: 11px; display: inline-flex; align-items: center; }
  128. .status.pending { background: #fff4dd; color: var(--warn); }
  129. .status.delivering { background: #e9f9f2; color: var(--ok); }
  130. .blk { border: 1px dashed #e4efe9; border-radius: 10px; padding: 8px; background: #f8fcfa; margin-bottom: 8px; }
  131. .blk h3 { font-size: 12px; margin-bottom: 6px; color: #3f5d51; }
  132. .blk p { font-size: 12px; color: #52615b; line-height: 1.45; }
  133. .phone-row { margin-top: 5px; display: flex; align-items: center; justify-content: space-between; }
  134. .dial { min-height: 30px; padding: 0 10px; border-radius: 15px; background: #fff; border: 1px solid #cce5d8; color: var(--ok); font-size: 11px; display: inline-flex; align-items: center; }
  135. .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
  136. .qty { font-size: 12px; color: var(--muted); }
  137. .action { min-height: 34px; padding: 0 12px; border-radius: 17px; background: var(--green); color: #fff; font-size: 12px; display: inline-flex; align-items: center; }
  138. .tools {
  139. margin-top: 14px; background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 12px;
  140. display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
  141. }
  142. .tool { min-height: 74px; border-radius: 12px; background: #f8fcfa; border: 1px solid #e8f3ee; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font-size: 12px; text-align: center; }
  143. .tool .ico { width: 24px; height: 24px; border-radius: 8px; background: #dff1e8; }
  144. </style>
  145. </head>
  146. <body>
  147. <main class="phone">
  148. <div class="watermark-layer" aria-hidden="true">
  149. <div class="watermark-grid">
  150. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  151. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  152. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  153. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  154. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  155. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  156. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  157. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  158. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  159. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  160. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  161. <div class="watermark-item"><img src="../web-admin/public/logo1.jpg" alt="" /><span>陇耘鲜达</span></div>
  162. </div>
  163. </div>
  164. <header class="header">
  165. <div class="topline">
  166. <h1>配送员工作台</h1>
  167. <span class="logout">退出登录</span>
  168. </div>
  169. <div class="driver">
  170. <div class="avatar">
  171. <span class="deliverer-logo">配</span>
  172. </div>
  173. <div>
  174. <strong>张师傅</strong>
  175. <p>当前区域:南山区 · 在线接单中</p>
  176. </div>
  177. </div>
  178. </header>
  179. <section class="stats">
  180. <article class="stat"><strong>7</strong><span>待取货</span></article>
  181. <article class="stat"><strong>4</strong><span>配送中</span></article>
  182. <article class="stat"><strong>26</strong><span>今日完成</span></article>
  183. </section>
  184. <nav class="tabs">
  185. <a class="tab active">待取货</a>
  186. <a class="tab">配送中</a>
  187. <a class="tab">已完成</a>
  188. </nav>
  189. <section class="section">
  190. <div class="tools">
  191. <article class="tool"><div class="ico"></div><span>抢单大厅</span></article>
  192. <article class="tool"><div class="ico"></div><span>我的任务</span></article>
  193. <article class="tool"><div class="ico"></div><span>异常上报</span></article>
  194. <article class="tool"><div class="ico"></div><span>联系客服</span></article>
  195. </div>
  196. <div class="section-head" style="margin-top: 12px;"><h2>当前任务</h2><a>查看全部</a></div>
  197. <div class="task-list">
  198. <article class="task">
  199. <div class="line1"><span class="no">任务号:DL20260417007</span><span class="status pending">待取货</span></div>
  200. <div class="blk">
  201. <h3>取货信息</h3>
  202. <p>供应商:陇耘鲜达福田站</p>
  203. <p>地址:福田区车公庙仓配中心 A2-08</p>
  204. <div class="phone-row"><span>联系人:陈师傅</span><span class="dial">联系取货人</span></div>
  205. </div>
  206. <div class="blk">
  207. <h3>配送信息</h3>
  208. <p>客户:南山科技园 5 号楼员工食堂</p>
  209. <p>收货地址:南山区高新南六道 19 号</p>
  210. <div class="phone-row"><span>收货人:李主管</span><span class="dial">联系客户</span></div>
  211. </div>
  212. <div class="foot"><span class="qty">共 42 件 · 预计 24 分钟</span><span class="action">导航并取货</span></div>
  213. </article>
  214. <article class="task">
  215. <div class="line1"><span class="no">任务号:DL20260417008</span><span class="status delivering">配送中</span></div>
  216. <div class="blk">
  217. <h3>取货信息</h3>
  218. <p>供应商:陇耘鲜达龙岗站</p>
  219. <p>地址:龙岗区平湖冷链仓 3 层</p>
  220. </div>
  221. <div class="foot"><span class="qty">共 18 件 · 截止 10:15</span><span class="action">查看详情</span></div>
  222. </article>
  223. </div>
  224. </section>
  225. </main>
  226. </body>
  227. </html>