diff --git a/components.d.ts b/components.d.ts index 1af9bca1..3c6ea767 100644 --- a/components.d.ts +++ b/components.d.ts @@ -8,6 +8,8 @@ export {} declare module 'vue' { export interface GlobalComponents { Add: typeof import('./src/components/toolbar/Add.vue')['default'] + ArticleContentDialog: typeof import('./src/components/dialog/ArticleContentDialog.vue')['default'] + ArticleDetailDialog: typeof import('./src/components/dialog/ArticleDetailDialog.vue')['default'] ArticleList: typeof import('./src/components/list/ArticleList.vue')['default'] Backgorund: typeof import('./src/components/Backgorund.vue')['default'] BaseButton: typeof import('./src/components/BaseButton.vue')['default'] diff --git a/src/App.vue b/src/App.vue index 343e7c9d..a6055606 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,6 +11,7 @@ import Backgorund from "@/components/Backgorund.vue"; import useTheme from "@/hooks/theme.ts"; import * as localforage from "localforage"; import SettingDialog from "@/components/dialog/SettingDialog.vue"; +import ArticleContentDialog from "@/components/dialog/ArticleContentDialog.vue"; const store = useBaseStore() const runtimeStore = useRuntimeStore() @@ -67,6 +68,7 @@ onMounted(() => { diff --git a/src/components/dialog/ArticleContentDialog.vue b/src/components/dialog/ArticleContentDialog.vue new file mode 100644 index 00000000..95ec8558 --- /dev/null +++ b/src/components/dialog/ArticleContentDialog.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/components/dialog/DictDiglog.vue b/src/components/dialog/DictDiglog.vue index 4a74c579..8ded7681 100644 --- a/src/components/dialog/DictDiglog.vue +++ b/src/components/dialog/DictDiglog.vue @@ -355,7 +355,7 @@ function handleChangeArticleChapterIndex(val) { :isActive="false" v-loading="loading" :show-border="true" - @title="(val:any) => emitter.emit(EventKey.openArticleListModal,val.item)" + @title="(val:any) => emitter.emit(EventKey.openArticleContentModal,val.item)" @click="handleChangeArticleChapterIndex" :active-id="activeId" :list="runtimeStore.editDict.articles"> diff --git a/src/hooks/article.ts b/src/hooks/article.ts index 455d200e..326c5747 100644 --- a/src/hooks/article.ts +++ b/src/hooks/article.ts @@ -1,4 +1,4 @@ -import {ArticleWord, DefaultArticleWord, DictType, Sentence} from "@/types.ts"; +import {Article, ArticleWord, DefaultArticleWord, DictType, Sentence, TranslateType} from "@/types.ts"; import {cloneDeep} from "lodash-es"; import nlp from "compromise"; import {split} from "sentence-splitter"; @@ -260,4 +260,16 @@ export function isArticle(type: DictType): boolean { DictType.article, DictType.customArticle ].includes(type) +} + +export function getTranslateText(article: Article) { + if (article.useTranslateType === TranslateType.custom) { + return article.textCustomTranslate + .split('\r\n\r\n').filter(v => v) + } else if (article.useTranslateType === TranslateType.network) { + return article.textNetworkTranslate + .split('\r\n\r\n').filter(v => v) + } else { + return [] + } } \ No newline at end of file diff --git a/src/pages/dict/components/ArticleDictDetail.vue b/src/pages/dict/components/ArticleDictDetail.vue index 6677bcb3..8e6e9ccc 100644 --- a/src/pages/dict/components/ArticleDictDetail.vue +++ b/src/pages/dict/components/ArticleDictDetail.vue @@ -22,6 +22,7 @@ import {syncMyDictList} from "@/hooks/dict.ts"; import {useWindowClick} from "@/hooks/event.ts"; import ArticleList from "@/components/list/ArticleList.vue"; import * as copy from "copy-to-clipboard"; +import {getTranslateText} from "@/hooks/article.ts"; const emit = defineEmits<{ back: [] @@ -352,6 +353,11 @@ defineExpose({getDictDetail, add, editDict})
{{ article.title }}
+
{{ t }}
@@ -361,9 +367,14 @@ defineExpose({getDictDetail, add, editDict})
{{ article.titleTranslate }}
+
-
- {{ article.textCustomTranslate }} +
+
{{ t }}
@@ -494,13 +505,15 @@ defineExpose({getDictDetail, add, editDict}) font-size: 20rem; .title { - text-align: center; + display: flex; + justify-content: center; + align-items: center; + position: relative; margin-bottom: var(--space); font-size: 24rem; } .text { - //white-space: pre-wrap; text-indent: 1.5em; line-height: 35rem; overflow: auto; diff --git a/src/pages/practice/practice-article/index.vue b/src/pages/practice/practice-article/index.vue index e5d61b4c..750c95e9 100644 --- a/src/pages/practice/practice-article/index.vue +++ b/src/pages/practice/practice-article/index.vue @@ -286,7 +286,9 @@ defineExpose({getCurrentPractice}) diff --git a/src/utils/eventBus.ts b/src/utils/eventBus.ts index ba954ad8..ff5517d5 100644 --- a/src/utils/eventBus.ts +++ b/src/utils/eventBus.ts @@ -6,6 +6,7 @@ export const EventKey = { changeDict: 'changeDict', openStatModal: 'openStatModal', openWordListModal: 'openWordListModal', + openArticleContentModal: 'openArticleContentModal', openDictModal: 'openDictModal', openArticleListModal: 'openArticleListModal', closeOther: 'closeOther',