样式文案调整

master
2358328281@qq.com 2 months ago
parent de3c159519
commit 7e9ab9fbda

@ -1,10 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<g id="Group 1707486095">
<path id="Subtract" d="M17.4141 17.4141L17.7676 17.7676L17.4141 17.4141ZM2.58594 17.4141L2.23238 17.7676L2.58594 17.4141ZM2 14H1.5H2ZM17.25 11.201L17.5 10.7679L17.25 11.201ZM17.799 11.75L17.366 12L17.799 11.75ZM18 14H17.5C17.5 14.9569 17.4989 15.6243 17.4312 16.1278C17.3654 16.6169 17.245 16.876 17.0605 17.0605L17.4141 17.4141L17.7676 17.7676C18.1689 17.3664 18.3415 16.8612 18.4222 16.2611C18.501 15.6755 18.5 14.9287 18.5 14H18ZM17.4141 17.4141L17.0605 17.0605C16.876 17.245 16.6169 17.3654 16.1278 17.4312C15.6243 17.4989 14.9569 17.5 14 17.5V18V18.5C14.9287 18.5 15.6755 18.501 16.2611 18.4222C16.8612 18.3415 17.3664 18.1689 17.7676 17.7676L17.4141 17.4141ZM14 18V17.5H6V18V18.5H14V18ZM6 18V17.5C5.04308 17.5 4.37571 17.4989 3.87219 17.4312C3.38307 17.3654 3.12403 17.245 2.93949 17.0605L2.58594 17.4141L2.23238 17.7676C2.63363 18.1689 3.13881 18.3415 3.73887 18.4222C4.32454 18.501 5.07131 18.5 6 18.5V18ZM2.58594 17.4141L2.93949 17.0605C2.75495 16.876 2.63463 16.6169 2.56884 16.1278C2.5011 15.6243 2.5 14.9569 2.5 14H2H1.5C1.5 14.9287 1.49898 15.6755 1.57776 16.2611C1.65849 16.8612 1.83114 17.3664 2.23238 17.7676L2.58594 17.4141ZM2 14H2.5V13.5H2H1.5V14H2ZM4.5 11V11.5H5.7002V11V10.5H4.5V11ZM8.2998 13.5996V14.0996H11.7002V13.5996V13.0996H8.2998V13.5996ZM14.2998 11V11.5H15.5V11V10.5H14.2998V11ZM18 13.5H17.5V14H18H18.5V13.5H18ZM15.5 11V11.5C15.9765 11.5 16.3005 11.5005 16.5498 11.5231C16.7923 11.5451 16.9147 11.5848 17 11.634L17.25 11.201L17.5 10.7679C17.2372 10.6162 16.9519 10.5554 16.6401 10.5272C16.3351 10.4995 15.9581 10.5 15.5 10.5V11ZM18 13.5H18.5C18.5 13.0419 18.5005 12.6649 18.4728 12.3599C18.4446 12.0481 18.3838 11.7628 18.232 11.5L17.799 11.75L17.366 12C17.4152 12.0853 17.4549 12.2077 17.4769 12.4502C17.4995 12.6995 17.5 13.0235 17.5 13.5H18ZM17.25 11.201L17 11.634C17.152 11.7217 17.2783 11.848 17.366 12L17.799 11.75L18.232 11.5C18.0565 11.196 17.804 10.9435 17.5 10.7679L17.25 11.201ZM13 12.2998H13.5C13.5 11.8581 13.8581 11.5 14.2998 11.5V11V10.5C13.3058 10.5 12.5 11.3058 12.5 12.2998H13ZM11.7002 13.5996V14.0996C12.6942 14.0996 13.5 13.2938 13.5 12.2998H13H12.5C12.5 12.7415 12.1419 13.0996 11.7002 13.0996V13.5996ZM7 12.2998H6.5C6.5 13.2938 7.3058 14.0996 8.2998 14.0996V13.5996V13.0996C7.85808 13.0996 7.5 12.7415 7.5 12.2998H7ZM5.7002 11V11.5C6.14192 11.5 6.5 11.8581 6.5 12.2998H7H7.5C7.5 11.3058 6.6942 10.5 5.7002 10.5V11ZM2 13.5H2.5C2.5 13.0235 2.50048 12.6995 2.52308 12.4502C2.54506 12.2077 2.58475 12.0853 2.63397 12L2.20096 11.75L1.76795 11.5C1.61621 11.7628 1.55542 12.0481 1.52716 12.3599C1.49952 12.6649 1.5 13.0419 1.5 13.5H2ZM4.5 11V10.5C4.04189 10.5 3.66488 10.4995 3.35992 10.5272C3.04807 10.5554 2.76282 10.6162 2.5 10.7679L2.75 11.201L3 11.634C3.08525 11.5848 3.2077 11.5451 3.45018 11.5231C3.69954 11.5005 4.02349 11.5 4.5 11.5V11ZM2.20096 11.75L2.63397 12C2.72174 11.848 2.84798 11.7217 3 11.634L2.75 11.201L2.5 10.7679C2.19596 10.9435 1.94349 11.196 1.76795 11.5L2.20096 11.75Z" fill="#3289FB"/>
<path id="Rectangle 1430107568" d="M16 10.5V5.70588C16 5.04997 16 4.72201 15.9489 4.44875C15.7213 3.23119 14.7688 2.27868 13.5512 2.05108C13.278 2 12.95 2 12.2941 2H10C7.17157 2 5.75736 2 4.87868 2.87868C4 3.75736 4 5.17157 4 8V10.5" stroke="#3289FB" stroke-width="1.2"/>
<path id="Vector 1078" d="M7 6H13" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 9H11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

@ -1,10 +1,10 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<g id="Group 1707486095"> <g id="Group 1707486095">
<path id="Subtract" d="M17.4141 17.4141L17.7676 17.7676L17.4141 17.4141ZM2.58594 17.4141L2.23238 17.7676L2.58594 17.4141ZM2 14H1.5H2ZM17.25 11.201L17.5 10.7679L17.25 11.201ZM17.799 11.75L17.366 12L17.799 11.75ZM18 14H17.5C17.5 14.9569 17.4989 15.6243 17.4312 16.1278C17.3654 16.6169 17.245 16.876 17.0605 17.0605L17.4141 17.4141L17.7676 17.7676C18.1689 17.3664 18.3415 16.8612 18.4222 16.2611C18.501 15.6755 18.5 14.9287 18.5 14H18ZM17.4141 17.4141L17.0605 17.0605C16.876 17.245 16.6169 17.3654 16.1278 17.4312C15.6243 17.4989 14.9569 17.5 14 17.5V18V18.5C14.9287 18.5 15.6755 18.501 16.2611 18.4222C16.8612 18.3415 17.3664 18.1689 17.7676 17.7676L17.4141 17.4141ZM14 18V17.5H6V18V18.5H14V18ZM6 18V17.5C5.04308 17.5 4.37571 17.4989 3.87219 17.4312C3.38307 17.3654 3.12403 17.245 2.93949 17.0605L2.58594 17.4141L2.23238 17.7676C2.63363 18.1689 3.13881 18.3415 3.73887 18.4222C4.32454 18.501 5.07131 18.5 6 18.5V18ZM2.58594 17.4141L2.93949 17.0605C2.75495 16.876 2.63463 16.6169 2.56884 16.1278C2.5011 15.6243 2.5 14.9569 2.5 14H2H1.5C1.5 14.9287 1.49898 15.6755 1.57776 16.2611C1.65849 16.8612 1.83114 17.3664 2.23238 17.7676L2.58594 17.4141ZM2 14H2.5V13.5H2H1.5V14H2ZM4.5 11V11.5H5.7002V11V10.5H4.5V11ZM8.2998 13.5996V14.0996H11.7002V13.5996V13.0996H8.2998V13.5996ZM14.2998 11V11.5H15.5V11V10.5H14.2998V11ZM18 13.5H17.5V14H18H18.5V13.5H18ZM15.5 11V11.5C15.9765 11.5 16.3005 11.5005 16.5498 11.5231C16.7923 11.5451 16.9147 11.5848 17 11.634L17.25 11.201L17.5 10.7679C17.2372 10.6162 16.9519 10.5554 16.6401 10.5272C16.3351 10.4995 15.9581 10.5 15.5 10.5V11ZM18 13.5H18.5C18.5 13.0419 18.5005 12.6649 18.4728 12.3599C18.4446 12.0481 18.3838 11.7628 18.232 11.5L17.799 11.75L17.366 12C17.4152 12.0853 17.4549 12.2077 17.4769 12.4502C17.4995 12.6995 17.5 13.0235 17.5 13.5H18ZM17.25 11.201L17 11.634C17.152 11.7217 17.2783 11.848 17.366 12L17.799 11.75L18.232 11.5C18.0565 11.196 17.804 10.9435 17.5 10.7679L17.25 11.201ZM13 12.2998H13.5C13.5 11.8581 13.8581 11.5 14.2998 11.5V11V10.5C13.3058 10.5 12.5 11.3058 12.5 12.2998H13ZM11.7002 13.5996V14.0996C12.6942 14.0996 13.5 13.2938 13.5 12.2998H13H12.5C12.5 12.7415 12.1419 13.0996 11.7002 13.0996V13.5996ZM7 12.2998H6.5C6.5 13.2938 7.3058 14.0996 8.2998 14.0996V13.5996V13.0996C7.85808 13.0996 7.5 12.7415 7.5 12.2998H7ZM5.7002 11V11.5C6.14192 11.5 6.5 11.8581 6.5 12.2998H7H7.5C7.5 11.3058 6.6942 10.5 5.7002 10.5V11ZM2 13.5H2.5C2.5 13.0235 2.50048 12.6995 2.52308 12.4502C2.54506 12.2077 2.58475 12.0853 2.63397 12L2.20096 11.75L1.76795 11.5C1.61621 11.7628 1.55542 12.0481 1.52716 12.3599C1.49952 12.6649 1.5 13.0419 1.5 13.5H2ZM4.5 11V10.5C4.04189 10.5 3.66488 10.4995 3.35992 10.5272C3.04807 10.5554 2.76282 10.6162 2.5 10.7679L2.75 11.201L3 11.634C3.08525 11.5848 3.2077 11.5451 3.45018 11.5231C3.69954 11.5005 4.02349 11.5 4.5 11.5V11ZM2.20096 11.75L2.63397 12C2.72174 11.848 2.84798 11.7217 3 11.634L2.75 11.201L2.5 10.7679C2.19596 10.9435 1.94349 11.196 1.76795 11.5L2.20096 11.75Z" fill="black"/> <path id="Subtract" d="M17.4141 17.4141L17.7676 17.7676L17.4141 17.4141ZM2.58594 17.4141L2.23238 17.7676L2.58594 17.4141ZM2 14H1.5H2ZM17.25 11.201L17.5 10.7679L17.25 11.201ZM17.799 11.75L17.366 12L17.799 11.75ZM18 14H17.5C17.5 14.9569 17.4989 15.6243 17.4312 16.1278C17.3654 16.6169 17.245 16.876 17.0605 17.0605L17.4141 17.4141L17.7676 17.7676C18.1689 17.3664 18.3415 16.8612 18.4222 16.2611C18.501 15.6755 18.5 14.9287 18.5 14H18ZM17.4141 17.4141L17.0605 17.0605C16.876 17.245 16.6169 17.3654 16.1278 17.4312C15.6243 17.4989 14.9569 17.5 14 17.5V18V18.5C14.9287 18.5 15.6755 18.501 16.2611 18.4222C16.8612 18.3415 17.3664 18.1689 17.7676 17.7676L17.4141 17.4141ZM14 18V17.5H6V18V18.5H14V18ZM6 18V17.5C5.04308 17.5 4.37571 17.4989 3.87219 17.4312C3.38307 17.3654 3.12403 17.245 2.93949 17.0605L2.58594 17.4141L2.23238 17.7676C2.63363 18.1689 3.13881 18.3415 3.73887 18.4222C4.32454 18.501 5.07131 18.5 6 18.5V18ZM2.58594 17.4141L2.93949 17.0605C2.75495 16.876 2.63463 16.6169 2.56884 16.1278C2.5011 15.6243 2.5 14.9569 2.5 14H2H1.5C1.5 14.9287 1.49898 15.6755 1.57776 16.2611C1.65849 16.8612 1.83114 17.3664 2.23238 17.7676L2.58594 17.4141ZM2 14H2.5V13.5H2H1.5V14H2ZM4.5 11V11.5H5.7002V11V10.5H4.5V11ZM8.2998 13.5996V14.0996H11.7002V13.5996V13.0996H8.2998V13.5996ZM14.2998 11V11.5H15.5V11V10.5H14.2998V11ZM18 13.5H17.5V14H18H18.5V13.5H18ZM15.5 11V11.5C15.9765 11.5 16.3005 11.5005 16.5498 11.5231C16.7923 11.5451 16.9147 11.5848 17 11.634L17.25 11.201L17.5 10.7679C17.2372 10.6162 16.9519 10.5554 16.6401 10.5272C16.3351 10.4995 15.9581 10.5 15.5 10.5V11ZM18 13.5H18.5C18.5 13.0419 18.5005 12.6649 18.4728 12.3599C18.4446 12.0481 18.3838 11.7628 18.232 11.5L17.799 11.75L17.366 12C17.4152 12.0853 17.4549 12.2077 17.4769 12.4502C17.4995 12.6995 17.5 13.0235 17.5 13.5H18ZM17.25 11.201L17 11.634C17.152 11.7217 17.2783 11.848 17.366 12L17.799 11.75L18.232 11.5C18.0565 11.196 17.804 10.9435 17.5 10.7679L17.25 11.201ZM13 12.2998H13.5C13.5 11.8581 13.8581 11.5 14.2998 11.5V11V10.5C13.3058 10.5 12.5 11.3058 12.5 12.2998H13ZM11.7002 13.5996V14.0996C12.6942 14.0996 13.5 13.2938 13.5 12.2998H13H12.5C12.5 12.7415 12.1419 13.0996 11.7002 13.0996V13.5996ZM7 12.2998H6.5C6.5 13.2938 7.3058 14.0996 8.2998 14.0996V13.5996V13.0996C7.85808 13.0996 7.5 12.7415 7.5 12.2998H7ZM5.7002 11V11.5C6.14192 11.5 6.5 11.8581 6.5 12.2998H7H7.5C7.5 11.3058 6.6942 10.5 5.7002 10.5V11ZM2 13.5H2.5C2.5 13.0235 2.50048 12.6995 2.52308 12.4502C2.54506 12.2077 2.58475 12.0853 2.63397 12L2.20096 11.75L1.76795 11.5C1.61621 11.7628 1.55542 12.0481 1.52716 12.3599C1.49952 12.6649 1.5 13.0419 1.5 13.5H2ZM4.5 11V10.5C4.04189 10.5 3.66488 10.4995 3.35992 10.5272C3.04807 10.5554 2.76282 10.6162 2.5 10.7679L2.75 11.201L3 11.634C3.08525 11.5848 3.2077 11.5451 3.45018 11.5231C3.69954 11.5005 4.02349 11.5 4.5 11.5V11ZM2.20096 11.75L2.63397 12C2.72174 11.848 2.84798 11.7217 3 11.634L2.75 11.201L2.5 10.7679C2.19596 10.9435 1.94349 11.196 1.76795 11.5L2.20096 11.75Z" fill="currentColor"/>
<path id="Rectangle 1430107568" d="M16 10.5V5.70588C16 5.04997 16 4.72201 15.9489 4.44875C15.7213 3.23119 14.7688 2.27868 13.5512 2.05108C13.278 2 12.95 2 12.2941 2H10C7.17157 2 5.75736 2 4.87868 2.87868C4 3.75736 4 5.17157 4 8V10.5" stroke="black" stroke-width="1.2"/> <path id="Rectangle 1430107568" d="M16 10.5V5.70588C16 5.04997 16 4.72201 15.9489 4.44875C15.7213 3.23119 14.7688 2.27868 13.5512 2.05108C13.278 2 12.95 2 12.2941 2H10C7.17157 2 5.75736 2 4.87868 2.87868C4 3.75736 4 5.17157 4 8V10.5" stroke="black" stroke-width="1.2"/>
<path id="Vector 1078" d="M7 6H13" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1078" d="M7 6H13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 9H11" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1079" d="M7 9H11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -1,11 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<g id="Group 1707486094">
<rect id="Rectangle 1430107565" x="3.6" y="2.6" width="12.8" height="14.8" rx="2.4" stroke="#3289FB" stroke-width="1.2"/>
<path id="Vector 1077" d="M7 8H13" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1078" d="M7 11H13" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 14H11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Rectangle 1430107566" d="M13 3C13 3.94281 13 4.41421 12.7071 4.70711C12.4142 5 11.9428 5 11 5H9C8.05719 5 7.58579 5 7.29289 4.70711C7 4.41421 7 3.94281 7 3" stroke="#3289FB" stroke-width="1.2"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 770 B

@ -2,10 +2,10 @@
<g id="icon"> <g id="icon">
<g id="Group 1707486094"> <g id="Group 1707486094">
<rect id="Rectangle 1430107565" x="3.6" y="2.6" width="12.8" height="14.8" rx="2.4" stroke="#1D2129" stroke-width="1.2"/> <rect id="Rectangle 1430107565" x="3.6" y="2.6" width="12.8" height="14.8" rx="2.4" stroke="#1D2129" stroke-width="1.2"/>
<path id="Vector 1077" d="M7 8H13" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1077" d="M7 8H13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1078" d="M7 11H13" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1078" d="M7 11H13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 14H11" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1079" d="M7 14H11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Rectangle 1430107566" d="M13 3C13 3.94281 13 4.41421 12.7071 4.70711C12.4142 5 11.9428 5 11 5H9C8.05719 5 7.58579 5 7.29289 4.70711C7 4.41421 7 3.94281 7 3" stroke="#1D2129" stroke-width="1.2"/> <path id="Rectangle 1430107566" d="M13 3C13 3.94281 13 4.41421 12.7071 4.70711C12.4142 5 11.9428 5 11 5H9C8.05719 5 7.58579 5 7.29289 4.70711C7 4.41421 7 3.94281 7 3" stroke="currentColor" stroke-width="1.2"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 770 B

After

Width:  |  Height:  |  Size: 790 B

@ -1,6 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<path id="Union" d="M10.5005 3C12.8132 3 14.6881 4.76288 14.6881 6.9375C14.6881 8.38443 13.8574 9.64805 12.6206 10.3324C14.3597 10.8952 15.7654 12.1309 16.4864 13.7088C17.0115 14.858 16.2338 16.1026 15.0131 16.4287C13.642 16.7949 12.1131 17 10.5005 17C8.88742 17 7.35812 16.795 5.9867 16.4286C4.76607 16.1026 3.98849 14.8581 4.51358 13.709C5.23459 12.1311 6.64039 10.8953 8.37938 10.3324C7.14297 9.64796 6.31283 8.38416 6.31283 6.9375C6.31283 4.76288 8.18769 3 10.5005 3Z" stroke="#3289FB" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Vector 1083" d="M10.5 12V14" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

@ -1,6 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<path id="Union" d="M10.5005 3C12.8132 3 14.6881 4.76288 14.6881 6.9375C14.6881 8.38443 13.8574 9.64805 12.6206 10.3324C14.3597 10.8952 15.7654 12.1309 16.4864 13.7088C17.0115 14.858 16.2338 16.1026 15.0131 16.4287C13.642 16.7949 12.1131 17 10.5005 17C8.88742 17 7.35812 16.795 5.9867 16.4286C4.76607 16.1026 3.98849 14.8581 4.51358 13.709C5.23459 12.1311 6.64039 10.8953 8.37938 10.3324C7.14297 9.64796 6.31283 8.38416 6.31283 6.9375C6.31283 4.76288 8.18769 3 10.5005 3Z" stroke="#1D2129" stroke-width="1.2" stroke-linejoin="round"/> <path id="Union" d="M10.5005 3C12.8132 3 14.6881 4.76288 14.6881 6.9375C14.6881 8.38443 13.8574 9.64805 12.6206 10.3324C14.3597 10.8952 15.7654 12.1309 16.4864 13.7088C17.0115 14.858 16.2338 16.1026 15.0131 16.4287C13.642 16.7949 12.1131 17 10.5005 17C8.88742 17 7.35812 16.795 5.9867 16.4286C4.76607 16.1026 3.98849 14.8581 4.51358 13.709C5.23459 12.1311 6.64039 10.8953 8.37938 10.3324C7.14297 9.64796 6.31283 8.38416 6.31283 6.9375C6.31283 4.76288 8.18769 3 10.5005 3Z" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Vector 1083" d="M10.5 12V14" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector 1083" d="M10.5 12V14" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 791 B

@ -1,6 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<circle id="Ellipse 2294" cx="10" cy="10" r="7.4" stroke="#3289FB" stroke-width="1.2"/>
<path id="Star 1" d="M9.57129 5.68164C9.76562 5.35873 10.2344 5.35873 10.4287 5.68164L11.3281 7.17676C11.5375 7.52455 11.879 7.77254 12.2744 7.86426L13.9746 8.25781C14.3418 8.34285 14.4863 8.78864 14.2393 9.07324L13.0957 10.3906C12.8294 10.6974 12.6993 11.0992 12.7344 11.5039L12.8848 13.2422C12.9171 13.6175 12.5383 13.8921 12.1914 13.7451L10.585 13.0645C10.2111 12.9062 9.78887 12.9062 9.41504 13.0645L7.80859 13.7451C7.46166 13.8921 7.08286 13.6175 7.11523 13.2422L7.26562 11.5039C7.30074 11.0993 7.17056 10.6974 6.9043 10.3906L5.76074 9.07324C5.51369 8.78864 5.65823 8.34285 6.02539 8.25781L7.72559 7.86426C8.12103 7.77254 8.46251 7.52455 8.67188 7.17676L9.57129 5.68164Z" stroke="#3289FB"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 906 B

@ -1,6 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<circle id="Ellipse 2294" cx="10" cy="10" r="7.4" stroke="#1D2129" stroke-width="1.2"/> <circle id="Ellipse 2294" cx="10" cy="10" r="7.4" stroke="currentColor" stroke-width="1.2"/>
<path id="Star 1" d="M9.57129 5.68164C9.76562 5.35873 10.2344 5.35873 10.4287 5.68164L11.3281 7.17676C11.5375 7.52455 11.879 7.77254 12.2744 7.86426L13.9746 8.25781C14.3418 8.34285 14.4863 8.78864 14.2393 9.07324L13.0957 10.3906C12.8294 10.6974 12.6993 11.0992 12.7344 11.5039L12.8848 13.2422C12.9171 13.6175 12.5383 13.8921 12.1914 13.7451L10.585 13.0645C10.2111 12.9062 9.78887 12.9062 9.41504 13.0645L7.80859 13.7451C7.46166 13.8921 7.08286 13.6175 7.11523 13.2422L7.26562 11.5039C7.30074 11.0993 7.17056 10.6974 6.9043 10.3906L5.76074 9.07324C5.51369 8.78864 5.65823 8.34285 6.02539 8.25781L7.72559 7.86426C8.12103 7.77254 8.46251 7.52455 8.67188 7.17676L9.57129 5.68164Z" stroke="#666666"/> <path id="Star 1" d="M9.57129 5.68164C9.76562 5.35873 10.2344 5.35873 10.4287 5.68164L11.3281 7.17676C11.5375 7.52455 11.879 7.77254 12.2744 7.86426L13.9746 8.25781C14.3418 8.34285 14.4863 8.78864 14.2393 9.07324L13.0957 10.3906C12.8294 10.6974 12.6993 11.0992 12.7344 11.5039L12.8848 13.2422C12.9171 13.6175 12.5383 13.8921 12.1914 13.7451L10.585 13.0645C10.2111 12.9062 9.78887 12.9062 9.41504 13.0645L7.80859 13.7451C7.46166 13.8921 7.08286 13.6175 7.11523 13.2422L7.26562 11.5039C7.30074 11.0993 7.17056 10.6974 6.9043 10.3906L5.76074 9.07324C5.51369 8.78864 5.65823 8.34285 6.02539 8.25781L7.72559 7.86426C8.12103 7.77254 8.46251 7.52455 8.67188 7.17676L9.57129 5.68164Z" stroke="currentColor"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 906 B

After

Width:  |  Height:  |  Size: 916 B

@ -1,7 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<path id="Rectangle 1430107568" d="M3 7C3 5.11438 3 4.17157 3.58579 3.58579C4.17157 3 5.11438 3 7 3H13C14.8856 3 15.8284 3 16.4142 3.58579C17 4.17157 17 5.11438 17 7V18H3V7Z" stroke="#3289FB" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Union" d="M11 8H10.5C10.5 8.27614 10.7239 8.5 11 8.5V8ZM13 8H13.5C13.5 7.72386 13.2761 7.5 13 7.5V8ZM13 10V10.5C13.2761 10.5 13.5 10.2761 13.5 10H13ZM11 10V9.5C10.7239 9.5 10.5 9.72386 10.5 10H11ZM11 12V12.5C11.2761 12.5 11.5 12.2761 11.5 12H11ZM9 12H8.5C8.5 12.2761 8.72386 12.5 9 12.5V12ZM9 10H9.5C9.5 9.72386 9.27614 9.5 9 9.5V10ZM7 10H6.5C6.5 10.2761 6.72386 10.5 7 10.5V10ZM7 8V7.5C6.72386 7.5 6.5 7.72386 6.5 8H7ZM9 8V8.5C9.27614 8.5 9.5 8.27614 9.5 8H9ZM9 6V5.5C8.72386 5.5 8.5 5.72386 8.5 6H9ZM11 6H11.5C11.5 5.72386 11.2761 5.5 11 5.5V6ZM11 8V8.5H13V8V7.5H11V8ZM13 8H12.5V10H13H13.5V8H13ZM13 10V9.5H11V10V10.5H13V10ZM11 10H10.5V12H11H11.5V10H11ZM11 12V11.5H9V12V12.5H11V12ZM9 12H9.5V10H9H8.5V12H9ZM9 10V9.5H7V10V10.5H9V10ZM7 10H7.5V8H7H6.5V10H7ZM7 8V8.5H9V8V7.5H7V8ZM9 8H9.5V6H9H8.5V8H9ZM9 6V6.5H11V6V5.5H9V6ZM11 6H10.5V8H11H11.5V6H11Z" fill="#3289FB"/>
<path id="Rectangle 1430107572" d="M12 18V17C12 16.0572 12 15.5858 11.7071 15.2929C11.4142 15 10.9428 15 10 15C9.05719 15 8.58579 15 8.29289 15.2929C8 15.5858 8 16.0572 8 17V18" stroke="#3289FB" stroke-width="1.2"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,7 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<path id="Rectangle 1430107568" d="M3 7C3 5.11438 3 4.17157 3.58579 3.58579C4.17157 3 5.11438 3 7 3H13C14.8856 3 15.8284 3 16.4142 3.58579C17 4.17157 17 5.11438 17 7V18H3V7Z" stroke="#1D2129" stroke-width="1.2" stroke-linejoin="round"/> <path id="Rectangle 1430107568" d="M3 7C3 5.11438 3 4.17157 3.58579 3.58579C4.17157 3 5.11438 3 7 3H13C14.8856 3 15.8284 3 16.4142 3.58579C17 4.17157 17 5.11438 17 7V18H3V7Z" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Union" d="M11 8H10.5C10.5 8.27614 10.7239 8.5 11 8.5V8ZM13 8H13.5C13.5 7.72386 13.2761 7.5 13 7.5V8ZM13 10V10.5C13.2761 10.5 13.5 10.2761 13.5 10H13ZM11 10V9.5C10.7239 9.5 10.5 9.72386 10.5 10H11ZM11 12V12.5C11.2761 12.5 11.5 12.2761 11.5 12H11ZM9 12H8.5C8.5 12.2761 8.72386 12.5 9 12.5V12ZM9 10H9.5C9.5 9.72386 9.27614 9.5 9 9.5V10ZM7 10H6.5C6.5 10.2761 6.72386 10.5 7 10.5V10ZM7 8V7.5C6.72386 7.5 6.5 7.72386 6.5 8H7ZM9 8V8.5C9.27614 8.5 9.5 8.27614 9.5 8H9ZM9 6V5.5C8.72386 5.5 8.5 5.72386 8.5 6H9ZM11 6H11.5C11.5 5.72386 11.2761 5.5 11 5.5V6ZM11 8V8.5H13V8V7.5H11V8ZM13 8H12.5V10H13H13.5V8H13ZM13 10V9.5H11V10V10.5H13V10ZM11 10H10.5V12H11H11.5V10H11ZM11 12V11.5H9V12V12.5H11V12ZM9 12H9.5V10H9H8.5V12H9ZM9 10V9.5H7V10V10.5H9V10ZM7 10H7.5V8H7H6.5V10H7ZM7 8V8.5H9V8V7.5H7V8ZM9 8H9.5V6H9H8.5V8H9ZM9 6V6.5H11V6V5.5H9V6ZM11 6H10.5V8H11H11.5V6H11Z" fill="#666666"/> <path id="Union" d="M11 8H10.5C10.5 8.27614 10.7239 8.5 11 8.5V8ZM13 8H13.5C13.5 7.72386 13.2761 7.5 13 7.5V8ZM13 10V10.5C13.2761 10.5 13.5 10.2761 13.5 10H13ZM11 10V9.5C10.7239 9.5 10.5 9.72386 10.5 10H11ZM11 12V12.5C11.2761 12.5 11.5 12.2761 11.5 12H11ZM9 12H8.5C8.5 12.2761 8.72386 12.5 9 12.5V12ZM9 10H9.5C9.5 9.72386 9.27614 9.5 9 9.5V10ZM7 10H6.5C6.5 10.2761 6.72386 10.5 7 10.5V10ZM7 8V7.5C6.72386 7.5 6.5 7.72386 6.5 8H7ZM9 8V8.5C9.27614 8.5 9.5 8.27614 9.5 8H9ZM9 6V5.5C8.72386 5.5 8.5 5.72386 8.5 6H9ZM11 6H11.5C11.5 5.72386 11.2761 5.5 11 5.5V6ZM11 8V8.5H13V8V7.5H11V8ZM13 8H12.5V10H13H13.5V8H13ZM13 10V9.5H11V10V10.5H13V10ZM11 10H10.5V12H11H11.5V10H11ZM11 12V11.5H9V12V12.5H11V12ZM9 12H9.5V10H9H8.5V12H9ZM9 10V9.5H7V10V10.5H9V10ZM7 10H7.5V8H7H6.5V10H7ZM7 8V8.5H9V8V7.5H7V8ZM9 8H9.5V6H9H8.5V8H9ZM9 6V6.5H11V6V5.5H9V6ZM11 6H10.5V8H11H11.5V6H11Z" fill="currentColor"/>
<path id="Rectangle 1430107572" d="M12 18V17C12 16.0572 12 15.5858 11.7071 15.2929C11.4142 15 10.9428 15 10 15C9.05719 15 8.58579 15 8.29289 15.2929C8 15.5858 8 16.0572 8 17V18" stroke="#666666" stroke-width="1.2"/> <path id="Rectangle 1430107572" d="M12 18V17C12 16.0572 12 15.5858 11.7071 15.2929C11.4142 15 10.9428 15 10 15C9.05719 15 8.58579 15 8.29289 15.2929C8 15.5858 8 16.0572 8 17V18" stroke="currentColor" stroke-width="1.2"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,12 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<g id="Group 1707486094">
<rect id="Rectangle 1430107565" x="3.6" y="3.6" width="12.8" height="13.8" rx="2.4" stroke="#3289FB" stroke-width="1.2"/>
<path id="Vector 1093" d="M7 2V5" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1094" d="M13 2V5" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1077" d="M7 8H13" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1078" d="M7 11H13" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 14H11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 756 B

@ -1,12 +1,12 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<g id="Group 1707486094"> <g id="Group 1707486094">
<rect id="Rectangle 1430107565" x="3.6" y="3.6" width="12.8" height="13.8" rx="2.4" stroke="#1D2129" stroke-width="1.2"/> <rect id="Rectangle 1430107565" x="3.6" y="3.6" width="12.8" height="13.8" rx="2.4" stroke="currentColor" stroke-width="1.2"/>
<path id="Vector 1093" d="M7 2V5" stroke="#1D2129" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1093" d="M7 2V5" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1094" d="M13 2V5" stroke="#1D2129" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1094" d="M13 2V5" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1077" d="M7 8H13" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1077" d="M7 8H13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1078" d="M7 11H13" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1078" d="M7 11H13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path id="Vector 1079" d="M7 14H11" stroke="#666666" stroke-width="1.2" stroke-linecap="round"/> <path id="Vector 1079" d="M7 14H11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 786 B

@ -1,12 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<g id="Group 1707486112">
<path id="Vector" d="M5.2 14C4.0799 14 3.51984 14 3.09202 13.782C2.71569 13.5903 2.40973 13.2843 2.21799 12.908C2 12.4802 2 11.9201 2 10.8V7C2 5.11438 2 4.17157 2.58579 3.58579C3.17157 3 4.11438 3 6 3H14C15.8856 3 16.8284 3 17.4142 3.58579C18 4.17157 18 5.11438 18 7V10.8C18 11.9201 18 12.4802 17.782 12.908C17.5903 13.2843 17.2843 13.5903 16.908 13.782C16.4802 14 15.9201 14 14.8 14H5.2Z" stroke="#3289FB" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Vector_2" d="M7 9V11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_3" d="M10 14V16" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_4" d="M10 8V11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_5" d="M13 6V11" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_6" d="M5 17H15" stroke="#3289FB" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@ -2,11 +2,11 @@
<g id="icon"> <g id="icon">
<g id="Group 1707486112"> <g id="Group 1707486112">
<path id="Vector" d="M5.2 14C4.0799 14 3.51984 14 3.09202 13.782C2.71569 13.5903 2.40973 13.2843 2.21799 12.908C2 12.4802 2 11.9201 2 10.8V7C2 5.11438 2 4.17157 2.58579 3.58579C3.17157 3 4.11438 3 6 3H14C15.8856 3 16.8284 3 17.4142 3.58579C18 4.17157 18 5.11438 18 7V10.8C18 11.9201 18 12.4802 17.782 12.908C17.5903 13.2843 17.2843 13.5903 16.908 13.782C16.4802 14 15.9201 14 14.8 14H5.2Z" stroke="#1D2129" stroke-width="1.2" stroke-linejoin="round"/> <path id="Vector" d="M5.2 14C4.0799 14 3.51984 14 3.09202 13.782C2.71569 13.5903 2.40973 13.2843 2.21799 12.908C2 12.4802 2 11.9201 2 10.8V7C2 5.11438 2 4.17157 2.58579 3.58579C3.17157 3 4.11438 3 6 3H14C15.8856 3 16.8284 3 17.4142 3.58579C18 4.17157 18 5.11438 18 7V10.8C18 11.9201 18 12.4802 17.782 12.908C17.5903 13.2843 17.2843 13.5903 16.908 13.782C16.4802 14 15.9201 14 14.8 14H5.2Z" stroke="#1D2129" stroke-width="1.2" stroke-linejoin="round"/>
<path id="Vector_2" d="M7 9V11" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector_2" d="M7 9V11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_3" d="M10 14V16" stroke="#1D2129" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector_3" d="M10 14V16" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_4" d="M10 8V11" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector_4" d="M10 8V11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_5" d="M13 6V11" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector_5" d="M13 6V11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="Vector_6" d="M5 17H15" stroke="#1D2129" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> <path id="Vector_6" d="M5 17H15" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,7 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<ellipse id="Ellipse 2299" cx="10" cy="6" rx="7" ry="3" stroke="#3289FB" stroke-width="1.2"/>
<path id="Ellipse 2300" d="M4.17876 8C3.43421 8.51075 3 9.12495 3 9.78571C3 11.5609 6.13401 13 10 13C13.866 13 17 11.5609 17 9.78571C17 9.12495 16.5658 8.51075 15.8212 8" stroke="#3289FB" stroke-width="1.2"/>
<path id="Ellipse 2301" d="M4.17876 12C3.43421 12.5107 3 13.1249 3 13.7857C3 15.5609 6.13401 17 10 17C13.866 17 17 15.5609 17 13.7857C17 13.1249 16.5658 12.5107 15.8212 12" stroke="#3289FB" stroke-width="1.2"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 636 B

@ -1,7 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<ellipse id="Ellipse 2299" cx="10" cy="6" rx="7" ry="3" stroke="#1D2129" stroke-width="1.2"/> <ellipse id="Ellipse 2299" cx="10" cy="6" rx="7" ry="3" stroke="currentColor" stroke-width="1.2"/>
<path id="Ellipse 2300" d="M4.17876 8C3.43421 8.51075 3 9.12495 3 9.78571C3 11.5609 6.13401 13 10 13C13.866 13 17 11.5609 17 9.78571C17 9.12495 16.5658 8.51075 15.8212 8" stroke="#666666" stroke-width="1.2"/> <path id="Ellipse 2300" d="M4.17876 8C3.43421 8.51075 3 9.12495 3 9.78571C3 11.5609 6.13401 13 10 13C13.866 13 17 11.5609 17 9.78571C17 9.12495 16.5658 8.51075 15.8212 8" stroke="currentColor" stroke-width="1.2"/>
<path id="Ellipse 2301" d="M4.17876 12C3.43421 12.5107 3 13.1249 3 13.7857C3 15.5609 6.13401 17 10 17C13.866 17 17 15.5609 17 13.7857C17 13.1249 16.5658 12.5107 15.8212 12" stroke="#1D2129" stroke-width="1.2"/> <path id="Ellipse 2301" d="M4.17876 12C3.43421 12.5107 3 13.1249 3 13.7857C3 15.5609 6.13401 17 10 17C13.866 17 17 15.5609 17 13.7857C17 13.1249 16.5658 12.5107 15.8212 12" stroke="currentColor" stroke-width="1.2"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 636 B

After

Width:  |  Height:  |  Size: 651 B

@ -1,7 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon">
<path id="Rectangle 1430107564" d="M10 2.52734C10.1597 2.52734 10.321 2.5482 10.7324 2.60352L11.7324 2.7373C12.9844 2.90564 13.8773 3.02677 14.5518 3.20605C15.2124 3.38169 15.6015 3.59837 15.8818 3.91895C16.1623 4.23959 16.3251 4.65467 16.4111 5.33301C16.4989 6.0253 16.5 6.92552 16.5 8.18848V10.6494C16.5 11.5331 16.4992 12.1595 16.4492 12.6543C16.4004 13.1376 16.3071 13.4542 16.1455 13.7246C15.9839 13.995 15.7492 14.2271 15.3467 14.499C14.9346 14.7774 14.3835 15.0747 13.6055 15.4932L12.6055 16.0312C11.9021 16.4095 11.4039 16.6767 10.9883 16.8525C10.5822 17.0243 10.2878 17.0937 10 17.0938C9.71222 17.0938 9.41785 17.0243 9.01172 16.8525C8.59608 16.6767 8.0979 16.4095 7.39453 16.0312L6.39453 15.4932C5.61646 15.0747 5.06537 14.7774 4.65332 14.499C4.25079 14.2271 4.01609 13.995 3.85449 13.7246C3.6929 13.4542 3.59964 13.1376 3.55078 12.6543C3.5008 12.1595 3.5 11.5331 3.5 10.6494V8.18848C3.5 6.92552 3.50112 6.0253 3.58887 5.33301C3.6749 4.65467 3.83774 4.23959 4.11816 3.91895C4.39855 3.59837 4.7876 3.38169 5.44824 3.20605C6.12272 3.02677 7.01562 2.90564 8.26758 2.7373L9.26758 2.60352C9.67896 2.5482 9.84035 2.52734 10 2.52734Z" stroke="#3289FB"/>
<path id="Vector 1081" d="M10 6V10" stroke="#3289FB" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/>
<path id="Vector 1082" d="M10 12V13" stroke="#3289FB" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@ -1,7 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="icon"> <g id="icon">
<path id="Rectangle 1430107564" d="M10 2.52734C10.1597 2.52734 10.321 2.5482 10.7324 2.60352L11.7324 2.7373C12.9844 2.90564 13.8773 3.02677 14.5518 3.20605C15.2124 3.38169 15.6015 3.59837 15.8818 3.91895C16.1623 4.23959 16.3251 4.65467 16.4111 5.33301C16.4989 6.0253 16.5 6.92552 16.5 8.18848V10.6494C16.5 11.5331 16.4992 12.1595 16.4492 12.6543C16.4004 13.1376 16.3071 13.4542 16.1455 13.7246C15.9839 13.995 15.7492 14.2271 15.3467 14.499C14.9346 14.7774 14.3835 15.0747 13.6055 15.4932L12.6055 16.0312C11.9021 16.4095 11.4039 16.6767 10.9883 16.8525C10.5822 17.0243 10.2878 17.0937 10 17.0938C9.71222 17.0938 9.41785 17.0243 9.01172 16.8525C8.59608 16.6767 8.0979 16.4095 7.39453 16.0312L6.39453 15.4932C5.61646 15.0747 5.06537 14.7774 4.65332 14.499C4.25079 14.2271 4.01609 13.995 3.85449 13.7246C3.6929 13.4542 3.59964 13.1376 3.55078 12.6543C3.5008 12.1595 3.5 11.5331 3.5 10.6494V8.18848C3.5 6.92552 3.50112 6.0253 3.58887 5.33301C3.6749 4.65467 3.83774 4.23959 4.11816 3.91895C4.39855 3.59837 4.7876 3.38169 5.44824 3.20605C6.12272 3.02677 7.01562 2.90564 8.26758 2.7373L9.26758 2.60352C9.67896 2.5482 9.84035 2.52734 10 2.52734Z" stroke="#1D2129"/> <path id="Rectangle 1430107564" d="M10 2.52734C10.1597 2.52734 10.321 2.5482 10.7324 2.60352L11.7324 2.7373C12.9844 2.90564 13.8773 3.02677 14.5518 3.20605C15.2124 3.38169 15.6015 3.59837 15.8818 3.91895C16.1623 4.23959 16.3251 4.65467 16.4111 5.33301C16.4989 6.0253 16.5 6.92552 16.5 8.18848V10.6494C16.5 11.5331 16.4992 12.1595 16.4492 12.6543C16.4004 13.1376 16.3071 13.4542 16.1455 13.7246C15.9839 13.995 15.7492 14.2271 15.3467 14.499C14.9346 14.7774 14.3835 15.0747 13.6055 15.4932L12.6055 16.0312C11.9021 16.4095 11.4039 16.6767 10.9883 16.8525C10.5822 17.0243 10.2878 17.0937 10 17.0938C9.71222 17.0938 9.41785 17.0243 9.01172 16.8525C8.59608 16.6767 8.0979 16.4095 7.39453 16.0312L6.39453 15.4932C5.61646 15.0747 5.06537 14.7774 4.65332 14.499C4.25079 14.2271 4.01609 13.995 3.85449 13.7246C3.6929 13.4542 3.59964 13.1376 3.55078 12.6543C3.5008 12.1595 3.5 11.5331 3.5 10.6494V8.18848C3.5 6.92552 3.50112 6.0253 3.58887 5.33301C3.6749 4.65467 3.83774 4.23959 4.11816 3.91895C4.39855 3.59837 4.7876 3.38169 5.44824 3.20605C6.12272 3.02677 7.01562 2.90564 8.26758 2.7373L9.26758 2.60352C9.67896 2.5482 9.84035 2.52734 10 2.52734Z" stroke="#1D2129"/>
<path id="Vector 1081" d="M10 6V10" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/> <path id="Vector 1081" d="M10 6V10" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/>
<path id="Vector 1082" d="M10 12V13" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/> <path id="Vector 1082" d="M10 12V13" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="bevel"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -13,6 +13,25 @@ $primaryLightBlue: #3289fb;
border: 1px solid #e0e0e0 !important; border: 1px solid #e0e0e0 !important;
padding: 24px !important; padding: 24px !important;
.pagination {
position: sticky;
bottom: 0;
z-index: 10;
background-color: #fff;
padding-bottom: 24px;
margin-top: 16px;
display: flex;
justify-content: flex-end;
}
// padding
&.order-list,
&.order-report,
&.hospital-list,
&.account-list {
padding-bottom: 0 !important;
}
// order-list // order-list
// - el-table cell 线 // - el-table cell 线
// - + // - +
@ -57,13 +76,6 @@ $primaryLightBlue: #3289fb;
margin-left: auto !important; margin-left: auto !important;
} }
} }
//
.admin-pagination {
margin-top: 16px !important;
display: flex !important;
justify-content: flex-end !important;
}
} }
// ========================================================== // ==========================================================

@ -1,4 +0,0 @@
@use './theme/dark.scss';
@use './theme/red.scss';
@use './theme/blue.scss';
@use './theme/purple.scss';

@ -1,205 +0,0 @@
/** blue 穹宇蓝 */
:root ,
// default-theme
.default-theme{
/* 主题色&功能色 开始 */
//
--brand-color: #3289FB;
// hover
--brand-color-hover: #5298FC;
// active
--brand-color-active: #1B6FDB;
// disabled
--brand-color-disabled: #B2D2FE;
// focus
--brand-color-focus: #DCE9FE;
// light使
--brand-color-light: #ECF2FF;
//
--error-color: #FF4040;
// hover
--error-color-hover: #FF7474;
// active
--error-color-active: #DB3131;
// disabled
--error-color-disabled: #FFB9B0;
// focus
--error-color-focus: #FFD8D2;
// light使
--error-color-light: #FFF0ED;
//
--warning-color: #FF9000;
// hover
--warning-color-hover: #FFA938;
// active
--warning-color-active: #EA8A0E;
// disabled
--warning-color-disabled: #FFC882;
// focus
--warning-color-focus: #FFE2C2;
// light使
--warning-color-light: #FFF4E9;
//
--success-color: #1FBB79;
// hover
--success-color-hover: #43C78F;
// active
--success-color-active: #2BA471;
// disabled
--success-color-disabled: #92DAB2;
// focus
--success-color-focus: #C6F3D7;
// light使
--success-color-light: #E3F9E9;
/* 主题色&功能色 结束 */
/* 文字&图标色彩 开始 */
//
--text-color-primary: #191919;
//
--text-color-secondary: #666666;
//
--text-color-placeholder: #999999;
// disabled
--text-color-disabled: #BDBDBD;
//
--text-color-anti: #FFFFFF;
//
--text-color-anti-opacity: rgba(255, 255, 255, 0.24);
//
--text-color-brand: var(--brand-color);
//
--text-color-link: var(--brand-color);
/* 文字&图标色彩 结束 */
/* 中性色彩交互token 开始 */
// hover hover
--bg-color-container-hover: #F5F7FA;
// click click
--bg-color-container-active: #EBEEF5;
// hover
--bg-color-secondarycontainer-hover: #F4F6FA;
// click
--bg-color-secondarycontainer-active: #E1E5ED;
// hover hover
--bg-color-component-hover: #E1E5ED;
//active active
--bg-color-component-active: #B8BECA;
// disabled disabled
--bg-color-component-disabled: #F4F6FA;
/* 中性色彩交互token 结束 */
/* 中性色彩 开始 */
//
--bg-color-page: #F4F6FA;
//
--bg-color-container:#FFFFFF;
//
--bg-color-secondarycontainer: #F5F7FA;
//
--bg-color-component: #EBEEF5;
// 线
--component-stroke: #EBEEF5;
//
--component-border: #E1E5ED;
/* 中性色彩 结束 */
// Element Plus 使
--el-color-primary: var(--brand-color);
--el-color-primary-light-3: var(--brand-color-hover);
--el-color-primary-light-5: var(--brand-color-active);
--el-color-primary-light-7: var(--brand-color-disabled);
--el-color-primary-light-8: var(--brand-color-focus);
--el-color-primary-light-9: var(--brand-color-light);
--el-color-primary-dark-2: var(--brand-color-hover);
--el-color-success: var(--success-color);
--el-color-success-light-3: var(--success-color-hover);
--el-color-success-light-5: var(--success-color-active);
--el-color-success-light-7: var(--success-color-disabled);
--el-color-success-light-8: var(--success-color-focus);
--el-color-success-light-9: var(--success-color-light);
--el-color-success-dark-2: var(--success-color-hover);
--el-color-warning: var(--warning-color);
--el-color-warning-light-3: var(--warning-color-hover);
--el-color-warning-light-5: var(--warning-color-active);
--el-color-warning-light-7: var(--warning-color-disabled);
--el-color-warning-light-8: var(--warning-color-focus);
--el-color-warning-light-9: var(--warning-color-light);
--el-color-warning-dark-2: var(--warning-color-hover);
--el-color-danger: var(--error-color);
--el-color-danger-light-3: var(--error-color-hover);
--el-color-danger-light-5: var(--error-color-active);
--el-color-danger-light-7: var(--error-color-disabled);
--el-color-danger-light-8: var(--error-color-focus);
--el-color-danger-light-9: var(--error-color-light);
--el-color-danger-dark-2: var(--error-color-hover);
--el-color-error: var(--error-color);
--el-color-error-light-3: var(--error-color-hover);
--el-color-error-light-5: var(--error-color-active);
--el-color-error-light-7: var(--error-color-disabled);
--el-color-error-light-8: var(--error-color-focus);
--el-color-error-light-9: var(--error-color-light);
--el-color-error-dark-2: var(--error-color-hover);
--el-color-info: var(--text-color-secondary);
--el-color-info-light-3: var(--text-color-secondary);
--el-color-info-light-5: var(--text-color-placeholder);
--el-color-info-light-7: var(--text-color-disabled);
--el-color-info-light-8: var(--text-color-disabled);
--el-color-info-light-9: var(--text-color-disabled);
--el-color-info-dark-2: var(--text-color-secondary);
// --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.36), 0px 8px 20px rgba(0, 0, 0, 0.72);
// --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, 0.72);
// --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, 0.72);
// --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, 0.72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;
--el-bg-color-page: var(--bg-color-page);
--el-bg-color: var(--bg-color-container);
--el-bg-color-overlay: var(--bg-color-secondarycontainer);
--el-text-color-primary: var(--text-color-primary);
--el-text-color-regular: var(--text-color-primary);
--el-text-color-secondary: var(--text-color-secondary);
--el-text-color-placeholder: var(--text-color-placeholder);
--el-text-color-disabled: var(--text-color-disabled);
--el-border-color-darker: var(--component-border);
--el-border-color-dark: var(--component-border);
--el-border-color: var(--component-stroke);
--el-border-color-light: var(--component-stroke);
--el-border-color-lighter: var(--component-stroke);
--el-border-color-extra-light: var(--component-stroke);
--el-fill-color-darker: var(--bg-color-container-active);
--el-fill-color-dark: var(--bg-color-secondarycontainer);
--el-fill-color: var(--bg-color-component);
--el-fill-color-light: var(--bg-color-component-hover);
--el-fill-color-lighter: var(--bg-color-container-hover);
--el-fill-color-extra-light: var(--bg-color-page);
--el-fill-color-blank: transparent;
// --el-mask-color: rgba(0, 0, 0, 0.8);
// --el-mask-color-extra-light: rgba(0, 0, 0, 0.3);
--el-menu-base-level-padding:8px;
--el-menu-level-padding:25px;
--el-menu-level:0;
--el-menu-item-height:40px;
--el-menu-hover-bg-color:var(--brand-color-light);
--el-text-color-secondary:var(--brand-color);
--el-menu-text-color:var(--text-color-secondary);
--el-menu-active-color:var(--brand-color);
--el-menu-active-background:var(--brand-color-light);
--el-font-size-base: 0.875rem
}

@ -1,201 +0,0 @@
/* 耀石黑 dark*/
html.dark {
/* 主题色&功能色 开始 */
//
--brand-color: #1764ff;
// hover
--brand-color-hover: #2b7aff;
// active
--brand-color-active: #1557db;
// disabled
--brand-color-disabled: #b2ccff;
// focus
--brand-color-focus: #d9e5ff;
// light使
--brand-color-light: #24365c;
//
--error-color: #ff4040;
// hover
--error-color-hover: #ff7474;
// active
--error-color-active: #db3131;
// disabled
--error-color-disabled: #ffb9b0;
// focus
--error-color-focus: #ffd8d2;
// light使
--error-color-light: #fff0ed;
//
--warning-color: #ff9000;
// hover
--warning-color-hover: #ffa938;
// active
--warning-color-active: #ea8a0e;
// disabled
--warning-color-disabled: #ffc882;
// focus
--warning-color-focus: #ffe2c2;
// light使
--warning-color-light: #fff4e9;
//
--success-color: #1fbb79;
// hover
--success-color-hover: #43c78f;
// active
--success-color-active: #2ba471;
// disabled
--success-color-disabled: #92dab2;
// focus
--success-color-focus: #c6f3d7;
// light使
--success-color-light: #e3f9e9;
/* 主题色&功能色 结束 */
/* 文字&图标色彩 开始 */
--text-color-primary: #e6e6e6;
--text-color-secondary: #b3b3b3;
--text-color-placeholder: #808080;
--text-color-disabled: #808080;
--text-color-anti: #ffffff;
--text-color-anti-opacity: rgba(255, 255, 255, 0.24);
//
--text-color-brand: var(--brand-color);
//
--text-color-link: var(--brand-color);
/* 文字&图标色彩 结束 */
/* 中性色彩交互token 开始 */
--bg-color-container-hover: #333333;
--bg-color-container-active: #404040;
--bg-color-secondarycontainer-hover: #404040;
--bg-color-secondarycontainer-active: #4d4d4d;
--bg-color-component-hover: #404040;
--bg-color-component-active: #4d4d4d;
--bg-color-component-disabled: #1a1a1a;
/* 中性色彩交互token 结束 */
/* 中性色彩 开始 */
--bg-color-page: #181818;
--bg-color-container: #262626;
--bg-color-secondarycontainer: #333333;
--bg-color-component: #333333;
--component-stroke: #3c3c3c;
--component-border: #262626;
/* 中性色彩 结束 */
// Element Plus 使
--el-color-primary: var(--brand-color);
--el-color-primary-light-3: var(--brand-color-hover);
--el-color-primary-light-5: var(--brand-color-active);
--el-color-primary-light-7: var(--brand-color-disabled);
--el-color-primary-light-8: var(--brand-color-focus);
--el-color-primary-light-9: var(--brand-color-light);
--el-color-primary-dark-2: var(--brand-color-hover);
--el-color-success: var(--success-color);
--el-color-success-light-3: var(--success-color-hover);
--el-color-success-light-5: var(--success-color-active);
--el-color-success-light-7: var(--success-color-disabled);
--el-color-success-light-8: var(--success-color-focus);
--el-color-success-light-9: var(--success-color-light);
--el-color-success-dark-2: var(--success-color-hover);
--el-color-warning: var(--warning-color);
--el-color-warning-light-3: var(--warning-color-hover);
--el-color-warning-light-5: var(--warning-color-active);
--el-color-warning-light-7: var(--warning-color-disabled);
--el-color-warning-light-8: var(--warning-color-focus);
--el-color-warning-light-9: var(--warning-color-light);
--el-color-warning-dark-2: var(--warning-color-hover);
--el-color-danger: var(--error-color);
--el-color-danger-light-3: var(--error-color-hover);
--el-color-danger-light-5: var(--error-color-active);
--el-color-danger-light-7: var(--error-color-disabled);
--el-color-danger-light-8: var(--error-color-focus);
--el-color-danger-light-9: var(--error-color-light);
--el-color-danger-dark-2: var(--error-color-hover);
--el-color-error: var(--error-color);
--el-color-error-light-3: var(--error-color-hover);
--el-color-error-light-5: var(--error-color-active);
--el-color-error-light-7: var(--error-color-disabled);
--el-color-error-light-8: var(--error-color-focus);
--el-color-error-light-9: var(--error-color-light);
--el-color-error-dark-2: var(--error-color-hover);
--el-color-info: var(--text-color-secondary);
--el-color-info-light-3: var(--text-color-secondary);
--el-color-info-light-5: var(--text-color-placeholder);
--el-color-info-light-7: var(--text-color-disabled);
--el-color-info-light-8: var(--text-color-disabled);
--el-color-info-light-9: var(--text-color-disabled);
--el-color-info-dark-2: var(--text-color-secondary);
// --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.36), 0px 8px 20px rgba(0, 0, 0, 0.72);
// --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, 0.72);
// --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, 0.72);
// --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, 0.72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;
--el-bg-color-page: var(--bg-color-page);
--el-bg-color: var(--bg-color-container);
--el-bg-color-overlay: var(--bg-color-secondarycontainer);
--el-text-color-primary: var(--text-color-primary);
--el-text-color-regular: var(--text-color-primary);
--el-text-color-secondary: var(--text-color-secondary);
--el-text-color-placeholder: var(--text-color-placeholder);
--el-text-color-disabled: var(--text-color-disabled);
--el-border-color-darker: var(--component-border);
--el-border-color-dark: var(--component-border);
--el-border-color: var(--component-stroke);
--el-border-color-light: var(--component-stroke);
--el-border-color-lighter: var(--component-stroke);
--el-border-color-extra-light: var(--component-stroke);
--el-fill-color-darker: var(--bg-color-container-active);
--el-fill-color-dark: var(--bg-color-secondarycontainer);
--el-fill-color: var(--bg-color-component);
--el-fill-color-light: var(--bg-color-component-hover);
--el-fill-color-lighter: var(--bg-color-container-hover);
--el-fill-color-extra-light: var(--bg-color-page);
--el-fill-color-blank: transparent;
--el-mask-color: rgba(0, 0, 0, 0.8);
--el-mask-color-extra-light: rgba(0, 0, 0, 0.3);
--el-menu-base-level-padding: 8px;
--el-menu-level-padding: 25px;
--el-menu-level: 0;
--el-menu-item-height: 40px;
--el-menu-hover-bg-color: var(--brand-color-hover);
--el-text-color-secondary: var(--text-color-anti);
--el-menu-text-color: var(--text-color-secondary);
--el-menu-active-color: var(--text-color-anti);
--el-menu-active-background: var(--brand-color);
}
html.dark .el-button {
--el-button-disabled-text-color: rgba(255, 255, 255, 0.5);
}
html.dark .el-card {
--el-card-bg-color: var(--el-bg-color-overlay);
}
html.dark .el-empty {
--el-empty-fill-color-0: var(--el-color-black);
--el-empty-fill-color-1: #4b4b52;
--el-empty-fill-color-2: #36383d;
--el-empty-fill-color-3: #1e1e20;
--el-empty-fill-color-4: #262629;
--el-empty-fill-color-5: #202124;
--el-empty-fill-color-6: #212224;
--el-empty-fill-color-7: #1b1c1f;
--el-empty-fill-color-8: #1c1d1f;
--el-empty-fill-color-9: #18181a;
}

@ -1,203 +0,0 @@
/** purple 星轨紫 */
html.purple {
/* 主题色&功能色 开始 */
//
--brand-color: #6155F5;
// hover
--brand-color-hover: #8470F8;
// active
--brand-color-active: #4338CA;
// disabled
--brand-color-disabled: #C7BDFC;
// focus
--brand-color-focus: #E3DEFC;
// light使
--brand-color-light: #F3F0FE;
//
--error-color: #FF4040;
// hover
--error-color-hover: #FF7474;
// active
--error-color-active: #DB3131;
// disabled
--error-color-disabled: #FFB9B0;
// focus
--error-color-focus: #FFD8D2;
// light使
--error-color-light: #FFF0ED;
//
--warning-color: #FF9000;
// hover
--warning-color-hover: #FFA938;
// active
--warning-color-active: #EA8A0E;
// disabled
--warning-color-disabled: #FFC882;
// focus
--warning-color-focus: #FFE2C2;
// light使
--warning-color-light: #FFF4E9;
//
--success-color: #1FBB79;
// hover
--success-color-hover: #43C78F;
// active
--success-color-active: #2BA471;
// disabled
--success-color-disabled: #92DAB2;
// focus
--success-color-focus: #C6F3D7;
// light使
--success-color-light: #E3F9E9;
/* 主题色&功能色 结束 */
/* 文字&图标色彩 开始 */
//
--text-color-primary: #191919;
//
--text-color-secondary: #666666;
//
--text-color-placeholder: #999999;
// disabled
--text-color-disabled: #BDBDBD;
//
--text-color-anti: #FFFFFF;
//
--text-color-anti-opacity: rgba(255, 255, 255, 0.24);
//
--text-color-brand: var(--brand-color);
//
--text-color-link: var(--brand-color);
/* 文字&图标色彩 结束 */
/* 中性色彩交互token 开始 */
// hover hover
--bg-color-container-hover: #F5F7FA;
// click click
--bg-color-container-active: #EBEEF5;
// hover
--bg-color-secondarycontainer-hover: #F4F6FA;
// click
--bg-color-secondarycontainer-active: #E1E5ED;
// hover hover
--bg-color-component-hover: #E1E5ED;
//active active
--bg-color-component-active: #B8BECA;
// disabled disabled
--bg-color-component-disabled: #F4F6FA;
/* 中性色彩交互token 结束 */
/* 中性色彩 开始 */
//
--bg-color-page: #F4F6FA;
//
--bg-color-container:#FFFFFF;
//
--bg-color-secondarycontainer: #F5F7FA;
//
--bg-color-component: #EBEEF5;
// 线
--component-stroke: #EBEEF5;
//
--component-border: #E1E5ED;
/* 中性色彩 结束 */
// Element Plus 使
--el-color-primary: var(--brand-color);
--el-color-primary-light-3: var(--brand-color-hover);
--el-color-primary-light-5: var(--brand-color-active);
--el-color-primary-light-7: var(--brand-color-disabled);
--el-color-primary-light-8: var(--brand-color-focus);
--el-color-primary-light-9: var(--brand-color-light);
--el-color-primary-dark-2: var(--brand-color-hover);
--el-color-success: var(--success-color);
--el-color-success-light-3: var(--success-color-hover);
--el-color-success-light-5: var(--success-color-active);
--el-color-success-light-7: var(--success-color-disabled);
--el-color-success-light-8: var(--success-color-focus);
--el-color-success-light-9: var(--success-color-light);
--el-color-success-dark-2: var(--success-color-hover);
--el-color-warning: var(--warning-color);
--el-color-warning-light-3: var(--warning-color-hover);
--el-color-warning-light-5: var(--warning-color-active);
--el-color-warning-light-7: var(--warning-color-disabled);
--el-color-warning-light-8: var(--warning-color-focus);
--el-color-warning-light-9: var(--warning-color-light);
--el-color-warning-dark-2: var(--warning-color-hover);
--el-color-danger: var(--error-color);
--el-color-danger-light-3: var(--error-color-hover);
--el-color-danger-light-5: var(--error-color-active);
--el-color-danger-light-7: var(--error-color-disabled);
--el-color-danger-light-8: var(--error-color-focus);
--el-color-danger-light-9: var(--error-color-light);
--el-color-danger-dark-2: var(--error-color-hover);
--el-color-error: var(--error-color);
--el-color-error-light-3: var(--error-color-hover);
--el-color-error-light-5: var(--error-color-active);
--el-color-error-light-7: var(--error-color-disabled);
--el-color-error-light-8: var(--error-color-focus);
--el-color-error-light-9: var(--error-color-light);
--el-color-error-dark-2: var(--error-color-hover);
--el-color-info: var(--text-color-secondary);
--el-color-info-light-3: var(--text-color-secondary);
--el-color-info-light-5: var(--text-color-placeholder);
--el-color-info-light-7: var(--text-color-disabled);
--el-color-info-light-8: var(--text-color-disabled);
--el-color-info-light-9: var(--text-color-disabled);
--el-color-info-dark-2: var(--text-color-secondary);
// --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.36), 0px 8px 20px rgba(0, 0, 0, 0.72);
// --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, 0.72);
// --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, 0.72);
// --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, 0.72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;
--el-bg-color-page: var(--bg-color-page);
--el-bg-color: var(--bg-color-container);
--el-bg-color-overlay: var(--bg-color-secondarycontainer);
--el-text-color-primary: var(--text-color-primary);
--el-text-color-regular: var(--text-color-primary);
--el-text-color-secondary: var(--text-color-secondary);
--el-text-color-placeholder: var(--text-color-placeholder);
--el-text-color-disabled: var(--text-color-disabled);
--el-border-color-darker: var(--component-border);
--el-border-color-dark: var(--component-border);
--el-border-color: var(--component-stroke);
--el-border-color-light: var(--component-stroke);
--el-border-color-lighter: var(--component-stroke);
--el-border-color-extra-light: var(--component-stroke);
--el-fill-color-darker: var(--bg-color-container-active);
--el-fill-color-dark: var(--bg-color-secondarycontainer);
--el-fill-color: var(--bg-color-component);
--el-fill-color-light: var(--bg-color-component-hover);
--el-fill-color-lighter: var(--bg-color-container-hover);
--el-fill-color-extra-light: var(--bg-color-page);
--el-fill-color-blank: transparent;
// --el-mask-color: rgba(0, 0, 0, 0.8);
// --el-mask-color-extra-light: rgba(0, 0, 0, 0.3);
--el-menu-base-level-padding:8px;
--el-menu-level-padding:25px;
--el-menu-level:0;
--el-menu-item-height:40px;
--el-menu-hover-bg-color:var(--brand-color-light);
--el-text-color-secondary:var(--brand-color);
--el-menu-text-color:var(--text-color-secondary);
--el-menu-active-color:var(--brand-color);
--el-menu-active-background:var(--brand-color-light);
}

@ -1,202 +0,0 @@
/** 流金粉 red */
html.red {
/* 主题色&功能色 开始 */
//
--brand-color: #DE6262;
// hover
--brand-color-hover: #EA8585;
// active
--brand-color-active: #B73E3E;
// disabled
--brand-color-disabled: rgba(222,98,98,0.4);
// focus
--brand-color-focus: rgba(222,98,98,0.2);
// light使
--brand-color-light: rgba(222,98,98,0.2);
//
--error-color: #FF4040;
// hover
--error-color-hover: #FF7474;
// active
--error-color-active: #DB3131;
// disabled
--error-color-disabled: #FFB9B0;
// focus
--error-color-focus: #FFD8D2;
// light使
--error-color-light: #FFF0ED;
//
--warning-color: #FF9000;
// hover
--warning-color-hover: #FFA938;
// active
--warning-color-active: #EA8A0E;
// disabled
--warning-color-disabled: #FFC882;
// focus
--warning-color-focus: #FFE2C2;
// light使
--warning-color-light: #FFF4E9;
//
--success-color: #1FBB79;
// hover
--success-color-hover: #43C78F;
// active
--success-color-active: #2BA471;
// disabled
--success-color-disabled: #92DAB2;
// focus
--success-color-focus: #C6F3D7;
// light使
--success-color-light: #E3F9E9;
/* 主题色&功能色 结束 */
/* 文字&图标色彩 开始 */
//
--text-color-primary: #191919;
//
--text-color-secondary: #666666;
//
--text-color-placeholder: #999999;
// disabled
--text-color-disabled: #BDBDBD;
//
--text-color-anti: #FFFFFF;
//
--text-color-anti-opacity: rgba(255, 255, 255, 0.24);
//
--text-color-brand: var(--brand-color);
//
--text-color-link: var(--brand-color);
/* 文字&图标色彩 结束 */
/* 中性色彩交互token 开始 */
// hover hover
--bg-color-container-hover: #F5F7FA;
// click click
--bg-color-container-active: #EBEEF5;
// hover
--bg-color-secondarycontainer-hover: #F4F6FA;
// click
--bg-color-secondarycontainer-active: #E1E5ED;
// hover hover
--bg-color-component-hover: #E1E5ED;
//active active
--bg-color-component-active: #B8BECA;
// disabled disabled
--bg-color-component-disabled: #F4F6FA;
/* 中性色彩交互token 结束 */
/* 中性色彩 开始 */
//
--bg-color-page: #F4F6FA;
//
--bg-color-container:#FFFFFF;
//
--bg-color-secondarycontainer: #F5F7FA;
//
--bg-color-component: #EBEEF5;
// 线
--component-stroke: #EBEEF5;
//
--component-border: #E1E5ED;
/* 中性色彩 结束 */
// Element Plus 使
--el-color-primary: var(--brand-color);
--el-color-primary-light-3: var(--brand-color-hover);
--el-color-primary-light-5: var(--brand-color-active);
--el-color-primary-light-7: var(--brand-color-disabled);
--el-color-primary-light-8: var(--brand-color-focus);
--el-color-primary-light-9: var(--brand-color-light);
--el-color-primary-dark-2: var(--brand-color-hover);
--el-color-success: var(--success-color);
--el-color-success-light-3: var(--success-color-hover);
--el-color-success-light-5: var(--success-color-active);
--el-color-success-light-7: var(--success-color-disabled);
--el-color-success-light-8: var(--success-color-focus);
--el-color-success-light-9: var(--success-color-light);
--el-color-success-dark-2: var(--success-color-hover);
--el-color-warning: var(--warning-color);
--el-color-warning-light-3: var(--warning-color-hover);
--el-color-warning-light-5: var(--warning-color-active);
--el-color-warning-light-7: var(--warning-color-disabled);
--el-color-warning-light-8: var(--warning-color-focus);
--el-color-warning-light-9: var(--warning-color-light);
--el-color-warning-dark-2: var(--warning-color-hover);
--el-color-danger: var(--error-color);
--el-color-danger-light-3: var(--error-color-hover);
--el-color-danger-light-5: var(--error-color-active);
--el-color-danger-light-7: var(--error-color-disabled);
--el-color-danger-light-8: var(--error-color-focus);
--el-color-danger-light-9: var(--error-color-light);
--el-color-danger-dark-2: var(--error-color-hover);
--el-color-error: var(--error-color);
--el-color-error-light-3: var(--error-color-hover);
--el-color-error-light-5: var(--error-color-active);
--el-color-error-light-7: var(--error-color-disabled);
--el-color-error-light-8: var(--error-color-focus);
--el-color-error-light-9: var(--error-color-light);
--el-color-error-dark-2: var(--error-color-hover);
--el-color-info: var(--text-color-secondary);
--el-color-info-light-3: var(--text-color-secondary);
--el-color-info-light-5: var(--text-color-placeholder);
--el-color-info-light-7: var(--text-color-disabled);
--el-color-info-light-8: var(--text-color-disabled);
--el-color-info-light-9: var(--text-color-disabled);
--el-color-info-dark-2: var(--text-color-secondary);
// --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.36), 0px 8px 20px rgba(0, 0, 0, 0.72);
// --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, 0.72);
// --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, 0.72);
// --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, 0.72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;
--el-bg-color-page: var(--bg-color-page);
--el-bg-color: var(--bg-color-container);
--el-bg-color-overlay: var(--bg-color-secondarycontainer);
--el-text-color-primary: var(--text-color-primary);
--el-text-color-regular: var(--text-color-primary);
--el-text-color-secondary: var(--text-color-secondary);
--el-text-color-placeholder: var(--text-color-placeholder);
--el-text-color-disabled: var(--text-color-disabled);
--el-border-color-darker: var(--component-border);
--el-border-color-dark: var(--component-border);
--el-border-color: var(--component-stroke);
--el-border-color-light: var(--component-stroke);
--el-border-color-lighter: var(--component-stroke);
--el-border-color-extra-light: var(--component-stroke);
--el-fill-color-darker: var(--bg-color-container-active);
--el-fill-color-dark: var(--bg-color-secondarycontainer);
--el-fill-color: var(--bg-color-component);
--el-fill-color-light: var(--bg-color-component-hover);
--el-fill-color-lighter: var(--bg-color-container-hover);
--el-fill-color-extra-light: var(--bg-color-page);
--el-fill-color-blank: transparent;
// --el-mask-color: rgba(0, 0, 0, 0.8);
// --el-mask-color-extra-light: rgba(0, 0, 0, 0.3);
--el-menu-base-level-padding:8px;
--el-menu-level-padding:25px;
--el-menu-level:0;
--el-menu-item-height:40px;
--el-menu-hover-bg-color:var(--brand-color-light);
--el-text-color-secondary:var(--brand-color);
--el-menu-text-color:var(--text-color-secondary);
--el-menu-active-color:var(--brand-color);
--el-menu-active-background:var(--brand-color-light);
}

@ -11,13 +11,8 @@
<div class="header-middle"> <div class="header-middle">
<!-- 顶部水平菜单管理端 / 医院端共用按当前顶层路由动态生成 --> <!-- 顶部水平菜单管理端 / 医院端共用按当前顶层路由动态生成 -->
<el-menu class="header-menu" mode="horizontal" :default-active="$route.path" :ellipsis="false" router> <el-menu class="header-menu" mode="horizontal" :default-active="$route.path" :ellipsis="false" router>
<el-menu-item v-for="item in sideRoutes" :key="item.path" :index="item.path" <el-menu-item v-for="item in sideRoutes" :key="item.path" :index="item.path">
@mouseenter="hoveredPath = item.path" @mouseleave="hoveredPath = ''"> <SvgIcon :name="item.iconName" class="nav-icon" />
<!-- 管理端 / 医院端统一使用 SVG 图标正常/激活两种状态 -->
<img v-if="item.iconUrl" :src="isMenuHoveredOrActive(item.path)
? item.iconUrlActive || item.iconUrl
: item.iconUrl
" :alt="item.title" class="nav-icon" />
<template #title> <template #title>
<span>{{ item.title }}</span> <span>{{ item.title }}</span>
</template> </template>
@ -72,9 +67,9 @@
<img src="@/assets/image/close-btn.svg" alt="" class="close-btn" @click="themeDialogVisible = false"> <img src="@/assets/image/close-btn.svg" alt="" class="close-btn" @click="themeDialogVisible = false">
</div> </div>
<div class="theme-grid"> <div class="theme-grid">
<div v-for="t in presetThemes" :key="t.value" class="theme-card" <div v-for="t in presetThemes" :key="t.value" class="theme-card"
:class="{ active: themeStore.themeValue === t.value }" :style="{ :class="{ active: themeStore.themeValue === t.value }" :style="{
'--border-color': t.borderColor '--brand-color': t.borderColor
}" @click="handlePresetTheme(t.value)"> }" @click="handlePresetTheme(t.value)">
<div class="theme-preview" :style="{ background: t.preview, boxShadow: t.boxShadow }"></div> <div class="theme-preview" :style="{ background: t.preview, boxShadow: t.boxShadow }"></div>
<div class="theme-name">{{ t.name }}</div> <div class="theme-name">{{ t.name }}</div>
@ -117,6 +112,7 @@ import { ArrowDown } from "@element-plus/icons-vue";
import SvgIcon from "@/components/SvgIcon/index.vue"; import SvgIcon from "@/components/SvgIcon/index.vue";
import { useUserStore } from "@/stores/api/user"; import { useUserStore } from "@/stores/api/user";
import { useThemeStore } from "@/stores/theme"; import { useThemeStore } from "@/stores/theme";
import { PRESET_THEMES } from "@/stores/theme/buildThemeVars.js";
import { useOrderDialogStore } from "@/stores/orderDialog"; import { useOrderDialogStore } from "@/stores/orderDialog";
import { useSignInDialogStore } from "@/stores/signInDialog"; import { useSignInDialogStore } from "@/stores/signInDialog";
import { useRewardResultStore } from "@/stores/rewardResult"; import { useRewardResultStore } from "@/stores/rewardResult";
@ -129,28 +125,6 @@ import AssetsDialog from "@/views/hospital/AssetsDialog.vue";
import { getPoints, getPointsDetails } from "@/service/modular/hospital"; import { getPoints, getPointsDetails } from "@/service/modular/hospital";
import dayjs from "dayjs"; import dayjs from "dayjs";
// import SvgIcon fill
//
import fuwuGd from "@/assets/image/router/fuwu-gd.svg";
import fuwuGdActive from "@/assets/image/router/fuwu-gd-active.svg";
import fuwuBg from "@/assets/image/router/fuwu-bg.svg";
import fuwuBgActive from "@/assets/image/router/fuwu-bg-active.svg";
import yiyuanXx from "@/assets/image/router/yiyuan-xx.svg";
import yiyuanXxActive from "@/assets/image/router/yiyuan-xx-active.svg";
import kehuFw from "@/assets/image/router/kehu-fw.svg";
import kehuFwActive from "@/assets/image/router/kehu-fw-active.svg";
import kehuJljf from "@/assets/image/router/kehu-jljf.svg";
import kehuJljfActive from "@/assets/image/router/kehu-jljf-active.svg";
import zhanghaoGl from "@/assets/image/router/zhanghao-gl.svg";
import zhanghaoGlActive from "@/assets/image/router/zhanghao-gl-active.svg";
//
import yyGzt from "@/assets/image/router/yy-gzt.svg";
import yyGztActive from "@/assets/image/router/yy-gzt-active.svg";
import yyGd from "@/assets/image/router/yy-gd.svg";
import yyGdActive from "@/assets/image/router/yy-gd-active.svg";
import yyJf from "@/assets/image/router/yy-jf.svg";
import yyJfActive from "@/assets/image/router/yy-jf-active.svg";
// () // ()
import avatarMale from "@/assets/image/avatar-male.svg"; import avatarMale from "@/assets/image/avatar-male.svg";
import avatarFemale from "@/assets/image/avatar-female.svg"; import avatarFemale from "@/assets/image/avatar-female.svg";
@ -252,89 +226,43 @@ const openAssetsDialogWithFreshData = async () => {
} }
}; };
// scss // / / / / buildThemeVars.PRESET_THEMES
const presetThemes = [ // preview brandColor + gradientTo to bottom
{ const presetThemes = computed(() =>
borderColor: "#3289FB", Object.entries(PRESET_THEMES).map(
boxShadow: "0 4px 12px 0 rgba(50, 137, 251, 0.5)", ([value, { borderColor, gradientTo, boxShadow, name, desc }]) => ({
value: "blue", value,
name: "穹宇蓝", borderColor,
desc: "深邃星空\n科技感十足", preview: `linear-gradient(to bottom, ${borderColor} 0%, ${gradientTo} 100%)`,
preview: "linear-gradient(to bottom, #3289FB 0%, #77B2FF 100%)", boxShadow,
}, name,
{ desc,
borderColor: "#6155F5", }),
boxShadow: "0 4px 12px 0 rgba(97, 85, 245, 0.5)", ),
value: "purple", );
name: "星轨紫",
desc: "神秘优雅\n梦幻氛围",
preview: "linear-gradient(to bottom, #6155F5 0%, #9B93FF 100%)",
},
{
borderColor: "#DE6262",
boxShadow: "0 4px 12px 0 rgba(222, 98, 98, 0.5)",
value: "red",
name: "流金粉",
desc: "晨雾染金\n自带光芒",
preview: "linear-gradient(to bottom, #DE6262 0%, #FF988B 100%)",
},
];
// //
const handlePresetTheme = (value) => { const handlePresetTheme = (value) => {
themeStore.setTheme(value); themeStore.setTheme(value);
}; };
// route meta.icon -> { normal, active }
// SVG
const ICON_MAP = {
"admin-router-fuwu-gd": { normal: fuwuGd, active: fuwuGdActive },
"admin-router-fuwu-bg": { normal: fuwuBg, active: fuwuBgActive },
"admin-router-yiyuan-xx": { normal: yiyuanXx, active: yiyuanXxActive },
"admin-router-kehu-fw": { normal: kehuFw, active: kehuFwActive },
"admin-router-kehu-jljf": { normal: kehuJljf, active: kehuJljfActive },
"admin-router-zhanghao-gl": { normal: zhanghaoGl, active: zhanghaoGlActive },
};
// SVG
const HOSPITAL_SVG_ICON_MAP = {
"hospital-router-yy-gzt": { normal: yyGzt, active: yyGztActive },
"hospital-router-yy-gd": { normal: yyGd, active: yyGdActive },
"hospital-router-yy-jf": { normal: yyJf, active: yyJfActive },
};
// hover path
const hoveredPath = ref("");
//
const isActiveMenu = (path) => {
if (!path || !route.path) return false;
return route.path === path;
};
// hover active
const isMenuHoveredOrActive = (path) => {
return isActiveMenu(path) || hoveredPath.value === path;
};
// /admin /hospital // /admin /hospital
// name 使 meta.icon( admin-/hospital- SvgIcon name)
const sideRoutes = computed(() => { const sideRoutes = computed(() => {
const groupPath = isHospitalMode.value ? "/hospital" : "/admin"; const groupPath = isHospitalMode.value ? "/hospital" : "/admin";
const groupRoute = route.matched.find((r) => r.path === groupPath); const groupRoute = route.matched.find((r) => r.path === groupPath);
if (!groupRoute || !groupRoute.children) return []; if (!groupRoute || !groupRoute.children) return [];
return groupRoute.children return groupRoute.children
.filter((c) => c.meta?.title && !c.meta?.hidden && !c.path.includes(":")) .filter((c) => c.meta?.title && !c.meta?.hidden && !c.path.includes(":"))
.map((c) => { .map((c) => ({
// / SVGnormal + active path: `${groupPath}/${c.path}`,
const iconMap = isHospitalMode.value ? HOSPITAL_SVG_ICON_MAP : ICON_MAP; title: c.meta.title,
const icon = iconMap[c.meta?.icon]; iconName: (c.meta?.icon || "").replace(/^(admin|hospital)-/, ""),
return { }));
path: `${groupPath}/${c.path}`,
title: c.meta.title,
iconUrl: icon?.normal || "",
iconUrlActive: icon?.active || "",
};
});
}); });
const currentTitle = computed(() => { const currentTitle = computed(() => {
@ -359,7 +287,7 @@ const handleCommand = async (cmd) => {
if (cmd === "logout") { if (cmd === "logout") {
try { try {
await ElMessageBox.confirm("确定要退出登录吗?", "提示", { await ElMessageBox.confirm("确定要退出登录吗?", "提示", {
confirmButtonText: "退出", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}); });
@ -388,7 +316,6 @@ const handleCommand = async (cmd) => {
.admin-header { .admin-header {
flex-shrink: 0; flex-shrink: 0;
height: 96px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@ -397,6 +324,7 @@ const handleCommand = async (cmd) => {
border-radius: 16px 16px 16px 16px; border-radius: 16px 16px 16px 16px;
border: 1px solid rgba(0, 0, 0, 0.1); border: 1px solid rgba(0, 0, 0, 0.1);
background: linear-gradient(to right, #f9faff 0, #f9faff 75%, #a6cffe 100%); background: linear-gradient(to right, #f9faff 0, #f9faff 75%, #a6cffe 100%);
background: linear-gradient(to right, #f9faff 0, #f9faff 75%, var(--el-color-primary-light-8) 100%);
.logo-bar { .logo-bar {
display: flex; display: flex;
@ -409,7 +337,7 @@ const handleCommand = async (cmd) => {
height: 100%; height: 100%;
.logo-text { .logo-text {
background: linear-gradient(to right, #3fc5fd, #3b90fa); background: var(--linear-right);
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
font-size: 22px; font-size: 22px;
@ -439,8 +367,9 @@ const handleCommand = async (cmd) => {
padding: 0 16px; padding: 0 16px;
border-radius: 18px; border-radius: 18px;
font-weight: 500; font-weight: 500;
background: linear-gradient(90deg, #3289FB 0%, #00B2FF 100%); // background: linear-gradient(90deg, #3289FB 0%, #00B2FF 100%);
border-radius: 28px 28px 28px 28px; background: var(--linear-right);
border-radius: 28px 28px 28px 28px !important;
border: 1px solid rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.15);
width: 155px; width: 155px;
height: 43px; height: 43px;
@ -498,7 +427,7 @@ const handleCommand = async (cmd) => {
&:hover { &:hover {
// background-color: rgba(50, 137, 251, 0.08) !important; // background-color: rgba(50, 137, 251, 0.08) !important;
color: #3289fb !important; color: var(--brand-color) !important;
} }
} }
@ -506,7 +435,7 @@ const handleCommand = async (cmd) => {
:deep(.el-menu-item.is-active) { :deep(.el-menu-item.is-active) {
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 16px;
color: #3289fb !important; color: var(--brand-color) !important;
background-color: transparent !important; background-color: transparent !important;
border-bottom: none !important; border-bottom: none !important;
@ -531,6 +460,7 @@ const handleCommand = async (cmd) => {
vertical-align: middle; vertical-align: middle;
object-fit: contain; object-fit: contain;
flex-shrink: 0; flex-shrink: 0;
color: currentColor;
} }
// Element Plus // Element Plus
@ -611,12 +541,12 @@ const handleCommand = async (cmd) => {
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
&:hover { &:hover {
border-color: var(--border-color); border-color: var(--brand-color);
} }
&.active { &.active {
border-color: var(--border-color); border-color: var(--brand-color);
} }
} }

@ -30,9 +30,4 @@ app.use(router);
app.use(ElementPlus); app.use(ElementPlus);
app.mount("#app"); app.mount("#app");
// 初始化主题 // 主题在 stores/theme setup 内已自动初始化,无须在 main.js 手动调用
import { useThemeStore } from "./stores/theme";
const themeStore = useThemeStore();
// 应用保存的主题到 html
themeStore.applyTheme(themeStore.themeValue);

@ -1,147 +0,0 @@
const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
const hueToRgb = (p, q, t) => {
let temp = t;
if (temp < 0) temp += 1;
if (temp > 1) temp -= 1;
if (temp < 1 / 6) return p + (q - p) * 6 * temp;
if (temp < 1 / 2) return q;
if (temp < 2 / 3) return p + (q - p) * (2 / 3 - temp) * 6;
return p;
};
const hslToRgb = (h, s, l) => {
const hue = (((h % 360) + 360) % 360) / 360;
const saturation = clamp(s, 0, 100) / 100;
const lightness = clamp(l, 0, 100) / 100;
if (saturation === 0) {
const gray = Math.round(lightness * 255);
return { r: gray, g: gray, b: gray };
}
const q =
lightness < 0.5
? lightness * (1 + saturation)
: lightness + saturation - lightness * saturation;
const p = 2 * lightness - q;
return {
r: Math.round(hueToRgb(p, q, hue + 1 / 3) * 255),
g: Math.round(hueToRgb(p, q, hue) * 255),
b: Math.round(hueToRgb(p, q, hue - 1 / 3) * 255),
};
};
const parseColor = (color) => {
const value = (color || "").trim();
if (value.startsWith("#")) {
const normalized = value.replace("#", "");
if (normalized.length === 3 || normalized.length === 4) {
const full = normalized
.split("")
.map((item) => item + item)
.join("");
const hasAlpha = normalized.length === 4;
return {
r: Number.parseInt(full.slice(0, 2), 16),
g: Number.parseInt(full.slice(2, 4), 16),
b: Number.parseInt(full.slice(4, 6), 16),
a: hasAlpha ? Number.parseInt(full.slice(6, 8), 16) / 255 : 1,
};
}
if (normalized.length === 6 || normalized.length === 8) {
const hasAlpha = normalized.length === 8;
return {
r: Number.parseInt(normalized.slice(0, 2), 16),
g: Number.parseInt(normalized.slice(2, 4), 16),
b: Number.parseInt(normalized.slice(4, 6), 16),
a: hasAlpha ? Number.parseInt(normalized.slice(6, 8), 16) / 255 : 1,
};
}
}
const rgbaMatch = value.match(/rgba?\(([^)]+)\)/i);
if (rgbaMatch) {
const [r = 0, g = 0, b = 0, a = 1] = rgbaMatch[1]
.split(",")
.map((item) => item.trim());
return {
r: clamp(Number.parseFloat(r), 0, 255),
g: clamp(Number.parseFloat(g), 0, 255),
b: clamp(Number.parseFloat(b), 0, 255),
a: clamp(Number.parseFloat(a), 0, 1),
};
}
const hslaMatch = value.match(/hsla?\(([^)]+)\)/i);
if (hslaMatch) {
const [h = 0, s = 0, l = 0, a = 1] = hslaMatch[1]
.split(",")
.map((item) => item.trim().replace("%", ""));
const rgb = hslToRgb(
Number.parseFloat(h),
Number.parseFloat(s),
Number.parseFloat(l),
);
return {
...rgb,
a: clamp(Number.parseFloat(a), 0, 1),
};
}
return { r: 23, g: 100, b: 255, a: 1 };
};
const colorToCss = ({ r, g, b, a = 1 }) => {
const alpha = clamp(a, 0, 1);
if (alpha < 1) {
return `rgba(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}, ${Number(alpha.toFixed(3))})`;
}
const toHex = (value) =>
clamp(Math.round(value), 0, 255).toString(16).padStart(2, "0");
return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();
};
const mixColor = (color, target, amount) => {
const sourceRgb = parseColor(color);
const targetRgb = parseColor(target);
return colorToCss({
r: sourceRgb.r + (targetRgb.r - sourceRgb.r) * amount,
g: sourceRgb.g + (targetRgb.g - sourceRgb.g) * amount,
b: sourceRgb.b + (targetRgb.b - sourceRgb.b) * amount,
a: sourceRgb.a,
});
};
const colorToRgba = (color, alpha) => {
const { r, g, b, a } = parseColor(color);
const nextAlpha = clamp(a * alpha, 0, 1);
return `rgba(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}, ${Number(nextAlpha.toFixed(3))})`;
};
export const buildCustomThemeVars = (brandColor) => ({
"--brand-color": brandColor,
"--brand-color-hover": mixColor(brandColor, "#FFFFFF", 0.12),
"--brand-color-active": mixColor(brandColor, "#000000", 0.14),
"--brand-color-disabled": colorToRgba(brandColor, 0.4),
"--brand-color-focus": colorToRgba(brandColor, 0.18),
"--brand-color-light": colorToRgba(brandColor, 0.12),
"--text-color-brand": brandColor,
"--text-color-link": brandColor,
"--el-color-primary": brandColor,
"--el-color-primary-light-3": mixColor(brandColor, "#FFFFFF", 0.12),
"--el-color-primary-light-5": mixColor(brandColor, "#FFFFFF", 0.28),
"--el-color-primary-light-7": mixColor(brandColor, "#FFFFFF", 0.48),
"--el-color-primary-light-8": mixColor(brandColor, "#FFFFFF", 0.64),
"--el-color-primary-light-9": mixColor(brandColor, "#FFFFFF", 0.82),
"--el-color-primary-dark-2": mixColor(brandColor, "#000000", 0.14),
"--el-menu-hover-bg-color": colorToRgba(brandColor, 0.12),
"--el-menu-active-color": brandColor,
"--el-menu-active-background": colorToRgba(brandColor, 0.12),
"--el-text-color-secondary": brandColor,
});

@ -0,0 +1,102 @@
const clamp = (v, min, max) => Math.min(max, Math.max(min, v));
const toHex2 = (n) =>
clamp(Math.round(n), 0, 255).toString(16).padStart(2, "0");
const parseHex = (hex) => {
const v = (hex || "").trim().replace("#", "");
if (v.length === 3) {
const [r, g, b] = v.split("").map((c) => c + c);
return { r: parseInt(r, 16), g: parseInt(g, 16), b: parseInt(b, 16) };
}
return {
r: parseInt(v.slice(0, 2), 16),
g: parseInt(v.slice(2, 4), 16),
b: parseInt(v.slice(4, 6), 16),
};
};
const mix = (hex, target, amount) => {
const s = parseHex(hex);
const t = parseHex(target);
return (
"#" +
toHex2(s.r + (t.r - s.r) * amount) +
toHex2(s.g + (t.g - s.g) * amount) +
toHex2(s.b + (t.b - s.b) * amount)
).toUpperCase();
};
const rgbaOf = (hex, a) => {
const { r, g, b } = parseHex(hex);
return `rgba(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}, ${a})`;
};
// 单一数据源:每个预设主题的 brandColor + 渐变端点 + 弹窗 UI 字段
export const PRESET_THEMES = {
blue: {
borderColor: "#3289FB",
gradientTo: "#77B2FF",
boxShadow: "0 4px 12px 0 rgba(50, 137, 251, 0.5)",
name: "穹宇蓝",
desc: "深邃星空\n科技感十足",
},
purple: {
borderColor: "#6155F5",
gradientTo: "#9B93FF",
boxShadow: "0 4px 12px 0 rgba(97, 85, 245, 0.5)",
name: "星轨紫",
desc: "神秘优雅\n梦幻氛围",
},
red: {
borderColor: "#DE6262",
gradientTo: "#FF988B",
boxShadow: "0 4px 12px 0 rgba(222, 98, 98, 0.5)",
name: "流金粉",
desc: "晨雾染金\n自带光芒",
},
};
export const DEFAULT_THEME = "blue";
export const normalizeThemeValue = (v) =>
PRESET_THEMES[v] ? v : DEFAULT_THEME;
export const buildLinearRight = (themeValue) => {
const t = PRESET_THEMES[normalizeThemeValue(themeValue)];
return `linear-gradient(to right, ${t.borderColor} 0%, ${t.gradientTo} 100%)`;
};
export const buildPreview = (themeValue) => {
const t = PRESET_THEMES[normalizeThemeValue(themeValue)];
return `linear-gradient(to bottom, ${t.borderColor} 0%, ${t.gradientTo} 100%)`;
};
export const buildThemeVars = (themeValue) => {
const t = PRESET_THEMES[normalizeThemeValue(themeValue)];
const c = t.borderColor;
return {
"--brand-color": c,
"--brand-color-bg": rgbaOf(c, 0.21),
"--brand-color-hover": mix(c, "#FFFFFF", 0.12),
"--brand-color-active": mix(c, "#000000", 0.14),
"--brand-color-disabled": rgbaOf(c, 0.4),
"--brand-color-focus": rgbaOf(c, 0.18),
"--brand-color-light": rgbaOf(c, 0.12),
"--text-color-brand": c,
"--text-color-link": c,
"--el-color-primary": c,
"--el-color-primary-light-3": mix(c, "#FFFFFF", 0.2),
"--el-color-primary-light-5": mix(c, "#FFFFFF", 0.28),
"--el-color-primary-light-7": mix(c, "#FFFFFF", 0.48),
"--el-color-primary-light-8": mix(c, "#FFFFFF", 0.64),
"--el-color-primary-light-9": mix(c, "#FFFFFF", 0.82),
"--el-color-primary-dark-2": mix(c, "#000000", 0.14),
"--el-menu-hover-bg-color": rgbaOf(c, 0.12),
"--el-menu-active-color": c,
"--el-menu-active-background": rgbaOf(c, 0.12),
"--el-text-color-secondary": c,
"--linear-right": buildLinearRight(normalizeThemeValue(themeValue)),
};
};

@ -1,89 +1,36 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import { ref } from "vue"; import { ref } from "vue";
import { buildCustomThemeVars } from "./buildCustomThemeVars.js"; import {
buildThemeVars,
const DEFAULT_THEME = "blue"; // 默认主题 normalizeThemeValue,
const CUSTOM_THEME = "custom"; DEFAULT_THEME,
const CUSTOM_THEME_COLOR_KEY = "customThemeColor"; } from "./buildThemeVars.js";
const THEME_CLASS_MAP = {
blue: "", const APPLIED_KEYS = Object.keys(buildThemeVars(DEFAULT_THEME));
purple: "purple",
red: "red", const applyToRoot = (theme) => {
black: "dark", const root = document.documentElement;
dark: "dark", // 先清掉旧变量,避免切主题后留下脏数据
custom: "", APPLIED_KEYS.forEach((k) => root.style.removeProperty(k));
}; Object.entries(buildThemeVars(theme)).forEach(([k, v]) =>
root.style.setProperty(k, v),
const normalizeThemeValue = (theme) => { );
return THEME_CLASS_MAP[theme] !== undefined ? theme : DEFAULT_THEME;
};
const clearCustomThemeVars = (html) => {
Object.keys(buildCustomThemeVars("#1764FF")).forEach((key) => {
html.style.removeProperty(key);
});
}; };
export const useThemeStore = defineStore("theme", () => { export const useThemeStore = defineStore("theme", () => {
// 当前主题值,默认为 localStorage 中的值或 DEFAULT_THEME
const themeValue = ref( const themeValue = ref(
normalizeThemeValue(localStorage.getItem("theme") || DEFAULT_THEME), normalizeThemeValue(localStorage.getItem("theme") || DEFAULT_THEME),
); );
// 定制主题颜色,默认为 localStorage 中的值或 "#1764FF"
const customThemeColor = ref(
localStorage.getItem(CUSTOM_THEME_COLOR_KEY) || "#1764FF",
);
// 应用主题
const applyTheme = (theme) => {
const normalizedTheme = normalizeThemeValue(theme);
const html = document.documentElement;
const themeClass = THEME_CLASS_MAP[normalizedTheme] || "";
// 预设主题通过 class 切换
html.className = themeClass;
clearCustomThemeVars(html);
// 定制主题通过 CSS 变量实现
if (normalizedTheme === CUSTOM_THEME) {
const customVars = buildCustomThemeVars(customThemeColor.value);
Object.entries(customVars).forEach(([key, value]) => {
html.style.setProperty(key, value);
});
}
};
// 设置自定义主题颜色
const setCustomThemeColor = (color) => {
customThemeColor.value = color;
localStorage.setItem(CUSTOM_THEME_COLOR_KEY, color);
if (themeValue.value === CUSTOM_THEME) {
applyTheme(CUSTOM_THEME);
}
};
const previewCustomThemeColor = (color) => {
customThemeColor.value = color;
if (themeValue.value === CUSTOM_THEME) {
applyTheme(CUSTOM_THEME);
}
};
const setTheme = (theme) => { const setTheme = (theme) => {
const normalizedTheme = normalizeThemeValue(theme); const next = normalizeThemeValue(theme);
themeValue.value = normalizedTheme; themeValue.value = next;
localStorage.setItem("theme", normalizedTheme); localStorage.setItem("theme", next);
applyTheme(normalizedTheme); applyToRoot(next);
}; };
// 初始化时应用默认主题 // 初始化setup 内即生效,不依赖外部调用
applyTheme(themeValue.value); applyToRoot(themeValue.value);
return { return { themeValue, setTheme };
themeValue,
customThemeColor,
setTheme,
setCustomThemeColor,
previewCustomThemeColor,
applyTheme,
buildCustomThemeVars,
};
}); });

@ -7,7 +7,7 @@
{{ t.label }} {{ t.label }}
</div> </div>
</div> </div>
<el-button type="primary" class="blue-sign add-btn" @click="goAdd"> <el-button type="primary" class="add-btn" @click="goAdd">
<img class="add-icon" src="@/assets/image/admin/accounts/add.svg" alt=""> {{ addBtnText }} <img class="add-icon" src="@/assets/image/admin/accounts/add.svg" alt=""> {{ addBtnText }}
</el-button> </el-button>
</div> </div>
@ -44,12 +44,12 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="admin-pagination"> <div class="pagination admin-pagination">
<el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]" :total="total" <el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]" :total="total"
layout="total, sizes, prev, pager, next, jumper" @size-change="loadList" @current-change="loadList" /> layout="total, sizes, prev, pager, next, jumper" @size-change="loadList" @current-change="loadList" />
</div> </div>
<AccountEditDialog v-model:visible="editVisible" :account-id="editId" :account-data="editRow" <AccountEditDialog v-model:visible="editVisible" :account-id="editId" :account-data="editRow"
:user-type="activeType" @success="loadList" /> :user-type="activeType" @success="loadList" />
<ResetPasswordDialog v-model:visible="resetVisible" :account-data="resetRow" @success="loadList" /> <ResetPasswordDialog v-model:visible="resetVisible" :account-data="resetRow" @success="loadList" />
@ -174,12 +174,12 @@ onMounted(loadList);
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
&:hover { &:hover {
color: #3289fb; color: var(--brand-color);
} }
&.active { &.active {
color: #3289fb; color: var(--brand-color);
border-bottom-color: #3289fb; border-bottom-color: var(--brand-color);
} }
} }

@ -1,6 +1,7 @@
<template> <template>
<el-dialog :model-value="modelValue" class="monthly-view-dialog" top="5vh" :close-on-click-modal="false" <el-dialog :model-value="modelValue" modal-class="monthly-view-modal" class="monthly-view-dialog" top="5vh"
destroy-on-close @update:model-value="(v) => $emit('update:modelValue', v)" @open="onOpen"> :close-on-click-modal="false" destroy-on-close @update:model-value="(v) => $emit('update:modelValue', v)"
@open="onOpen">
<div class="body-wrap"> <div class="body-wrap">
<div class="body-header"> <div class="body-header">
<span class="body-title">客户服务月视图</span> <span class="body-title">客户服务月视图</span>
@ -25,9 +26,7 @@
<div v-for="m in 12" :key="m" class="month-card"> <div v-for="m in 12" :key="m" class="month-card">
<div class="month-head"> <div class="month-head">
<span class="month-name">{{ m }}</span> <span class="month-name">{{ m }}</span>
<span <span v-if="monthList[m - 1]?.hospitals.some(item => item.daysUntilExpiry >= 0 && item.daysUntilExpiry <= 30)" class="urgent-tag"></span>
v-if="monthList[m - 1]?.hospitals.some(item => item.daysUntilExpiry >= 0 && item.daysUntilExpiry <= 30)"
class="urgent-tag">紧急</span>
<span class="month-stats"> <span class="month-stats">
<span class="num">{{ monthList[m - 1]?.expiringCount ?? 0 }}</span>家医院到期 <span class="num">{{ monthList[m - 1]?.expiringCount ?? 0 }}</span>家医院到期
<span class="sep">|</span> <span class="sep">|</span>
@ -71,9 +70,20 @@
</template> </template>
<script setup> <script setup>
import { computed, ref, watch } from "vue"; // dialog await nextTick() monthList DOM
import { computed, nextTick, ref, watch } from "vue";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { getAdminMonthlyView } from "@/service/modular/admin"; import { getAdminMonthlyView } from "@/service/modular/admin";
const calcDialogHeight = async () => {
await nextTick();
const el = document.querySelector(".monthly-view-dialog");
if (!el) return;
// scale --monthly-view-height
const cssScale = parseFloat(getComputedStyle(el).transform.split(",")[3]) || 1;
const visualHeight = el.offsetHeight * cssScale;
console.log("[monthly-view-dialog] height:", visualHeight);
el.style.marginBottom = `${-(el.offsetHeight - visualHeight - 50)}px`;
};
const props = defineProps({ const props = defineProps({
modelValue: { type: Boolean, default: false }, modelValue: { type: Boolean, default: false },
@ -122,6 +132,8 @@ const loadData = async () => {
hospitals: it.hospitals || [], hospitals: it.hospitals || [],
}; };
}); });
// dialog nextTick DOM
await calcDialogHeight();
} finally { } finally {
loading.value = false; loading.value = false;
} }
@ -152,10 +164,18 @@ watch(
<style lang="scss"> <style lang="scss">
@use "@/assets/style/admin-common.scss" as *; @use "@/assets/style/admin-common.scss" as *;
.monthly-view-modal .el-overlay-dialog{
overflow-x: hidden;
}
// SCSS calc(...) / #{}
.monthly-view-dialog { .monthly-view-dialog {
width: 1522px; width: 1522px;
max-width: 90vw; height: auto;
padding: 0; padding: 0;
transform: #{"scale(calc(100vw / 1920px))"};
margin-left: calc( 100vw * 199px / 1920px);
transform-origin: left top;
.month-wrap { .month-wrap {
border-radius: 12px; border-radius: 12px;

@ -13,12 +13,12 @@
<el-option label="C类客户待挽回" value="C" /> <el-option label="C类客户待挽回" value="C" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button type="primary" plain class="blue-sign" @click="onSearch">{{ $t('btn.query') }}</el-button> <el-button type="primary" plain @click="onSearch">{{ $t('btn.query') }}</el-button>
<el-button @click="onReset">{{ $t('btn.reset') }}</el-button> <el-button @click="onReset">{{ $t('btn.reset') }}</el-button>
<el-button type="primary" class="add-btn" @click="goAdd">{{ $t('btn.addHospital') }}</el-button> <el-button type="primary" class="add-btn" @click="goAdd">{{ $t('btn.addHospital') }}</el-button>
</el-form> </el-form>
<el-table class="admin-table" :data="list" v-loading="loading" header-cell-class-name="admin-table-header-cell" <el-table class="hospital-list admin-table" :data="list" v-loading="loading" header-cell-class-name="admin-table-header-cell"
stripe> stripe>
<!-- <el-table-column prop="id" label="ID" width="80" /> --> <!-- <el-table-column prop="id" label="ID" width="80" /> -->
<el-table-column :label="$t('table.hospital')" prop="name" min-width="140" show-overflow-tooltip /> <el-table-column :label="$t('table.hospital')" prop="name" min-width="140" show-overflow-tooltip />
@ -42,9 +42,9 @@
<el-table-column :label="$t('table.maintenanceEnd')" width="auto"> <el-table-column :label="$t('table.maintenanceEnd')" width="auto">
<template #default="{ row }">{{ formatDate(row.maintenanceEnd) }}</template> <template #default="{ row }">{{ formatDate(row.maintenanceEnd) }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('table.acceptanceReport')" width="auto"> <el-table-column :label="$t('table.acceptanceReport')" min-width="105" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-button v-if="row.attachmentPath" plain class="cyan-sign" @click="viewReport(row.attachmentPath)"> <el-button v-if="row.attachmentPath" plain class="cyan-sign smaller" @click="viewReport(row.attachmentPath)">
{{ $t('btn.preview') }} {{ $t('btn.preview') }}
</el-button> </el-button>
<span v-else></span> <span v-else></span>

@ -8,7 +8,7 @@
<el-select v-model="filters.keyword" placeholder="全部医院" clearable filterable style="width: 220px"> <el-select v-model="filters.keyword" placeholder="全部医院" clearable filterable style="width: 220px">
<el-option v-for="h in hospitals" :key="h.id" :label="h.name" :value="h.name" /> <el-option v-for="h in hospitals" :key="h.id" :label="h.name" :value="h.name" />
</el-select> </el-select>
<el-button class="blue-sign" type="primary" plain @click="onSearch"></el-button> <el-button type="primary" plain @click="onSearch"></el-button>
</div> </div>
<div class="filter-right"> <div class="filter-right">
<div class="month-switcher"> <div class="month-switcher">
@ -55,18 +55,18 @@
</el-table-column> </el-table-column>
<el-table-column label="合同签署" width="90" align="center"> <el-table-column label="合同签署" width="90" align="center">
<template #default="{ row }"> <template #default="{ row }">
<img style="width:16px;height:16px;" v-if="row.contractSigned === 'no'" src="@/assets/image/admin/orders/no.svg" <img style="width:16px;height:16px;" v-if="row.contractSigned === 'no'"
alt=""> src="@/assets/image/admin/orders/no.svg" alt="">
<img style="width:16px;height:16px;" v-if="row.contractSigned === 'yes'" src="@/assets/image/admin/orders/yes.svg" <img style="width:16px;height:16px;" v-if="row.contractSigned === 'yes'"
alt=""> src="@/assets/image/admin/orders/yes.svg" alt="">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="款项支付" width="90" align="center"> <el-table-column label="款项支付" width="90" align="center">
<template #default="{ row }"> <template #default="{ row }">
<img style="width:16px;height:16px;" v-if="row.paymentPaid === 'no'" src="@/assets/image/admin/orders/no.svg" <img style="width:16px;height:16px;" v-if="row.paymentPaid === 'no'"
alt=""> src="@/assets/image/admin/orders/no.svg" alt="">
<img style="width:16px;height:16px;" v-if="row.paymentPaid === 'yes'" src="@/assets/image/admin/orders/yes.svg" <img style="width:16px;height:16px;" v-if="row.paymentPaid === 'yes'"
alt=""> src="@/assets/image/admin/orders/yes.svg" alt="">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="回访状态" width="90" align="center"> <el-table-column label="回访状态" width="90" align="center">
@ -121,7 +121,9 @@
<el-empty v-if="!expiringLoading && expiringList.length === 0" description="暂无即将到期的维保" :image-size="80" /> <el-empty v-if="!expiringLoading && expiringList.length === 0" description="暂无即将到期的维保" :image-size="80" />
<div v-for="(h, idx) in expiringList" :key="h.hospitalId || idx" class="expiring-card"> <div v-for="(h, idx) in expiringList" :key="h.hospitalId || idx" class="expiring-card">
<div class="ex-head"> <div class="ex-head">
<span class="ex-name">{{ h.hospitalName }}</span> <el-tooltip :content="h.hospitalName">
<span class="ex-name">{{ h.hospitalName }}</span>
</el-tooltip>
<span v-if="Number(h.daysUntilExpiry) <= 30" class="ex-urgent-tag"></span> <span v-if="Number(h.daysUntilExpiry) <= 30" class="ex-urgent-tag"></span>
</div> </div>
<div class="ex-row"> <div class="ex-row">
@ -404,14 +406,23 @@ onMounted(() => {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 6px; margin-bottom: 6px;
gap: 3px;
.ex-name { .ex-name {
font-weight: 600; font-weight: 600;
font-size: 16px; font-size: 16px;
color: #1D2129; color: #1D2129;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: calc(100% - 3px - 16px - 2em);
// flex-grow: 1;
// flex-shrink: 0;
} }
.ex-urgent-tag { .ex-urgent-tag {
flex-shrink: 0;
flex-grow: 0;
background: #ff383c; background: #ff383c;
color: #fff; color: #fff;
padding: 2px 8px; padding: 2px 8px;
@ -420,6 +431,7 @@ onMounted(() => {
color: #FFFFFF; color: #FFFFFF;
line-height: 18px; line-height: 18px;
border-radius: 8px 8px 8px 8px; border-radius: 8px 8px 8px 8px;
white-space: nowrap;
} }
} }

@ -61,7 +61,8 @@
</el-row> </el-row>
<el-form-item :label="$t('label.title')" prop="title"> <el-form-item :label="$t('label.title')" prop="title">
<div class="title-row"> <div class="title-row">
<el-input v-model="form.title" :placeholder="$t('placeholder.title')" maxlength="300" class="title-input"> <el-input v-model="form.title" :placeholder="$t('placeholder.title')" maxlength="300" class="title-input"
:style="{ '--tag-color': form.colorTag }">
<template #suffix> <template #suffix>
<span class="title-counter"><span :style="{ color: form.colorTag || '#dcdfe6' }">{{ form.title.length <span class="title-counter"><span :style="{ color: form.colorTag || '#dcdfe6' }">{{ form.title.length
}}</span>/300</span> }}</span>/300</span>
@ -606,6 +607,10 @@ onBeforeUnmount(() => {
border-bottom-right-radius: 0px; border-bottom-right-radius: 0px;
} }
.el-input__inner {
caret-color: var(--tag-color);
color: var(--tag-color);
}
} }
.title-row :deep(.el-input__suffix) { .title-row :deep(.el-input__suffix) {

@ -108,7 +108,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('table.title')" min-width="300" show-overflow-tooltip> <el-table-column :label="$t('table.title')" min-width="300" show-overflow-tooltip>
<template #default="{ row }"> <template #default="{ row }">
<span class="title-link" style="text-decoration: underline;" @click="goHandle(row.id)">{{ row.title <span class="title-link" :style="{color:row.colorTag}" style="text-decoration: underline;" @click="goHandle(row.id)">{{ row.title
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -401,14 +401,14 @@ const formStyle = computed(() => {
} }
& .title-link { & .title-link {
color: var(--el-color-primary); // color: var(--el-color-primary);
cursor: pointer; cursor: pointer;
user-select: text; user-select: text;
-webkit-user-select: text; -webkit-user-select: text;
&:hover { // &:hover {
color: var(--el-color-primary-light-3); // color: var(--el-color-primary-light-3);
} // }
} }
} }
@ -435,6 +435,7 @@ const formStyle = computed(() => {
border: 1px solid #e0e0e0; border: 1px solid #e0e0e0;
overflow: hidden; overflow: hidden;
// el-table border 1px// + cell border-right / border-bottom // el-table border 1px// + cell border-right / border-bottom
// 3 cell 线 border // 3 cell 线 border
&::before, &::before,

@ -1,6 +1,6 @@
<template> <template>
<div class="report-page" v-loading="exporting" :element-loading-text="exporting ? `正在生成 ${exportTypeLabel}…` : ''" element-loading-background="rgba(255,255,255,0.7)"> <div class="report-page" v-loading="exporting" :element-loading-text="exporting ? `正在生成 ${exportTypeLabel}…` : ''" element-loading-background="rgba(255,255,255,0.7)">
<div class="admin-page-card"> <div class="admin-page-card order-report">
<div class="filter-row"> <div class="filter-row">
<el-form :inline="true" :model="filters" class="admin-filter-form"> <el-form :inline="true" :model="filters" class="admin-filter-form">
<el-form-item label="医院名称"> <el-form-item label="医院名称">
@ -15,13 +15,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button class="blue-sign" type="primary" plain @click="onSearch"></el-button> <el-button type="primary" plain @click="onSearch"></el-button>
<el-button @click="onReset"></el-button> <el-button @click="onReset"></el-button>
<el-button class="blue-sign" type="primary" @click="generateVisible = true">生成报告</el-button> <el-button type="primary" @click="generateVisible = true">生成报告</el-button>
</el-form> </el-form>
</div> </div>
<el-table class="admin-table" :data="list" v-loading="loading" stripe <el-table class="order-report admin-table" :data="list" v-loading="loading" stripe
header-cell-class-name="admin-table-header-cell"> header-cell-class-name="admin-table-header-cell">
<el-table-column label="序号" type="index" width="80" /> <el-table-column label="序号" type="index" width="80" />
<el-table-column label="医院名称" prop="hospital" min-width="100" show-overflow-tooltip /> <el-table-column label="医院名称" prop="hospital" min-width="100" show-overflow-tooltip />
@ -53,7 +53,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="admin-pagination"> <div class="pagination admin-pagination">
<el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]" <el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]"
:total="total" layout="total, sizes, prev, pager, next, jumper" @size-change="loadList" :total="total" layout="total, sizes, prev, pager, next, jumper" @size-change="loadList"
@current-change="loadList" /> @current-change="loadList" />

@ -341,27 +341,27 @@ onMounted(() => {
&:hover, &:hover,
&.active { &.active {
background: #3289FB !important; background: var(--brand-color) !important;
border-color: #3289FB !important; border-color: var(--brand-color) !important;
color: #fff !important; color: #fff !important;
} }
} }
.search-btn { .search-btn {
font-size: 16px !important; font-size: 16px !important;
color: #1D2129 !important; // color: #1D2129 !important;
line-height: 22px !important; line-height: 22px !important;
width: auto !important; width: auto !important;
height: auto !important; height: auto !important;
padding: 10px 24px !important; padding: 10px 24px !important;
color: #3289FB !important; // color: var(--brand-color) !important;
&:hover, // &:hover,
&.active { // &.active {
background: #3289FB !important; // background: var(--brand-color) !important;
border-color: #3289FB !important; // border-color: var(--brand-color) !important;
color: #fff !important; // color: #fff !important;
} // }
} }

@ -57,10 +57,11 @@
<!-- 标题 + 颜色标签 + 优先级 同一行 --> <!-- 标题 + 颜色标签 + 优先级 同一行 -->
<el-form-item :label="$t('label.title')" prop="title"> <el-form-item :label="$t('label.title')" prop="title">
<div class="title-row"> <div class="title-row">
<el-input v-model="form.title" :placeholder="$t('placeholder.title')" maxlength="300" class="title-input"> <el-input v-model="form.title" :placeholder="$t('placeholder.title')" maxlength="300" class="title-input"
:style="{ '--tag-color': form.colorTag }">
<template #suffix> <template #suffix>
<span class="title-counter"><span :style="{ color: form.colorTag || '#dcdfe6' }">{{ form.title.length <span class="title-counter"><span :style="{ color: form.colorTag || '#dcdfe6' }">{{ form.title.length
}}</span>/300</span> }}</span>/300</span>
<el-popover v-model:visible="colorPickerVisible" :width="180" placement="bottom-end" trigger="click" <el-popover v-model:visible="colorPickerVisible" :width="180" placement="bottom-end" trigger="click"
:show-arrow="false" popper-class="color-tag-popper"> :show-arrow="false" popper-class="color-tag-popper">
<template #reference> <template #reference>
@ -583,6 +584,11 @@ onBeforeUnmount(() => {
border-top-right-radius: 0px; border-top-right-radius: 0px;
border-bottom-right-radius: 0px; border-bottom-right-radius: 0px;
} }
.el-input__inner {
caret-color: var(--tag-color);
color: var(--tag-color);
}
} }
.title-row :deep(.el-input__suffix) { .title-row :deep(.el-input__suffix) {
@ -766,5 +772,38 @@ onBeforeUnmount(() => {
border-radius: 10px !important; border-radius: 10px !important;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
min-width: 180px; min-width: 180px;
.color-tag-title {
font-size: 13px;
font-weight: 600;
color: #333;
margin-bottom: 10px;
}
.color-tag-options {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.color-tag-option {
width: 24px;
height: 24px;
border-radius: 6px;
cursor: pointer;
border: 2px solid transparent;
transition:
transform 0.2s ease,
border-color 0.2s ease;
}
.color-tag-option:hover {
transform: scale(1.12);
}
.color-tag-option.active {
border-color: #1890ff;
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
} }
</style> </style>

@ -72,7 +72,12 @@
<div class="priority-row" :class="priorityClass(row.priority)">{{ row.priority }}</div> <div class="priority-row" :class="priorityClass(row.priority)">{{ row.priority }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('table.title')" prop="title" min-width="250" show-overflow-tooltip /> <el-table-column :label="$t('table.title')" prop="title" min-width="250" show-overflow-tooltip>
<template #default="{ row }">
<span :style="{ color: row.colorTag }">{{ row.title
}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('table.type')" prop="serviceType" width="auto" /> <el-table-column :label="$t('table.type')" prop="serviceType" width="auto" />
<el-table-column :label="$t('table.dept')" prop="department" min-width="120" show-overflow-tooltip /> <el-table-column :label="$t('table.dept')" prop="department" min-width="120" show-overflow-tooltip />
<el-table-column :label="$t('table.submitter')" prop="submitter" min-width="100" show-overflow-tooltip /> <el-table-column :label="$t('table.submitter')" prop="submitter" min-width="100" show-overflow-tooltip />
@ -107,7 +112,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="admin-pagination"> <div class="pagination admin-pagination">
<el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]" :total="total" <el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50]" :total="total"
layout="total, sizes, prev, pager, next, jumper" @size-change="loadList" @current-change="loadList" /> layout="total, sizes, prev, pager, next, jumper" @size-change="loadList" @current-change="loadList" />
</div> </div>

@ -130,7 +130,7 @@
</div> </div>
</template> </template>
<el-table class="jifen-table" header-cell-class-name="jifen-table-header-cell" :data="details" v-loading="loading" <el-table class="jifen-table" header-cell-class-name="jifen-table-header-cell" :data="details" height="400" v-loading="loading"
border stripe> border stripe>
<el-table-column label="时间" prop="createdAt" width="170" /> <el-table-column label="时间" prop="createdAt" width="170" />
<el-table-column label="来源" prop="source" width="140"> <el-table-column label="来源" prop="source" width="140">
@ -1023,6 +1023,8 @@ onMounted(() => loadAll());
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
gap: 12px; gap: 12px;
// el-card-padding
margin-bottom: -20px;
h3 { h3 {
font-size: 16px; font-size: 16px;

@ -10,7 +10,7 @@
</el-button> </el-button>
<el-button :class="['period-tab', { active: isCustom }]" plain @click="onPickCustom">{{ <el-button :class="['period-tab', { active: isCustom }]" plain @click="onPickCustom">{{
$t('common.customDate') $t('common.customDate')
}}</el-button> }}</el-button>
</div> </div>
<div v-if="isCustom" class="custom-range"> <div v-if="isCustom" class="custom-range">
<el-date-picker v-model="dateRange" type="daterange" range-separator="-" <el-date-picker v-model="dateRange" type="daterange" range-separator="-"
@ -287,21 +287,21 @@ const chartOption = computed(() => {
}, },
dataZoom: showSlider dataZoom: showSlider
? [ ? [
{ {
type: "slider", type: "slider",
xAxisIndex: 0, xAxisIndex: 0,
bottom: 0, bottom: 0,
height: 14, height: 14,
startValue: sliderStartValue, startValue: sliderStartValue,
endValue: sliderEndValue, endValue: sliderEndValue,
zoomLock: true, zoomLock: true,
showDetail: false, showDetail: false,
showDataShadow: false, showDataShadow: false,
fillerColor: "rgba(50,137,251,0.12)", fillerColor: "rgba(50,137,251,0.12)",
borderColor: "transparent", borderColor: "transparent",
backgroundColor: "#F2F3F5", backgroundColor: "#F2F3F5",
}, },
] ]
: [], : [],
series: isLine ? lineSeries : [ series: isLine ? lineSeries : [
{ ...makeBarSeries(submit, submitTopColor, submitWrapColor), name: $t('chart.submit') }, { ...makeBarSeries(submit, submitTopColor, submitWrapColor), name: $t('chart.submit') },
@ -618,8 +618,8 @@ onMounted(loadStats);
&:hover, &:hover,
&.active { &.active {
background: #3289FB !important; background: var(--brand-color) !important;
border-color: #3289FB !important; border-color: var(--brand-color) !important;
color: #fff !important; color: #fff !important;
} }
} }

Loading…
Cancel
Save