返回 AiToEarn
videoTask.module.scss
根目录 / project / aitoearn-electron / src / views / task / videoTask.module.scss
1 .videoTaskContainer {
2 padding: 16px;
3 background-color: #fff;
4 border-radius: 8px;
5 min-height: 100%;
6 }
7
8 .taskList {
9 display: flex;
10 flex-direction: column;
11 gap: 16px;
12 }
13
14 .taskCard {
15 border-radius: 8px;
16 overflow: hidden;
17 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
18 transition: transform 0.2s, box-shadow 0.2s;
19
20 &:hover {
21 transform: translateY(-3px);
22 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
23 }
24 }
25
26 .taskCardContent {
27 display: flex;
28 align-items: stretch;
29 }
30
31 .taskImageContainer {
32 width: 180px;
33 height: 120px;
34 flex-shrink: 0;
35 display: flex;
36 align-items: center;
37 justify-content: center;
38 background-color: #000;
39 position: relative;
40 overflow: hidden;
41 margin: 16px;
42 border-radius: 4px;
43 }
44
45 .taskImage {
46 width: 100%;
47 height: 100%;
48 object-fit: cover;
49 }
50
51 .videoOverlay {
52 position: absolute;
53 top: 0;
54 left: 0;
55 right: 0;
56 bottom: 0;
57 background-color: rgba(0, 0, 0, 0.3);
58 display: flex;
59 align-items: center;
60 justify-content: center;
61 transition: background-color 0.2s;
62
63 &:hover {
64 background-color: rgba(0, 0, 0, 0.5);
65 }
66 }
67
68 .playIcon {
69 font-size: 36px;
70 color: #fff;
71 opacity: 0.8;
72 transition: opacity 0.2s, transform 0.2s;
73
74 &:hover {
75 opacity: 1;
76 transform: scale(1.1);
77 }
78 }
79
80 .taskInfo {
81 flex: 1;
82 padding: 16px 0;
83 display: flex;
84 flex-direction: column;
85 text-align: left;
86 }
87
88 .taskHeader {
89 display: flex;
90 align-items: center;
91 margin-bottom: 8px;
92 }
93
94 .taskTitle {
95 font-size: 18px;
96 font-weight: 500;
97 color: #333;
98 margin: 0 12px 0 0;
99 display: flex;
100 align-items: center;
101 flex-wrap: wrap;
102 }
103
104 .taskId {
105 font-size: 12px;
106 color: #999;
107 font-weight: normal;
108 margin-left: 8px;
109 display: flex;
110 align-items: center;
111 }
112
113 .copyIcon {
114 margin-left: 4px;
115 cursor: pointer;
116 color: #1890ff;
117
118 &:hover {
119 color: #40a9ff;
120 }
121 }
122
123 .taskTag {
124 font-size: 12px;
125 }
126
127 .taskDescription {
128 color: #666;
129 font-size: 14px;
130 margin-bottom: 12px;
131 display: -webkit-box;
132 -webkit-line-clamp: 2;
133 -webkit-box-orient: vertical;
134 overflow: hidden;
135 text-align: left;
136
137 p {
138 margin-bottom: 0;
139 }
140 }
141
142 .taskDetails {
143 display: flex;
144 gap: 24px;
145 margin-bottom: 12px;
146 }
147
148 .taskDetail {
149 display: flex;
150 align-items: center;
151 font-size: 13px;
152 color: #666;
153 }
154
155 .detailIcon {
156 margin-right: 4px;
157 color: #999;
158 }
159
160 .detailLabel {
161 margin-right: 4px;
162 }
163
164 .detailValue {
165 color: #333;
166 }
167
168 .taskRequirement {
169 font-size: 13px;
170 color: #666;
171 text-align: left;
172 }
173
174 .requirementLabel {
175 margin-right: 4px;
176 }
177
178 .requirementValue {
179 color: #333;
180 }
181
182 .taskAction {
183 width: 160px;
184 flex-shrink: 0;
185 display: flex;
186 flex-direction: column;
187 align-items: center;
188 justify-content: center;
189 padding: 16px;
190 border-left: 1px solid #f0f0f0;
191 }
192
193 .taskStatus {
194 margin-bottom: 12px;
195 }
196
197 .taskReward {
198 display: flex;
199 flex-direction: column;
200 align-items: center;
201 margin-bottom: 16px;
202 }
203
204 .rewardLabel {
205 font-size: 12px;
206 color: #999;
207 margin-bottom: 4px;
208 }
209
210 .rewardValue {
211 font-size: 24px;
212 font-weight: 500;
213 color: #ff4d4f;
214 }
215
216 .viewButton {
217 width: 100%;
218 background-color: var(--primary-color);
219 border-color: var(--primary-color);
220
221 &:hover {
222 background-color: var(--primary-color-hover);
223 border-color: var(--primary-color-hover);
224 }
225 }
226
227 .loadingContainer {
228 display: flex;
229 justify-content: center;
230 padding: 32px 0;
231 }
232
233 .loadMoreContainer {
234 display: flex;
235 justify-content: center;
236 margin-top: 16px;
237 margin-bottom: 16px;
238
239 button {
240 padding: 0 32px;
241 }
242 }
243
244 .platformContainer {
245 font-size: 13px;
246 color: #666;
247 text-align: left;
248 margin-top: 8px;
249 display: flex;
250 align-items: center;
251 }
252
253 .platformLabel {
254 margin-right: 8px;
255 color: #666;
256 }
257
258 .platformTags {
259 display: flex;
260 flex-wrap: wrap;
261 gap: 4px;
262
263 :global {
264 .ant-tag {
265 margin-right: 0;
266 font-size: 12px;
267 padding: 0 6px;
268 line-height: 20px;
269 height: 22px;
270 }
271 }
272 }
273
274 .platformIcons {
275 display: flex;
276 gap: 8px;
277 flex-wrap: wrap;
278 }
279
280 .platformIconWrapper {
281 width: 26px;
282 height: 26px;
283 border-radius: 50%;
284 display: flex;
285 align-items: center;
286 justify-content: center;
287 cursor: pointer;
288 transition: all 0.3s;
289
290 &:hover {
291 transform: scale(1.1);
292 }
293 }
294
295 .platformIcon {
296 width: 20px;
297 height: 20px;
298 color: white;
299 fill: white;
300 }
300 lines Plain Text