07-inner-task-cards.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  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" />
  6. <title>07 · 组内任务小卡片 · 质检卡片间距</title>
  7. <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet" />
  8. <link rel="stylesheet" href="_shared.css" />
  9. <style>
  10. .compare-grid {
  11. display: grid;
  12. grid-template-columns: repeat(2, 1fr);
  13. gap: 20px;
  14. padding: 16px;
  15. }
  16. @media (max-width: 900px) {
  17. .compare-grid {
  18. grid-template-columns: 1fr;
  19. }
  20. }
  21. .compare-block {
  22. border: 1px solid var(--border);
  23. border-radius: var(--radius);
  24. overflow: hidden;
  25. background: var(--surface);
  26. }
  27. .compare-block__label {
  28. padding: 10px 14px;
  29. font-size: 12px;
  30. font-weight: 600;
  31. color: var(--primary-dark);
  32. background: var(--primary-bg);
  33. border-bottom: 1px solid #a7f3d0;
  34. }
  35. .compare-block__label span {
  36. display: block;
  37. margin-top: 2px;
  38. font-weight: 400;
  39. color: var(--text-muted);
  40. }
  41. .compare-block__body {
  42. padding: 12px 14px 14px;
  43. background: #f8fafc;
  44. }
  45. /* A · 现状 */
  46. .task-variant-a .qc-task-cards-grid {
  47. gap: 10px;
  48. }
  49. .task-variant-a .qc-task-card {
  50. border: 1px solid var(--border);
  51. background: #fff;
  52. box-shadow: none;
  53. }
  54. /* B · 浅绿底 + 白卡阴影 */
  55. .task-variant-b .qc-task-cards-grid {
  56. gap: 12px;
  57. padding: 10px;
  58. border-radius: var(--radius-sm);
  59. background: #ecfdf5;
  60. }
  61. .task-variant-b .qc-task-card {
  62. border: 1px solid #d1fae5;
  63. box-shadow: 0 1px 3px rgba(16, 185, 129, 0.08);
  64. }
  65. /* C · 加大 gap + 略深边框 */
  66. .task-variant-c .qc-task-cards-grid {
  67. gap: 14px;
  68. }
  69. .task-variant-c .qc-task-card {
  70. border: 1px solid #cbd5e1;
  71. background: #fff;
  72. box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  73. }
  74. /* D · 交替底色 */
  75. .task-variant-d .qc-task-cards-grid {
  76. gap: 10px;
  77. }
  78. .task-variant-d .qc-task-card:nth-child(odd) {
  79. background: #fff;
  80. border-color: var(--border);
  81. }
  82. .task-variant-d .qc-task-card:nth-child(even) {
  83. background: #f8fafc;
  84. border-color: #cbd5e1;
  85. }
  86. .task-variant-d .qc-task-card:nth-child(3) {
  87. background: #fff;
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <header class="demo-banner">
  93. <div>
  94. <h1>07 · 组内质检任务小卡片(四方案并排)</h1>
  95. <p>工单内 <code>#f8fafc</code> 任务区、三列 compact 任务卡片的边界增强方案;可与 02–06 任一工单级方案组合使用。</p>
  96. </div>
  97. <div class="demo-banner__actions">
  98. <a class="demo-link" href="06-elevated-no-border.html">← 上一方案</a>
  99. <a class="demo-link" href="index.html">索引</a>
  100. <a class="demo-link demo-link--primary" href="compare-all.html">总览对比 →</a>
  101. </div>
  102. </header>
  103. <div class="page-container">
  104. <section class="panel">
  105. <div class="panel-top">
  106. <h2 class="title-bar-heading">组内任务卡片 · 四方案对比</h2>
  107. </div>
  108. <p class="variant-note">
  109. <strong>说明:</strong>下方每个区块均为同一条工单的任务区,仅任务网格样式不同。A 为现网;B 在任务区加薄荷浅底;C 加大间距并加深边框;D 奇偶行微色差。
  110. </p>
  111. <div class="compare-grid">
  112. <div class="compare-block task-variant-a">
  113. <div class="compare-block__label">
  114. A · 现状基线
  115. <span>gap 10px · 1px #e2e8f0 · 白底</span>
  116. </div>
  117. <div class="compare-block__body">
  118. <div class="qc-work-order-task-sublist__head">
  119. <div class="qc-work-order-task-sublist__head-title">质检任务</div>
  120. <span class="qc-work-order-task-sublist__count">共 3 项</span>
  121. </div>
  122. <div class="qc-task-cards-grid" data-task-grid="a"></div>
  123. </div>
  124. </div>
  125. <div class="compare-block task-variant-b">
  126. <div class="compare-block__label">
  127. B · 薄荷浅底容器
  128. <span>任务网格外包 #ecfdf5 · 卡片轻阴影</span>
  129. </div>
  130. <div class="compare-block__body">
  131. <div class="qc-work-order-task-sublist__head">
  132. <div class="qc-work-order-task-sublist__head-title">质检任务</div>
  133. <span class="qc-work-order-task-sublist__count">共 3 项</span>
  134. </div>
  135. <div class="qc-task-cards-grid" data-task-grid="b"></div>
  136. </div>
  137. </div>
  138. <div class="compare-block task-variant-c">
  139. <div class="compare-block__label">
  140. C · 间距 + 深边框
  141. <span>gap 14px · 边框 #cbd5e1 · 轻阴影</span>
  142. </div>
  143. <div class="compare-block__body">
  144. <div class="qc-work-order-task-sublist__head">
  145. <div class="qc-work-order-task-sublist__head-title">质检任务</div>
  146. <span class="qc-work-order-task-sublist__count">共 3 项</span>
  147. </div>
  148. <div class="qc-task-cards-grid" data-task-grid="c"></div>
  149. </div>
  150. </div>
  151. <div class="compare-block task-variant-d">
  152. <div class="compare-block__label">
  153. D · 奇偶微色差
  154. <span>相邻任务卡 #fff / #f8fafc 交替</span>
  155. </div>
  156. <div class="compare-block__body">
  157. <div class="qc-work-order-task-sublist__head">
  158. <div class="qc-work-order-task-sublist__head-title">质检任务</div>
  159. <span class="qc-work-order-task-sublist__count">共 3 项</span>
  160. </div>
  161. <div class="qc-task-cards-grid" data-task-grid="d"></div>
  162. </div>
  163. </div>
  164. </div>
  165. </section>
  166. </div>
  167. <script src="_cards.js"></script>
  168. <script>
  169. document.addEventListener('DOMContentLoaded', function () {
  170. document.querySelectorAll('[data-task-grid]').forEach(function (grid) {
  171. var temp = document.createElement('div')
  172. QcCardDemo.renderSingleCard(temp, false)
  173. var tasks = temp.querySelector('.qc-task-cards-grid')
  174. if (tasks) grid.innerHTML = tasks.innerHTML
  175. })
  176. })
  177. </script>
  178. </body>
  179. </html>