diff --git a/.vscode/settings.json b/.vscode/settings.json index c357907..6ee4f34 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,13 @@ { "files.autoSave": "afterDelay", - "editor.bracketPairColorization.independentColorPoolPerBracketType": true + "editor.bracketPairColorization.independentColorPoolPerBracketType": true, + "cSpell.words": [ + "dsense", + "FUIYOH", + "HIYAA", + "thisweek", + "usersetting", + "wordgroup", + "wordlist" + ] } diff --git a/components.d.ts b/components.d.ts index 361cf39..52ea012 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,29 +9,18 @@ declare module 'vue' { export interface GlobalComponents { ElAffix: typeof import('element-plus/es')['ElAffix'] ElBacktop: typeof import('element-plus/es')['ElBacktop'] - ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCarousel: typeof import('element-plus/es')['ElCarousel'] ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem'] ElCol: typeof import('element-plus/es')['ElCol'] - ElCollapse: typeof import('element-plus/es')['ElCollapse'] - ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] - ElDialog: typeof import('element-plus/es')['ElDialog'] - ElDivider: typeof import('element-plus/es')['ElDivider'] ElEmpty: typeof import('element-plus/es')['ElEmpty'] - ElForm: typeof import('element-plus/es')['ElForm'] - ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] - ElOption: typeof import('element-plus/es')['ElOption'] - ElRadio: typeof import('element-plus/es')['ElRadio'] ElRow: typeof import('element-plus/es')['ElRow'] - ElSelect: typeof import('element-plus/es')['ElSelect'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem'] - ElSwitch: typeof import('element-plus/es')['ElSwitch'] Header: typeof import('./src/components/Header.vue')['default'] IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default'] IconDocumentation: typeof import('./src/components/icons/IconDocumentation.vue')['default'] diff --git a/src/router/index.ts b/src/router/index.ts index bc0cb2d..7277590 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -23,6 +23,16 @@ const router = createRouter({ name: 'register', component: () => import('@/views/UserRegister.vue'), }, + { + path: '/reading', + name: 'reading', + component: () => import('@/views/ReadingArticle.vue'), + }, + { + path: '/reading/:articleID', + name: 'readingDetail', + component: () => import('@/views/ReadingArticleDetail.vue'), + }, { path: '/review/word/:groupID', name: 'reviewWord', diff --git a/src/utils/service.ts b/src/utils/service.ts index fefcab4..67c68b2 100644 --- a/src/utils/service.ts +++ b/src/utils/service.ts @@ -110,7 +110,7 @@ function createRequest(service: AxiosInstance) { Authorization: token ? `Bearer ${token}` : '', 'Content-Type': 'application/json', }, - timeout: 10000, + timeout: 100000, baseURL: import.meta.env.VITE_BASE_API, data: {}, }; diff --git a/src/views/HomePage.vue b/src/views/HomePage.vue index c0c7954..69047ba 100644 --- a/src/views/HomePage.vue +++ b/src/views/HomePage.vue @@ -43,13 +43,20 @@ - 我的词组 - - 今日收藏 + + 单词背诵 @@ -61,12 +68,31 @@ --> - 阅读理解 + + + 即将开放 + + + + + 反馈建议 - 用户设置 @@ -135,7 +161,7 @@ function createCollectionChart() { const dom = document.getElementById('collection'); if (dom) { - const chart = new Chart('collection', { + new Chart('collection', { type: 'bar', data: { labels: everyDayWordCount.value.map(row => row.year), @@ -176,6 +202,7 @@ function redirect(condition: string) { if (condition === 'settings') router.push('/settings'); if (condition === 'help') router.push('/help'); if (condition === 'square') router.push('/square'); + if (condition === 'reading') router.push('/reading'); if (condition === 'today') router.push('/today'); } diff --git a/src/views/ReadingArticle.vue b/src/views/ReadingArticle.vue new file mode 100644 index 0000000..2fa945f --- /dev/null +++ b/src/views/ReadingArticle.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/views/ReadingArticleDetail.vue b/src/views/ReadingArticleDetail.vue new file mode 100644 index 0000000..4ae4aa0 --- /dev/null +++ b/src/views/ReadingArticleDetail.vue @@ -0,0 +1,95 @@ + + diff --git a/src/views/RecordWord.vue b/src/views/RecordWord.vue index 27acca9..7887b7d 100644 --- a/src/views/RecordWord.vue +++ b/src/views/RecordWord.vue @@ -23,7 +23,12 @@
- +
 Audio 
@@ -34,27 +39,32 @@ :title="`${card.name} - ${card.property} - ${card.phonetic}`" :name="index" v-for="(card, index) in cardList" + :key="index" >
{{ card.property }} {{ card.phonetic }}