rewards.css 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. body { background-color: #F7F8FA;
  2. }
  3. .container { min-height: 100vh; background-color: #F7F8FA;
  4. }
  5. /* 顶部橙色banner */
  6. .top-banner {
  7. background: linear-gradient(135deg, #FF9800 0%, #FF5722 100%);
  8. padding: 0.625rem 0.9375rem 1.125rem;
  9. border-radius: 0.625rem;
  10. margin: 0.625rem 0.9375rem 0;
  11. box-shadow: 0 0.1875rem 0.625rem rgba(255, 87, 34, 0.25);
  12. }
  13. .month-btn {
  14. display: flex;
  15. align-items: center;
  16. justify-content: flex-end;
  17. margin-bottom: 0.625rem;
  18. }
  19. /* 年月文字和箭头在同一个圆角背景框内 */
  20. .month-text {
  21. font-size: 0.75rem;
  22. color: rgba(255,255,255,0.95);
  23. background-color: rgba(255,255,255,0.2);
  24. padding: 0.1875rem 0.4375rem;
  25. border-radius: 0.4375rem;
  26. }
  27. .stats-grid {
  28. display: flex;
  29. flex-wrap: wrap;
  30. gap: 0.5rem;
  31. }
  32. .stats-cell {
  33. width: calc(50% - 0.25rem);
  34. background-color: rgba(255,255,255,0.15);
  35. border-radius: 0.375rem;
  36. padding: 0.625rem 0.75rem;
  37. display: flex;
  38. flex-direction: column;
  39. box-sizing: border-box;
  40. }
  41. .stats-num {
  42. font-size: 1.1875rem;
  43. font-weight: bold;
  44. color: #fff;
  45. margin-bottom: 0.25rem;
  46. }
  47. .stats-unit { font-size: 0.625rem; font-weight: normal;
  48. }
  49. .stats-num.reward-num { color: #fff;
  50. }
  51. .stats-num.penalty-num { color: #FFF176;
  52. }
  53. .stats-label {
  54. font-size: 0.6875rem;
  55. color: rgba(255,255,255,0.85);
  56. margin-bottom: 0.25rem;
  57. }
  58. /* 统计数字下方的分割线 */
  59. .stats-divider {
  60. height: 0.03125rem;
  61. background-color: rgba(255,255,255,0.3);
  62. margin-bottom: 0.3125rem;
  63. }
  64. .stats-sub { font-size: 0.625rem; color: rgba(255,255,255,0.65);
  65. }
  66. /* 列表头:tab栏无底部外框线 */
  67. .list-header {
  68. display: flex;
  69. align-items: center;
  70. background-color: #fff;
  71. padding: 0 0.5rem 0 0.9375rem;
  72. margin: 0.5rem 0.9375rem 0;
  73. border-radius: 0.5rem 0.5rem 0 0;
  74. }
  75. .tab-bar { display: flex; flex: 1;
  76. }
  77. .tab-item {
  78. padding: 0.5625rem 0.5rem 0;
  79. font-size: 0.875rem;
  80. color: #999;
  81. display: flex;
  82. flex-direction: column;
  83. align-items: center;
  84. position: relative;
  85. }
  86. .tab-item:first-child { padding-left: 0;
  87. }
  88. .tab-item.active { color: #FF9800; font-weight: bold;
  89. }
  90. /* 下划线用正常流,自然居中对齐文字 */
  91. .tab-line {
  92. width: 1rem;
  93. height: 0.09375rem;
  94. background-color: #FF9800;
  95. border-radius: 0.0625rem;
  96. margin-top: 0.25rem;
  97. align-self: center;
  98. }
  99. .view-all-btn { padding: 0.25rem 0; margin-left: auto;
  100. }
  101. .view-all-text { font-size: 0.75rem; color: #999;
  102. }
  103. /* 记录列表 */
  104. .record-list {
  105. background-color: #fff;
  106. padding: 0 0.9375rem;
  107. margin: 0 0.9375rem;
  108. border-radius: 0 0 0.5rem 0.5rem;
  109. }
  110. .record-item {
  111. display: flex;
  112. align-items: center;
  113. padding: 0.75rem 0;
  114. border-bottom: 0.03125rem solid #f5f5f5;
  115. }
  116. .ri-icon {
  117. width: 2.25rem;
  118. height: 2.25rem;
  119. border-radius: 50%;
  120. background-color: #FFF3E0;
  121. display: flex;
  122. align-items: center;
  123. justify-content: center;
  124. margin-right: 0.625rem;
  125. flex-shrink: 0;
  126. }
  127. .ri-icon.ri-penalty { background-color: #FAFAFA;
  128. }
  129. .ri-icon-text {
  130. font-size: 0.9375rem;
  131. color: #FF9800;
  132. font-weight: bold;
  133. }
  134. .ri-icon.ri-penalty .ri-icon-text { color: #ccc;
  135. }
  136. .ri-content { flex: 1;
  137. }
  138. .ri-title-row { display: flex; align-items: center; margin-bottom: 0.1875rem;
  139. }
  140. .ri-date { font-size: 0.8125rem; color: #333; font-weight: bold; margin-right: 0.3125rem;
  141. }
  142. .ri-title { font-size: 0.8125rem; color: #333;
  143. }
  144. .ri-desc { font-size: 0.75rem; color: #999;
  145. }
  146. .ri-right {
  147. display: flex;
  148. flex-direction: column;
  149. align-items: flex-end;
  150. margin-left: 0.5rem;
  151. }
  152. .ri-amount { font-size: 1rem; font-weight: bold; margin-bottom: 0.125rem;
  153. }
  154. .ri-amount.positive { color: #FF5722;
  155. }
  156. .ri-amount.negative { color: #333;
  157. }
  158. .ri-status { font-size: 0.6875rem;
  159. }
  160. .ri-status.pending { color: #FF9800;
  161. }
  162. .ri-status.credited { color: #999;
  163. }
  164. .ri-status.deducted { color: #999;
  165. }
  166. .more-hint { display: block; text-align: center; font-size: 0.75rem; color: #ccc; padding: 0.9375rem 0;
  167. }
  168. /* 月份选择器 */
  169. .picker-mask {
  170. position: fixed;
  171. top: 0; left: 0;
  172. width: 100%; height: 100%;
  173. background-color: rgba(0,0,0,0.5);
  174. z-index: 999;
  175. display: flex;
  176. align-items: flex-end;
  177. }
  178. .picker-sheet {
  179. width: 100%;
  180. background-color: #fff;
  181. border-radius: 0.75rem 0.75rem 0 0;
  182. }
  183. .picker-header {
  184. display: flex;
  185. align-items: center;
  186. justify-content: space-between;
  187. padding: 0.75rem 0.9375rem;
  188. border-bottom: 0.03125rem solid #f5f5f5;
  189. }
  190. .picker-cancel { font-size: 0.875rem; color: #999;
  191. }
  192. .picker-title { font-size: 0.9375rem; font-weight: bold; color: #333;
  193. }
  194. .picker-confirm { font-size: 0.875rem; color: #FF9800; font-weight: bold;
  195. }
  196. .picker-body {
  197. display: flex;
  198. height: 12.5rem;
  199. position: relative;
  200. overflow: hidden;
  201. }
  202. .picker-column {
  203. flex: 1;
  204. height: 12.5rem;
  205. }
  206. .picker-col-item {
  207. height: 2.5rem;
  208. line-height: 2.5rem;
  209. text-align: center;
  210. font-size: 0.875rem;
  211. color: #333;
  212. }
  213. .picker-col-item.picker-selected {
  214. color: #FF9800;
  215. font-weight: bold;
  216. background-color: #FFF3E0;
  217. border-radius: 0.25rem;
  218. }
  219. .picker-highlight {
  220. position: absolute;
  221. top: 50%;
  222. left: 0;
  223. transform: translateY(-50%);
  224. width: 100%;
  225. height: 2.5rem;
  226. border-top: 0.03125rem solid #f0f0f0;
  227. border-bottom: 0.03125rem solid #f0f0f0;
  228. pointer-events: none;
  229. }