feat: 排行榜虚拟领奖台 + 勋章对齐与尺寸统一
- 领奖台数据不足 3 名时显示虚拟空位(虚线轮廓+虚位以待) - 领奖台勋章与昵称对齐改为等高盒结构性修复(移除 margin 盲推) - 全 app 成就勋章图标尺寸统一为 30rpx(前三名/列表/设置页/记录页一致) - 勋章 SVG 按包围盒精确居中(utils/icons.js) - 设置页/记录页勋章展示配套调整
This commit is contained in:
@@ -66,6 +66,20 @@ const PATHS = {
|
||||
moon: '<path d="M12 21a9 9 0 1 1 9-9 7 7 0 0 0-9 9z"/>',
|
||||
diamond: '<path d="M7 2h10l4 7-11 13L3 9l4-7z"/>',
|
||||
star: '<path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/>',
|
||||
// Phosphor medal — scaled from 256 to 24 viewBox (a 命令的 large-arc/sweep
|
||||
// 标志位保持 0/1,仅坐标缩放)。试点勋章图标,挂在 30 天「神登」上。
|
||||
medal: '<path d="M20.2524 9.4419C20.2545 5.7942 17.7443 2.6254 14.193 1.7927 10.6417 0.96 6.9845 2.6827 5.365 5.9511 3.7455 9.2195 4.5901 13.1728 7.4039 15.4941V22.2903C7.4037 22.5379 7.5317 22.7678 7.7423 22.898 7.9528 23.0282 8.2157 23.04 8.4371 22.9292L12.4005 20.952 16.3648 22.9337C16.4642 22.9812 16.5732 23.0053 16.6833 23.0042 17.0776 23.0042 17.3971 22.6847 17.3971 22.2904V15.4942C19.2055 14.0048 20.2529 11.7846 20.2524 9.4419M5.9763 9.4419C5.9763 5.8938 8.8525 3.0176 12.4005 3.0176 15.9485 3.0176 18.8248 5.8938 18.8248 9.4419 18.8248 12.9899 15.9485 15.8661 12.4005 15.8661 8.8541 15.8622 5.9802 12.9882 5.9763 9.4419M15.9695 21.1358L12.7191 19.511C12.518 19.4103 12.2812 19.4103 12.0802 19.511L8.8315 21.1358V16.4345C11.0729 17.5801 13.7281 17.5801 15.9695 16.4345ZM12.4005 14.4385C15.1601 14.4385 17.3971 12.2014 17.3971 9.4419 17.3971 6.6823 15.1601 4.4452 12.4005 4.4452 9.641 4.4452 7.4039 6.6823 7.4039 9.4419 7.4068 12.2002 9.6422 14.4355 12.4005 14.4385M12.4005 5.8728C14.3716 5.8728 15.9695 7.4707 15.9695 9.4419 15.9695 11.413 14.3716 13.0109 12.4005 13.0109 10.4294 13.0109 8.8315 11.413 8.8315 9.4419 8.8315 7.4707 10.4294 5.8728 12.4005 5.8728"/>',
|
||||
// Phosphor 勋章系全套(同为 256→24 缩放)。7 级递进:
|
||||
// sealCheck(3天)→medal(7天)→medalMilitary(14天)→trophyPh(30天)
|
||||
// →certificate(60天)→shieldStar(80天)→crownPh(100天)。
|
||||
// trophyPh/crownPh 带 Ph 后缀避免与下方 Material 版 trophy/crown 冲突
|
||||
// (后者仍被完成弹窗/排行榜使用)。
|
||||
sealCheck: '<path d="M21.6462 9.518C21.2747 9.1296 20.8901 8.7294 20.7453 8.3775 20.6112 8.0551 20.6033 7.5209 20.5954 7.0034 20.5806 6.0413 20.5648 4.9511 19.8069 4.1931 19.0489 3.4352 17.9587 3.4194 16.9966 3.4046 16.4791 3.3967 15.9449 3.3888 15.6225 3.2547 15.2716 3.1099 14.8704 2.7255 14.482 2.3538 13.8019 1.7003 13.029 0.96 12 0.96 10.971 0.96 10.1991 1.7003 9.518 2.3538 9.1296 2.7253 8.7294 3.1099 8.3775 3.2547 8.0571 3.3888 7.5209 3.3967 7.0034 3.4046 6.0413 3.4194 4.9511 3.4352 4.1931 4.1931 3.4352 4.9511 3.4243 6.0413 3.4046 7.0034 3.3967 7.5209 3.3888 8.0551 3.2547 8.3775 3.1099 8.7284 2.7255 9.1296 2.3538 9.518 1.7003 10.1981 0.96 10.971 0.96 12 0.96 13.029 1.7003 13.8009 2.3538 14.482 2.7253 14.8704 3.1099 15.2706 3.2547 15.6225 3.3888 15.9449 3.3967 16.4791 3.4046 16.9966 3.4194 17.9587 3.4352 19.0489 4.1931 19.8069 4.9511 20.5648 6.0413 20.5806 7.0034 20.5954 7.5209 20.6033 8.0551 20.6112 8.3775 20.7453 8.7284 20.8901 9.1296 21.2745 9.518 21.6462 10.1982 22.2998 10.971 23.04 12 23.04 13.029 23.04 13.8009 22.2997 14.482 21.6462 14.8704 21.2747 15.2706 20.8901 15.6225 20.7453 15.9449 20.6112 16.4791 20.6033 16.9966 20.5954 17.9587 20.5806 19.0489 20.5648 19.8069 19.8069 20.5648 19.0489 20.5806 17.9587 20.5954 16.9966 20.6033 16.4791 20.6112 15.9449 20.7453 15.6225 20.8901 15.2716 21.2745 14.8704 21.6462 14.482 22.2998 13.8018 23.04 13.029 23.04 12 23.04 10.971 22.2997 10.1991 21.6462 9.518M20.5077 13.3908C20.0355 13.8837 19.5466 14.3933 19.2875 15.0193 19.039 15.6206 19.0282 16.3076 19.0184 16.9729 19.0085 17.663 18.9977 18.3854 18.6912 18.6911 18.3847 18.9967 17.667 19.0085 16.973 19.0183 16.3077 19.0282 15.6206 19.039 15.0194 19.2873 14.3935 19.5466 13.8838 20.0355 13.3909 20.5076 12.898 20.9797 12.3943 21.4629 12 21.4629 11.6057 21.4629 11.0981 20.9779 10.6092 20.5077 10.1203 20.0375 9.6067 19.5466 8.9807 19.2875 8.3794 19.039 7.6924 19.0282 7.0271 19.0184 6.337 19.0085 5.6146 18.9977 5.3089 18.6912 5.0033 18.3847 4.9915 17.667 4.9817 16.973 4.9718 16.3077 4.961 15.6206 4.7127 15.0194 4.4534 14.3935 3.9645 13.8838 3.4924 13.3909 3.0203 12.898 2.5371 12.3943 2.5371 12 2.5371 11.6057 3.0221 11.0981 3.4923 10.6092 3.9625 10.1203 4.4534 9.6067 4.7125 8.9807 4.961 8.3794 4.9718 7.6924 4.9816 7.0271 4.9915 6.337 5.0023 5.6146 5.3088 5.3089 5.6153 5.0033 6.333 4.9915 7.027 4.9817 7.6923 4.9718 8.3794 4.961 8.9806 4.7127 9.6065 4.4534 10.1162 3.9645 10.6091 3.4924 11.102 3.0203 11.6057 2.5371 12 2.5371 12.3943 2.5371 12.9019 3.0221 13.3908 3.4923 13.8797 3.9625 14.3933 4.4534 15.0193 4.7125 15.6206 4.961 16.3076 4.9718 16.9729 4.9816 17.663 4.9915 18.3854 5.0023 18.6911 5.3088 18.9967 5.6153 19.0085 6.333 19.0183 7.027 19.0282 7.6923 19.039 8.3794 19.2873 8.9806 19.5466 9.6065 20.0355 10.1162 20.5076 10.6091 20.9797 11.102 21.4629 11.6057 21.4629 12 21.4629 12.3943 20.9779 12.9019 20.5077 13.3908M16.5009 9.0764C16.6489 9.2243 16.7322 9.425 16.7322 9.6343 16.7322 9.8436 16.6489 10.0444 16.5009 10.1923L10.9809 15.7123C10.8329 15.8604 10.6322 15.9436 10.4229 15.9436 10.2136 15.9436 10.0129 15.8604 9.865 15.7123L7.4993 13.3466C7.1911 13.0384 7.1911 12.5388 7.4993 12.2307 7.8074 11.9225 8.307 11.9225 8.6151 12.2307L10.4229 14.0395 15.385 9.0764C15.5329 8.9283 15.7336 8.8451 15.9429 8.8451 16.1522 8.8451 16.3529 8.9283 16.5009 9.0764"/>',
|
||||
medalMilitary: '<path d="M20.7209 0.96H3.2792C2.2428 0.96 1.4025 1.8002 1.4025 2.8367V8.269C1.4035 9.0055 1.8352 9.6734 2.5064 9.9767L9.4169 13.1173C7.3125 14.2949 6.2687 16.7449 6.8772 19.0783 7.4857 21.4117 9.593 23.04 12.0045 23.04 14.4159 23.04 16.5233 21.4117 17.1317 19.0783 17.7402 16.7449 16.6964 14.2949 14.592 13.1173L21.4936 9.9767C22.1648 9.6734 22.5965 9.0055 22.5975 8.269V2.8367C22.5975 2.339 22.3997 1.8616 22.0478 1.5097 21.6958 1.1577 21.2185 0.96 20.7208 0.96M15.5324 2.7262V10.7483L11.9999 12.3533 8.4674 10.7483V2.7262ZM3.1688 8.269V2.8367C3.1688 2.7757 3.2182 2.7262 3.2792 2.7262H6.7014V9.9446L3.234 8.3694C3.1945 8.3516 3.169 8.3123 3.1689 8.269M12 21.2718C10.0491 21.2718 8.4675 19.6903 8.4675 17.7393 8.4675 15.7884 10.0491 14.2068 12 14.2068 13.9509 14.2068 15.5325 15.7884 15.5325 17.7393 15.5325 19.6903 13.9509 21.2718 12 21.2718M20.8312 8.269C20.8311 8.3123 20.8056 8.3516 20.7661 8.3694L17.2987 9.9446V2.7262H20.7209C20.7502 2.7262 20.7783 2.7379 20.799 2.7586 20.8197 2.7793 20.8313 2.8074 20.8313 2.8367Z"/>',
|
||||
trophyPh: '<path d="M21.568 5.376H19.36V3.904C19.36 3.4975 19.0305 3.168 18.624 3.168H5.376C4.9695 3.168 4.64 3.4975 4.64 3.904V5.376H2.432C1.619 5.376 0.96 6.035 0.96 6.848V8.32C0.96 10.3524 2.6076 12 4.64 12H4.9758C5.862 14.8082 8.3343 16.8197 11.264 17.1161V19.36H9.056C8.6495 19.36 8.32 19.6895 8.32 20.096 8.32 20.5025 8.6495 20.832 9.056 20.832H14.944C15.3505 20.832 15.68 20.5025 15.68 20.096 15.68 19.6895 15.3505 19.36 14.944 19.36H12.736V17.1133C15.6745 16.8162 18.1124 14.7544 18.9994 12H19.36C21.3924 12 23.04 10.3524 23.04 8.32V6.848C23.04 6.035 22.381 5.376 21.568 5.376M4.64 10.528C3.4206 10.528 2.432 9.5394 2.432 8.32V6.848H4.64V9.792Q4.64 10.16 4.6759 10.528ZM17.888 9.7092C17.888 12.977 15.22 15.6561 12 15.68 8.7481 15.68 6.112 13.0439 6.112 9.792V4.64H17.888ZM21.568 8.32C21.568 9.5394 20.5794 10.528 19.36 10.528H19.314C19.3442 10.2561 19.3595 9.9827 19.36 9.7092V6.848H21.568Z"/>',
|
||||
certificate: '<path d="M11.2115 11.9785C11.2115 12.414 10.8585 12.7671 10.423 12.7671H5.6915C5.256 12.7671 4.9029 12.414 4.9029 11.9785 4.9029 11.543 5.256 11.1899 5.6915 11.1899H10.423C10.8585 11.1899 11.2115 11.543 11.2115 11.9785M10.423 8.0356H5.6915C5.256 8.0356 4.9029 8.3887 4.9029 8.8242 4.9029 9.2597 5.256 9.6128 5.6915 9.6128H10.423C10.8585 9.6128 11.2115 9.2597 11.2115 8.8242 11.2115 8.3887 10.8585 8.0356 10.423 8.0356M21.4631 14.4891V20.6529C21.4657 20.9359 21.3164 21.1986 21.0719 21.3412 20.8275 21.4838 20.5253 21.4845 20.2802 21.3429L17.9145 19.9886 15.5487 21.3429C15.3036 21.4845 15.0015 21.4838 14.7571 21.3412 14.5126 21.1986 14.3633 20.9359 14.3659 20.6529V18.2871H2.5372C1.6661 18.2871 0.96 17.581 0.96 16.71V4.0927C0.96 3.2217 1.6661 2.5155 2.5372 2.5155H19.8859C20.757 2.5155 21.4631 3.2217 21.4631 4.0927V7.1021C22.4704 8.0668 23.04 9.4009 23.04 10.7956 23.04 12.1903 22.4704 13.5245 21.4631 14.4891M14.3659 16.71V14.4891C12.5931 12.7794 12.2869 10.0506 13.6367 7.9905 14.9864 5.9304 17.6106 5.1215 19.8859 6.0641V4.0927H2.5372V16.71ZM19.8859 15.5271C18.6245 16.0541 17.2045 16.0541 15.943 15.5271V19.2945L17.5202 18.3916C17.7627 18.2529 18.0604 18.2529 18.3029 18.3916L19.88 19.2945ZM21.4631 10.7956C21.4631 8.8358 19.8743 7.247 17.9145 7.247 15.9546 7.247 14.3659 8.8358 14.3659 10.7956 14.3659 12.7555 15.9546 14.3442 17.9145 14.3442 19.8743 14.3442 21.4631 12.7555 21.4631 10.7956"/>',
|
||||
shieldStar: '<path d="M6.7661 9.4569C6.8536 9.2391 7.0242 9.0652 7.2401 8.9734 7.4561 8.8817 7.6997 8.8797 7.9172 8.9679L11.1173 10.249V7.1395C11.1173 6.652 11.5126 6.2567 12.0001 6.2567 12.4877 6.2567 12.8829 6.652 12.8829 7.1395V10.2492L16.0831 8.9681C16.5359 8.7852 17.0512 9.0041 17.234 9.4569 17.4168 9.9097 17.198 10.425 16.7452 10.6078L13.4005 11.9452 15.3547 14.5549C15.5439 14.8072 15.5842 15.1413 15.4603 15.4314 15.3364 15.7214 15.0672 15.9233 14.7541 15.961 14.4409 15.9988 14.1315 15.8666 13.9422 15.6143L12 13.0244 10.0579 15.6143C9.8686 15.8666 9.5592 15.9988 9.246 15.961 8.9329 15.9233 8.6637 15.7214 8.5398 15.4314 8.4159 15.1413 8.4562 14.8072 8.6454 14.5549L10.603 11.9452 7.2551 10.6078C7.0374 10.5203 6.8634 10.3498 6.7717 10.1338 6.68 9.9179 6.678 9.6743 6.7661 9.4569M22.5934 2.7256V8.9051C22.5934 14.7226 19.7774 18.2483 17.4148 20.1816 14.8701 22.2627 12.3388 22.9701 12.2283 22.9987 12.0766 23.04 11.9166 23.04 11.7648 22.9987 11.6544 22.97 9.1264 22.2627 6.5784 20.1816 4.2226 18.2483 1.4066 14.7226 1.4066 8.9051V2.7256C1.4066 1.7505 2.197 0.96 3.1721 0.96H20.8279C21.803 0.96 22.5934 1.7505 22.5934 2.7256M20.8279 2.7256H3.1721V8.9051C3.1721 13.0211 4.6971 16.3547 7.7041 18.8155 8.9845 19.8625 10.4385 20.677 12 21.2222 13.5823 20.6675 15.0544 19.8383 16.3488 18.7725 19.3205 16.3161 20.8279 12.9957 20.8279 8.9051Z"/>',
|
||||
crownPh: '<path d="M23.039 8.7106C23.04 7.6107 22.3381 6.6332 21.2956 6.2826 20.2531 5.932 19.1031 6.2868 18.4393 7.1637 17.7755 8.0407 17.7462 9.2438 18.3667 10.1519L15.918 13.1682 13.7162 8.1074C14.5389 7.4151 14.841 6.2824 14.4725 5.2723 14.104 4.2623 13.1435 3.5902 12.0683 3.5902 10.9931 3.5902 10.0326 4.2623 9.6641 5.2723 9.2956 6.2824 9.5978 7.4151 10.4204 8.1074L8.2241 13.1655 5.7754 10.1492C6.4218 9.2021 6.3593 7.9407 5.6225 7.0621 4.8857 6.1835 3.6544 5.9023 2.6092 6.3738 1.564 6.8453 0.96 7.9545 1.131 9.0883 1.302 10.2221 2.2064 11.1038 3.3441 11.246L4.6677 19.1878C4.7852 19.8929 5.3952 20.4096 6.1099 20.4098H18.0321C18.7469 20.4097 19.357 19.8929 19.4745 19.1878L20.7971 11.2497C22.0777 11.0897 23.0388 10.0012 23.039 8.7106M12.071 5.0546C12.6768 5.0546 13.1678 5.5457 13.1678 6.1514 13.1678 6.7572 12.6768 7.2482 12.071 7.2482 11.4653 7.2482 10.9742 6.7572 10.9742 6.1514 10.9742 5.5457 11.4653 5.0546 12.071 5.0546M2.5655 8.7106C2.5655 8.1049 3.0565 7.6138 3.6623 7.6138 4.268 7.6138 4.7591 8.1049 4.7591 8.7106 4.7591 9.3164 4.268 9.8074 3.6623 9.8074 3.0565 9.8074 2.5655 9.3164 2.5655 8.7106M18.0322 18.9474H6.1099L4.8376 11.3174 7.8474 15.0172C7.9855 15.1897 8.1941 15.2905 8.4151 15.2915 8.4481 15.2916 8.4811 15.2894 8.5138 15.2851 8.7672 15.2506 8.9841 15.0863 9.086 14.8518L11.764 8.6914C11.968 8.717 12.1743 8.717 12.3782 8.6914L15.0563 14.8518C15.1581 15.0863 15.3751 15.2506 15.6285 15.2851 15.6612 15.2894 15.6942 15.2916 15.7272 15.2915 15.9481 15.2905 16.1568 15.1897 16.2948 15.0172L19.3046 11.3137ZM20.4798 9.8074C19.8741 9.8074 19.383 9.3164 19.383 8.7106 19.383 8.1049 19.8741 7.6138 20.4798 7.6138 21.0856 7.6138 21.5766 8.1049 21.5766 8.7106 21.5766 9.3164 21.0856 9.8074 20.4798 9.8074"/>',
|
||||
// Party popper (first-time celebrations) — Material celebration
|
||||
party: '<path d="M2 22l14-5-9-9-5 14zm12.53-9.47l1.41-1.41 2.83 2.83-1.41 1.41-2.83-2.83zm.53-6.53L16.47 4.59l1.41-1.41 1.41 1.41-1.41 1.42zM21 11h-3v-2h3v2zm-5.65-4.35L14.24 5.54 15.65 4.1l1.11 1.11-1.41 1.44zM13 3V0h2v3h-2zM8.35 5.65l-1.41-1.44L8.06 3.1l1.41 1.41 1.12 1.14z" fill-rule="evenodd"/>',
|
||||
partyFill: '<path d="M2 22l14-5-9-9-5 14zm12.53-9.47l1.41-1.41 2.83 2.83-1.41 1.41-2.83-2.83zm.53-6.53L16.47 4.59l1.41-1.41 1.41 1.41-1.41 1.42zM21 11h-3v-2h3v2zm-5.65-4.35L14.24 5.54 15.65 4.1l1.11 1.11-1.41 1.44zM13 3V0h2v3h-2zM8.35 5.65l-1.41-1.44L8.06 3.1l1.41 1.41 1.12 1.14z"/>',
|
||||
@@ -120,6 +134,17 @@ const _svg = (path, color) => {
|
||||
const INACTIVE = '#999999'
|
||||
const DANGER = '#E53935'
|
||||
|
||||
// 勋章主题色变体(个人资料昵称旁浅底展示用)。复用同一 path 对象引用,
|
||||
// build 循环对 `*Fill` 命名自动生成主题色版 out.xxxFill —— 浅色背景上
|
||||
// 白版会隐形,灰版像未解锁,主题色版才像"已获得的荣誉勋章"。
|
||||
PATHS.sealCheckFill = PATHS.sealCheck
|
||||
PATHS.medalFill = PATHS.medal
|
||||
PATHS.medalMilitaryFill = PATHS.medalMilitary
|
||||
PATHS.trophyPhFill = PATHS.trophyPh
|
||||
PATHS.certificateFill = PATHS.certificate
|
||||
PATHS.shieldStarFill = PATHS.shieldStar
|
||||
PATHS.crownPhFill = PATHS.crownPh
|
||||
|
||||
/**
|
||||
* Build an icon map keyed by name. Two variants per name:
|
||||
* <name> = inactive (gray)
|
||||
@@ -170,6 +195,15 @@ const build = (theme) => {
|
||||
out.diamondWhite = _svg(PATHS.diamond, '#FFFFFF')
|
||||
out.starWhite = _svg(PATHS.star, '#FFFFFF')
|
||||
out.crownWhite = _svg(PATHS.crown, '#FFFFFF')
|
||||
// Phosphor medal white (trial badge icon)
|
||||
out.medalWhite = _svg(PATHS.medal, '#FFFFFF')
|
||||
// Phosphor 勋章系全套 white(解锁后坐主题色圆盘)
|
||||
out.sealCheckWhite = _svg(PATHS.sealCheck, '#FFFFFF')
|
||||
out.medalMilitaryWhite = _svg(PATHS.medalMilitary, '#FFFFFF')
|
||||
out.trophyPhWhite = _svg(PATHS.trophyPh, '#FFFFFF')
|
||||
out.certificateWhite = _svg(PATHS.certificate, '#FFFFFF')
|
||||
out.shieldStarWhite = _svg(PATHS.shieldStar, '#FFFFFF')
|
||||
out.crownPhWhite = _svg(PATHS.crownPh, '#FFFFFF')
|
||||
return out
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user