From ce2063f54cc014f86c330a34e7c2abd529508ac0 Mon Sep 17 00:00:00 2001 From: Zyronon Date: Wed, 7 Jan 2026 01:20:28 +0800 Subject: [PATCH 1/6] wip --- src/utils/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/index.ts b/src/utils/index.ts index 3bc904e5..1884641f 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -253,9 +253,9 @@ export async function _getDictDataByUrl( type: DictType = DictType.word ): Promise { // await sleep(2000); - let dictResourceUrl = `/dicts/${val.language}/word/${val.url}` + let dictResourceUrl = `https://dicts.2study.top/dicts/${val.language}/word/${val.url}` if (type === DictType.article) { - dictResourceUrl = `/dicts/${val.language}/article/${val.url}` + dictResourceUrl = `https://dicts.2study.top/dicts/${val.language}/article/${val.url}` } let s = await fetch(resourceWrap(dictResourceUrl, val.version)).then(r => r.json()) if (s) { From 11606dfb68088df669bf9e77585477aaf7eaa9b6 Mon Sep 17 00:00:00 2001 From: Zyronon Date: Wed, 7 Jan 2026 19:36:19 +0800 Subject: [PATCH 2/6] refactor --- src/components/user/Code.vue | 66 ++++ src/components/user/Notice.vue | 15 + src/config/env.ts | 1 + .../articles.vue} | 0 .../batch-edit-article.vue} | 2 +- .../book-detail.vue} | 2 +- .../BookList.vue => (articles)/book-list.vue} | 28 +- .../practice-aritcles/[id].vue} | 0 src/pages/{user => (user)}/login.vue | 9 +- src/pages/{user/User.vue => (user)/user.vue} | 258 +++++++-------- .../{user/VipIntro.vue => (user)/vip.vue} | 300 +++++++++--------- .../dict-detail.vue} | 10 +- .../DictList.vue => (words)/dict-list.vue} | 38 +-- .../practice-words/[id].vue} | 0 .../words-test/[id].vue} | 2 +- .../{word/WordsPage.vue => (words)/words.vue} | 2 +- src/router.ts | 54 ++-- src/utils/index.ts | 27 +- 18 files changed, 418 insertions(+), 396 deletions(-) create mode 100644 src/components/user/Code.vue create mode 100644 src/components/user/Notice.vue rename src/pages/{article/ArticlesPage.vue => (articles)/articles.vue} (100%) rename src/pages/{article/BatchEditArticlePage.vue => (articles)/batch-edit-article.vue} (99%) rename src/pages/{article/BookDetail.vue => (articles)/book-detail.vue} (99%) rename src/pages/{article/BookList.vue => (articles)/book-list.vue} (81%) rename src/pages/{article/PracticeArticles.vue => (articles)/practice-aritcles/[id].vue} (100%) rename src/pages/{user => (user)}/login.vue (98%) rename src/pages/{user/User.vue => (user)/user.vue} (70%) rename src/pages/{user/VipIntro.vue => (user)/vip.vue} (68%) rename src/pages/{word/DictDetail.vue => (words)/dict-detail.vue} (99%) rename src/pages/{word/DictList.vue => (words)/dict-list.vue} (87%) rename src/pages/{word/PracticeWords.vue => (words)/practice-words/[id].vue} (100%) rename src/pages/{word/WordTest.vue => (words)/words-test/[id].vue} (99%) rename src/pages/{word/WordsPage.vue => (words)/words.vue} (99%) diff --git a/src/components/user/Code.vue b/src/components/user/Code.vue new file mode 100644 index 00000000..bfef15d3 --- /dev/null +++ b/src/components/user/Code.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/components/user/Notice.vue b/src/components/user/Notice.vue new file mode 100644 index 00000000..6364751e --- /dev/null +++ b/src/components/user/Notice.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/config/env.ts b/src/config/env.ts index d16930ff..0f8b02e3 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -13,6 +13,7 @@ const common = { const map = { DEV: { API: 'http://localhost/', + RESOURCE_URL: 'https://dicts.2study.top/', }, } diff --git a/src/pages/article/ArticlesPage.vue b/src/pages/(articles)/articles.vue similarity index 100% rename from src/pages/article/ArticlesPage.vue rename to src/pages/(articles)/articles.vue diff --git a/src/pages/article/BatchEditArticlePage.vue b/src/pages/(articles)/batch-edit-article.vue similarity index 99% rename from src/pages/article/BatchEditArticlePage.vue rename to src/pages/(articles)/batch-edit-article.vue index 1f8b0c68..18722e23 100644 --- a/src/pages/article/BatchEditArticlePage.vue +++ b/src/pages/(articles)/batch-edit-article.vue @@ -283,7 +283,7 @@ function updateList(e) { :loading="exportLoading" :disabled="!article.id" @click="exportData({ type: 'item', data: article })" - >当前 + >当前 diff --git a/src/pages/article/BookDetail.vue b/src/pages/(articles)/book-detail.vue similarity index 99% rename from src/pages/article/BookDetail.vue rename to src/pages/(articles)/book-detail.vue index 754f591c..272db150 100644 --- a/src/pages/article/BookDetail.vue +++ b/src/pages/(articles)/book-detail.vue @@ -319,7 +319,7 @@ watch([() => displayMode, () => selectArticle.id, () => showTranslate], () => { v-for="(s, n) in w.split(' ').filter(Boolean)" :class="`inline-block word-${i}-${j}-${n}`" :key="`${i}-${j}-${n}`" - >{{ s }} + >{{ s }} diff --git a/src/pages/article/BookList.vue b/src/pages/(articles)/book-list.vue similarity index 81% rename from src/pages/article/BookList.vue rename to src/pages/(articles)/book-list.vue index b6d2a75f..efbf1e6b 100644 --- a/src/pages/article/BookList.vue +++ b/src/pages/(articles)/book-list.vue @@ -38,10 +38,10 @@ const searchList = computed(() => { let s = searchKey.toLowerCase() return bookList.value.filter((item) => { return item.id.toLowerCase().includes(s) - || item.name.toLowerCase().includes(s) - || item.category.toLowerCase().includes(s) - || item.tags.join('').replace('所有', '').toLowerCase().includes(s) - || item?.url?.toLowerCase?.().includes?.(s) + || item.name.toLowerCase().includes(s) + || item.category.toLowerCase().includes(s) + || item.tags.join('').replace('所有', '').toLowerCase().includes(s) + || item?.url?.toLowerCase?.().includes?.(s) }) } return [] @@ -68,20 +68,20 @@ const searchList = computed(() => {
+ v-if="searchList.length " + @selectDict="selectDict" + :list="searchList" + quantifier="篇" + :select-id="'-1'"/>
+ v-if="bookList?.length " + @selectDict="selectDict" + :list="bookList" + quantifier="篇" + :select-id="'-1'"/>
diff --git a/src/pages/article/PracticeArticles.vue b/src/pages/(articles)/practice-aritcles/[id].vue similarity index 100% rename from src/pages/article/PracticeArticles.vue rename to src/pages/(articles)/practice-aritcles/[id].vue diff --git a/src/pages/user/login.vue b/src/pages/(user)/login.vue similarity index 98% rename from src/pages/user/login.vue rename to src/pages/(user)/login.vue index b5655137..2ad37800 100644 --- a/src/pages/user/login.vue +++ b/src/pages/(user)/login.vue @@ -10,16 +10,15 @@ import { accountRules, codeRules, passwordRules, phoneRules } from '@/utils/vali import Toast from '@/components/base/toast/Toast.ts' import FormItem from '@/components/base/form/FormItem.vue' import Form from '@/components/base/form/Form.vue' -import Notice from '@/pages/user/Notice.vue' +import Notice from '@/components/user/Notice.vue' import { FormInstance } from '@/components/base/form/types.ts' import { PASSWORD_CONFIG, PHONE_CONFIG } from '@/config/auth.ts' -import Code from '@/pages/user/Code.vue' -import { isNewUser, jump2Feedback, sleep, useNav } from '@/utils' +import Code from '@/components/user/Code.vue' +import { jump2Feedback, sleep, useNav } from '@/utils' import Header from '@/components/Header.vue' import PopConfirm from '@/components/PopConfirm.vue' import { useExport } from '@/hooks/export.ts' -import { getProgress, upload, uploadImportData } from '@/apis' -import { Exception } from 'sass' +import { getProgress, uploadImportData } from '@/apis' import { CodeType, ImportStatus } from '@/types/enum.ts' // 状态管理 diff --git a/src/pages/user/User.vue b/src/pages/(user)/user.vue similarity index 70% rename from src/pages/user/User.vue rename to src/pages/(user)/user.vue index f06c88d5..186d7652 100644 --- a/src/pages/user/User.vue +++ b/src/pages/(user)/user.vue @@ -1,23 +1,23 @@ @@ -254,21 +259,15 @@ function onFileChange(e) {
- +

- + 欢迎使用

登录,开启您的学习之旅

保存进度、同步数据、解锁个性化内容
- - 登录 - + 登录

还没有账户? 立即注册 @@ -287,20 +286,17 @@ function onFileChange(e) {

用户名
- + {{ userStore.user?.username }}
在此设置用户名
- +
-
+ @@ -327,20 +323,17 @@ function onFileChange(e) {
手机号
- + {{ userStore.user?.phone }}
在此设置手机号
- +
- +
- +
- +
@@ -371,24 +357,24 @@ function onFileChange(e) { placeholder="请输入新手机号验证码" :max-length="PHONE_CONFIG.codeLength" /> - +
- +
- 原手机号不可用,点此申诉 + 原手机号不可用,点此申诉
取消 @@ -403,20 +389,17 @@ function onFileChange(e) {
电子邮箱
- + {{ userStore.user?.email }}
在此设置邮箱
- +
-
+ - +
- +
@@ -455,7 +435,6 @@ function onFileChange(e) {
-
@@ -463,22 +442,13 @@ function onFileChange(e) {
在此输入密码
- +
-
+ - + @@ -510,15 +480,10 @@ function onFileChange(e) {
- -
-
- 联系 {{ APP_NAME }} 客服 -
- +
+
联系 {{ APP_NAME }} 客服
+
@@ -528,32 +493,26 @@ function onFileChange(e) {
同步进度
- - + +
-
-
- 给 {{ APP_NAME }} 提交意见 -
- +
+
给 {{ APP_NAME }} 提交意见
+
- - 登出 - + 登出
@@ -566,12 +525,11 @@ function onFileChange(e) {
- +
订阅信息
-
当前无订阅
- {{ - userStore.user?.member ? '管理订阅' : '会员介绍' - }} + {{ userStore.user?.member ? '管理订阅' : '会员介绍' }}
diff --git a/src/pages/user/VipIntro.vue b/src/pages/(user)/vip.vue similarity index 68% rename from src/pages/user/VipIntro.vue rename to src/pages/(user)/vip.vue index 8c43650d..0ba0c0f5 100644 --- a/src/pages/user/VipIntro.vue +++ b/src/pages/(user)/vip.vue @@ -1,11 +1,11 @@ diff --git a/src/pages/user/Code.vue b/src/pages/user/Code.vue deleted file mode 100644 index bfef15d3..00000000 --- a/src/pages/user/Code.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/src/pages/user/Notice.vue b/src/pages/user/Notice.vue deleted file mode 100644 index 6364751e..00000000 --- a/src/pages/user/Notice.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/src/router.ts b/src/router.ts index db332c97..f2cf3362 100644 --- a/src/router.ts +++ b/src/router.ts @@ -1,6 +1,6 @@ import * as VueRouter from 'vue-router' import {RouteRecordRaw} from 'vue-router' -import Layout from "@/pages/layout.vue"; +import Layout from "@/layout/default.vue"; import words from "@/pages/(words)/words.vue"; import DictDetail from "@/pages/(words)/dict-detail.vue"; import DictList from "@/pages/(words)/dict-list.vue"; @@ -12,7 +12,7 @@ import BookDetail from "@/pages/(articles)/book-detail.vue"; import BookList from "@/pages/(articles)/book-list.vue"; import PracticeArticles from "@/pages/(articles)/practice-articles/[id].vue"; -import setting from "@/pages/setting/Setting.vue"; +import setting from "@/pages/setting.vue"; import login from "@/pages/(user)/login.vue"; import user from "@/pages/(user)/user.vue"; import vip from "@/pages/(user)/vip.vue"; @@ -53,7 +53,6 @@ export const routes: RouteRecordRaw[] = [ ] }, {path: '/batch-edit-article', component: () => import("@/pages/(articles)/batch-edit-article.vue")}, - {path: '/test', component: () => import("@/pages/test/test.vue")}, {path: '/:pathMatch(.*)*', redirect: '/words'}, ] From 49e67ae3093743c7a39d58f98c8326979d248a37 Mon Sep 17 00:00:00 2001 From: Zyronon Date: Thu, 8 Jan 2026 01:04:05 +0800 Subject: [PATCH 5/6] wip --- index.html | 2 +- src/App.vue | 12 +++++----- src/apis/index.ts | 2 +- src/apis/member.ts | 2 +- src/assets/css/{style.scss => main.scss} | 0 src/components/Book.vue | 2 +- src/components/Panel.vue | 4 ++-- src/components/PracticeLayout.vue | 2 +- .../article/components/TypingArticle.vue | 22 +++++++++---------- src/components/dialog/Dialog.vue | 4 ++-- src/components/word/components/Footer.vue | 12 +++++----- .../word/components/PracticeSettingDialog.vue | 6 ++--- src/components/word/components/TypeWord.vue | 16 +++++++------- src/config/env.ts | 2 +- src/hooks/article.ts | 18 +++++++-------- src/hooks/export.ts | 10 ++++----- src/hooks/sound.ts | 4 ++-- src/main.ts | 6 ++--- src/pages/setting.vue | 16 +++++++------- src/router.ts | 2 +- src/stores/base.ts | 8 +++---- src/stores/runtime.ts | 4 ++-- src/stores/user.ts | 6 ++--- src/types/func.ts | 4 ++-- src/types/types.ts | 2 +- src/utils/index.ts | 16 +++++++------- 26 files changed, 92 insertions(+), 92 deletions(-) rename src/assets/css/{style.scss => main.scss} (100%) diff --git a/index.html b/index.html index ca8bafbb..ac9d00d5 100644 --- a/index.html +++ b/index.html @@ -178,6 +178,6 @@ document.body.appendChild(dialog) })() - + diff --git a/src/App.vue b/src/App.vue index 659060dc..bc3577e2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,16 +1,16 @@