pl-site-plan.scss 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. /* 运输计划单 · 现场记录/回传正文(三墙绿;顶栏样式见 bx-theme) */
  2. .pl-site-plan-page {
  3. --pl-site-primary: #059669;
  4. --pl-site-brand: #0a9f6d;
  5. padding-bottom: 24px;
  6. background: #f8fafc;
  7. min-height: 100vh;
  8. box-sizing: border-box;
  9. }
  10. .pl-site-plan-page .filters {
  11. margin: 12px 16px;
  12. padding: 4px 4px 10px;
  13. border-radius: 12px;
  14. background: #fff;
  15. border: 1px solid #e2e8f0;
  16. box-sizing: border-box;
  17. }
  18. .pl-site-plan-page .search-input {
  19. display: block;
  20. width: calc(100% - 8px);
  21. height: 36px;
  22. margin: 8px 4px 0;
  23. padding: 0 12px;
  24. border: 1px solid #cbd5e1;
  25. border-radius: 8px;
  26. font-size: 14px;
  27. color: #0f172a;
  28. background: #fff;
  29. box-sizing: border-box;
  30. }
  31. .pl-site-plan-page .list-body {
  32. padding: 0 16px 24px;
  33. }
  34. .pl-site-plan-page .record-card {
  35. position: relative;
  36. margin-bottom: 10px;
  37. padding: 16px 14px 14px;
  38. border-radius: 12px;
  39. background: #fff;
  40. border: 1px solid #e2e8f0;
  41. overflow: hidden;
  42. }
  43. .pl-site-plan-page .index-tag {
  44. position: absolute;
  45. top: 0;
  46. left: 0;
  47. min-width: 24px;
  48. height: 22px;
  49. padding: 0 8px;
  50. display: inline-flex;
  51. align-items: center;
  52. justify-content: center;
  53. border-radius: 12px 0 10px 0;
  54. background: var(--pl-site-primary);
  55. color: #fff;
  56. font-size: 12px;
  57. font-weight: 700;
  58. line-height: 1;
  59. }
  60. .pl-site-plan-page .record-top {
  61. display: flex;
  62. align-items: center;
  63. justify-content: space-between;
  64. gap: 8px;
  65. margin-bottom: 8px;
  66. padding-left: 4px;
  67. }
  68. .pl-site-plan-page .card-title {
  69. font-size: 15px;
  70. font-weight: 700;
  71. color: #0f172a;
  72. word-break: break-all;
  73. }
  74. .pl-site-plan-page .tag {
  75. flex-shrink: 0;
  76. font-size: 11px;
  77. font-weight: 600;
  78. padding: 2px 8px;
  79. border-radius: 999px;
  80. }
  81. .pl-site-plan-page .tag--success {
  82. background: #ecfdf5;
  83. color: #047857;
  84. }
  85. .pl-site-plan-page .tag--danger {
  86. background: #fef2f2;
  87. color: #dc2626;
  88. }
  89. .pl-site-plan-page .tag--muted {
  90. background: #f1f5f9;
  91. color: #64748b;
  92. }
  93. .pl-site-plan-page .meta {
  94. font-size: 13px;
  95. color: #475569;
  96. line-height: 1.5;
  97. margin-top: 2px;
  98. }
  99. .pl-site-plan-page .plate-hl {
  100. color: var(--pl-site-primary);
  101. font-weight: 700;
  102. }
  103. .pl-site-plan-page .stop-block {
  104. margin-top: 8px;
  105. padding-top: 8px;
  106. border-top: 1px dashed #e2e8f0;
  107. }
  108. .pl-site-plan-page .stop-block__title {
  109. font-size: 13px;
  110. font-weight: 700;
  111. color: #0f172a;
  112. margin-bottom: 4px;
  113. }
  114. .pl-site-plan-page .page-loading,
  115. .pl-site-plan-page .empty-hint {
  116. text-align: center;
  117. color: #94a3b8;
  118. padding: 48px 16px;
  119. font-size: 14px;
  120. }
  121. /* detail */
  122. .pl-site-plan-detail {
  123. padding-bottom: 100px;
  124. }
  125. .pl-site-plan-detail .section-card {
  126. margin: 12px 16px;
  127. padding: 12px 14px;
  128. border-radius: 12px;
  129. background: #fff;
  130. border: 1px solid #e2e8f0;
  131. }
  132. .pl-site-plan-detail .kv-row {
  133. display: flex;
  134. justify-content: space-between;
  135. gap: 12px;
  136. padding: 8px 0;
  137. border-bottom: 1px solid #f1f5f9;
  138. font-size: 14px;
  139. }
  140. .pl-site-plan-detail .kv-row:last-child {
  141. border-bottom: none;
  142. }
  143. .pl-site-plan-detail .kv-k {
  144. color: #64748b;
  145. flex-shrink: 0;
  146. }
  147. .pl-site-plan-detail .kv-v {
  148. color: #0f172a;
  149. text-align: right;
  150. word-break: break-all;
  151. }
  152. .pl-site-plan-detail .stop-title {
  153. font-size: 15px;
  154. font-weight: 700;
  155. color: #0f172a;
  156. margin-bottom: 8px;
  157. }
  158. .pl-site-plan-detail .addr-row {
  159. display: flex;
  160. align-items: flex-start;
  161. gap: 8px;
  162. }
  163. .pl-site-plan-detail .nav-btn {
  164. flex-shrink: 0;
  165. font-size: 12px;
  166. color: #fff;
  167. background: var(--pl-site-primary);
  168. border-radius: 999px;
  169. padding: 4px 10px;
  170. }
  171. .pl-site-plan-detail .product-card {
  172. margin-top: 10px;
  173. padding: 10px;
  174. border-radius: 10px;
  175. background: #f8fafc;
  176. border: 1px solid #e2e8f0;
  177. }
  178. .pl-site-plan-detail .product-name {
  179. font-weight: 700;
  180. color: #0f172a;
  181. margin-bottom: 6px;
  182. }
  183. .pl-site-plan-detail .actual-box {
  184. margin-top: 12px;
  185. padding: 10px;
  186. border-radius: 10px;
  187. background: #ecfdf5;
  188. }
  189. .pl-site-plan-detail .actual-label {
  190. font-size: 13px;
  191. font-weight: 700;
  192. color: #047857;
  193. margin-bottom: 6px;
  194. }
  195. .pl-site-plan-detail .actual-row {
  196. display: flex;
  197. align-items: center;
  198. gap: 8px;
  199. }
  200. .pl-site-plan-detail .actual-input {
  201. flex: 1;
  202. height: 40px;
  203. padding: 0 12px;
  204. border: 1px solid #a7f3d0;
  205. border-radius: 8px;
  206. background: #fff;
  207. font-size: 16px;
  208. }
  209. .pl-site-plan-detail .remark-input {
  210. width: 100%;
  211. min-height: 64px;
  212. margin-top: 10px;
  213. padding: 10px 12px;
  214. border: 1px solid #e2e8f0;
  215. border-radius: 8px;
  216. font-size: 14px;
  217. box-sizing: border-box;
  218. }
  219. .pl-site-plan-detail .attach-label {
  220. margin-top: 12px;
  221. font-size: 13px;
  222. color: #64748b;
  223. }
  224. .pl-site-plan-detail .attach-row {
  225. display: flex;
  226. flex-wrap: wrap;
  227. gap: 8px;
  228. margin-top: 8px;
  229. }
  230. .pl-site-plan-detail .attach-thumb {
  231. width: 72px;
  232. height: 72px;
  233. border-radius: 8px;
  234. background: #f1f5f9;
  235. }
  236. .pl-site-plan-detail .attach-add {
  237. width: 72px;
  238. height: 72px;
  239. border-radius: 8px;
  240. border: 1px dashed #a7f3d0;
  241. display: flex;
  242. align-items: center;
  243. justify-content: center;
  244. color: var(--pl-site-primary);
  245. font-size: 28px;
  246. }
  247. .pl-site-plan-detail .page-footer {
  248. position: fixed;
  249. left: 0;
  250. right: 0;
  251. bottom: 0;
  252. padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  253. background: #fff;
  254. border-top: 1px solid #e2e8f0;
  255. display: flex;
  256. gap: 10px;
  257. z-index: 20;
  258. }
  259. .pl-site-plan-detail .footer-btn {
  260. flex: 1;
  261. height: 44px;
  262. border-radius: 999px;
  263. font-size: 15px;
  264. font-weight: 600;
  265. display: flex;
  266. align-items: center;
  267. justify-content: center;
  268. }
  269. .pl-site-plan-detail .footer-btn--ghost {
  270. background: #ecfdf5;
  271. color: #047857;
  272. }
  273. .pl-site-plan-detail .footer-btn--primary {
  274. background: var(--pl-site-primary);
  275. color: #fff;
  276. }