oa-task-list.scss 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. // OA 任务中心列表壳 + OaTaskCard(对齐 list.scss 卡片节奏与 start 页间距)
  2. .oa-task-list {
  3. padding: 24rpx 24rpx 0;
  4. }
  5. .oa-task-list__empty,
  6. .oa-task-list__end {
  7. padding: 48rpx 16rpx 56rpx;
  8. text-align: center;
  9. font-size: 24rpx;
  10. color: var(--text-muted, #5f7a6d);
  11. letter-spacing: 0.04em;
  12. }
  13. .oa-task-list__empty {
  14. padding-top: 96rpx;
  15. font-size: 28rpx;
  16. }
  17. .oa-task-card {
  18. position: relative;
  19. margin-bottom: 24rpx;
  20. border-radius: var(--radius-card, 28rpx);
  21. background: var(--surface, #fff);
  22. border: 1rpx solid var(--border, #d8f3e5);
  23. box-shadow: var(--shadow-soft, 0 8rpx 32rpx rgba(22, 163, 74, 0.07));
  24. overflow: hidden;
  25. }
  26. .oa-task-card__body {
  27. padding: 28rpx 28rpx 24rpx;
  28. }
  29. .oa-task-card__top {
  30. display: flex;
  31. align-items: flex-start;
  32. gap: 16rpx;
  33. }
  34. .oa-task-card__title-row {
  35. flex: 1;
  36. min-width: 0;
  37. display: flex;
  38. align-items: flex-start;
  39. gap: 12rpx;
  40. }
  41. .oa-task-card__unread {
  42. flex-shrink: 0;
  43. width: 16rpx;
  44. height: 16rpx;
  45. margin-top: 12rpx;
  46. border-radius: 50%;
  47. background: var(--danger, #ef4444);
  48. }
  49. .oa-task-card__title {
  50. flex: 1;
  51. min-width: 0;
  52. font-size: 30rpx;
  53. font-weight: 700;
  54. line-height: 1.4;
  55. color: var(--text-primary, #0f291e);
  56. word-break: break-word;
  57. }
  58. .oa-task-card__status {
  59. flex-shrink: 0;
  60. max-width: 40%;
  61. font-size: 22rpx;
  62. font-weight: 650;
  63. line-height: 1.2;
  64. padding: 8rpx 18rpx;
  65. border-radius: 999rpx;
  66. text-align: center;
  67. box-sizing: border-box;
  68. }
  69. .oa-task-card__status.is-warn {
  70. background: rgba(217, 119, 6, 0.12);
  71. color: var(--warning, #d97706);
  72. }
  73. .oa-task-card__status.is-success {
  74. background: rgba(16, 185, 129, 0.12);
  75. color: var(--success, #10b981);
  76. }
  77. .oa-task-card__status.is-danger {
  78. background: rgba(239, 68, 68, 0.12);
  79. color: var(--danger, #ef4444);
  80. }
  81. .oa-task-card__status.is-info {
  82. background: rgba(95, 122, 109, 0.12);
  83. color: var(--text-muted, #5f7a6d);
  84. }
  85. .oa-task-card__meta {
  86. margin-top: 20rpx;
  87. display: flex;
  88. flex-direction: column;
  89. gap: 12rpx;
  90. }
  91. .oa-task-card__meta-line {
  92. display: flex;
  93. align-items: flex-start;
  94. gap: 16rpx;
  95. font-size: 24rpx;
  96. line-height: 1.45;
  97. }
  98. .oa-task-card__meta-label {
  99. flex-shrink: 0;
  100. min-width: 120rpx;
  101. color: var(--text-muted, #5f7a6d);
  102. }
  103. .oa-task-card__meta-value {
  104. flex: 1;
  105. min-width: 0;
  106. color: var(--text-primary, #0f291e);
  107. word-break: break-word;
  108. }
  109. .oa-task-card__footer {
  110. display: flex;
  111. flex-wrap: wrap;
  112. justify-content: flex-end;
  113. gap: 16rpx;
  114. padding: 16rpx 24rpx 24rpx;
  115. border-top: 1rpx dashed rgba(140, 170, 155, 0.28);
  116. }
  117. .oa-task-card__btn {
  118. display: inline-flex;
  119. align-items: center;
  120. justify-content: center;
  121. min-height: 72rpx;
  122. min-width: 128rpx;
  123. padding: 0 28rpx;
  124. box-sizing: border-box;
  125. border-radius: 16rpx;
  126. font-size: 26rpx;
  127. font-weight: 600;
  128. line-height: 1;
  129. color: var(--text-primary, #0f291e);
  130. background: #fff;
  131. border: 1rpx solid var(--border, #d8f3e5);
  132. }
  133. .oa-task-card__btn:active {
  134. opacity: 0.78;
  135. }
  136. .oa-task-card__btn.is-primary {
  137. color: #fff;
  138. background: var(--brand-green, #22c55e);
  139. border-color: var(--brand-green, #22c55e);
  140. }
  141. .oa-task-card__btn.is-danger {
  142. color: var(--danger, #ef4444);
  143. background: rgba(239, 68, 68, 0.06);
  144. border-color: rgba(239, 68, 68, 0.35);
  145. }