oa-task-list.scss 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. // OA 任务中心列表壳 + OaTaskCard(对齐 list.scss 卡片节奏与 start 页间距)
  2. .oa-task-list {
  3. padding: 24rpx 24rpx 0;
  4. }
  5. /* 空态虚线软卡:与列表卡同左右 gutter,避免贴边 */
  6. .oa-empty-wrap {
  7. padding: 40rpx 24rpx;
  8. box-sizing: border-box;
  9. }
  10. .oa-task-list__empty,
  11. .oa-task-list__end {
  12. padding: 48rpx 16rpx 56rpx;
  13. text-align: center;
  14. font-size: 24rpx;
  15. color: var(--text-muted, #5f7a6d);
  16. letter-spacing: 0.04em;
  17. }
  18. .oa-task-list__empty {
  19. padding-top: 96rpx;
  20. font-size: 28rpx;
  21. }
  22. .oa-task-card {
  23. position: relative;
  24. margin-bottom: 24rpx;
  25. border-radius: var(--radius-card, 28rpx);
  26. background: var(--surface, #fff);
  27. border: 1rpx solid var(--border, #d8f3e5);
  28. box-shadow: var(--shadow-soft, 0 8rpx 32rpx rgba(22, 163, 74, 0.07));
  29. overflow: hidden;
  30. }
  31. .oa-task-card__body {
  32. padding: 28rpx 28rpx 24rpx;
  33. }
  34. .oa-task-card__top {
  35. display: flex;
  36. align-items: flex-start;
  37. gap: 16rpx;
  38. }
  39. .oa-task-card__title-row {
  40. flex: 1;
  41. min-width: 0;
  42. display: flex;
  43. align-items: flex-start;
  44. gap: 12rpx;
  45. }
  46. .oa-task-card__unread {
  47. flex-shrink: 0;
  48. width: 16rpx;
  49. height: 16rpx;
  50. margin-top: 12rpx;
  51. border-radius: 50%;
  52. background: var(--danger, #ef4444);
  53. }
  54. .oa-task-card__title {
  55. flex: 1;
  56. min-width: 0;
  57. font-size: 30rpx;
  58. font-weight: 700;
  59. line-height: 1.4;
  60. color: var(--text-primary, #0f291e);
  61. word-break: break-word;
  62. }
  63. .oa-task-card__status {
  64. flex-shrink: 0;
  65. max-width: 40%;
  66. font-size: 22rpx;
  67. font-weight: 650;
  68. line-height: 1.2;
  69. padding: 8rpx 18rpx;
  70. border-radius: 999rpx;
  71. text-align: center;
  72. box-sizing: border-box;
  73. }
  74. .oa-task-card__status.is-warn {
  75. background: rgba(217, 119, 6, 0.12);
  76. color: var(--warning, #d97706);
  77. }
  78. .oa-task-card__status.is-success {
  79. background: rgba(16, 185, 129, 0.12);
  80. color: var(--success, #10b981);
  81. }
  82. .oa-task-card__status.is-danger {
  83. background: rgba(239, 68, 68, 0.12);
  84. color: var(--danger, #ef4444);
  85. }
  86. .oa-task-card__status.is-info {
  87. background: rgba(95, 122, 109, 0.12);
  88. color: var(--text-muted, #5f7a6d);
  89. }
  90. .oa-task-card__meta {
  91. margin-top: 20rpx;
  92. display: flex;
  93. flex-direction: column;
  94. gap: 12rpx;
  95. }
  96. .oa-task-card__meta-line {
  97. display: flex;
  98. align-items: flex-start;
  99. gap: 16rpx;
  100. font-size: 24rpx;
  101. line-height: 1.45;
  102. }
  103. .oa-task-card__meta-label {
  104. flex-shrink: 0;
  105. min-width: 120rpx;
  106. color: var(--text-muted, #5f7a6d);
  107. }
  108. .oa-task-card__meta-value {
  109. flex: 1;
  110. min-width: 0;
  111. color: var(--text-primary, #0f291e);
  112. word-break: break-word;
  113. }
  114. .oa-task-card__footer {
  115. display: flex;
  116. flex-wrap: wrap;
  117. justify-content: flex-end;
  118. gap: 16rpx;
  119. padding: 16rpx 24rpx 24rpx;
  120. border-top: 1rpx dashed rgba(140, 170, 155, 0.28);
  121. }
  122. .oa-task-card__btn {
  123. display: inline-flex;
  124. align-items: center;
  125. justify-content: center;
  126. min-height: 72rpx;
  127. min-width: 128rpx;
  128. padding: 0 28rpx;
  129. box-sizing: border-box;
  130. border-radius: 16rpx;
  131. font-size: 26rpx;
  132. font-weight: 600;
  133. line-height: 1;
  134. color: var(--text-primary, #0f291e);
  135. background: #fff;
  136. border: 1rpx solid var(--border, #d8f3e5);
  137. }
  138. .oa-task-card__btn:active {
  139. opacity: 0.78;
  140. }
  141. .oa-task-card__btn.is-primary {
  142. color: #fff;
  143. background: var(--brand-green, #22c55e);
  144. border-color: var(--brand-green, #22c55e);
  145. }
  146. .oa-task-card__btn.is-danger {
  147. color: var(--danger, #ef4444);
  148. background: rgba(239, 68, 68, 0.06);
  149. border-color: rgba(239, 68, 68, 0.35);
  150. }
  151. .oa-task-card__btn.is-disabled {
  152. opacity: 0.45;
  153. pointer-events: none;
  154. }
  155. /* 钉钉风列表卡 · 左上圆圈序号(五中心共用 · 方案 A) */
  156. .dd-card {
  157. position: relative;
  158. overflow: hidden;
  159. padding-left: 84rpx;
  160. }
  161. .dd-card__corner {
  162. position: absolute;
  163. top: 20rpx;
  164. left: 20rpx;
  165. width: 48rpx;
  166. height: 48rpx;
  167. border-radius: 50%;
  168. display: flex;
  169. align-items: center;
  170. justify-content: center;
  171. background: #0a9f6d;
  172. box-shadow: 0 4rpx 12rpx rgba(10, 159, 109, 0.28);
  173. pointer-events: none;
  174. z-index: 1;
  175. }
  176. .dd-card__corner-num {
  177. position: static;
  178. font-size: 20rpx;
  179. font-weight: 800;
  180. line-height: 1;
  181. color: #fff;
  182. letter-spacing: -0.02em;
  183. }