Browse Source

首页图标、我的页面

urbanu 1 tháng trước cách đây
mục cha
commit
32efa3fba9

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 0
src/assets/images/home/icon_checkin.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3 - 0
src/assets/images/home/icon_income.svg


+ 10 - 0
src/assets/images/home/icon_invite.svg

@@ -0,0 +1,10 @@
+<svg width="114" height="111" viewBox="0 0 114 111" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="114" height="111" rx="20" fill="url(#paint0_linear_437_241)"/>
+<path d="M79.751 53.3174C80.4309 53.1984 81.128 53.215 81.8018 53.3652C82.4756 53.5156 83.1137 53.7975 83.6787 54.1943C84.2435 54.5911 84.7247 55.095 85.0947 55.6777C85.6295 56.5201 85.9141 57.4973 85.9141 58.4951V76.5264C85.9139 78.6173 85.083 80.623 83.6045 82.1016C82.1259 83.5801 80.1203 84.4101 78.0293 84.4102H35.9785C33.8876 84.4102 31.8819 83.5799 30.4033 82.1016C28.9248 80.623 28.0939 78.6173 28.0938 76.5264V58.5146C28.0938 57.5725 28.3471 56.6476 28.8271 55.8369C29.3072 55.0262 29.9962 54.3593 30.8223 53.9062C31.6483 53.4532 32.5809 53.2308 33.5225 53.2617C34.464 53.2927 35.3804 53.5758 36.1748 54.082L56.9482 67.3271L77.8389 54.0586C78.4214 53.6885 79.0711 53.4364 79.751 53.3174ZM70.1445 29.2188C72.2356 29.2188 74.2411 30.0497 75.7197 31.5283C77.1983 33.0069 78.0293 35.0125 78.0293 37.1035V50.2441L57.0469 63.3848L35.9785 50.2441V37.1035C35.9785 35.0126 36.8087 33.0069 38.2871 31.5283C39.7657 30.0498 41.7713 29.2189 43.8623 29.2188H70.1445ZM60.8145 37.1006C59.3872 37.1006 58.0174 37.665 57.0039 38.6699C55.9905 37.6651 54.6214 37.1007 53.1943 37.1006C51.7671 37.1006 50.3973 37.665 49.3838 38.6699C48.3887 39.657 47.8215 40.9959 47.8057 42.3975C47.7899 43.7991 48.327 45.1509 49.2998 46.1602L49.3838 46.2441L55.3711 52.1973C55.8054 52.628 56.3922 52.87 57.0039 52.8701C57.6158 52.8701 58.2033 52.6282 58.6377 52.1973V52.1982L64.625 46.2451L64.7207 46.1475C65.6879 45.1373 66.2201 43.7871 66.2021 42.3887C66.1842 40.9904 65.6177 39.6549 64.625 38.6699C63.6115 37.665 62.2417 37.1006 60.8145 37.1006Z" fill="white"/>
+<defs>
+<linearGradient id="paint0_linear_437_241" x1="0" y1="0" x2="103.113" y2="99.0397" gradientUnits="userSpaceOnUse">
+<stop stop-color="#338AF1"/>
+<stop offset="1" stop-color="#0EADC7"/>
+</linearGradient>
+</defs>
+</svg>

+ 10 - 0
src/assets/images/home/icon_welfare.svg

@@ -0,0 +1,10 @@
+<svg width="114" height="111" viewBox="0 0 114 111" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="114" height="111" rx="20" fill="url(#paint0_linear_437_227)"/>
+<path d="M53.3294 45.6776H36.1906C34.8385 45.6776 33.7422 46.775 33.7422 48.1283V54.255C33.7422 55.6084 34.8384 56.7056 36.1906 56.7056H53.3294C54.6815 56.7056 55.7779 55.6084 55.7779 54.255V48.1283C55.7779 46.7749 54.6813 45.6776 53.3294 45.6776ZM53.3294 59.1563H38.639C37.2869 59.1563 36.1905 60.2535 36.1905 61.6069V76.3109C36.1905 77.6643 37.3753 78.7616 38.7274 78.7616H53.285C54.6371 78.7616 55.7335 77.6643 55.7335 76.3109L55.7777 61.6069C55.7777 60.2536 54.6814 59.1563 53.3294 59.1563ZM45.9615 32.2433C44.5616 32.199 41.9111 33.5057 41.0874 34.6497C38.1142 38.7815 40.3211 44.4524 49.6568 44.4524C53.6593 44.4524 57.0019 40.9631 57.0019 39.551C57.0019 38.1378 52.4614 32.4467 45.9615 32.2433ZM53.5219 39.5247C53.3736 40.4258 51.6819 41.6212 48.4995 41.6212C44.8806 41.6212 42.1036 39.8921 42.3116 37.1004C42.4348 35.4502 44.6931 34.8004 45.9615 34.8004C51.9437 34.8004 53.5745 39.2064 53.5219 39.5246V39.5247ZM77.8132 45.6776H60.6746C59.3224 45.6776 58.226 46.775 58.226 48.1283V54.255C58.226 55.6084 59.3224 56.7056 60.6746 56.7056H77.8132C79.1654 56.7056 80.2616 55.6084 80.2616 54.255V48.1283C80.2616 46.7749 79.1653 45.6776 77.8132 45.6776ZM64.1425 44.4523C73.2188 44.4523 75.3647 38.7815 72.4739 34.6497C71.6742 33.5057 69.0968 32.199 67.7351 32.2433C61.4168 32.4467 57.0019 38.1378 57.0019 39.551C57.0019 40.963 60.2513 44.4523 64.1425 44.4523ZM67.7351 34.8004C68.9689 34.8004 71.1638 35.4502 71.2845 37.1003C71.4866 39.8921 68.7859 41.6211 65.2688 41.6211C62.1736 41.6211 60.5297 40.4257 60.3851 39.5246C60.3349 39.2064 61.9202 34.8004 67.7351 34.8004ZM75.3647 59.1563H60.6746C59.3224 59.1563 58.226 60.2535 58.226 61.6069V76.3109C58.226 77.6643 59.3666 78.7616 60.7186 78.7616H75.2763C76.6285 78.7616 77.7248 77.6643 77.7248 76.3109L77.8132 61.6069C77.8132 60.2536 76.7169 59.1563 75.3647 59.1563Z" fill="white"/>
+<defs>
+<linearGradient id="paint0_linear_437_227" x1="0" y1="0" x2="103.113" y2="99.0397" gradientUnits="userSpaceOnUse">
+<stop stop-color="#B354E6"/>
+<stop offset="1" stop-color="#ED44A7"/>
+</linearGradient>
+</defs>
+</svg>

+ 1 - 4
src/assets/images/tab/hall.svg

@@ -1,6 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect x="3" y="3" width="7" height="7" rx="1.5" stroke="#555555" stroke-width="1.8"/>
-<rect x="14" y="3" width="7" height="7" rx="1.5" stroke="#555555" stroke-width="1.8"/>
-<rect x="3" y="14" width="7" height="7" rx="1.5" stroke="#555555" stroke-width="1.8"/>
-<rect x="14" y="14" width="7" height="7" rx="1.5" stroke="#555555" stroke-width="1.8"/>
+<path d="M19.2858 13.2219H14.9387C12.529 13.2219 12.2245 13.5264 12.2245 15.9387V20.2858C12.2245 21.782 13.4425 23 14.9387 23H19.2858C20.782 23 22 21.782 22 20.2858V15.9387C22 14.4399 20.782 13.2219 19.2858 13.2219ZM8.06125 13.2219H3.71425C2.218 13.2219 1 14.4399 1 15.9387V20.2858C1 21.782 2.218 23 3.71425 23H8.06125C9.5575 23 10.7755 21.782 10.7755 20.2858V15.9387C10.7755 13.5264 10.471 13.2219 8.06125 13.2219ZM19.2858 2H14.9387C13.4425 2 12.2245 3.218 12.2245 4.71425V9.06125C12.2245 11.471 12.529 11.7755 14.9387 11.7755H19.2858C20.782 11.7755 22 10.5575 22 9.06125V4.71425C22 3.218 20.782 2 19.2858 2ZM8.06125 2H3.71425C2.218 2 1 3.218 1 4.71425V9.06125C1 10.5575 2.218 11.7755 3.71425 11.7755H8.06125C10.471 11.7755 10.7755 11.471 10.7755 9.06125V4.71425C10.7755 3.218 9.5575 2 8.06125 2Z" fill="#737375"/>
 </svg>

+ 1 - 4
src/assets/images/tab/hall_active.svg

@@ -1,6 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<rect x="3" y="3" width="7" height="7" rx="1.5" stroke="#ffc300" stroke-width="1.8"/>
-<rect x="14" y="3" width="7" height="7" rx="1.5" stroke="#ffc300" stroke-width="1.8"/>
-<rect x="3" y="14" width="7" height="7" rx="1.5" stroke="#ffc300" stroke-width="1.8"/>
-<rect x="14" y="14" width="7" height="7" rx="1.5" stroke="#ffc300" stroke-width="1.8"/>
+<path d="M19.2858 13.2219H14.9387C12.529 13.2219 12.2245 13.5264 12.2245 15.9387V20.2858C12.2245 21.782 13.4425 23 14.9387 23H19.2858C20.782 23 22 21.782 22 20.2858V15.9387C22 14.4399 20.782 13.2219 19.2858 13.2219ZM8.06125 13.2219H3.71425C2.218 13.2219 1 14.4399 1 15.9387V20.2858C1 21.782 2.218 23 3.71425 23H8.06125C9.5575 23 10.7755 21.782 10.7755 20.2858V15.9387C10.7755 13.5264 10.471 13.2219 8.06125 13.2219ZM19.2858 2H14.9387C13.4425 2 12.2245 3.218 12.2245 4.71425V9.06125C12.2245 11.471 12.529 11.7755 14.9387 11.7755H19.2858C20.782 11.7755 22 10.5575 22 9.06125V4.71425C22 3.218 20.782 2 19.2858 2ZM8.06125 2H3.71425C2.218 2 1 3.218 1 4.71425V9.06125C1 10.5575 2.218 11.7755 3.71425 11.7755H8.06125C10.471 11.7755 10.7755 11.471 10.7755 9.06125V4.71425C10.7755 3.218 9.5575 2 8.06125 2Z" fill="#E3AC00"/>
 </svg>

+ 9 - 2
src/assets/images/tab/mine.svg

@@ -1,4 +1,11 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<circle cx="12" cy="8" r="4" stroke="#555555" stroke-width="1.8"/>
-<path d="M4 20C4 16.6863 7.58172 14 12 14C16.4183 14 20 16.6863 20 20" stroke="#555555" stroke-width="1.8" stroke-linecap="round"/>
+<g clip-path="url(#clip0_437_224)">
+<path d="M18.7393 14.25C17.2279 15.5775 15.2625 16.4629 12.9951 16.4629C10.7276 16.4629 8.76225 15.5781 7.0995 14.25C3.31894 16.1681 0.75 18.6763 0.75 23.25H24.9375C24.9375 18.6763 22.3674 16.3155 18.7393 14.25Z" fill="#737375"/>
+<path d="M12.5625 14.8125C16.3127 14.8125 19.3125 11.6023 19.3125 7.78125C19.3125 3.96019 16.3127 0.75 12.5625 0.75C8.81231 0.75 5.8125 3.96019 5.8125 7.78125C5.8125 11.7553 8.9625 14.8125 12.5625 14.8125Z" fill="#737375"/>
+</g>
+<defs>
+<clipPath id="clip0_437_224">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
 </svg>

+ 9 - 2
src/assets/images/tab/mine_active.svg

@@ -1,4 +1,11 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<circle cx="12" cy="8" r="4" stroke="#ffc300" stroke-width="1.8"/>
-<path d="M4 20C4 16.6863 7.58172 14 12 14C16.4183 14 20 16.6863 20 20" stroke="#ffc300" stroke-width="1.8" stroke-linecap="round"/>
+<g clip-path="url(#clip0_437_247)">
+<path d="M18.7393 14.25C17.2279 15.5775 15.2625 16.4629 12.9951 16.4629C10.7276 16.4629 8.76225 15.5781 7.0995 14.25C3.31894 16.1681 0.75 18.6763 0.75 23.25H24.9375C24.9375 18.6763 22.3674 16.3155 18.7393 14.25Z" fill="#E3AC00"/>
+<path d="M12.5625 14.8125C16.3127 14.8125 19.3125 11.6023 19.3125 7.78125C19.3125 3.96019 16.3127 0.75 12.5625 0.75C8.81231 0.75 5.8125 3.96019 5.8125 7.78125C5.8125 11.7553 8.9625 14.8125 12.5625 14.8125Z" fill="#E3AC00"/>
+</g>
+<defs>
+<clipPath id="clip0_437_247">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
 </svg>

+ 1 - 1
src/assets/images/tab/tab1.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M18.8993 8.16714L12 12.0001M12 12.0001L5.10064 8.16714M12 12.0001L12 19.7111M19.3052 15.2944V8.70585C19.3052 8.42774 19.3052 8.28868 19.2642 8.16465C19.2279 8.05493 19.1687 7.95422 19.0904 7.86924C19.0018 7.77319 18.8803 7.70566 18.6372 7.57059L12.6307 4.23366C12.4005 4.10578 12.2854 4.04183 12.1635 4.01676C12.0556 3.99458 11.9444 3.99458 11.8365 4.01676C11.7146 4.04183 11.5995 4.10578 11.3693 4.23366L5.36282 7.57059C5.1197 7.70566 4.99814 7.77319 4.90962 7.86924C4.83132 7.95422 4.77205 8.05493 4.7358 8.16466C4.69482 8.28868 4.69482 8.42774 4.69482 8.70586V15.2944C4.69482 15.5725 4.69482 15.7116 4.7358 15.8356C4.77205 15.9453 4.83132 16.046 4.90962 16.131C4.99814 16.2271 5.1197 16.2946 5.36282 16.4297L11.3693 19.7666C11.5995 19.8945 11.7146 19.9584 11.8365 19.9835C11.9444 20.0057 12.0556 20.0057 12.1635 19.9835C12.2854 19.9584 12.4005 19.8945 12.6307 19.7666L18.6372 16.4297C18.8803 16.2946 19.0018 16.2271 19.0904 16.131C19.1687 16.046 19.2279 15.9453 19.2642 15.8356C19.3052 15.7116 19.3052 15.5725 19.3052 15.2944Z" stroke="#555555" stroke-width="1.62337" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M21.5854 11.066L13.2401 2.72075C12.2791 1.75975 10.7209 1.75975 9.7597 2.72075L1.41462 11.066C0.528887 11.9518 1.15622 13.4663 2.40885 13.4663H3.29684V20.5391C3.29684 21.8981 4.39873 23 5.75779 23H17.2422C18.6013 23 19.7032 21.8981 19.7032 20.5391V13.4661H20.5912C21.8438 13.4661 22.4711 11.9518 21.5854 11.066ZM17.113 16.2186C16.1979 18.4165 14.0296 19.9615 11.5004 19.9615C8.97035 19.9615 6.80164 18.4155 5.88699 16.2166C5.63494 15.611 6.08509 14.9443 6.74114 14.9443H6.75427C7.11849 14.9443 7.44805 15.1629 7.58709 15.4996C7.79709 16.0082 8.10738 16.4754 8.50831 16.8763C9.28002 17.6481 10.2974 18.0851 11.3841 18.1142C12.5518 18.1456 13.6868 17.6907 14.5085 16.8605C14.8988 16.4662 15.2021 16.0086 15.4092 15.5109C15.552 15.168 15.8862 14.9441 16.2576 14.9441C16.9145 14.9443 17.3655 15.6122 17.113 16.2186Z" fill="#737375"/>
 </svg>

+ 1 - 1
src/assets/images/tab/tab1_active.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M18.8993 8.16714L12 12.0001M12 12.0001L5.10064 8.16714M12 12.0001L12 19.7111M19.3052 15.2944V8.70585C19.3052 8.42774 19.3052 8.28868 19.2642 8.16465C19.2279 8.05493 19.1687 7.95422 19.0904 7.86924C19.0018 7.77319 18.8803 7.70566 18.6372 7.57059L12.6307 4.23366C12.4005 4.10578 12.2854 4.04183 12.1635 4.01676C12.0556 3.99458 11.9444 3.99458 11.8365 4.01676C11.7146 4.04183 11.5995 4.10578 11.3693 4.23366L5.36282 7.57059C5.1197 7.70566 4.99814 7.77319 4.90962 7.86924C4.83132 7.95422 4.77205 8.05493 4.7358 8.16466C4.69482 8.28868 4.69482 8.42774 4.69482 8.70586V15.2944C4.69482 15.5725 4.69482 15.7116 4.7358 15.8356C4.77205 15.9453 4.83132 16.046 4.90962 16.131C4.99814 16.2271 5.1197 16.2946 5.36282 16.4297L11.3693 19.7666C11.5995 19.8945 11.7146 19.9584 11.8365 19.9835C11.9444 20.0057 12.0556 20.0057 12.1635 19.9835C12.2854 19.9584 12.4005 19.8945 12.6307 19.7666L18.6372 16.4297C18.8803 16.2946 19.0018 16.2271 19.0904 16.131C19.1687 16.046 19.2279 15.9453 19.2642 15.8356C19.3052 15.7116 19.3052 15.5725 19.3052 15.2944Z" stroke="#FFC300" stroke-width="1.62337" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M21.5854 11.066L13.2401 2.72075C12.2791 1.75975 10.7209 1.75975 9.7597 2.72075L1.41462 11.066C0.528887 11.9518 1.15622 13.4663 2.40885 13.4663H3.29684V20.5391C3.29684 21.8981 4.39873 23 5.75779 23H17.2422C18.6013 23 19.7032 21.8981 19.7032 20.5391V13.4661H20.5912C21.8438 13.4661 22.4711 11.9518 21.5854 11.066ZM17.113 16.2186C16.1979 18.4165 14.0296 19.9615 11.5004 19.9615C8.97035 19.9615 6.80164 18.4155 5.88699 16.2166C5.63494 15.611 6.08509 14.9443 6.74114 14.9443H6.75427C7.11849 14.9443 7.44805 15.1629 7.58709 15.4996C7.79709 16.0082 8.10738 16.4754 8.50831 16.8763C9.28002 17.6481 10.2974 18.0851 11.3841 18.1142C12.5518 18.1456 13.6868 17.6907 14.5085 16.8605C14.8988 16.4662 15.2021 16.0086 15.4092 15.5109C15.552 15.168 15.8862 14.9441 16.2576 14.9441C16.9145 14.9443 17.3655 15.6122 17.113 16.2186Z" fill="#E3AC00"/>
 </svg>

+ 1 - 1
src/assets/images/tab/tab2.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M16 13.7778H16.0089M4 5.77778V18.2222C4 19.2041 4.79594 20 5.77778 20H18.2222C19.2041 20 20 19.2041 20 18.2222V9.33333C20 8.35149 19.2041 7.55556 18.2222 7.55556L5.77778 7.55556C4.79594 7.55556 4 6.75962 4 5.77778ZM4 5.77778C4 4.79594 4.79594 4 5.77778 4H16.4444M16.4444 13.7778C16.4444 14.0232 16.2455 14.2222 16 14.2222C15.7545 14.2222 15.5556 14.0232 15.5556 13.7778C15.5556 13.5323 15.7545 13.3333 16 13.3333C16.2455 13.3333 16.4444 13.5323 16.4444 13.7778Z" stroke="#555555" stroke-width="1.77778" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M22.5777 8.0046V10.8701H12.8256V5.96425C12.5831 5.93999 12.3488 5.91254 12.1487 5.87872V5.86982H12.1062L12.1066 5.87005H12.1484V5.87935H12.1147L12.1145 5.87912C12.1134 5.88015 12.106 5.88716 12.0984 5.88716C11.8394 5.92199 11.5216 5.96425 11.1625 5.9991V10.8707H1.41016V6.42317C1.41016 6.10412 1.66855 5.84563 1.98735 5.84563H3.3448C3.37448 5.84563 3.40359 5.84776 3.43216 5.85221H6.92465C5.73109 5.59332 4.83552 5.06422 4.80283 4.08716C4.76905 2.93619 6.0227 1.07574 7.85268 1.50029C9.74198 1.94028 11.062 3.45519 12.073 4.75321C13.0929 3.42997 14.5382 1.72499 16.5099 1.45623C18.1575 1.23997 19.5192 2.94496 19.3435 4.06975C19.1939 5.05546 18.2821 5.59253 17.1203 5.85175H20.5716C20.5996 5.84765 20.6279 5.8456 20.6562 5.84563H22.0136C22.3324 5.84563 22.5908 6.10412 22.5908 6.42317V7.88197C22.5908 7.9232 22.5864 7.9643 22.5777 8.0046ZM8.05403 2.52048C7.14224 2.14827 6.60813 2.54753 6.22384 3.20511C6.01471 3.57636 5.78987 4.07014 6.12327 4.43319C7.00042 5.36807 9.40673 5.29916 11.0206 5.12525C10.2595 4.14041 9.32392 3.04025 8.05403 2.52048ZM18.0233 4.42555C18.6499 3.5942 17.4216 1.86374 16.1014 2.50337C14.8389 3.11846 13.9284 4.12114 13.143 5.10831C13.8189 5.16941 14.5047 5.18539 15.1819 5.15127C16.0095 5.11658 17.5387 5.05651 18.0233 4.42555ZM11.229 22.5677H2.88897C2.57017 22.5677 2.31177 22.3092 2.31177 21.9902V11.6587H11.229V22.5677ZM21.6752 21.5557C21.6752 21.6366 21.6659 21.7151 21.649 21.7904V21.9902C21.649 22.3092 21.3906 22.5677 21.0718 22.5677H19.7145C19.7129 22.5677 19.7112 22.5676 19.7097 22.5676H12.7588V11.6587H21.6752V21.5557Z" fill="#737375"/>
 </svg>

+ 1 - 1
src/assets/images/tab/tab2_active.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M16 13.7778H16.0089M4 5.77778V18.2222C4 19.2041 4.79594 20 5.77778 20H18.2222C19.2041 20 20 19.2041 20 18.2222V9.33333C20 8.35149 19.2041 7.55556 18.2222 7.55556L5.77778 7.55556C4.79594 7.55556 4 6.75962 4 5.77778ZM4 5.77778C4 4.79594 4.79594 4 5.77778 4H16.4444M16.4444 13.7778C16.4444 14.0232 16.2455 14.2222 16 14.2222C15.7545 14.2222 15.5556 14.0232 15.5556 13.7778C15.5556 13.5323 15.7545 13.3333 16 13.3333C16.2455 13.3333 16.4444 13.5323 16.4444 13.7778Z" stroke="#FFC300" stroke-width="1.77778" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M22.5777 8.0046V10.8701H12.8256V5.96425C12.5831 5.93999 12.3488 5.91254 12.1487 5.87872V5.86982H12.1062L12.1066 5.87005H12.1484V5.87935H12.1147L12.1145 5.87912C12.1134 5.88015 12.106 5.88716 12.0984 5.88716C11.8394 5.92199 11.5216 5.96425 11.1625 5.9991V10.8707H1.41016V6.42317C1.41016 6.10412 1.66855 5.84563 1.98735 5.84563H3.3448C3.37448 5.84563 3.40359 5.84776 3.43216 5.85221H6.92465C5.73109 5.59332 4.83552 5.06422 4.80283 4.08716C4.76905 2.93619 6.0227 1.07574 7.85268 1.50029C9.74198 1.94028 11.062 3.45519 12.073 4.75321C13.0929 3.42997 14.5382 1.72499 16.5099 1.45623C18.1575 1.23997 19.5192 2.94496 19.3435 4.06975C19.1939 5.05546 18.2821 5.59253 17.1203 5.85175H20.5716C20.5996 5.84765 20.6279 5.8456 20.6562 5.84563H22.0136C22.3324 5.84563 22.5908 6.10412 22.5908 6.42317V7.88197C22.5908 7.9232 22.5864 7.9643 22.5777 8.0046ZM8.05403 2.52048C7.14224 2.14827 6.60813 2.54753 6.22384 3.20511C6.01471 3.57636 5.78987 4.07014 6.12327 4.43319C7.00042 5.36807 9.40673 5.29916 11.0206 5.12525C10.2595 4.14041 9.32392 3.04025 8.05403 2.52048ZM18.0233 4.42555C18.6499 3.5942 17.4216 1.86374 16.1014 2.50337C14.8389 3.11846 13.9284 4.12114 13.143 5.10831C13.8189 5.16941 14.5047 5.18539 15.1819 5.15127C16.0095 5.11658 17.5387 5.05651 18.0233 4.42555ZM11.229 22.5677H2.88897C2.57017 22.5677 2.31177 22.3092 2.31177 21.9902V11.6587H11.229V22.5677ZM21.6752 21.5557C21.6752 21.6366 21.6659 21.7151 21.649 21.7904V21.9902C21.649 22.3092 21.3906 22.5677 21.0718 22.5677H19.7145C19.7129 22.5677 19.7112 22.5676 19.7097 22.5676H12.7588V11.6587H21.6752V21.5557Z" fill="#E3AC00"/>
 </svg>

+ 1 - 1
src/assets/images/tab/tab3.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M20.8889 20V18.2222C20.8889 16.5655 19.7557 15.1734 18.2222 14.7787M15.1111 4.25845C16.4141 4.78591 17.3333 6.06339 17.3333 7.55556C17.3333 9.04772 16.4141 10.3252 15.1111 10.8527M16.4444 20C16.4444 18.3433 16.4444 17.515 16.1738 16.8616C15.8129 15.9904 15.1207 15.2982 14.2495 14.9373C13.5961 14.6667 12.7678 14.6667 11.1111 14.6667H8.44442C6.78774 14.6667 5.9594 14.6667 5.30599 14.9373C4.43478 15.2982 3.7426 15.9904 3.38173 16.8616C3.11108 17.515 3.11108 18.3433 3.11108 20M13.3333 7.55556C13.3333 9.51923 11.7414 11.1111 9.77775 11.1111C7.81407 11.1111 6.2222 9.51923 6.2222 7.55556C6.2222 5.59188 7.81407 4 9.77775 4C11.7414 4 13.3333 5.59188 13.3333 7.55556Z" stroke="#555555" stroke-width="1.77778" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M11.9509 5.31741C9.50303 5.31876 7.15591 6.2921 5.42551 8.02346C3.69511 9.75482 2.72305 12.1025 2.72305 14.5503C2.69417 15.7807 2.91156 17.0044 3.36245 18.1496C3.81334 19.2947 4.48862 20.3382 5.3486 21.2186C6.20858 22.099 7.23589 22.7986 8.37014 23.2762C9.50439 23.7538 10.7227 23.9999 11.9534 23.9999C13.1841 23.9999 14.4024 23.7538 15.5367 23.2762C16.6709 22.7986 17.6982 22.099 18.5582 21.2186C19.4182 20.3382 20.0935 19.2947 20.5444 18.1496C20.9953 17.0044 21.2126 15.7807 21.1838 14.5503C21.1838 12.1019 20.2112 9.75371 18.4801 8.02226C16.749 6.2908 14.401 5.31786 11.9526 5.31741H11.9509ZM16.698 13.717L14.8786 15.4889L15.308 17.9923C15.4522 18.8324 14.9719 19.199 14.2014 18.7951L11.9509 17.6121L9.70204 18.7951C8.94679 19.1922 8.44949 18.8494 8.59546 17.9923L9.02484 15.4889L7.20543 13.717C6.59441 13.1213 6.76755 12.5425 7.62974 12.4169L10.1433 12.052L11.2686 9.77433C11.6454 9.01057 12.2513 8.9936 12.6366 9.77433L13.7618 12.052L16.2754 12.4169C17.1206 12.5391 17.3209 13.1094 16.6997 13.717H16.698V13.717ZM20.5778 2.56603e-05H14.8752C14.7296 0.0010708 14.5885 0.050989 14.4746 0.141776C14.3608 0.232563 14.2807 0.358959 14.2472 0.500698L12.4855 3.96642C12.4855 3.96642 16.2533 4.19386 18.4784 6.33406L21.1057 1.03531C21.1892 0.927097 21.2361 0.795167 21.2398 0.658549C21.2398 0.571924 21.2227 0.48615 21.1895 0.40614C21.1563 0.32613 21.1076 0.253456 21.0463 0.192282C20.985 0.131107 20.9122 0.0826342 20.8321 0.0496396C20.752 0.0166451 20.6662 -0.00022284 20.5795 2.22283e-06L20.5778 2.56603e-05ZM11.3229 3.96642L9.5646 0.500721C9.53115 0.35897 9.45106 0.232561 9.33718 0.141764C9.22331 0.0509672 9.08223 0.00104466 8.93659 2.22283e-06H3.22886C3.05462 0.00132644 2.88788 0.0711308 2.76467 0.194341C2.64145 0.317552 2.57164 0.484282 2.57031 0.658526C2.57371 0.794299 2.62124 0.928385 2.7044 1.03699L5.3317 6.33403C7.55676 4.19384 11.3229 3.9664 11.3229 3.9664L11.3229 3.96642Z" fill="#737375"/>
 </svg>

+ 1 - 1
src/assets/images/tab/tab3_active.svg

@@ -1,3 +1,3 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M20.8889 20V18.2222C20.8889 16.5655 19.7557 15.1734 18.2222 14.7787M15.1111 4.25845C16.4141 4.78591 17.3333 6.06339 17.3333 7.55556C17.3333 9.04772 16.4141 10.3252 15.1111 10.8527M16.4444 20C16.4444 18.3433 16.4444 17.515 16.1738 16.8616C15.8129 15.9904 15.1207 15.2982 14.2495 14.9373C13.5961 14.6667 12.7678 14.6667 11.1111 14.6667H8.44442C6.78774 14.6667 5.9594 14.6667 5.30599 14.9373C4.43478 15.2982 3.7426 15.9904 3.38173 16.8616C3.11108 17.515 3.11108 18.3433 3.11108 20M13.3333 7.55556C13.3333 9.51923 11.7414 11.1111 9.77775 11.1111C7.81407 11.1111 6.2222 9.51923 6.2222 7.55556C6.2222 5.59188 7.81407 4 9.77775 4C11.7414 4 13.3333 5.59188 13.3333 7.55556Z" stroke="#FFC300" stroke-width="1.77778" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M11.9509 5.31741C9.50303 5.31876 7.15591 6.2921 5.42551 8.02346C3.69511 9.75482 2.72305 12.1025 2.72305 14.5503C2.69417 15.7807 2.91156 17.0044 3.36245 18.1496C3.81334 19.2947 4.48862 20.3382 5.3486 21.2186C6.20858 22.099 7.23589 22.7986 8.37014 23.2762C9.50439 23.7538 10.7227 23.9999 11.9534 23.9999C13.1841 23.9999 14.4024 23.7538 15.5367 23.2762C16.6709 22.7986 17.6982 22.099 18.5582 21.2186C19.4182 20.3382 20.0935 19.2947 20.5444 18.1496C20.9953 17.0044 21.2126 15.7807 21.1838 14.5503C21.1838 12.1019 20.2112 9.75371 18.4801 8.02226C16.749 6.2908 14.401 5.31786 11.9526 5.31741H11.9509ZM16.698 13.717L14.8786 15.4889L15.308 17.9923C15.4522 18.8324 14.9719 19.199 14.2014 18.7951L11.9509 17.6121L9.70204 18.7951C8.94679 19.1922 8.44949 18.8494 8.59546 17.9923L9.02484 15.4889L7.20543 13.717C6.59441 13.1213 6.76755 12.5425 7.62974 12.4169L10.1433 12.052L11.2686 9.77433C11.6454 9.01057 12.2513 8.9936 12.6366 9.77433L13.7618 12.052L16.2754 12.4169C17.1206 12.5391 17.3209 13.1094 16.6997 13.717H16.698V13.717ZM20.5778 2.56603e-05H14.8752C14.7296 0.0010708 14.5885 0.050989 14.4746 0.141776C14.3608 0.232563 14.2807 0.358959 14.2472 0.500698L12.4855 3.96642C12.4855 3.96642 16.2533 4.19386 18.4784 6.33406L21.1057 1.03531C21.1892 0.927097 21.2361 0.795167 21.2398 0.658549C21.2398 0.571924 21.2227 0.48615 21.1895 0.40614C21.1563 0.32613 21.1076 0.253456 21.0463 0.192282C20.985 0.131107 20.9122 0.0826342 20.8321 0.0496396C20.752 0.0166451 20.6662 -0.00022284 20.5795 2.22283e-06L20.5778 2.56603e-05ZM11.3229 3.96642L9.5646 0.500721C9.53115 0.35897 9.45106 0.232561 9.33718 0.141764C9.22331 0.0509672 9.08223 0.00104466 8.93659 2.22283e-06H3.22886C3.05462 0.00132644 2.88788 0.0711308 2.76467 0.194341C2.64145 0.317552 2.57164 0.484282 2.57031 0.658526C2.57371 0.794299 2.62124 0.928385 2.7044 1.03699L5.3317 6.33403C7.55676 4.19384 11.3229 3.9664 11.3229 3.9664L11.3229 3.96642Z" fill="#E3AC00"/>
 </svg>

+ 2 - 2
src/components/NavBar/index.vue

@@ -56,8 +56,8 @@ const menus = ref([
   {
     titleKey: "tab.gameShow",
     path: "/game-show",
-    icon: tab1Active,
-    iconUn: tab1
+    icon: tab2Active,
+    iconUn: tab2
   },
   {
     titleKey: "tab.rank",

+ 161 - 38
src/components/headerView/index.vue

@@ -11,20 +11,47 @@
         <div class="header-right">
           <lang-popover ref="langPopoverRef" />
           <div class="avatar-dropdown-container" @click="onToggleAvatarDropdown">
-            <img src="@/assets/images/common/logo.svg" class="icon icon-avatar" />
+            <img :src="avatarSrc" class="icon icon-avatar" />
             <img src="@/assets/images/common/icon_down.svg" class="icon icon-down" />
             <div v-if="isAvatarDropdownOpen" class="dropdown-container">
-              <div class="uid-info" @click="onCopy">
-                <div class="uid-info-left">
-                  <img src="@/assets/images/common/code.svg" />
-                  <span> {{ userInfo?.uid }} </span>
+              <!-- 用户信息区 -->
+              <div class="user-profile-section">
+                <img :src="avatarSrc" class="profile-avatar" />
+                <div class="profile-info">
+                  <div class="profile-name">{{ userInfo?.nickname || userInfo?.username || 'User' }}</div>
+                  <div class="profile-uid" @click="onCopy">
+                    <span>ID: {{ userInfo?.uid }}</span>
+                    <img src="@/assets/images/common/copy-icon.svg" class="copy-icon" />
+                  </div>
                 </div>
-                <img src="@/assets/images/common/copy-icon.svg" />
               </div>
 
+              <!-- 余额显示 -->
+              <div class="balance-section">
+                <div class="balance-label">{{ $t('finance.balance') }}</div>
+                <div class="balance-value">{{ userInfo?.balance ?? '0.00' }}</div>
+              </div>
+
+              <!-- 基本信息 -->
+              <div class="info-section">
+                <div class="info-item">
+                  <span class="info-label">{{ $t('user.region') }}</span>
+                  <span class="info-value">{{ userInfo?.region || '--' }}</span>
+                </div>
+                <div class="info-item">
+                  <span class="info-label">{{ $t('user.age') }}</span>
+                  <span class="info-value">{{ userInfo?.age || '--' }}</span>
+                </div>
+                <div class="info-item">
+                  <span class="info-label">{{ $t('user.gender') }}</span>
+                  <span class="info-value">{{ genderText }}</span>
+                </div>
+              </div>
+
+              <!-- 退出登录 -->
               <div class="logout-wrapper" @click="onLogout">
                 <img src="@/assets/images/common/exit.svg" />
-                <span> {{ $t("退出登录") }} </span>
+                <span>{{ $t("退出登录") }}</span>
               </div>
             </div>
           </div>
@@ -38,12 +65,23 @@
 import LangPopover from "@/components/LangPopover/index.vue";
 import { computed, onMounted, onUnmounted, ref, watch } from "vue";
 import { useRouter } from "vue-router";
+import { useI18n } from "vue-i18n";
 import { copyText } from "@/utils/utils";
 import { useGlobalStore } from "@/store/modules/globalStore";
 import { requestGetUserInfo } from "@/api";
+import defaultAvatar from "@/assets/images/common/logo.svg";
 
+const { t } = useI18n();
 const router = useRouter();
 const userInfo = ref<UserInfo>();
+const avatarSrc = computed(() => userInfo.value?.avatar || defaultAvatar);
+
+const genderText = computed(() => {
+  const g = userInfo.value?.gender;
+  if (g === 1) return t('user.male');
+  if (g === 2) return t('user.female');
+  return '--';
+});
 
 const isAvatarDropdownOpen = ref(false);
 const langPopoverRef = ref<typeof LangPopover>(null);
@@ -72,7 +110,7 @@ const handleClickOutside = (event: Event) => {
 
 const getUserInfo = async () => {
   const res = await requestGetUserInfo();
-  userInfo.value = res.data;
+  userInfo.value = res.data.user || res.data;
 };
 const globalStore = useGlobalStore();
 const isLoggedIn = computed(() => globalStore.isLoggedIn);
@@ -155,6 +193,8 @@ onUnmounted(() => {
       margin-left: 7px;
       width: min(8vw, 38.4px);
       height: min(8vw, 38.4px);
+      border-radius: 50%;
+      object-fit: cover;
     }
 
     .icon-down {
@@ -169,52 +209,135 @@ onUnmounted(() => {
       position: absolute;
       top: 150%;
       right: 0;
-      width: 164px;
-      height: 92px;
-      background: #161617;
-      border-radius: 8px;
+      width: 220px;
+      background: #1e1e20;
+      border-radius: 12px;
       display: flex;
       flex-direction: column;
-      align-items: flex-start;
-      padding: 4px;
-      gap: 4px;
+      padding: 12px;
+      gap: 8px;
       z-index: 50;
-      box-shadow: 0px 0px 5px 0px rgba(128, 128, 128, 0.2);
-      .uid-info {
-        width: 156px;
-        height: 40px;
-        background: #232325;
-        border-radius: 4px;
+      box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.4);
+
+      // 用户信息区
+      .user-profile-section {
         display: flex;
-        flex-direction: row;
-        justify-content: space-between;
         align-items: center;
-        padding: 8px 12px;
         gap: 10px;
-        cursor: pointer;
-        .uid-info-left {
+        padding-bottom: 10px;
+        border-bottom: 1px solid #2a2a2c;
+
+        .profile-avatar {
+          width: 42px;
+          height: 42px;
+          border-radius: 50%;
+          object-fit: cover;
+          border: 2px solid #e8a820;
+          flex-shrink: 0;
+        }
+
+        .profile-info {
+          flex: 1;
+          min-width: 0;
+
+          .profile-name {
+            font-size: 14px;
+            font-weight: 600;
+            color: #fff;
+            white-space: nowrap;
+            overflow: hidden;
+            text-overflow: ellipsis;
+          }
+
+          .profile-uid {
+            display: flex;
+            align-items: center;
+            gap: 4px;
+            margin-top: 2px;
+            cursor: pointer;
+
+            span {
+              font-size: 11px;
+              color: #828694;
+            }
+
+            .copy-icon {
+              width: 12px;
+              height: 12px;
+              opacity: 0.6;
+            }
+          }
+        }
+      }
+
+      // 余额显示
+      .balance-section {
+        background: linear-gradient(135deg, #2a2520 0%, #1e1e20 100%);
+        border: 1px solid #3a3020;
+        border-radius: 8px;
+        padding: 10px 12px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        .balance-label {
+          font-size: 12px;
+          color: #828694;
+        }
+
+        .balance-value {
+          font-size: 18px;
+          font-weight: 700;
+          color: #e8a820;
+        }
+      }
+
+      // 基本信息
+      .info-section {
+        display: flex;
+        flex-direction: column;
+        gap: 6px;
+        padding: 6px 0;
+        border-bottom: 1px solid #2a2a2c;
+
+        .info-item {
           display: flex;
+          justify-content: space-between;
           align-items: center;
-          justify-content: flex-start;
-          padding: 0px;
-          gap: 4px;
-          width: 90px;
-          height: 26px;
+          padding: 2px 4px;
+
+          .info-label {
+            font-size: 12px;
+            color: #828694;
+          }
+
+          .info-value {
+            font-size: 12px;
+            color: #d0d0d0;
+          }
         }
       }
 
+      // 退出登录
       .logout-wrapper {
-        width: 156px;
-        height: 40px;
-        border-radius: 4px;
         display: flex;
-        flex-direction: row;
-        justify-content: flex-start;
         align-items: center;
-        padding: 8px 12px;
-        gap: 4px;
+        padding: 8px 4px;
+        gap: 6px;
         cursor: pointer;
         color: #828694;
+        font-size: 13px;
+        border-radius: 6px;
+        transition: background 0.2s;
+
+        &:hover {
+          background: #232325;
+        }
+
+        img {
+          width: 16px;
+          height: 16px;
+        }
       }
     }
   }

+ 6 - 1
src/locales/en.json

@@ -231,7 +231,12 @@
     "idCard": "ID Card",
     "changePassword": "Change Password",
     "oldPassword": "Old Password",
-    "paymentAccount": "Payment Account"
+    "paymentAccount": "Payment Account",
+    "region": "Region",
+    "age": "Age",
+    "gender": "Gender",
+    "male": "Male",
+    "female": "Female"
   },
   "finance": {
     "balance": "Balance",

+ 6 - 1
src/locales/id.json

@@ -206,7 +206,12 @@
     "idCard": "KTP",
     "changePassword": "Ubah kata sandi",
     "oldPassword": "Kata sandi lama",
-    "paymentAccount": "Akun pembayaran"
+    "paymentAccount": "Akun pembayaran",
+    "region": "Wilayah",
+    "age": "Usia",
+    "gender": "Jenis Kelamin",
+    "male": "Laki-laki",
+    "female": "Perempuan"
   },
   "finance": {
     "balance": "Saldo",

+ 6 - 1
src/locales/vi.json

@@ -206,7 +206,12 @@
     "idCard": "CMND/CCCD",
     "changePassword": "Đổi mật khẩu",
     "oldPassword": "Mật khẩu cũ",
-    "paymentAccount": "Tài khoản thanh toán"
+    "paymentAccount": "Tài khoản thanh toán",
+    "region": "Khu vực",
+    "age": "Tuổi",
+    "gender": "Giới tính",
+    "male": "Nam",
+    "female": "Nữ"
   },
   "finance": {
     "balance": "Số dư",

+ 6 - 1
src/locales/zh.json

@@ -231,7 +231,12 @@
     "idCard": "身份证号",
     "changePassword": "修改密码",
     "oldPassword": "原密码",
-    "paymentAccount": "收款账户"
+    "paymentAccount": "收款账户",
+    "region": "地区",
+    "age": "年龄",
+    "gender": "性别",
+    "male": "男",
+    "female": "女"
   },
   "finance": {
     "balance": "余额",

+ 4 - 2
src/router/index.js

@@ -185,12 +185,14 @@ const router = createRouter({
         {
           path: "material",
           name: "material",
-          component: loadMaterial
+          component: loadMaterial,
+          meta: { requiresAuth: true }
         },
         {
           path: "material/detail/:id",
           name: "material-detail",
-          component: loadMaterialDetail
+          component: loadMaterialDetail,
+          meta: { requiresAuth: true }
         },
         // 个人资料
         {

+ 1 - 2
src/views/about/index.vue

@@ -97,8 +97,7 @@ const router = useRouter();
 const version = ref('1.0.0');
 
 const openLink = (type: string) => {
-  // 可以打开对应的网页
-  console.log('Opening:', type);
+  router.push(`/${type}`);
 };
 
 const goContact = () => {

+ 6 - 40
src/views/home/index.vue

@@ -13,27 +13,19 @@
       <!-- 快捷入口 -->
       <div class="quick-entry">
         <div class="entry-item" @click="goSignIn">
-          <div class="icon-wrapper sign-in">
-            <van-icon name="calendar-o" />
-          </div>
+          <img src="@/assets/images/home/icon_checkin.svg" class="entry-icon" />
           <span>{{ $t('home.checkIn') }}</span>
         </div>
         <div class="entry-item" @click="goWelfareTask">
-          <div class="icon-wrapper welfare">
-            <van-icon name="gift-o" />
-          </div>
+          <img src="@/assets/images/home/icon_welfare.svg" class="entry-icon" />
           <span>{{ $t('home.welfareTask') }}</span>
         </div>
         <div class="entry-item" @click="goInvite">
-          <div class="icon-wrapper invite">
-            <van-icon name="friends-o" />
-          </div>
+          <img src="@/assets/images/home/icon_invite.svg" class="entry-icon" />
           <span>{{ $t('home.invitationTask') }}</span>
         </div>
         <div class="entry-item" @click="goTeamIncome">
-          <div class="icon-wrapper income">
-            <van-icon name="gold-coin-o" />
-          </div>
+          <img src="@/assets/images/home/icon_income.svg" class="entry-icon" />
           <span>{{ $t('home.permanentIncome') }}</span>
         </div>
       </div>
@@ -238,37 +230,11 @@ onMounted(() => {
     align-items: center;
     gap: min(2.133vw, 10.24px);
 
-    .icon-wrapper {
+    .entry-icon {
       width: min(11.733vw, 56.32px);
       height: min(11.733vw, 56.32px);
       border-radius: min(3.2vw, 15.36px);
-      display: flex;
-      align-items: center;
-      justify-content: center;
-
-      .van-icon {
-        font-size: min(5.867vw, 28.16px);
-      }
-
-      &.sign-in {
-        background: linear-gradient(135deg, #ff6b6b 0%, #ff8e53 100%);
-        color: #fff;
-      }
-
-      &.welfare {
-        background: linear-gradient(135deg, #a855f7 0%, #ec4899 100%);
-        color: #fff;
-      }
-
-      &.invite {
-        background: linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);
-        color: #fff;
-      }
-
-      &.income {
-        background: linear-gradient(135deg, #ffc300 0%, #ff9500 100%);
-        color: #fff;
-      }
+      object-fit: cover;
     }
 
     span {

+ 3 - 1
src/views/mine/index.vue

@@ -2,7 +2,7 @@
   <div class="mine-page">
     <!-- 用户信息 -->
     <div class="user-section">
-      <div class="user-info">
+      <div class="user-info" @click="goProfile">
         <div class="avatar">
           <img :src="userInfo?.avatar || defaultAvatar" alt="" />
         </div>
@@ -10,6 +10,7 @@
           <div class="username">{{ userInfo?.nickname || userInfo?.username || 'User' }}</div>
           <div class="id">ID: {{ userInfo?.uid || userInfo?.id || '--' }}</div>
         </div>
+        <van-icon name="arrow" color="rgba(255,255,255,0.3)" />
       </div>
     </div>
 
@@ -92,6 +93,7 @@ const goPassword = () => router.push('/password');
 const goNotice = () => router.push('/notice');
 const goTransactionRecord = () => router.push('/transaction-record');
 const goContact = () => router.push('/contact');
+const goProfile = () => router.push('/profile');
 const goAbout = () => router.push('/about');
 const goMaterial = () => router.push('/material');
 

+ 9 - 4
src/views/profile/index.vue

@@ -91,6 +91,7 @@ import { useI18n } from "vue-i18n";
 import { showToast } from "vant";
 import { useUserStore } from "@/store/modules/userStore";
 import { requestUpdateUserInfo } from "@/api/user";
+import { uploadFileToOss } from "@/api/upload";
 import defaultAvatar from "@/assets/images/common/icon_avatar.svg";
 
 const { t } = useI18n();
@@ -121,10 +122,14 @@ const handleAvatarClick = () => {
 
 const afterAvatarRead = async (file: any) => {
   try {
-    // 这里应该先上传图片获取URL
-    const res = await requestUpdateUserInfo({
-      avatar: file.content
-    });
+    // 先上传图片获取URL
+    const url = await uploadFileToOss(file.file);
+    if (!url) {
+      showToast('Upload failed');
+      return;
+    }
+    // 再用URL更新头像
+    const res = await requestUpdateUserInfo({ avatar: url });
     if (res.code === 200) {
       showToast(t('common.save') + ' ' + t('task.completed'));
       userStore.fetchUserInfo();

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác