Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 1 | /* src/components/Dashboard.css */
|
| 2 | .dashboard-container {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 3 | display: flex;
|
| 4 | flex-direction: column;
|
| 5 | min-height: 100vh;
|
| 6 | background-color: #f8f9fa;
|
| 7 | font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
| 8 | }
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 9 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 10 | /* 顶部栏样式 */
|
| 11 | .top-bar {
|
| 12 | display: flex;
|
| 13 | justify-content: space-between;
|
| 14 | align-items: center;
|
| 15 | padding: 10px 30px;
|
| 16 | background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
|
| 17 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
| 18 | position: sticky;
|
| 19 | top: 0;
|
| 20 | z-index: 1000;
|
| 21 | }
|
| 22 |
|
| 23 | .platform-name h2 {
|
| 24 | margin: 0;
|
| 25 | color: white;
|
| 26 | font-size: 24px;
|
| 27 | font-weight: 700;
|
| 28 | text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
|
| 29 | }
|
| 30 |
|
| 31 | .user-actions {
|
| 32 | display: flex;
|
| 33 | align-items: center;
|
| 34 | gap: 15px;
|
| 35 | }
|
| 36 |
|
| 37 | .admin-center-button {
|
| 38 | padding: 8px 16px;
|
| 39 | background-color: #ff7f50;
|
| 40 | color: white;
|
| 41 | border: none;
|
| 42 | border-radius: 4px;
|
| 43 | font-weight: 600;
|
| 44 | cursor: pointer;
|
| 45 | transition: all 0.2s;
|
| 46 | }
|
| 47 |
|
| 48 | .admin-center-button:hover {
|
| 49 | background-color: #ff6347;
|
| 50 | transform: translateY(-1px);
|
| 51 | }
|
| 52 |
|
| 53 | .user-info {
|
| 54 | display: flex;
|
| 55 | align-items: center;
|
| 56 | gap: 10px;
|
| 57 | color: white;
|
| 58 | }
|
| 59 |
|
| 60 | .user-avatar {
|
| 61 | width: 36px;
|
| 62 | height: 36px;
|
| 63 | border-radius: 50%;
|
| 64 | object-fit: cover;
|
| 65 | border: 2px solid rgba(255, 255, 255, 0.3);
|
| 66 | }
|
| 67 |
|
| 68 | .username {
|
| 69 | font-weight: 600;
|
| 70 | color: white !important;
|
| 71 | }
|
| 72 |
|
| 73 | .logout-button {
|
| 74 | padding: 6px 12px;
|
| 75 | background-color: transparent;
|
| 76 | border: 1px solid rgba(255, 255, 255, 0.3);
|
| 77 | color: white;
|
| 78 | border-radius: 4px;
|
| 79 | cursor: pointer;
|
| 80 | transition: all 0.2s;
|
| 81 | }
|
| 82 |
|
| 83 | .logout-button:hover {
|
| 84 | background-color: rgba(255, 255, 255, 0.1);
|
| 85 | border-color: rgba(255, 255, 255, 0.5);
|
| 86 | }
|
| 87 |
|
| 88 | /* 导航标签样式 */
|
| 89 | .nav-tabs {
|
| 90 | display: flex;
|
| 91 | background-color: white;
|
| 92 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
| 93 | padding: 0 30px;
|
| 94 | }
|
| 95 |
|
| 96 | .tab-button {
|
| 97 | padding: 14px 24px;
|
| 98 | background: none;
|
| 99 | border: none;
|
| 100 | border-bottom: 3px solid transparent;
|
| 101 | cursor: pointer;
|
| 102 | font-size: 15px;
|
| 103 | font-weight: 600;
|
| 104 | color: #666;
|
| 105 | transition: all 0.2s;
|
| 106 | position: relative;
|
| 107 | }
|
| 108 |
|
| 109 | .tab-button:hover {
|
| 110 | color: #1e3c72;
|
| 111 | }
|
| 112 |
|
| 113 | .tab-button.active {
|
| 114 | color: #1e3c72;
|
| 115 | border-bottom-color: #1e3c72;
|
| 116 | }
|
| 117 |
|
| 118 | .tab-button.active::after {
|
| 119 | content: '';
|
| 120 | position: absolute;
|
| 121 | bottom: -3px;
|
| 122 | left: 0;
|
| 123 | right: 0;
|
| 124 | height: 3px;
|
| 125 | background-color: #1e3c72;
|
| 126 | }
|
| 127 |
|
| 128 | /* 内容区域样式 */
|
| 129 | .content-area {
|
| 130 | flex-grow: 1;
|
| 131 | padding: 25px 30px;
|
| 132 | background-color: white;
|
| 133 | margin: 20px;
|
| 134 | border-radius: 8px;
|
| 135 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
| 136 | }
|
| 137 |
|
| 138 | .section-search-container {
|
| 139 | display: flex;
|
| 140 | margin-bottom: 25px;
|
| 141 | gap: 10px;
|
| 142 | }
|
| 143 |
|
| 144 | .section-search-input {
|
| 145 | flex: 1;
|
| 146 | padding: 10px 16px;
|
| 147 | border: 1px solid #ddd;
|
| 148 | border-radius: 6px;
|
| 149 | font-size: 14px;
|
| 150 | transition: all 0.2s;
|
| 151 | }
|
| 152 |
|
| 153 | .section-search-input:focus {
|
| 154 | border-color: #1e3c72;
|
| 155 | box-shadow: 0 0 0 2px rgba(30, 60, 114, 0.2);
|
| 156 | }
|
| 157 |
|
| 158 | .search-button, .reset-button {
|
| 159 | padding: 10px 18px;
|
| 160 | border: none;
|
| 161 | border-radius: 6px;
|
| 162 | font-weight: 600;
|
| 163 | cursor: pointer;
|
| 164 | transition: all 0.2s;
|
| 165 | }
|
| 166 |
|
| 167 | .search-button {
|
| 168 | background-color: #1e3c72;
|
| 169 | color: white;
|
| 170 | }
|
| 171 |
|
| 172 | .search-button:hover {
|
| 173 | background-color: #2a5298;
|
| 174 | transform: translateY(-1px);
|
| 175 | }
|
| 176 |
|
| 177 | .reset-button {
|
| 178 | background-color: #f1f1f1;
|
| 179 | color: #555;
|
| 180 | }
|
| 181 |
|
| 182 | .reset-button:hover {
|
| 183 | background-color: #e0e0e0;
|
| 184 | }
|
| 185 |
|
| 186 | /* 轮播图样式 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 187 | .carousel-container {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 188 | position: relative;
|
| 189 | width: 100%;
|
| 190 | height: 200px;
|
| 191 | overflow: hidden;
|
| 192 | margin-bottom: 30px;
|
| 193 | border-radius: 8px;
|
| 194 | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
| 195 | }
|
| 196 |
|
| 197 | .carousel-slide {
|
| 198 | position: absolute;
|
| 199 | width: 100%;
|
| 200 | height: 100%;
|
| 201 | opacity: 0;
|
| 202 | transition: opacity 0.5s ease-in-out;
|
| 203 | }
|
| 204 |
|
| 205 | .carousel-slide.active {
|
| 206 | opacity: 1;
|
| 207 | }
|
| 208 |
|
| 209 | .carousel-image {
|
| 210 | width: 100%;
|
| 211 | height: 100%;
|
| 212 | display: flex;
|
| 213 | flex-direction: column;
|
| 214 | align-items: flex-start;
|
| 215 | justify-content: center;
|
| 216 | padding: 30px;
|
| 217 | color: white;
|
| 218 | background: linear-gradient(135deg, #4b6cb7 0%, #182848 100%);
|
| 219 | }
|
| 220 |
|
| 221 | .carousel-image h3 {
|
| 222 | font-size: 28px;
|
| 223 | margin: 0 0 10px 0;
|
| 224 | text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
|
| 225 | }
|
| 226 |
|
| 227 | .carousel-image p {
|
| 228 | margin: 5px 0;
|
| 229 | font-size: 16px;
|
| 230 | text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
|
| 231 | }
|
| 232 |
|
| 233 | .carousel-dots {
|
| 234 | position: absolute;
|
| 235 | bottom: 15px;
|
| 236 | left: 0;
|
| 237 | right: 0;
|
| 238 | display: flex;
|
| 239 | justify-content: center;
|
| 240 | gap: 8px;
|
| 241 | }
|
| 242 |
|
| 243 | .dot {
|
| 244 | width: 10px;
|
| 245 | height: 10px;
|
| 246 | border-radius: 50%;
|
| 247 | background-color: rgba(255, 255, 255, 0.5);
|
| 248 | cursor: pointer;
|
| 249 | transition: all 0.2s;
|
| 250 | }
|
| 251 |
|
| 252 | .dot.active {
|
| 253 | background-color: white;
|
| 254 | transform: scale(1.2);
|
| 255 | }
|
| 256 |
|
| 257 | /* 公告网格样式 */
|
| 258 | .announcement-grid {
|
| 259 | display: grid;
|
| 260 | grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
| 261 | gap: 20px;
|
| 262 | margin-bottom: 30px;
|
| 263 | }
|
| 264 |
|
| 265 | .announcement-card {
|
| 266 | background-color: white;
|
| 267 | padding: 20px;
|
| 268 | border-radius: 8px;
|
| 269 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
| 270 | transition: all 0.2s;
|
| 271 | border-left: 4px solid #1e3c72;
|
| 272 | cursor: pointer;
|
| 273 | }
|
| 274 |
|
| 275 | .announcement-card:hover {
|
| 276 | transform: translateY(-3px);
|
| 277 | box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
| 278 | }
|
| 279 |
|
| 280 | .announcement-card h3 {
|
| 281 | margin: 0 0 12px 0;
|
| 282 | color: #1e3c72;
|
| 283 | font-size: 18px;
|
| 284 | font-weight: 600;
|
| 285 | }
|
| 286 |
|
| 287 | .announcement-card p {
|
| 288 | margin: 0 0 12px 0;
|
| 289 | color: #555;
|
| 290 | line-height: 1.5;
|
| 291 | font-size: 14px;
|
| 292 | }
|
| 293 |
|
| 294 | .announcement-footer {
|
| 295 | display: flex;
|
| 296 | justify-content: space-between;
|
| 297 | align-items: center;
|
| 298 | color: #888;
|
| 299 | font-size: 13px;
|
| 300 | }
|
| 301 |
|
| 302 | /* 推荐区域样式 */
|
| 303 | .recommend-section {
|
| 304 | margin-top: 40px;
|
| 305 | padding-top: 20px;
|
| 306 | border-top: 1px solid #eee;
|
| 307 | }
|
| 308 |
|
| 309 | .section-header {
|
| 310 | display: flex;
|
| 311 | justify-content: space-between;
|
| 312 | align-items: center;
|
| 313 | margin-bottom: 20px;
|
| 314 | }
|
| 315 |
|
| 316 | .section-title {
|
| 317 | margin: 0;
|
| 318 | color: #1e3c72;
|
| 319 | font-size: 20px;
|
| 320 | font-weight: 600;
|
| 321 | }
|
| 322 |
|
| 323 | .refresh-btn {
|
| 324 | padding: 8px 16px;
|
| 325 | background-color: #f1f1f1;
|
| 326 | border: none;
|
| 327 | border-radius: 6px;
|
| 328 | font-weight: 600;
|
| 329 | color: #555;
|
| 330 | cursor: pointer;
|
| 331 | transition: all 0.2s;
|
| 332 | }
|
| 333 |
|
| 334 | .refresh-btn:hover {
|
| 335 | background-color: #e0e0e0;
|
| 336 | }
|
| 337 |
|
| 338 | .refresh-btn:disabled {
|
| 339 | opacity: 0.6;
|
| 340 | cursor: not-allowed;
|
| 341 | }
|
| 342 |
|
| 343 | .recommend-grid {
|
| 344 | display: grid;
|
| 345 | grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
| 346 | gap: 20px;
|
| 347 | }
|
| 348 |
|
| 349 | .recommend-card {
|
| 350 | background-color: white;
|
| 351 | border-radius: 8px;
|
| 352 | overflow: hidden;
|
| 353 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
| 354 | transition: all 0.2s;
|
| 355 | cursor: pointer;
|
| 356 | }
|
| 357 |
|
| 358 | .recommend-card:hover {
|
| 359 | transform: translateY(-3px);
|
| 360 | box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
| 361 | }
|
| 362 |
|
| 363 | .card-poster {
|
| 364 | height: 120px;
|
| 365 | background-color: #f5f5f5;
|
| 366 | display: flex;
|
| 367 | align-items: center;
|
| 368 | justify-content: center;
|
| 369 | }
|
| 370 |
|
| 371 | .poster-image {
|
| 372 | width: 100%;
|
| 373 | height: 100%;
|
| 374 | background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 375 | color: white;
|
| 376 | font-size: 36px;
|
| 377 | font-weight: bold;
|
| 378 | display: flex;
|
| 379 | align-items: center;
|
| 380 | justify-content: center;
|
| 381 | }
|
| 382 |
|
| 383 | .card-info {
|
| 384 | padding: 15px;
|
| 385 | }
|
| 386 |
|
| 387 | .card-title {
|
| 388 | margin: 0 0 8px 0;
|
| 389 | font-size: 16px;
|
| 390 | font-weight: 600;
|
| 391 | color: #333;
|
| 392 | white-space: nowrap;
|
| 393 | overflow: hidden;
|
| 394 | text-overflow: ellipsis;
|
| 395 | }
|
| 396 |
|
| 397 | .card-meta {
|
| 398 | margin: 0 0 5px 0;
|
| 399 | font-size: 13px;
|
| 400 | color: #666;
|
| 401 | }
|
| 402 |
|
| 403 | .card-subtitle {
|
| 404 | margin: 0;
|
| 405 | font-size: 13px;
|
| 406 | color: #888;
|
| 407 | }
|
| 408 |
|
| 409 | .card-stats {
|
| 410 | padding: 10px 15px;
|
| 411 | border-top: 1px solid #eee;
|
| 412 | font-size: 13px;
|
| 413 | color: #666;
|
| 414 | }
|
| 415 |
|
| 416 | .no-recommendations {
|
| 417 | grid-column: 1 / -1;
|
| 418 | text-align: center;
|
| 419 | padding: 30px;
|
| 420 | color: #888;
|
| 421 | font-size: 15px;
|
| 422 | }
|
| 423 |
|
| 424 | /* 上传按钮样式 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 425 | .upload-header {
|
| 426 | margin-bottom: 20px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 427 | }
|
| 428 |
|
| 429 | .upload-btn {
|
| 430 | padding: 10px 20px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 431 | background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 432 | color: white;
|
| 433 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 434 | border-radius: 6px;
|
| 435 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 436 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 437 | transition: all 0.2s;
|
| 438 | display: inline-flex;
|
| 439 | align-items: center;
|
| 440 | gap: 8px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 441 | }
|
| 442 |
|
| 443 | .upload-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 444 | transform: translateY(-1px);
|
| 445 | box-shadow: 0 2px 8px rgba(30, 60, 114, 0.3);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 446 | }
|
| 447 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 448 | /* 筛选区域样式 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 449 | .filter-section {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 450 | background-color: white;
|
| 451 | padding: 15px 20px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 452 | border-radius: 8px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 453 | margin-bottom: 25px;
|
| 454 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 455 | }
|
| 456 |
|
| 457 | .filter-group {
|
| 458 | margin-bottom: 15px;
|
| 459 | }
|
| 460 |
|
| 461 | .filter-group h4 {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 462 | margin: 0 0 10px 0;
|
| 463 | font-size: 14px;
|
| 464 | color: #555;
|
| 465 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 466 | }
|
| 467 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 468 | .filter-options {
|
| 469 | display: flex;
|
| 470 | flex-wrap: wrap;
|
| 471 | gap: 8px;
|
| 472 | }
|
| 473 |
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 474 | .filter-btn {
|
| 475 | padding: 6px 12px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 476 | background-color: #f5f5f5;
|
| 477 | color: #333; /* 改为黑字 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 478 | border: 1px solid #ddd;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 479 | border-radius: 4px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 480 | font-size: 13px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 481 | cursor: pointer;
|
| 482 | transition: all 0.2s;
|
| 483 | }
|
| 484 |
|
| 485 | .filter-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 486 | border-color: #1e3c72;
|
| 487 | color: #fbfbfc;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 488 | }
|
| 489 |
|
| 490 | .filter-btn.active {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 491 | background-color: #1e3c72;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 492 | color: white;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 493 | border-color: #1e3c72;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 494 | }
|
| 495 |
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 496 | .confirm-btn {
|
| 497 | padding: 8px 20px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 498 | background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 499 | color: white;
|
| 500 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 501 | border-radius: 6px;
|
| 502 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 503 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 504 | transition: all 0.2s;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 505 | }
|
| 506 |
|
| 507 | .confirm-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 508 | transform: translateY(-1px);
|
| 509 | box-shadow: 0 2px 8px rgba(30, 60, 114, 0.3);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 510 | }
|
| 511 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 512 | /* 资源列表样式 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 513 | .resource-list {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 514 | display: grid;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 515 | gap: 15px;
|
| 516 | }
|
| 517 |
|
| 518 | .resource-item {
|
| 519 | display: flex;
|
| 520 | align-items: center;
|
| 521 | padding: 15px;
|
| 522 | background-color: white;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 523 | border-radius: 8px;
|
| 524 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
| 525 | transition: all 0.2s;
|
| 526 | cursor: pointer;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 527 | }
|
| 528 |
|
| 529 | .resource-item:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 530 | transform: translateY(-3px);
|
| 531 | box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 532 | }
|
| 533 |
|
| 534 | .resource-poster {
|
| 535 | margin-right: 15px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 536 | flex-shrink: 0;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 537 | }
|
| 538 |
|
| 539 | .poster-image {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 540 | width: 80px;
|
| 541 | height: 110px;
|
| 542 | background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 543 | color: white;
|
| 544 | font-size: 28px;
|
| 545 | font-weight: bold;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 546 | display: flex;
|
| 547 | align-items: center;
|
| 548 | justify-content: center;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 549 | border-radius: 4px;
|
| 550 | }
|
| 551 |
|
| 552 | .resource-info {
|
| 553 | flex-grow: 1;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 554 | min-width: 0;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 555 | }
|
| 556 |
|
| 557 | .resource-title {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 558 | margin: 0 0 8px 0;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 559 | font-size: 16px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 560 | font-weight: 600;
|
| 561 | color: #333;
|
| 562 | white-space: nowrap;
|
| 563 | overflow: hidden;
|
| 564 | text-overflow: ellipsis;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 565 | }
|
| 566 |
|
| 567 | .resource-meta {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 568 | margin: 0 0 5px 0;
|
| 569 | font-size: 13px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 570 | color: #666;
|
| 571 | }
|
| 572 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 573 | .resource-subtitle {
|
| 574 | margin: 0;
|
| 575 | font-size: 13px;
|
| 576 | color: #888;
|
| 577 | }
|
| 578 |
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 579 | .resource-stats {
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 580 | margin-right: 20px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 581 | text-align: right;
|
| 582 | min-width: 120px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 583 | }
|
| 584 |
|
| 585 | .stat {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 586 | display: block;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 587 | font-size: 13px;
|
| 588 | color: #666;
|
| 589 | margin-bottom: 5px;
|
| 590 | }
|
| 591 |
|
| 592 | .download-btn {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 593 | padding: 8px 16px;
|
| 594 | background: linear-gradient(135deg, #4CAF50 0%, #2E7D32 100%);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 595 | color: white;
|
| 596 | border: none;
|
| 597 | border-radius: 4px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 598 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 599 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 600 | transition: all 0.2s;
|
| 601 | white-space: nowrap;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 602 | }
|
| 603 |
|
| 604 | .download-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 605 | transform: translateY(-1px);
|
| 606 | box-shadow: 0 2px 8px rgba(46, 125, 50, 0.3);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 607 | }
|
| 608 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 609 | .delete-btn {
|
| 610 | padding: 8px 16px;
|
| 611 | background: linear-gradient(135deg, #ff5e62 0%, #ff2400 100%);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 612 | color: white;
|
| 613 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 614 | border-radius: 4px;
|
| 615 | font-weight: 600;
|
| 616 | cursor: pointer;
|
| 617 | transition: all 0.2s;
|
| 618 | margin-left: 10px;
|
| 619 | white-space: nowrap;
|
| 620 | }
|
| 621 |
|
| 622 | .delete-btn:hover {
|
| 623 | transform: translateY(-1px);
|
| 624 | box-shadow: 0 2px 8px rgba(255, 94, 98, 0.3);
|
| 625 | }
|
| 626 |
|
| 627 | /* 分页样式 */
|
| 628 | .pagination {
|
| 629 | display: flex;
|
| 630 | justify-content: center;
|
| 631 | margin: 30px 0 20px;
|
| 632 | gap: 8px;
|
| 633 | }
|
| 634 |
|
| 635 | .pagination button {
|
| 636 | padding: 8px 14px;
|
| 637 | border: 1px solid #ddd;
|
| 638 | background-color: white;
|
| 639 | color: #333;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 640 | border-radius: 4px;
|
| 641 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 642 | transition: all 0.2s;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 643 | font-size: 14px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 644 | }
|
| 645 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 646 | .pagination button:hover:not(.active):not(:disabled) {
|
| 647 | border-color: #1e3c72;
|
| 648 | color: #1e3c72;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 649 | }
|
| 650 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 651 | .pagination button.active {
|
| 652 | background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
|
| 653 | color: white;
|
| 654 | border-color: #1e3c72;
|
| 655 | }
|
| 656 |
|
| 657 | .pagination button:disabled {
|
| 658 | opacity: 0.5;
|
| 659 | cursor: not-allowed;
|
| 660 | }
|
| 661 |
|
| 662 | /* 修改后的模态框样式 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 663 | .post-modal-overlay {
|
| 664 | position: fixed;
|
| 665 | top: 0;
|
| 666 | left: 0;
|
| 667 | right: 0;
|
| 668 | bottom: 0;
|
| 669 | background-color: rgba(0, 0, 0, 0.5);
|
| 670 | display: flex;
|
| 671 | justify-content: center;
|
| 672 | align-items: center;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 673 | z-index: 9999; /* 确保在最上层 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 674 | }
|
| 675 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 676 | .upload-modal,
|
| 677 | .post-modal,
|
| 678 | .download-modal {
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 679 | background-color: white;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 680 | padding: 25px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 681 | border-radius: 8px;
|
| 682 | width: 500px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 683 | max-width: calc(100% - 40px);
|
| 684 | box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 685 | position: relative;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 686 | margin: 20px auto; /* 添加一些外边距 */
|
| 687 | max-height: 90vh; /* 限制最大高度 */
|
| 688 | overflow-y: auto; /* 允许内容滚动 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 689 | }
|
| 690 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 691 | /* 针对移动端的调整 */
|
| 692 | @media (max-width: 576px) {
|
| 693 | .post-modal {
|
| 694 | padding: 20px 15px;
|
| 695 | width: 100%;
|
| 696 | margin: 10px;
|
| 697 | }
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 698 | }
|
| 699 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 700 | /* 确保模态框关闭按钮在最上层 */
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 701 | .modal-close-btn {
|
| 702 | position: absolute;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 703 | top: 15px;
|
| 704 | right: 15px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 705 | background: none;
|
| 706 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 707 | font-size: 22px;
|
| 708 | color: #888;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 709 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 710 | transition: all 0.2s;
|
| 711 | z-index: 1;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 712 | }
|
| 713 |
|
| 714 | .modal-close-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 715 | color: #555;
|
| 716 | transform: rotate(90deg);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 717 | }
|
| 718 |
|
| 719 | /* 表单样式 */
|
| 720 | .form-group {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 721 | margin-bottom: 18px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 722 | }
|
| 723 |
|
| 724 | .form-group label {
|
| 725 | display: block;
|
| 726 | margin-bottom: 8px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 727 | font-weight: 600;
|
| 728 | color: #555;
|
| 729 | font-size: 14px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 730 | }
|
| 731 |
|
| 732 | .form-group input[type="text"],
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 733 | .form-group input[type="file"],
|
| 734 | .form-group select,
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 735 | .form-group textarea {
|
| 736 | width: 100%;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 737 | padding: 10px 12px;
|
| 738 | border: 1px solid #ddd;
|
| 739 | border-radius: 6px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 740 | font-size: 14px;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 741 | transition: all 0.2s;
|
| 742 | }
|
| 743 |
|
| 744 | .form-group input[type="text"]:focus,
|
| 745 | .form-group select:focus,
|
| 746 | .form-group textarea:focus {
|
| 747 | border-color: #1e3c72;
|
| 748 | box-shadow: 0 0 0 2px rgba(30, 60, 114, 0.2);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 749 | }
|
| 750 |
|
| 751 | .form-group textarea {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 752 | min-height: 100px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 753 | resize: vertical;
|
| 754 | }
|
| 755 |
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 756 | .form-actions {
|
| 757 | display: flex;
|
| 758 | justify-content: flex-end;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 759 | gap: 12px;
|
| 760 | margin-top: 25px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 761 | }
|
| 762 |
|
| 763 | .cancel-btn {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 764 | padding: 10px 18px;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 765 | background-color: #f5f5f5;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 766 | color: #555;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 767 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 768 | border-radius: 6px;
|
| 769 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 770 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 771 | transition: all 0.2s;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 772 | }
|
| 773 |
|
| 774 | .cancel-btn:hover {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 775 | background-color: #e0e0e0;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 776 | }
|
| 777 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 778 | .submit-btn, .confirm-btn {
|
| 779 | padding: 10px 18px;
|
| 780 | background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 781 | color: white;
|
| 782 | border: none;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 783 | border-radius: 6px;
|
| 784 | font-weight: 600;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 785 | cursor: pointer;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 786 | transition: all 0.2s;
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 787 | }
|
| 788 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 789 | .submit-btn:hover, .confirm-btn:hover {
|
| 790 | transform: translateY(-1px);
|
| 791 | box-shadow: 0 2px 8px rgba(30, 60, 114, 0.3);
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 792 | }
|
| 793 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 794 | /* 进度条样式 */
|
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 795 | .progress-container {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 796 | height: 10px;
|
| 797 | background-color: #f0f0f0;
|
| 798 | border-radius: 5px;
|
| 799 | margin: 15px 0;
|
| 800 | overflow: hidden;
|
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 801 | }
|
| 802 |
|
| 803 | .progress-bar {
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 804 | height: 100%;
|
| 805 | background: linear-gradient(135deg, #4CAF50 0%, #2E7D32 100%);
|
| 806 | transition: width 0.3s;
|
| 807 | border-radius: 5px;
|
DREW | ae420b2 | 2025-06-02 14:07:20 +0800 | [diff] [blame] | 808 | }
|
| 809 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 810 | /* 加载和错误提示 */
|
| 811 | .loading {
|
Akane1217 | 3a7bb97 | 2025-06-01 01:05:27 +0800 | [diff] [blame] | 812 | text-align: center;
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 813 | padding: 30px;
|
| 814 | color: #666;
|
Akane1217 | 3a7bb97 | 2025-06-01 01:05:27 +0800 | [diff] [blame] | 815 | font-size: 16px;
|
| 816 | }
|
| 817 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 818 | .error {
|
| 819 | text-align: center;
|
| 820 | padding: 20px;
|
| 821 | color: #e74c3c;
|
| 822 | font-size: 16px;
|
| 823 | background-color: #fdecea;
|
| 824 | border-radius: 6px;
|
| 825 | margin: 20px 0;
|
Akane1217 | 3a7bb97 | 2025-06-01 01:05:27 +0800 | [diff] [blame] | 826 | }
|
| 827 |
|
DREW | 5b1883e | 2025-06-07 10:41:32 +0800 | [diff] [blame^] | 828 | /* 响应式调整 */
|
| 829 | @media (max-width: 768px) {
|
| 830 | .top-bar {
|
| 831 | padding: 10px 15px;
|
| 832 | }
|
| 833 |
|
| 834 | .nav-tabs {
|
| 835 | padding: 0 15px;
|
| 836 | overflow-x: auto;
|
| 837 | white-space: nowrap;
|
| 838 | -webkit-overflow-scrolling: touch;
|
| 839 | }
|
| 840 |
|
| 841 | .content-area {
|
| 842 | padding: 15px;
|
| 843 | margin: 10px;
|
| 844 | }
|
| 845 |
|
| 846 | .announcement-grid, .recommend-grid {
|
| 847 | grid-template-columns: 1fr;
|
| 848 | }
|
| 849 |
|
| 850 | .resource-item {
|
| 851 | flex-direction: column;
|
| 852 | align-items: flex-start;
|
| 853 | }
|
| 854 |
|
| 855 | .resource-poster {
|
| 856 | margin-right: 0;
|
| 857 | margin-bottom: 15px;
|
| 858 | }
|
| 859 |
|
| 860 | .resource-stats {
|
| 861 | margin-right: 0;
|
| 862 | margin-top: 10px;
|
| 863 | text-align: left;
|
| 864 | width: 100%;
|
| 865 | }
|
Akane1217 | 65b61a7 | 2025-05-17 13:52:25 +0800 | [diff] [blame] | 866 | } |