From c372a18ca07d93a827af1cd1972a076749361b64 Mon Sep 17 00:00:00 2001 From: zyronon Date: Sun, 3 Aug 2025 22:02:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto-imports.d.ts | 10 - components.d.ts | 43 -- package.json | 5 +- pnpm-lock.yaml | 241 ++----- src/assets/css/style.scss | 79 +-- src/assets/css/variable.scss | 0 src/components/BaseButton.vue | 60 +- src/components/BaseIcon.vue | 2 +- src/global.d.ts | 2 +- src/hooks/article.ts | 2 +- src/hooks/dict.ts | 4 +- src/hooks/translate.ts | 2 - src/main.ts | 11 - src/pages/pc/Setting.vue | 124 ++-- src/pages/pc/article/ArticleHomePage.vue | 7 +- src/pages/pc/article/BatchEditArticlePage.vue | 2 +- src/pages/pc/article/BookDetail.vue | 3 +- .../pc/article/components/EditArticle2.vue | 55 +- .../components/EditBatchArticleModal.vue | 2 +- src/pages/pc/article/components/EditBook.vue | 57 +- .../pc/article/components/QuestionItem.vue | 4 +- .../pc/article/practice-article/index.vue | 165 +++-- src/pages/pc/components/BaseTable.vue | 25 +- src/pages/pc/components/Book.vue | 7 +- src/pages/pc/components/EditAbleText.vue | 3 +- src/pages/pc/components/IconWrapper.vue | 2 +- src/pages/pc/components/Panel.vue | 8 +- src/pages/pc/components/Setting.vue | 644 ------------------ src/pages/pc/components/WordItem.vue | 5 +- src/pages/pc/components/list/List.vue | 2 +- src/pages/pc/components/list/WordList.vue | 5 +- .../components/toolbar/TranslateSetting.vue | 25 +- src/pages/pc/home/HomeIndex.vue | 5 +- src/pages/pc/index.vue | 2 +- src/pages/pc/word/DictDetail.vue | 72 +- src/pages/pc/word/DictList.vue | 2 +- src/pages/pc/word/StudyWord.vue | 3 +- src/pages/pc/word/WordHomePage.vue | 21 +- src/pages/pc/word/components/Footer.vue | 5 +- .../components/SentenceHightLightWord.vue | 2 +- src/pages/pc/word/components/Type.vue | 2 +- src/pages/test/test.vue | 5 +- src/router.ts | 3 +- src/stores/base.ts | 2 +- src/stores/setting.ts | 3 +- src/utils/article.ts | 2 +- src/utils/http.ts | 50 +- src/utils/index.ts | 58 +- uno.config.ts | 1 + vite.config.ts | 30 +- 50 files changed, 540 insertions(+), 1334 deletions(-) delete mode 100644 auto-imports.d.ts delete mode 100644 components.d.ts delete mode 100644 src/assets/css/variable.scss delete mode 100644 src/pages/pc/components/Setting.vue diff --git a/auto-imports.d.ts b/auto-imports.d.ts deleted file mode 100644 index d7d6df67..00000000 --- a/auto-imports.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// noinspection JSUnusedGlobalSymbols -// Generated by unplugin-auto-import -export {} -declare global { - const ElMessage: typeof import('element-plus/es')['ElMessage'] - const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] -} diff --git a/components.d.ts b/components.d.ts deleted file mode 100644 index 8741e424..00000000 --- a/components.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// Generated by unplugin-vue-components -// Read more: https://github.com/vuejs/core/pull/3399 -export {} - -declare module 'vue' { - export interface GlobalComponents { - BackIcon: typeof import('./src/components/icon/BackIcon.vue')['default'] - BaseButton: typeof import('./src/components/BaseButton.vue')['default'] - BaseIcon: typeof import('./src/components/BaseIcon.vue')['default'] - Close: typeof import('./src/components/icon/Close.vue')['default'] - DeleteIcon: typeof import('./src/components/icon/DeleteIcon.vue')['default'] - ElButton: typeof import('element-plus/es')['ElButton'] - ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] - ElForm: typeof import('element-plus/es')['ElForm'] - ElFormItem: typeof import('element-plus/es')['ElFormItem'] - ElInput: typeof import('element-plus/es')['ElInput'] - ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] - ElOption: typeof import('element-plus/es')['ElOption'] - ElPagination: typeof import('element-plus/es')['ElPagination'] - ElPopover: typeof import('element-plus/es')['ElPopover'] - ElProgress: typeof import('element-plus/es')['ElProgress'] - ElRadio: typeof import('element-plus/es')['ElRadio'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] - ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] - ElSelect: typeof import('element-plus/es')['ElSelect'] - ElSlider: typeof import('element-plus/es')['ElSlider'] - ElSwitch: typeof import('element-plus/es')['ElSwitch'] - ElTableV2: typeof import('element-plus/es')['ElTableV2'] - ElUpload: typeof import('element-plus/es')['ElUpload'] - Empty: typeof import('./src/components/Empty.vue')['default'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] - SlideHorizontal: typeof import('./src/components/slide/SlideHorizontal.vue')['default'] - SlideItem: typeof import('./src/components/slide/SlideItem.vue')['default'] - VolumeIcon: typeof import('./src/components/icon/VolumeIcon.vue')['default'] - } - export interface ComponentCustomProperties { - vLoading: typeof import('element-plus/es')['ElLoadingDirective'] - } -} diff --git a/package.json b/package.json index 49df21b3..02f1653e 100644 --- a/package.json +++ b/package.json @@ -26,16 +26,15 @@ "git-last-commit": "^1.0.1", "libarchive-wasm": "^1.2.0", "localforage": "^1.10.0", - "lodash-es": "^4.17.21", "mitt": "^3.0.1", "nanoid": "^5.1.5", "pinia": "^3.0.3", "sentence-splitter": "^4.4.1", "string-comparison": "^1.3.0", "tesseract.js": "^4.1.4", + "unplugin-element-plus": "^0.10.0", "vue": "^3.5.17", "vue-activity-calendar": "^1.2.2", - "vue-i18n": "^9.14.4", "vue-router": "^4.5.1", "vue-virtual-scroller": "2.0.0-beta.8" }, @@ -57,8 +56,6 @@ "tslib": "^2.8.1", "typescript": "^5.8.3", "unocss": "^66.4.0", - "unplugin-auto-import": "^0.16.7", - "unplugin-vue-components": "^0.25.2", "unplugin-vue-macros": "^2.14.5", "vite": "^7.0.3", "vite-plugin-cdn-import": "^1.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cc8f49f..92a77dbf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,9 +44,6 @@ importers: localforage: specifier: ^1.10.0 version: 1.10.0 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 mitt: specifier: ^3.0.1 version: 3.0.1 @@ -65,15 +62,15 @@ importers: tesseract.js: specifier: ^4.1.4 version: 4.1.4 + unplugin-element-plus: + specifier: ^0.10.0 + version: 0.10.0 vue: specifier: ^3.5.17 version: 3.5.17(typescript@5.8.3) vue-activity-calendar: specifier: ^1.2.2 version: 1.2.2 - vue-i18n: - specifier: ^9.14.4 - version: 9.14.4(vue@3.5.17(typescript@5.8.3)) vue-router: specifier: ^4.5.1 version: 4.5.1(vue@3.5.17(typescript@5.8.3)) @@ -108,9 +105,6 @@ importers: cz-conventional-changelog: specifier: ^3.3.0 version: 3.3.0(@types/node@24.0.11)(typescript@5.8.3) - daisyui: - specifier: ^5.0.50 - version: 5.0.50 esm: specifier: ^3.2.25 version: 3.2.25 @@ -136,11 +130,11 @@ importers: specifier: ^66.4.0 version: 66.4.0(postcss@8.5.6)(vite@7.0.3(@types/node@24.0.11)(jiti@2.4.2)(sass@1.89.2)) unplugin-auto-import: - specifier: ^0.16.7 - version: 0.16.7(@vueuse/core@9.13.0(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.2) + specifier: '^19.3.0 ' + version: 19.3.0(@vueuse/core@9.13.0(vue@3.5.17(typescript@5.8.3))) unplugin-vue-components: - specifier: ^0.25.2 - version: 0.25.2(@babel/parser@7.28.0)(rollup@4.44.2)(vue@3.5.17(typescript@5.8.3)) + specifier: ^28.8.0 + version: 28.8.0(@babel/parser@7.28.0)(vue@3.5.17(typescript@5.8.3)) unplugin-vue-macros: specifier: ^2.14.5 version: 2.14.5(@vueuse/core@9.13.0(vue@3.5.17(typescript@5.8.3)))(esbuild@0.25.6)(rollup@4.44.2)(typescript@5.8.3)(vite@7.0.3(@types/node@24.0.11)(jiti@2.4.2)(sass@1.89.2))(vue-tsc@3.0.1(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3)) @@ -166,9 +160,6 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} @@ -509,18 +500,6 @@ packages: '@imengyu/vue3-context-menu@1.5.1': resolution: {integrity: sha512-Y3M/PVOj0Fz7lu3aviIu6NKFYjqMP1tZSffSiYy55JdAfcm/bD06dRT9RL5AccOqTSJdvcAImhiYvmBnPKtYEg==} - '@intlify/core-base@9.14.4': - resolution: {integrity: sha512-vtZCt7NqWhKEtHa3SD/322DlgP5uR9MqWxnE0y8Q0tjDs9H5Lxhss+b5wv8rmuXRoHKLESNgw9d+EN9ybBbj9g==} - engines: {node: '>= 16'} - - '@intlify/message-compiler@9.14.4': - resolution: {integrity: sha512-vcyCLiVRN628U38c3PbahrhbbXrckrM9zpy0KZVlDk2Z0OnGwv8uQNNXP3twwGtfLsCf4gu3ci6FMIZnPaqZsw==} - engines: {node: '>= 16'} - - '@intlify/shared@9.14.4': - resolution: {integrity: sha512-P9zv6i1WvMc9qDBWvIgKkymjY2ptIiQ065PjDv7z7fDqH3J/HBRBN5IoiR46r/ujRcU7hCuSIZWvCAFCyuOYZA==} - engines: {node: '>= 16'} - '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -545,18 +524,6 @@ packages: '@napi-rs/wasm-runtime@0.2.11': resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@opentranslate/baidu@1.4.2': resolution: {integrity: sha512-j8V7P+OCzEIAa+Zh4P6tbgWizVuVfKJOXDvk6M865J4QOE1lUQIN/Hb5SdodePkFinwNbQK2mAb7qF9wO/nQbA==} @@ -1708,9 +1675,6 @@ packages: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} - daisyui@5.0.50: - resolution: {integrity: sha512-c1PweK5RI1C76q58FKvbS4jzgyNJSP6CGTQ+KkZYzADdJoERnOxFoeLfDHmQgxLpjEzlYhFMXCeodQNLCC9bow==} - dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -1864,6 +1828,9 @@ packages: es-module-lexer@0.4.1: resolution: {integrity: sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -1963,19 +1930,12 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-levenshtein@1.1.4: resolution: {integrity: sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==} fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.6: resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: @@ -2545,14 +2505,6 @@ packages: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - local-pkg@1.1.1: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} @@ -2641,10 +2593,6 @@ packages: memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - merge@2.1.1: resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} @@ -2985,9 +2933,6 @@ packages: quansync@0.2.10: resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - read-pkg-up@1.0.1: resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} engines: {node: '>=0.10.0'} @@ -3097,10 +3042,6 @@ packages: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -3131,9 +3072,6 @@ packages: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} @@ -3321,8 +3259,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@2.1.1: - resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} structured-source@4.0.0: resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==} @@ -3462,8 +3400,9 @@ packages: undici-types@7.8.0: resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - unimport@3.14.6: - resolution: {integrity: sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==} + unimport@4.2.0: + resolution: {integrity: sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==} + engines: {node: '>=18.12.0'} union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} @@ -3488,8 +3427,8 @@ packages: vite: optional: true - unplugin-auto-import@0.16.7: - resolution: {integrity: sha512-w7XmnRlchq6YUFJVFGSvG1T/6j8GrdYN6Em9Wf0Ye+HXgD/22kont+WnuCAA0UaUoxtuvRR1u/mXKy63g/hfqQ==} + unplugin-auto-import@19.3.0: + resolution: {integrity: sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': ^3.2.2 @@ -3527,16 +3466,20 @@ packages: webpack: optional: true + unplugin-element-plus@0.10.0: + resolution: {integrity: sha512-oRSW0x6U58xBOWKy8TcoVZNA8ElIpfp3TUJRLQI6ey/E9PpjHl9/deeTAZNt8D57Li4OA4pCJtM6p2cb4Ff4ZA==} + engines: {node: '>=18.12.0'} + unplugin-utils@0.2.4: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} - unplugin-vue-components@0.25.2: - resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} + unplugin-vue-components@28.8.0: + resolution: {integrity: sha512-2Q6ZongpoQzuXDK0ZsVzMoshH0MWZQ1pzVL538G7oIDKRTVzHjppBDS8aB99SADGHN3lpGU7frraCG6yWNoL5Q==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 - '@nuxt/kit': ^3.2.2 + '@nuxt/kit': ^3.2.2 || ^4.0.0 vue: 2 || 3 peerDependenciesMeta: '@babel/parser': @@ -3558,6 +3501,10 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} + unplugin@2.3.5: + resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} + engines: {node: '>=18.12.0'} + unset-value@1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} @@ -3675,12 +3622,6 @@ packages: vue-flow-layout@0.2.0: resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==} - vue-i18n@9.14.4: - resolution: {integrity: sha512-B934C8yUyWLT0EMud3DySrwSUJI7ZNiWYsEEz2gknTthqKiG4dzWE/WSa8AzCuSQzwBEv4HtG1jZDhgzPfWSKQ==} - engines: {node: '>= 16'} - peerDependencies: - vue: ^3.0.0 - vue-observe-visibility@2.0.0-alpha.1: resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} peerDependencies: @@ -3808,8 +3749,6 @@ snapshots: package-manager-detector: 1.3.0 tinyexec: 1.0.1 - '@antfu/utils@0.7.10': {} - '@antfu/utils@8.1.1': {} '@babel/code-frame@7.27.1': @@ -4158,18 +4097,6 @@ snapshots: dependencies: '@imengyu/vue-scroll-rect': 0.1.4 - '@intlify/core-base@9.14.4': - dependencies: - '@intlify/message-compiler': 9.14.4 - '@intlify/shared': 9.14.4 - - '@intlify/message-compiler@9.14.4': - dependencies: - '@intlify/shared': 9.14.4 - source-map-js: 1.2.1 - - '@intlify/shared@9.14.4': {} - '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -4197,18 +4124,6 @@ snapshots: '@tybys/wasm-util': 0.9.0 optional: true - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - '@opentranslate/baidu@1.4.2': dependencies: '@opentranslate/translator': 1.4.2 @@ -5526,8 +5441,6 @@ snapshots: es5-ext: 0.10.64 type: 2.7.3 - daisyui@5.0.50: {} - dayjs@1.11.13: {} de-indent@1.0.2: {} @@ -5666,6 +5579,8 @@ snapshots: es-module-lexer@0.4.1: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -5821,23 +5736,11 @@ snapshots: fast-deep-equal@3.1.3: optional: true - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-levenshtein@1.1.4: {} fast-uri@3.0.6: optional: true - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -6436,13 +6339,6 @@ snapshots: pinkie-promise: 2.0.1 strip-bom: 2.0.0 - local-pkg@0.4.3: {} - - local-pkg@0.5.1: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - local-pkg@1.1.1: dependencies: mlly: 1.7.4 @@ -6533,8 +6429,6 @@ snapshots: memoize-one@6.0.0: {} - merge2@1.4.1: {} - merge@2.1.1: {} micromatch@3.1.10: @@ -6894,8 +6788,6 @@ snapshots: quansync@0.2.10: {} - queue-microtask@1.2.3: {} - read-pkg-up@1.0.1: dependencies: find-up: 1.1.2 @@ -7010,8 +6902,6 @@ snapshots: ret@0.1.15: {} - reusify@1.1.0: {} - rfdc@1.4.1: {} rollup-plugin-external-globals@0.10.0(rollup@4.44.2): @@ -7059,10 +6949,6 @@ snapshots: run-async@2.4.1: {} - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -7270,7 +7156,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.1.1: + strip-literal@3.0.0: dependencies: js-tokens: 9.0.1 @@ -7427,24 +7313,22 @@ snapshots: undici-types@7.8.0: optional: true - unimport@3.14.6(rollup@4.44.2): + unimport@4.2.0: dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.2) acorn: 8.15.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 - fast-glob: 3.3.3 local-pkg: 1.1.1 magic-string: 0.30.17 mlly: 1.7.4 pathe: 2.0.3 picomatch: 4.0.2 - pkg-types: 1.3.1 + pkg-types: 2.2.0 scule: 1.3.0 - strip-literal: 2.1.1 - unplugin: 1.16.1 - transitivePeerDependencies: - - rollup + strip-literal: 3.0.0 + tinyglobby: 0.2.14 + unplugin: 2.3.5 + unplugin-utils: 0.2.4 union-value@1.0.1: dependencies: @@ -7487,20 +7371,16 @@ snapshots: - postcss - supports-color - unplugin-auto-import@0.16.7(@vueuse/core@9.13.0(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.2): + unplugin-auto-import@19.3.0(@vueuse/core@9.13.0(vue@3.5.17(typescript@5.8.3))): dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.2.0(rollup@4.44.2) - fast-glob: 3.3.3 - local-pkg: 0.5.1 + local-pkg: 1.1.1 magic-string: 0.30.17 - minimatch: 9.0.5 - unimport: 3.14.6(rollup@4.44.2) - unplugin: 1.16.1 + picomatch: 4.0.2 + unimport: 4.2.0 + unplugin: 2.3.5 + unplugin-utils: 0.2.4 optionalDependencies: '@vueuse/core': 9.13.0(vue@3.5.17(typescript@5.8.3)) - transitivePeerDependencies: - - rollup unplugin-combine@1.2.1(esbuild@0.25.6)(rollup@4.44.2)(unplugin@1.16.1)(vite@7.0.3(@types/node@24.0.11)(jiti@2.4.2)(sass@1.89.2)): optionalDependencies: @@ -7509,28 +7389,32 @@ snapshots: unplugin: 1.16.1 vite: 7.0.3(@types/node@24.0.11)(jiti@2.4.2)(sass@1.89.2) + unplugin-element-plus@0.10.0: + dependencies: + es-module-lexer: 1.7.0 + magic-string: 0.30.17 + unplugin: 2.3.5 + unplugin-utils: 0.2.4 + unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 picomatch: 4.0.2 - unplugin-vue-components@0.25.2(@babel/parser@7.28.0)(rollup@4.44.2)(vue@3.5.17(typescript@5.8.3)): + unplugin-vue-components@28.8.0(@babel/parser@7.28.0)(vue@3.5.17(typescript@5.8.3)): dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.2.0(rollup@4.44.2) chokidar: 3.6.0 debug: 4.4.1 - fast-glob: 3.3.3 - local-pkg: 0.4.3 + local-pkg: 1.1.1 magic-string: 0.30.17 - minimatch: 9.0.5 - resolve: 1.22.10 - unplugin: 1.16.1 + mlly: 1.7.4 + tinyglobby: 0.2.14 + unplugin: 2.3.5 + unplugin-utils: 0.2.4 vue: 3.5.17(typescript@5.8.3) optionalDependencies: '@babel/parser': 7.28.0 transitivePeerDependencies: - - rollup - supports-color unplugin-vue-define-options@1.5.5(vue@3.5.17(typescript@5.8.3)): @@ -7592,6 +7476,12 @@ snapshots: acorn: 8.15.0 webpack-virtual-modules: 0.6.2 + unplugin@2.3.5: + dependencies: + acorn: 8.15.0 + picomatch: 4.0.2 + webpack-virtual-modules: 0.6.2 + unset-value@1.0.0: dependencies: has-value: 0.3.1 @@ -7701,13 +7591,6 @@ snapshots: vue-flow-layout@0.2.0: {} - vue-i18n@9.14.4(vue@3.5.17(typescript@5.8.3)): - dependencies: - '@intlify/core-base': 9.14.4 - '@intlify/shared': 9.14.4 - '@vue/devtools-api': 6.6.4 - vue: 3.5.17(typescript@5.8.3) - vue-observe-visibility@2.0.0-alpha.1(vue@3.5.17(typescript@5.8.3)): dependencies: vue: 3.5.17(typescript@5.8.3) diff --git a/src/assets/css/style.scss b/src/assets/css/style.scss index dca9bbd2..baa3f068 100644 --- a/src/assets/css/style.scss +++ b/src/assets/css/style.scss @@ -1,11 +1,6 @@ -//@import '/node_modules/element-plus/dist/index.css'; @use "anim" as *; -@use 'element-plus/theme-chalk/dark/css-vars' as *; :root { - //修改element-ui的进度条底色 - --el-border-color-lighter: #d1d1d1 !important; - --color-item-bg: rgb(228, 230, 232); --color-item-hover: white; //--color-item-active: rgb(75, 110, 175); @@ -23,12 +18,12 @@ --practice-wrapper-translateX: 1px; --article-width: 50vw; --toolbar-width: 50rem; - --toolbar-height: 3.2rem; --panel-width: 24rem; --space: 1rem; + --stat-gap: 2rem; --shadow: rgba(0, 0, 0, 0.08) 0px 4px 12px; --panel-margin-left: calc(50% + var(--toolbar-width) / 2 + 1rem); - --article-panel-margin-left: calc(50% + var(--article-width) / 2 + 3.5rem); + --article-panel-margin-left: calc(50% + var(--article-width) / 2 + 1rem); --anim-time: 0.3s; --color-input-bg: white; @@ -46,7 +41,7 @@ --zh-article-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif; --btn-primary: rgb(75, 85, 99); - --btn-info: #909399; + --btn-info: white; --color-primary: #E6E8EB; --color-second: rgb(247, 247, 247); @@ -54,7 +49,7 @@ --color-card-active: #FED7AA; --color-list-item-active: rgb(253, 246, 236); - --color-icon-hightlight: #E6A23C; + --color-icon-hightlight: rgb(12, 140, 233); //--color-icon-hightlight: rgb(12, 140, 233); --color-sub-text: gray; --color-main-text: rgb(91, 91, 91); @@ -62,15 +57,26 @@ --color-select-text: white; --color-notice-bg: rgb(247, 247, 247); + + + //修改element-ui的进度条底色 + --el-border-color-lighter: #e2e5ed !important; +} + +.footer { + &.hide { + --el-border-color-lighter: #dbdbdb !important; + } } html.dark { + --color-primary: #0E1217; --color-second: rgb(30, 31, 34); --color-third: rgb(43, 45, 48); --color-card-active: rgb(84, 84, 84); --color-list-item-active: rgb(84, 84, 84); - --color-icon-hightlight: #E6A23C; + --color-icon-hightlight: rgb(147, 173, 227); --color-sub-text: #b8b8b8; --color-main-text: rgba(249, 250, 251, 0.8); --color-select-bg: rgb(147, 173, 227); @@ -88,65 +94,51 @@ html.dark { --color-font-3: rgba(255, 255, 255, 0.3); --color-sub-gray: #383737; - --color-scrollbar: rgb(92, 93, 94); + --btn-info: transparent; + --color-input-bg: rgba(14, 18, 23, 1); --color-input-icon: #383737; --color-textarea-bg: rgb(43, 45, 48); --color-article: white; + --el-border-color-lighter: var(--color-third) !important; + + .footer { + &.hide { + --el-border-color-lighter: var(--color-third) !important; + } + } } @media (max-width: 1680px) { :root { - --practice-wrapper-translateX: -12vw; - --toolbar-width: 40vw; - --article-width: 60vw; - --panel-width: 38rem; - --toolbar-height: 4.8rem; - --panel-margin-left: calc(50vw + var(--practice-wrapper-translateX) + var(--toolbar-width) / 2 + 5vw); - --article-panel-margin-left: calc(50% + var(--practice-wrapper-translateX) + var(--article-width) / 2 + 48rem); + --toolbar-width: 50vw; + --article-width: 50vw; + --panel-width: 20vw; + --space: 0.5rem; } .footer { .bottom { - padding: 1.5rem 1rem 1rem 1rem !important; - } - - .stat { - margin-top: 0.4rem !important; - - .row { - gap: 0.5rem !important; - } + padding: .5rem !important; } } } @media (max-width: 1366px) { :root { - --space: 1rem; - --practice-wrapper-translateX: -22vw; - --article-width: 53vw; - --panel-width: 30vw; + --panel-width: 20vw; + --article-width: 50vw; --toolbar-width: 50vw; - --toolbar-height: 40rem; - --panel-margin-left: calc(50vw + var(--practice-wrapper-translateX) + var(--toolbar-width) / 2 + 14vw); - --article-panel-margin-left: calc(50% + var(--practice-wrapper-translateX) + var(--article-width) / 2 + 12vw); + --stat-gap: 0.5rem; + --space: 0.3rem; } .footer { .bottom { - padding: 1.5rem 0.5rem 0.5rem 0.5rem !important; - } - - .stat { - margin-top: 0.4rem !important; - - .row { - gap: 0.5rem !important; - } + padding: .5rem !important; } } } @@ -397,7 +389,6 @@ footer { } } - .item-title { display: flex; align-items: center; diff --git a/src/assets/css/variable.scss b/src/assets/css/variable.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/src/components/BaseButton.vue b/src/components/BaseButton.vue index dc56d339..174fc817 100644 --- a/src/components/BaseButton.vue +++ b/src/components/BaseButton.vue @@ -30,7 +30,6 @@ defineEmits(['click']) size, type, (disabled||loading) && 'disabled', - !disabled && 'hvr-grow' ]"> span { - font-size: .8rem; - } + border-radius: 0.2rem; + padding: 0 0.8rem; + height: 1.6rem; + font-size: .8rem; } &.large { - height: 3rem; - font-size: 1.1rem; - padding: 0 1.4rem; - - & > span { - font-size: 1.1rem; - } + padding: 0 1.3rem; + height: 2.4rem; + font-size: 0.9rem; } - & > span { - font-size: 1rem; - color: white; + line-height: 1; + transform: translateY(-5%); :deep(a) { color: white; @@ -104,10 +103,9 @@ defineEmits(['click']) } &:hover { - opacity: .7; + opacity: .8; } - &.primary { background: var(--btn-primary); } @@ -117,12 +115,14 @@ defineEmits(['click']) border-bottom: 2px solid transparent; &:hover { - border-bottom: 2px solid var(--color-font-1); + border-bottom: 2px solid var(--color-font-2); } } &.info { background: var(--btn-info); + border: 1px solid var(--color-main-text); + color: var(--color-main-text); } &.active { diff --git a/src/components/BaseIcon.vue b/src/components/BaseIcon.vue index 4588ad15..592294a0 100644 --- a/src/components/BaseIcon.vue +++ b/src/components/BaseIcon.vue @@ -43,7 +43,7 @@ $w: 1.4rem; transition: all .3s; &:hover:not(.disabled) { - background: var(--color-primary); + background: var(--color-icon-hightlight); color: white; } diff --git a/src/global.d.ts b/src/global.d.ts index 0ddde2e1..13aa7226 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,4 +1,4 @@ -import {cloneDeep} from "lodash-es" +import {cloneDeep} from "@/utils" export {} diff --git a/src/hooks/article.ts b/src/hooks/article.ts index 3e379cc0..9369cacd 100644 --- a/src/hooks/article.ts +++ b/src/hooks/article.ts @@ -1,5 +1,5 @@ import {Article, ArticleWord, DictType, getDefaultArticleWord, Sentence} from "@/types.ts"; -import {cloneDeep} from "lodash-es"; +import {cloneDeep} from "@/utils"; import nlp from "compromise/one"; import {usePlayWordAudio} from "@/hooks/sound.ts"; import {getSentenceAllText, getSentenceAllTranslateText} from "@/hooks/translate.ts"; diff --git a/src/hooks/dict.ts b/src/hooks/dict.ts index 309911a2..229e2eb5 100644 --- a/src/hooks/dict.ts +++ b/src/hooks/dict.ts @@ -1,7 +1,5 @@ -import {Article, Dict, Word} from "@/types.ts"; +import {Article, Word} from "@/types.ts"; import {useBaseStore} from "@/stores/base.ts"; -import {cloneDeep,} from "lodash-es"; -import {isArticle} from "@/hooks/article.ts"; export function useWordOptions() { diff --git a/src/hooks/translate.ts b/src/hooks/translate.ts index a3a9669e..2e71a27c 100644 --- a/src/hooks/translate.ts +++ b/src/hooks/translate.ts @@ -1,6 +1,5 @@ import {Article, Sentence, TranslateEngine} from "@/types.ts"; import Baidu from "@opentranslate/baidu"; -import {axiosInstance} from "@/utils/http.ts"; import {Translator} from "@opentranslate/translator/src/translator.ts"; export function getSentenceAllTranslateText(article: Article) { @@ -27,7 +26,6 @@ export async function getNetworkTranslate( let translator: Translator if (translateEngine === TranslateEngine.Baidu) { translator = new Baidu({ - axios: axiosInstance as any, config: { appid: "20230910001811857", key: "Xxe_yftQR3K3Ue43NQMC" diff --git a/src/main.ts b/src/main.ts index 09484bd1..00fba8c8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,28 +3,17 @@ import './assets/css/style.scss' import 'virtual:uno.css'; import App from './App.vue' import {createPinia} from "pinia" -import ZH from "@/locales/zh-CN.ts"; -import {createI18n} from 'vue-i18n' import router from "@/router.ts"; import VueVirtualScroller from 'vue-virtual-scroller' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' import './global.d.ts' -const i18n = createI18n({ - locale: 'zh-CN', - fallbackLocale: 'zh-CN', - messages: { - 'zh-CN': ZH - }, -}) - const pinia = createPinia() const app = createApp(App) app.use(VueVirtualScroller) // app.use(ElementPlus) app.use(pinia) -app.use(i18n) app.use(router) app.directive('opacity', (el, binding) => { diff --git a/src/pages/pc/Setting.vue b/src/pages/pc/Setting.vue index a8f7ccf8..f276bc44 100644 --- a/src/pages/pc/Setting.vue +++ b/src/pages/pc/Setting.vue @@ -4,7 +4,7 @@ import {ref, watch} from "vue"; import {useSettingStore} from "@/stores/setting.ts"; import {getAudioFileUrl, useChangeAllSound, usePlayAudio, useWatchAllSound} from "@/hooks/sound.ts"; import {getShortcutKey, useDisableEventListener, useEventListener} from "@/hooks/event.ts"; -import {cloneDeep} from "lodash-es"; +import {cloneDeep} from "@/utils"; import {DefaultShortcutKeyMap, ShortcutKey} from "@/types.ts"; import BaseButton from "@/components/BaseButton.vue"; import {APP_NAME, EXPORT_DATA_KEY, SAVE_DICT_KEY, SAVE_SETTING_KEY, SoundFileOptions} from "@/utils/const.ts"; @@ -15,7 +15,7 @@ import {checkAndUpgradeSaveDict, checkAndUpgradeSaveSetting, shakeCommonDict} fr import {GITHUB} from "@/config/ENV.ts"; import dayjs from "dayjs"; import BasePage from "@/pages/pc/components/BasePage.vue"; - +import {ElSwitch, ElSelect, ElOption, ElSlider, ElRadioGroup, ElRadio, ElInputNumber} from 'element-plus' const emit = defineEmits<{ toggleDisabledDialogEscKey: [val: boolean] @@ -162,11 +162,11 @@ function importData(e) {
-
@@ -174,35 +174,35 @@ function importData(e) {
-
- - - - + + +
- + {{ settingStore.wordSoundVolume }}%
- + {{ settingStore.wordSoundSpeed }}
@@ -210,20 +210,20 @@ function importData(e) {
-
- -
- - + +
- + {{ settingStore.keyboardSoundVolume }}%
@@ -250,17 +250,17 @@ function importData(e) {
-
- + {{ settingStore.effectSoundVolume }}%
@@ -269,19 +269,19 @@ function importData(e) {
- - 1 - 2 - 3 - 5 - 自定义 - + + 1 + 2 + 3 + 5 + 自定义 +
-
@@ -289,10 +289,10 @@ function importData(e) {
-
@@ -303,10 +303,10 @@ function importData(e) {
-
@@ -317,10 +317,10 @@ function importData(e) {
-
@@ -334,7 +334,7 @@ function importData(e) {
- @@ -344,7 +344,7 @@ function importData(e) {
- @@ -359,10 +359,10 @@ function importData(e) {
- 毫秒
diff --git a/src/pages/pc/article/ArticleHomePage.vue b/src/pages/pc/article/ArticleHomePage.vue index 3ff24912..f332167f 100644 --- a/src/pages/pc/article/ArticleHomePage.vue +++ b/src/pages/pc/article/ArticleHomePage.vue @@ -7,7 +7,7 @@ import {enArticle} from "@/assets/dictionary.ts"; import BasePage from "@/pages/pc/components/BasePage.vue"; import {useNav} from "@/utils"; import {Dict, DictResource, getDefaultDict} from "@/types.ts"; -import {cloneDeep} from "lodash-es"; +import {cloneDeep} from "@/utils"; import {useRuntimeStore} from "@/stores/runtime.ts"; import {getArticleBookDataByUrl} from "@/utils/article.ts"; import BaseIcon from "@/components/BaseIcon.vue"; @@ -15,6 +15,7 @@ import Dialog from "@/pages/pc/components/dialog/Dialog.vue"; import Input from "@/pages/pc/components/Input.vue"; import {computed} from "vue"; import Book from "@/pages/pc/components/Book.vue"; +import {ElProgress} from 'element-plus'; const {nav} = useNav() const base = useBaseStore() @@ -71,7 +72,7 @@ function startStudy() {
-
+
{{ base.currentBook.name || '请选择书籍开始学习' @@ -86,7 +87,7 @@ function startStudy() {
已学习{{ base.currentBook.lastLearnIndex }}篇文章
- +
diff --git a/src/pages/pc/article/BatchEditArticlePage.vue b/src/pages/pc/article/BatchEditArticlePage.vue index f03fb0fb..7476ce30 100644 --- a/src/pages/pc/article/BatchEditArticlePage.vue +++ b/src/pages/pc/article/BatchEditArticlePage.vue @@ -2,7 +2,7 @@ import {onMounted, onUnmounted} from "vue"; import {Article, getDefaultArticle} from "@/types.ts"; import BaseButton from "@/components/BaseButton.vue"; -import {cloneDeep} from "lodash-es"; +import {cloneDeep} from "@/utils"; import {useBaseStore} from "@/stores/base.ts"; import List from "@/pages/pc/components/list/List.vue"; diff --git a/src/pages/pc/article/BookDetail.vue b/src/pages/pc/article/BookDetail.vue index 4747eb53..caf5fe03 100644 --- a/src/pages/pc/article/BookDetail.vue +++ b/src/pages/pc/article/BookDetail.vue @@ -11,7 +11,6 @@ import BaseButton from "@/components/BaseButton.vue"; import {useRoute, useRouter} from "vue-router"; import EditBook from "@/pages/pc/article/components/EditBook.vue"; import {computed, onMounted} from "vue"; -import {cloneDeep} from "lodash-es"; const runtimeStore = useRuntimeStore() const base = useBaseStore() @@ -73,7 +72,7 @@ function formClose() {
{{ runtimeStore.editDict.name }}
-
+
编辑 文章管理 学习 diff --git a/src/pages/pc/article/components/EditArticle2.vue b/src/pages/pc/article/components/EditArticle2.vue index 3936ee50..54ad5448 100644 --- a/src/pages/pc/article/components/EditArticle2.vue +++ b/src/pages/pc/article/components/EditArticle2.vue @@ -6,11 +6,10 @@ import EditAbleText from "@/pages/pc/components/EditAbleText.vue"; import {Icon} from "@iconify/vue"; import {getNetworkTranslate, getSentenceAllText, getSentenceAllTranslateText} from "@/hooks/translate.ts"; import {genArticleSectionData, splitCNArticle2, splitEnArticle2, usePlaySentenceAudio} from "@/hooks/article.ts"; -import {cloneDeep, last} from "lodash-es"; +import {_nextTick, _parseLRC, cloneDeep, last} from "@/utils"; import {watch} from "vue"; import Empty from "@/components/Empty.vue"; -import {UploadProps} from "element-plus"; -import {_nextTick, _parseLRC} from "@/utils"; +import {ElInputNumber, ElOption, ElPopover, ElSelect, ElUpload, UploadProps} from "element-plus"; import * as Comparison from "string-comparison" import BaseIcon from "@/components/BaseIcon.vue"; import Dialog from "@/pages/pc/components/dialog/Dialog.vue"; @@ -286,13 +285,13 @@ function setStartTime(val: Sentence, i: number, j: number) { >
- -
    +
    1. 复制原文,然后分句
    2. 点击 分句 按钮进行自动分句 手动编辑分句 @@ -304,9 +303,9 @@ function setStartTime(val: Sentence, i: number, j: number) { - - 分句 - 应用 + + 分句 + 应用
@@ -334,27 +333,23 @@ function setStartTime(val: Sentence, i: number, j: number) { >
-
- 翻译 - - + 翻译 + + - - + {{ progress }}%
- - - 分句 - 应用 + + 分句 + 应用
@@ -383,14 +378,14 @@ function setStartTime(val: Sentence, i: number, j: number) {
正文、译文与结果均可编辑,编辑后点击应用按钮会自动同步
添加音频 - - 添加音频LRC文件 - + 添加音频LRC文件 +
- + {{ v.pos + ' ' + v.cn }}
diff --git a/src/pages/pc/components/list/List.vue b/src/pages/pc/components/list/List.vue index 8efacdfe..f79c02f6 100644 --- a/src/pages/pc/components/list/List.vue +++ b/src/pages/pc/components/list/List.vue @@ -2,7 +2,7 @@ import BaseIcon from "@/components/BaseIcon.vue"; import Input from "@/pages/pc/components/Input.vue"; -import {cloneDeep, throttle} from "lodash-es"; +import {cloneDeep, throttle} from "@/utils"; import {Article} from "@/types.ts"; interface IProps { diff --git a/src/pages/pc/components/list/WordList.vue b/src/pages/pc/components/list/WordList.vue index 00e9b401..2a20b4ba 100644 --- a/src/pages/pc/components/list/WordList.vue +++ b/src/pages/pc/components/list/WordList.vue @@ -4,6 +4,7 @@ import {Word} from "@/types.ts"; import VolumeIcon from "@/components/icon/VolumeIcon.vue"; import BaseList from "@/pages/pc/components/list/BaseList.vue"; import {usePlayWordAudio} from "@/hooks/sound.ts"; +import {ElPopover} from 'element-plus' const props = withDefaults(defineProps<{ list: Word[], @@ -53,7 +54,7 @@ defineExpose({scrollToBottom, scrollToItem})
- {{ v.pos + ' ' + v.cn.slice(0, 30) + '...' }} - + {{ v.pos + ' ' + v.cn }}
diff --git a/src/pages/pc/components/toolbar/TranslateSetting.vue b/src/pages/pc/components/toolbar/TranslateSetting.vue index deb67527..d05a364e 100644 --- a/src/pages/pc/components/toolbar/TranslateSetting.vue +++ b/src/pages/pc/components/toolbar/TranslateSetting.vue @@ -6,11 +6,10 @@ import IconWrapper from "@/pages/pc/components/IconWrapper.vue"; import Tooltip from "@/pages/pc/components/Tooltip.vue"; import {useBaseStore} from "@/stores/base.ts"; import {useWindowClick} from "@/hooks/event.ts"; -import {emitter, EventKey} from "@/utils/eventBus.ts"; import BaseButton from "@/components/BaseButton.vue"; -import Dialog from "@/pages/pc/components/dialog/Dialog.vue"; import {useSettingStore} from "@/stores/setting.ts"; import {ShortcutKey} from "@/types.ts"; +import {ElSwitch, ElRadioGroup,ElRadioButton,ElSelect,ElOption} from 'element-plus' const store = useBaseStore() const settingStore = useSettingStore() @@ -59,19 +58,19 @@ function save() {
-
- - 本地翻译 - 网络翻译 - + + 本地翻译 + 网络翻译 +
@@ -88,14 +87,14 @@ function save() {
- - + - +