返回 AiToEarn
mineTask.module.scss
根目录 / project / aitoearn-electron / src / views / task / mineTask.module.scss
1 .mineTaskContainer {
2 padding: 16px;
3 background-color: #fff;
4 border-radius: 8px;
5 min-height: 100%;
6 }
7
8 .pageHeader {
9 display: flex;
10 justify-content: space-between;
11 align-items: center;
12 margin-bottom: 24px;
13 padding-bottom: 16px;
14 border-bottom: 1px solid #f0f0f0;
15 }
16
17 .pageTitle {
18 font-size: 20px;
19 font-weight: 500;
20 color: #333;
21 margin: 0;
22 }
23
24 .pageActions {
25 display: flex;
26 align-items: center;
27 }
28
29 .statusFilter {
30 :global {
31 .ant-select-selector {
32 border-radius: 4px;
33 }
34 }
35 }
36
37 .refreshButton {
38 border-radius: 4px;
39
40 &:hover {
41 color: #1890ff;
42 border-color: #1890ff;
43 }
44 }
45
46 .taskList {
47 display: flex;
48 flex-direction: column;
49 gap: 16px;
50 }
51
52 .taskCard {
53 border-radius: 8px;
54 overflow: hidden;
55 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
56 transition: transform 0.2s, box-shadow 0.2s;
57
58 &:hover {
59 transform: translateY(-3px);
60 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
61 }
62 }
63
64 .taskCardContent {
65 display: flex;
66 align-items: flex-start;
67 }
68
69 .taskImageContainer {
70 width: 128px;
71 height: 128px;
72 border-radius: 8px;
73 overflow: hidden;
74 margin-right: 16px;
75 margin-top: 6px;
76 flex-shrink: 0;
77 background-color: #f0f0f0;
78 display: flex;
79 align-items: center;
80 justify-content: center;
81 }
82
83 .taskImage {
84 width: 100%;
85 height: 100%;
86 object-fit: cover;
87 }
88
89 .taskInfo {
90 flex: 1;
91 min-width: 0;
92 padding: 2px;
93 display: flex;
94 flex-direction: column;
95 text-align: left;
96 }
97
98 .taskHeader {
99 display: flex;
100 align-items: center;
101 justify-content: space-between;
102 margin-bottom: 16px;
103 }
104
105 .taskTitle {
106 font-size: 18px;
107 font-weight: 500;
108 color: #333;
109 margin: 0;
110 display: flex;
111 align-items: center;
112 flex-wrap: wrap;
113 }
114
115 .taskId {
116 font-size: 12px;
117 color: #999;
118 font-weight: normal;
119 margin-left: 12px;
120 }
121
122 .statusTag {
123 font-size: 12px;
124 }
125
126 .taskDetails {
127 display: flex;
128 flex-direction: column;
129 gap: 12px;
130 }
131
132 .taskDetail {
133 display: flex;
134 align-items: center;
135 font-size: 14px;
136 color: #666;
137 }
138
139 .detailIcon {
140 margin-right: 8px;
141 color: #999;
142 font-size: 16px;
143 }
144
145 .detailLabel {
146 margin-right: 8px;
147 min-width: 70px;
148 }
149
150 .detailValue {
151 color: #333;
152 }
153
154 .tagContainer {
155 display: flex;
156 gap: 8px;
157 flex-wrap: wrap;
158 }
159
160 .typeTag {
161 font-size: 12px;
162 }
163
164 .taskAction {
165 margin-left: 16px;
166 display: flex;
167 flex-direction: column;
168 gap: 8px;
169 align-items: flex-end;
170 }
171
172 .withdrawButton {
173 width: 100%;
174 background-color: #a66ae4;
175 border-color: #a66ae4;
176
177 &:hover {
178 background-color: #a66ae4;
179 border-color: #a66ae4;
180 }
181 }
182
183 .viewButton {
184 min-width: 100px;
185 color: white;
186
187 &:hover {
188 background-color: #9559d1;
189 border-color: #9559d1;
190 color: white;
191 }
192 }
193
194 .loadingContainer {
195 display: flex;
196 justify-content: center;
197 margin-top: 32px;
198 margin-bottom: 16px;
199 }
200
201 .loadMoreContainer {
202 text-align: center;
203 padding: 16px 0;
204
205 button {
206 color: #a66ae4;
207 font-size: 14px;
208 }
209 }
210
211 .emptyContainer {
212 background-color: #f9f9f9;
213 padding: 30px 20px;
214 border-radius: 8px;
215 margin-top: 20px;
216 }
217
218 .emptyText {
219 text-align: center;
220 margin-bottom: 30px;
221
222 h3 {
223 font-size: 16px;
224 font-weight: 500;
225 color: #333;
226 margin-bottom: 8px;
227
228 .emptyHighlight {
229 color: #ff4d4f;
230 font-weight: bold;
231 }
232 }
233
234 p {
235 color: #666;
236 font-size: 14px;
237 }
238
239 .emptyLink {
240 color: #1890ff;
241 cursor: pointer;
242
243 &:hover {
244 text-decoration: underline;
245 }
246 }
247 }
248
249 .emptySubtitle {
250 text-align: center;
251 font-size: 15px;
252 color: #333;
253 margin-bottom: 20px;
254 }
255
256 .guideContainer {
257 border-radius: 8px;
258 padding: 20px;
259 }
260
261 .guideStep {
262 margin-bottom: 30px;
263
264 h4 {
265 text-align: center;
266 font-size: 15px;
267 font-weight: 500;
268 color: #333;
269 margin-bottom: 20px;
270 }
271 }
272
273 .qrCodeContainer {
274 display: flex;
275 justify-content: space-around;
276 margin: 0 auto;
277 max-width: 600px;
278 }
279
280 .qrCodeItem {
281 display: flex;
282 flex-direction: column;
283 align-items: center;
284 width: 45%;
285 }
286
287 .qrCodeTitle {
288 text-align: center;
289 font-size: 14px;
290 color: #333;
291 margin-bottom: 15px;
292 }
293
294 .qrCodeWrapper {
295 width: 140px;
296 height: 140px;
297 border: 1px solid #eee;
298 padding: 5px;
299 background-color: #fff;
300 margin-bottom: 10px;
301 }
302
303 .qrCode {
304 width: 100%;
305 height: 100%;
306 }
307
308 .qrCodeCaption {
309 font-size: 14px;
310 color: #333;
311 margin-bottom: 4px;
312 text-align: center;
313 }
314
315 .qrCodeSubCaption {
316 font-size: 12px;
317 color: #999;
318 text-align: center;
319 }
320
321 .processContainer {
322 margin-top: 40px;
323 }
324
325 .processTitle {
326 text-align: center;
327 font-size: 15px;
328 font-weight: 500;
329 color: #333;
330 margin-bottom: 30px;
331 position: relative;
332
333 &:before, &:after {
334 content: '';
335 display: inline-block;
336 width: 30px;
337 height: 1px;
338 background-color: #ccc;
339 vertical-align: middle;
340 margin: 0 10px;
341 }
342 }
343
344 .processSteps {
345 display: flex;
346 justify-content: space-between;
347 align-items: center;
348 max-width: 700px;
349 margin: 0 auto;
350 }
351
352 .processStep {
353 display: flex;
354 flex-direction: column;
355 align-items: center;
356 width: 20%;
357 }
358
359 .processIcon {
360 width: 50px;
361 height: 50px;
362 background-color: #fff;
363 border-radius: 50%;
364 display: flex;
365 align-items: center;
366 justify-content: center;
367 margin-bottom: 10px;
368 }
369
370 .stepIcon {
371 width: 30px;
372 height: 30px;
373 }
374
375 .stepText {
376 text-align: center;
377 font-size: 12px;
378 color: #666;
379 max-width: 80px;
380 }
381
382 .processDivider {
383 flex-grow: 1;
384 height: 1px;
385 background-color: #e8e8e8;
386 position: relative;
387 margin: 0 5px;
388 margin-bottom: 30px;
389
390 &:after {
391 content: '';
392 position: absolute;
393 right: 0;
394 top: 50%;
395 transform: translateY(-50%);
396 width: 0;
397 height: 0;
398 border-top: 4px solid transparent;
399 border-bottom: 4px solid transparent;
400 border-left: 6px solid #e8e8e8;
401 }
402 }
403
404 .guideLink {
405 color: #1890ff;
406 cursor: pointer;
407 text-decoration: underline;
408
409 &:hover {
410 color: #40a9ff;
411 }
412 }
413
414 .guideModal {
415 :global {
416 .ant-modal-body {
417 max-height: 70vh;
418 overflow-y: auto;
419 padding: 24px;
420 }
421
422 .ant-modal-header {
423 border-bottom: 1px solid #f0f0f0;
424 padding: 16px 24px;
425 }
426
427 .ant-modal-title {
428 font-size: 18px;
429 font-weight: 500;
430 color: #333;
431 }
432
433 .ant-modal-footer {
434 border-top: 1px solid #f0f0f0;
435 padding: 12px 24px;
436 }
437 }
438 }
439
440 .guideModalContent {
441 color: #333;
442 line-height: 1.6;
443 }
444
445 .guideHeader {
446 margin-bottom: 24px;
447 text-align: center;
448
449 h2 {
450 font-size: 20px;
451 font-weight: 500;
452 margin-bottom: 8px;
453 }
454 }
455
456 .guideDate {
457 color: #999;
458 font-size: 14px;
459 }
460
461 .guideIntro {
462 margin-bottom: 24px;
463
464 p {
465 margin-bottom: 12px;
466 }
467 }
468
469 .guideSection {
470 margin-bottom: 32px;
471
472 h3 {
473 font-size: 18px;
474 font-weight: 500;
475 margin-bottom: 16px;
476 padding-bottom: 8px;
477 border-bottom: 1px solid #f0f0f0;
478 }
479 }
480
481 .guideSteps {
482 padding-left: 24px;
483
484 li {
485 margin-bottom: 20px;
486 }
487
488 p {
489 margin-bottom: 12px;
490 }
491 }
492
493 .guideImageContainer {
494 margin: 16px 0;
495 text-align: center;
496 }
497
498 .guideImage {
499 max-width: 100%;
500 max-height: 300px;
501 border: 1px solid #eee;
502 border-radius: 4px;
503 }
504
505 .guideImageCaption {
506 margin-top: 8px;
507 color: #666;
508 font-size: 14px;
509 }
510
511 .guideFaq {
512 .faqItem {
513 margin-bottom: 24px;
514
515 h4 {
516 font-size: 16px;
517 font-weight: 500;
518 margin-bottom: 12px;
519 color: #1890ff;
520 }
521
522 .faqAnswer {
523 padding-left: 16px;
524 border-left: 3px solid #f0f0f0;
525
526 p {
527 margin-bottom: 12px;
528 }
529 }
530 }
531 }
532
533 .loadMoreTrigger {
534 height: 50px;
535 display: flex;
536 justify-content: center;
537 align-items: center;
538 margin-top: 16px;
539 }
539 lines Plain Text