intention.scss 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. .intention-form {
  2. padding-bottom: 40rpx;
  3. }
  4. .form-section {
  5. margin-bottom: 50rpx;
  6. .section-title {
  7. font-size: 32rpx;
  8. font-weight: 600;
  9. color: #333333;
  10. margin-bottom: 24rpx;
  11. display: flex;
  12. align-items: center;
  13. .sub {
  14. font-size: 26rpx;
  15. color: #B3B3B3;
  16. font-weight: normal;
  17. margin-left: 12rpx;
  18. }
  19. }
  20. .tag-list {
  21. display: flex;
  22. flex-wrap: wrap;
  23. gap: 20rpx;
  24. .tag-item {
  25. flex: 0 0 calc(33.33% - 14rpx); // 3 items per row approx
  26. height: 76rpx;
  27. line-height: 76rpx;
  28. text-align: center;
  29. background-color: #F8FAFC;
  30. border-radius: 16rpx;
  31. color: #666666;
  32. font-size: 28rpx;
  33. box-sizing: border-box;
  34. border: 2rpx solid transparent;
  35. transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  36. &.active {
  37. background-color: #F0F6FF;
  38. color: $brand-primary;
  39. border-color: rgba(31, 108, 255, 0.4);
  40. font-weight: 500;
  41. }
  42. &:active {
  43. transform: scale(0.98);
  44. }
  45. }
  46. }
  47. .input-box {
  48. display: flex;
  49. justify-content: space-between;
  50. align-items: center;
  51. background-color: #F8FAFC;
  52. border-radius: 16rpx;
  53. padding: 0 32rpx;
  54. height: 96rpx;
  55. transition: all 0.3s ease;
  56. border: 2rpx solid transparent;
  57. &:active {
  58. background-color: #EBF1FA;
  59. }
  60. .date-text {
  61. font-size: 30rpx;
  62. color: #1A1A1A;
  63. font-weight: 500;
  64. &.is-empty {
  65. color: #A0AABF;
  66. font-weight: 400;
  67. }
  68. }
  69. .arrow {
  70. width: 14rpx;
  71. height: 14rpx;
  72. border-right: 3.5rpx solid #B0BACC;
  73. border-top: 3.5rpx solid #B0BACC;
  74. transform: rotate(45deg);
  75. margin-left: 20rpx;
  76. border-radius: 2rpx;
  77. }
  78. }
  79. }
  80. .list-section {
  81. .item-header {
  82. display: flex;
  83. justify-content: space-between;
  84. align-items: center;
  85. margin-bottom: 24rpx;
  86. .section-title {
  87. margin-bottom: 0;
  88. }
  89. .icon-plus {
  90. width: 52rpx;
  91. height: 52rpx;
  92. border-radius: 50%;
  93. background-color: #F0F6FF;
  94. position: relative;
  95. border: none;
  96. transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  97. &::before,
  98. &::after {
  99. content: '';
  100. position: absolute;
  101. top: 50%;
  102. left: 50%;
  103. transform: translate(-50%, -50%);
  104. background-color: $brand-primary;
  105. border-radius: 2rpx;
  106. transition: background-color 0.2s;
  107. }
  108. &::before {
  109. width: 24rpx;
  110. height: 4rpx;
  111. }
  112. &::after {
  113. width: 4rpx;
  114. height: 24rpx;
  115. }
  116. &:active {
  117. background-color: $brand-primary;
  118. transform: scale(0.92);
  119. &::before,
  120. &::after {
  121. background-color: #FFFFFF;
  122. }
  123. }
  124. }
  125. }
  126. .item-list {
  127. display: flex;
  128. flex-direction: column;
  129. .empty-state {
  130. display: flex;
  131. flex-direction: column;
  132. align-items: center;
  133. justify-content: center;
  134. padding: 50rpx 0;
  135. background-color: #F8FAFF;
  136. border-radius: 20rpx;
  137. margin: 16rpx 0;
  138. border: 2rpx dashed #D6E4FF;
  139. .empty-icon {
  140. width: 72rpx;
  141. height: 72rpx;
  142. margin-bottom: 24rpx;
  143. }
  144. .empty-text {
  145. font-size: 26rpx;
  146. color: #9AADD1;
  147. }
  148. }
  149. .item {
  150. display: flex;
  151. justify-content: space-between;
  152. align-items: center;
  153. padding: 36rpx 28rpx;
  154. margin: 16rpx 0;
  155. background: linear-gradient(145deg, #F8FAFF 0%, #EFF4FF 100%);
  156. border: 2rpx solid #EAF0FF;
  157. border-radius: 20rpx;
  158. box-shadow: 0 4rpx 12rpx rgba(31, 108, 255, 0.04);
  159. position: relative;
  160. transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  161. .icon-close {
  162. position: absolute;
  163. top: -12rpx;
  164. right: -12rpx;
  165. width: 32rpx;
  166. height: 32rpx;
  167. border-radius: 50%;
  168. background-color: #E6F0FF;
  169. display: flex;
  170. justify-content: center;
  171. align-items: center;
  172. z-index: 10;
  173. transition: all 0.2s;
  174. box-shadow: 0 2rpx 6rpx rgba(31, 108, 255, 0.1);
  175. &::before,
  176. &::after {
  177. content: '';
  178. position: absolute;
  179. width: 14rpx;
  180. height: 3rpx;
  181. background-color: #6B93E0;
  182. border-radius: 2rpx;
  183. transition: all 0.2s;
  184. }
  185. &::before {
  186. transform: rotate(45deg);
  187. }
  188. &::after {
  189. transform: rotate(-45deg);
  190. }
  191. &:active {
  192. background-color: #FFDEE0;
  193. transform: scale(0.9);
  194. &::before,
  195. &::after {
  196. background-color: #FF4D4F;
  197. }
  198. }
  199. }
  200. &:active {
  201. background: #EAF2FF;
  202. transform: scale(0.98);
  203. box-shadow: 0 2rpx 6rpx rgba(31, 108, 255, 0.06);
  204. }
  205. .item-content {
  206. flex: 1;
  207. padding-right: 30rpx;
  208. .title-row {
  209. display: flex;
  210. justify-content: flex-start;
  211. align-items: center;
  212. .item-title {
  213. font-size: 32rpx;
  214. font-weight: 600;
  215. color: #1A1A1A;
  216. }
  217. }
  218. }
  219. }
  220. }
  221. }
  222. .custom-modal {
  223. position: fixed;
  224. top: 0;
  225. left: 0;
  226. right: 0;
  227. bottom: 0;
  228. z-index: 999;
  229. visibility: hidden;
  230. opacity: 0;
  231. transition: all 0.3s;
  232. display: flex;
  233. justify-content: center;
  234. align-items: center;
  235. &.is-show {
  236. visibility: visible;
  237. opacity: 1;
  238. .modal-content {
  239. transform: scale(1);
  240. opacity: 1;
  241. }
  242. }
  243. .modal-mask {
  244. position: absolute;
  245. width: 100%;
  246. height: 100%;
  247. background-color: rgba(0, 0, 0, 0.4);
  248. }
  249. .modal-content {
  250. position: relative;
  251. width: 600rpx;
  252. background-color: #FFFFFF;
  253. border-radius: 24rpx;
  254. transform: scale(0.9);
  255. opacity: 0;
  256. transition: all 0.3s;
  257. overflow: hidden;
  258. .modal-title {
  259. font-size: 36rpx;
  260. font-weight: 600;
  261. color: #1A1A1A;
  262. text-align: center;
  263. padding: 40rpx 0 20rpx;
  264. }
  265. .modal-body {
  266. font-size: 32rpx;
  267. color: #666666;
  268. text-align: center;
  269. padding: 0 40rpx 50rpx;
  270. line-height: 1.5;
  271. }
  272. .modal-footer {
  273. display: flex;
  274. justify-content: space-between;
  275. align-items: center;
  276. padding: 0 40rpx 40rpx;
  277. view {
  278. flex: 1;
  279. height: 80rpx;
  280. display: flex;
  281. justify-content: center;
  282. align-items: center;
  283. font-size: 30rpx;
  284. font-weight: 500;
  285. border-radius: 40rpx;
  286. transition: all 0.25s;
  287. &:active {
  288. transform: scale(0.96);
  289. }
  290. }
  291. .btn-cancel {
  292. background-color: #F0F4FC;
  293. color: #555555;
  294. margin-right: 24rpx;
  295. }
  296. .btn-confirm {
  297. background: linear-gradient(135deg, $brand-primary 0%, #0052D9 100%);
  298. color: #FFFFFF;
  299. box-shadow: 0 8rpx 16rpx rgba(31, 108, 255, 0.2);
  300. }
  301. }
  302. }
  303. }