diff --git a/package.json b/package.json index a49ea5a..0e57ef8 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "typescript": "~5.9.3", "vite": "^7.3.0", "vite-plugin-vue-devtools": "^8.0.5", + "vite-svg-loader": "^5.1.0", "vue-tsc": "^3.2.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4c562b..475f10d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,9 @@ importers: vite-plugin-vue-devtools: specifier: ^8.0.5 version: 8.0.5(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.26(typescript@5.9.3)) + vite-svg-loader: + specifier: ^5.1.0 + version: 5.1.0(vue@3.5.26(typescript@5.9.3)) vue-tsc: specifier: ^3.2.1 version: 3.2.1(typescript@5.9.3) @@ -713,6 +716,10 @@ packages: peerDependencies: vue: ^2.7.0 || ^3.0.0 + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@tsconfig/node24@24.0.3': resolution: {integrity: sha512-vcERKtKQKHgzt/vfS3Gjasd8SUI2a0WZXpgJURdJsMySpS5+ctgbPfuLj2z/W+w4lAfTWxoN4upKfu2WzIRYnw==} @@ -1007,6 +1014,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1021,11 +1032,30 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -1060,6 +1090,19 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} @@ -1067,6 +1110,10 @@ packages: resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + entities@7.0.0: resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} engines: {node: '>=0.12'} @@ -1429,6 +1476,12 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -1705,6 +1758,11 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + synckit@0.11.11: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1809,6 +1867,11 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite-svg-loader@5.1.0: + resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==} + peerDependencies: + vue: '>=3.2.13' + vite@7.3.0: resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2469,6 +2532,8 @@ snapshots: '@tanstack/virtual-core': 3.13.13 vue: 3.5.26(typescript@5.9.3) + '@trysound/sax@0.2.0': {} + '@tsconfig/node24@24.0.3': {} '@types/estree@1.0.8': {} @@ -2851,6 +2916,8 @@ snapshots: color-name@1.1.4: {} + commander@7.2.0: {} + concat-map@0.0.1: {} convert-source-map@2.0.0: {} @@ -2865,8 +2932,32 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + cssesc@3.0.0: {} + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + csstype@3.2.3: {} debug@4.4.3: @@ -2888,6 +2979,24 @@ snapshots: detect-libc@2.1.2: {} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + electron-to-chromium@1.5.267: {} enhanced-resolve@5.18.4: @@ -2895,6 +3004,8 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.0 + entities@4.5.0: {} + entities@7.0.0: {} error-stack-parser-es@1.0.5: {} @@ -3226,6 +3337,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + memorystream@0.3.1: {} merge2@1.4.1: {} @@ -3445,6 +3560,16 @@ snapshots: dependencies: has-flag: 4.0.0 + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.2.2 + css-tree: 2.3.1 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + synckit@0.11.11: dependencies: '@pkgr/core': 0.2.9 @@ -3564,6 +3689,11 @@ snapshots: transitivePeerDependencies: - supports-color + vite-svg-loader@5.1.0(vue@3.5.26(typescript@5.9.3)): + dependencies: + svgo: 3.3.2 + vue: 3.5.26(typescript@5.9.3) + vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.27.2 diff --git a/src/App.vue b/src/App.vue index 84e41c3..e928ad7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,25 @@ diff --git a/src/components/ui/input/Input.vue b/src/components/ui/input/Input.vue new file mode 100644 index 0000000..e5135c1 --- /dev/null +++ b/src/components/ui/input/Input.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/components/ui/input/index.ts b/src/components/ui/input/index.ts new file mode 100644 index 0000000..9976b86 --- /dev/null +++ b/src/components/ui/input/index.ts @@ -0,0 +1 @@ +export { default as Input } from "./Input.vue" diff --git a/src/components/user-center/DeviceList.vue b/src/components/user-center/DeviceList.vue new file mode 100644 index 0000000..d37f9eb --- /dev/null +++ b/src/components/user-center/DeviceList.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/components/user-center/PaymentMethod.vue b/src/components/user-center/PaymentMethod.vue new file mode 100644 index 0000000..1b2666c --- /dev/null +++ b/src/components/user-center/PaymentMethod.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/components/user-center/PlanCard.vue b/src/components/user-center/PlanCard.vue new file mode 100644 index 0000000..5c16ddf --- /dev/null +++ b/src/components/user-center/PlanCard.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/pages/Help/DownloadMethodList/DownloadMethodList.vue b/src/pages/Help/DownloadMethodList/DownloadMethodList.vue new file mode 100644 index 0000000..b383b94 --- /dev/null +++ b/src/pages/Help/DownloadMethodList/DownloadMethodList.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/pages/Help/DownloadMethodList/Star-1.svg b/src/pages/Help/DownloadMethodList/Star-1.svg new file mode 100644 index 0000000..af5649b --- /dev/null +++ b/src/pages/Help/DownloadMethodList/Star-1.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/Help/DownloadMethodList/arrow-icon.svg b/src/pages/Help/DownloadMethodList/arrow-icon.svg new file mode 100644 index 0000000..8ea365c --- /dev/null +++ b/src/pages/Help/DownloadMethodList/arrow-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/Help/FAQAccordion/arrow-icon2.svg b/src/pages/Help/FAQAccordion/arrow-icon2.svg new file mode 100644 index 0000000..f35edce --- /dev/null +++ b/src/pages/Help/FAQAccordion/arrow-icon2.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/Help/FAQAccordion/index.vue b/src/pages/Help/FAQAccordion/index.vue new file mode 100644 index 0000000..6102563 --- /dev/null +++ b/src/pages/Help/FAQAccordion/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/pages/Help/index.vue b/src/pages/Help/index.vue index 6f2d2ad..6ecab67 100644 --- a/src/pages/Help/index.vue +++ b/src/pages/Help/index.vue @@ -1,10 +1,94 @@ diff --git a/src/pages/Home/components/LoginForm.vue b/src/pages/Home/components/LoginForm.vue index 1c1eb4c..f38c902 100644 --- a/src/pages/Home/components/LoginForm.vue +++ b/src/pages/Home/components/LoginForm.vue @@ -1,26 +1,84 @@ + + - + diff --git a/src/pages/Home/components/LoginFormModal.vue b/src/pages/Home/components/LoginFormModal.vue index d70d886..1eed479 100644 --- a/src/pages/Home/components/LoginFormModal.vue +++ b/src/pages/Home/components/LoginFormModal.vue @@ -1,10 +1,15 @@