feat:修改类型结构
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,9 @@
|
||||
import {Article, ArticleWord, getDefaultArticleWord, Sentence} from "@/types/types.ts";
|
||||
import {Article, ArticleWord, Sentence} from "@/types/types.ts";
|
||||
import {cloneDeep} from "@/utils";
|
||||
import nlp from "compromise/one";
|
||||
import {usePlayWordAudio} from "@/hooks/sound.ts";
|
||||
import {getSentenceAllText, getSentenceAllTranslateText} from "@/hooks/translate.ts";
|
||||
import {getDefaultArticleWord} from "@/types/func.ts";
|
||||
|
||||
interface KeyboardMap {
|
||||
Period: string,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {Article, getDefaultArticle, Word} from "@/types/types.ts";
|
||||
import {Article, Word} from "@/types/types.ts";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
import {nanoid} from "nanoid";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
|
||||
export function useWordOptions() {
|
||||
|
||||
@@ -5,7 +5,7 @@ import "vue-activity-calendar/style.css";
|
||||
import {useRouter} from "vue-router";
|
||||
import BasePage from "@/pages/pc/components/BasePage.vue";
|
||||
import {_getDictDataByUrl, useNav} from "@/utils";
|
||||
import {DictResource, DictType, getDefaultDict} from "@/types/types.ts";
|
||||
import {DictResource, DictType} from "@/types/types.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import Book from "@/pages/pc/components/Book.vue";
|
||||
@@ -13,6 +13,7 @@ import {ElMessage, ElProgress} from 'element-plus';
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import PopConfirm from "@/pages/pc/components/PopConfirm.vue";
|
||||
import {onMounted, watch} from "vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const {nav} = useNav()
|
||||
const base = useBaseStore()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import {onMounted, onUnmounted} from "vue";
|
||||
import {Article, getDefaultArticle} from "@/types/types.ts";
|
||||
import {Article} from "@/types/types.ts";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import {cloneDeep} from "@/utils";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
@@ -16,6 +16,7 @@ import EditArticle2 from "@/pages/pc/article/components/EditArticle2.vue";
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import {_nextTick} from "@/utils";
|
||||
import {ElMessage} from "element-plus";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
const emit = defineEmits<{
|
||||
importData: [val: Event]
|
||||
|
||||
@@ -5,7 +5,7 @@ import BackIcon from "@/pages/pc/components/BackIcon.vue";
|
||||
import Empty from "@/components/Empty.vue";
|
||||
import ArticleList from "@/pages/pc/components/list/ArticleList.vue";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
import {Article, DictId, DictType, getDefaultArticle, getDefaultDict} from "@/types/types.ts";
|
||||
import {Article, DictId, DictType} from "@/types/types.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
@@ -14,6 +14,7 @@ import {computed, onMounted} from "vue";
|
||||
import {_getDictDataByUrl} from "@/utils";
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import {useArticleOptions} from "@/hooks/dict.ts";
|
||||
import {getDefaultArticle, getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const runtimeStore = useRuntimeStore()
|
||||
const base = useBaseStore()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import "vue-activity-calendar/style.css";
|
||||
import {useNav} from "@/utils";
|
||||
import BasePage from "@/pages/pc/components/BasePage.vue";
|
||||
import {DictResource, getDefaultDict} from "@/types/types.ts";
|
||||
import {DictResource} from "@/types/types.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import Empty from "@/components/Empty.vue";
|
||||
@@ -13,6 +13,7 @@ import BackIcon from "@/pages/pc/components/BackIcon.vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {enArticle} from "@/assets/dictionary.ts";
|
||||
import {computed} from "vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const {nav} = useNav()
|
||||
const runtimeStore = useRuntimeStore()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import {Article, getDefaultArticle, Sentence, TranslateEngine} from "@/types/types.ts";
|
||||
import {Article, Sentence, TranslateEngine} from "@/types/types.ts";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import EditAbleText from "@/pages/pc/components/EditAbleText.vue";
|
||||
import {Icon} from "@iconify/vue";
|
||||
@@ -13,6 +13,7 @@ import {ElInputNumber, ElMessage, ElOption, ElPopover, ElSelect, ElUpload, Uploa
|
||||
import * as Comparison from "string-comparison"
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import Dialog from "@/pages/pc/components/dialog/Dialog.vue";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
interface IProps {
|
||||
article?: Article,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import {Dict, DictType, getDefaultDict} from "@/types/types.ts";
|
||||
import {Dict, DictType} from "@/types/types.ts";
|
||||
import {cloneDeep} from "@/utils";
|
||||
|
||||
import {ElForm, ElFormItem, ElInput, ElSelect, ElOption, FormInstance, FormRules, ElMessage} from "element-plus";
|
||||
@@ -8,6 +8,7 @@ import {onMounted, reactive} from "vue";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const props = defineProps<{
|
||||
isAdd: boolean,
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import {Article, getDefaultArticle} from "@/types/types.ts";
|
||||
import {Article} from "@/types/types.ts";
|
||||
import Dialog from "@/pages/pc/components/dialog/Dialog.vue";
|
||||
import {useDisableEventListener} from "@/hooks/event.ts";
|
||||
import EditArticle2 from "@/pages/pc/article/components/EditArticle2.vue";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
interface IProps {
|
||||
article?: Article
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import {computed, onMounted, onUnmounted, watch} from "vue"
|
||||
import {Article, ArticleWord, getDefaultArticle, Sentence, Word} from "@/types/types.ts";
|
||||
import {Article, ArticleWord, Sentence, Word} from "@/types/types.ts";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
import {usePracticeStore} from "@/stores/practice.ts";
|
||||
import {useSettingStore} from "@/stores/setting.ts";
|
||||
@@ -12,6 +12,7 @@ import ContextMenu from '@imengyu/vue3-context-menu'
|
||||
import {getTranslateText} from "@/hooks/article.ts";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import QuestionForm from "@/pages/pc/article/components/QuestionForm.vue";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
interface IProps {
|
||||
article: Article,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import TypingArticle from "./TypingArticle.vue";
|
||||
import {Article, ArticleItem, ArticleWord, DisplayStatistics, getDefaultArticle, ShortcutKey, Word} from "@/types/types.ts";
|
||||
import {Article, ArticleItem, ArticleWord, DisplayStatistics, ShortcutKey, Word} from "@/types/types.ts";
|
||||
import {cloneDeep} from "@/utils";
|
||||
import Panel from "../../components/Panel.vue";
|
||||
import {onMounted, onUnmounted} from "vue";
|
||||
@@ -17,6 +17,7 @@ import {useOnKeyboardEventListener} from "@/hooks/event.ts";
|
||||
import {genArticleSectionData, usePlaySentenceAudio} from "@/hooks/article.ts";
|
||||
import {ElProgress} from 'element-plus';
|
||||
import router from "@/router.ts";
|
||||
import {getDefaultArticle} from "@/types/func.ts";
|
||||
|
||||
const store = useBaseStore()
|
||||
const statisticsStore = usePracticeStore()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="tsx">
|
||||
import {DictId, getDefaultDict, Word} from "@/types/types.ts";
|
||||
import {DictId, Word} from "@/types/types.ts";
|
||||
|
||||
import BasePage from "@/pages/pc/components/BasePage.vue";
|
||||
import {computed, onMounted, reactive, shallowReactive} from "vue";
|
||||
@@ -17,6 +17,7 @@ import BaseButton from "@/components/BaseButton.vue";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {useBaseStore} from "@/stores/base.ts";
|
||||
import EditBook from "@/pages/pc/article/components/EditBook.vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const runtimeStore = useRuntimeStore()
|
||||
const base = useBaseStore()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import "vue-activity-calendar/style.css";
|
||||
import {useNav} from "@/utils";
|
||||
import BasePage from "@/pages/pc/components/BasePage.vue";
|
||||
import {DictResource, getDefaultDict} from "@/types/types.ts";
|
||||
import {DictResource} from "@/types/types.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import Empty from "@/components/Empty.vue";
|
||||
@@ -16,6 +16,7 @@ import {useRouter} from "vue-router";
|
||||
import {groupBy} from "@/utils";
|
||||
import {dictionaryResources} from "@/assets/dictionary.ts";
|
||||
import {computed} from "vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const {nav} = useNav()
|
||||
const runtimeStore = useRuntimeStore()
|
||||
|
||||
@@ -6,7 +6,7 @@ import Statistics from "@/pages/pc/word/Statistics.vue";
|
||||
import {emitter, EventKey, useEvents} from "@/utils/eventBus.ts";
|
||||
import {useSettingStore} from "@/stores/setting.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import {getDefaultWord, ShortcutKey, StudyData, Word} from "@/types/types.ts";
|
||||
import {ShortcutKey, StudyData, Word} from "@/types/types.ts";
|
||||
import {useOnKeyboardEventListener, useStartKeyboardEventListener} from "@/hooks/event.ts";
|
||||
import useTheme from "@/hooks/theme.ts";
|
||||
import {getCurrentStudyWord, useWordOptions} from "@/hooks/dict.ts";
|
||||
@@ -24,6 +24,7 @@ import {useBaseStore} from "@/stores/base.ts";
|
||||
import {usePracticeStore} from "@/stores/practice.ts";
|
||||
import {dictionaryResources} from "@/assets/dictionary.ts";
|
||||
import {ElMessage} from "element-plus";
|
||||
import {getDefaultWord} from "@/types/func.ts";
|
||||
|
||||
interface IProps {
|
||||
new: Word[],
|
||||
|
||||
@@ -8,7 +8,7 @@ import BaseIcon from "@/components/BaseIcon.vue";
|
||||
import Dialog from "@/pages/pc/components/dialog/Dialog.vue";
|
||||
import {_dateFormat, _getAccomplishDate, _getAccomplishDays, _getDictDataByUrl, useNav} from "@/utils";
|
||||
import BasePage from "@/pages/pc/components/BasePage.vue";
|
||||
import {DictResource, getDefaultDict} from "@/types/types.ts";
|
||||
import {DictResource} from "@/types/types.ts";
|
||||
import {onMounted, watch} from "vue";
|
||||
import {getCurrentStudyWord} from "@/hooks/dict.ts";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
@@ -16,6 +16,7 @@ import Book from "@/pages/pc/components/Book.vue";
|
||||
import PopConfirm from "@/pages/pc/components/PopConfirm.vue";
|
||||
import {ElMessage, ElProgress, ElSlider} from 'element-plus';
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
const store = useBaseStore()
|
||||
const router = useRouter()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import {getDefaultWord, ShortcutKey, Word} from "@/types/types.ts";
|
||||
import {ShortcutKey, Word} from "@/types/types.ts";
|
||||
import VolumeIcon from "@/components/icon/VolumeIcon.vue";
|
||||
import {useSettingStore} from "@/stores/setting.ts";
|
||||
import {usePlayBeep, usePlayCorrect, usePlayKeyboardAudio, usePlayWordAudio, useTTsPlayAudio} from "@/hooks/sound.ts";
|
||||
@@ -8,6 +8,7 @@ import {nextTick, onMounted, onUnmounted, watch} from "vue";
|
||||
import Tooltip from "@/pages/pc/components/Tooltip.vue";
|
||||
import SentenceHightLightWord from "@/pages/pc/word/components/SentenceHightLightWord.vue";
|
||||
import {usePracticeStore} from "@/stores/practice.ts";
|
||||
import {getDefaultWord} from "@/types/func.ts";
|
||||
|
||||
interface IProps {
|
||||
word: Word,
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import {defineStore} from 'pinia'
|
||||
import {Dict, DictId, getDefaultDict, Word} from "../types/types.ts"
|
||||
import {Dict, DictId, Word} from "../types/types.ts"
|
||||
import {cloneDeep} from "@/utils";
|
||||
import * as localforage from "localforage";
|
||||
import {nanoid} from "nanoid";
|
||||
import {SAVE_DICT_KEY} from "@/utils/const.ts";
|
||||
import {_getStudyProgress, checkAndUpgradeSaveDict, getDictFile} from "@/utils";
|
||||
import {markRaw, shallowReactive} from "vue";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
export interface BaseState {
|
||||
simpleWords: string[],
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import {defineStore} from "pinia"
|
||||
import {Dict, getDefaultDict} from "@/types/types.ts";
|
||||
import {Dict} from "@/types/types.ts";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
export interface RuntimeState {
|
||||
disableEventListener: boolean,
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
import {Article, ArticleWord, Dict, DictType, Word} from "@/types/types.ts";
|
||||
import {shallowReactive} from "vue";
|
||||
|
||||
export function getDefaultWord(val: Partial<Word> = {}): Word {
|
||||
return {
|
||||
custom: false,
|
||||
"word": "",
|
||||
"phonetic0": "",
|
||||
"phonetic1": "",
|
||||
"trans": [],
|
||||
"sentences": [],
|
||||
"phrases": [],
|
||||
"synos": [],
|
||||
"relWords": {
|
||||
"root": "",
|
||||
"rels": []
|
||||
},
|
||||
"etymology": [],
|
||||
...val
|
||||
}
|
||||
}
|
||||
|
||||
export function getDefaultArticleWord(val: Partial<ArticleWord> = {}): ArticleWord {
|
||||
return getDefaultWord({
|
||||
nextSpace: true,
|
||||
isSymbol: false,
|
||||
symbolPosition: '',
|
||||
...val
|
||||
}) as ArticleWord
|
||||
}
|
||||
|
||||
export function getDefaultArticle(val: Partial<Article> = {}): Article {
|
||||
return {
|
||||
id: '',
|
||||
title: '',
|
||||
titleTranslate: '',
|
||||
text: '',
|
||||
textTranslate: '',
|
||||
newWords: [],
|
||||
textAllWords: [],
|
||||
sections: [],
|
||||
audioSrc: '',
|
||||
lrcPosition: [],
|
||||
questions: [],
|
||||
...val
|
||||
}
|
||||
}
|
||||
|
||||
export function getDefaultDict(val: Partial<Dict> = {}): Dict {
|
||||
return {
|
||||
id: '',
|
||||
name: '',
|
||||
description: '',
|
||||
url: '',
|
||||
length: 0,
|
||||
category: '',
|
||||
tags: [],
|
||||
translateLanguage: '',
|
||||
type: DictType.word,
|
||||
language: 'en',
|
||||
lastLearnIndex: 0,
|
||||
perDayStudyNumber: 20,
|
||||
custom: false,
|
||||
complete: false,
|
||||
...val,
|
||||
words: shallowReactive(val.words ?? []),
|
||||
articles: shallowReactive(val.articles ?? []),
|
||||
statistics: shallowReactive(val.statistics ?? [])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import jaFlag from "@/assets/img/flags/ja.png";
|
||||
import deFlag from "@/assets/img/flags/de.png";
|
||||
import codeFlag from "@/assets/img/flags/code.png";
|
||||
import myFlag from "@/assets/img/flags/my.png";
|
||||
import {shallowReactive} from "vue";
|
||||
|
||||
export type Word = {
|
||||
id?: string,
|
||||
@@ -45,31 +44,11 @@ export type Word = {
|
||||
}[],
|
||||
}
|
||||
|
||||
export function getDefaultWord(val: Partial<Word> = {}): Word {
|
||||
return {
|
||||
custom: false,
|
||||
"word": "",
|
||||
"phonetic0": "",
|
||||
"phonetic1": "",
|
||||
"trans": [],
|
||||
"sentences": [],
|
||||
"phrases": [],
|
||||
"synos": [],
|
||||
"relWords": {
|
||||
"root": "",
|
||||
"rels": []
|
||||
},
|
||||
"etymology": [],
|
||||
...val
|
||||
}
|
||||
}
|
||||
|
||||
export const PronunciationApi = 'https://dict.youdao.com/dictvoice?audio='
|
||||
|
||||
export type TranslateLanguageType = 'en' | 'zh-CN' | 'ja' | 'de' | 'common' | ''
|
||||
export type LanguageType = 'en' | 'ja' | 'de' | 'code'
|
||||
|
||||
|
||||
export enum DictType {
|
||||
collect = 'collect',
|
||||
simple = 'simple',
|
||||
@@ -85,15 +64,6 @@ export interface ArticleWord extends Word {
|
||||
symbolPosition: 'start' | 'end' | '',
|
||||
}
|
||||
|
||||
export function getDefaultArticleWord(val: Partial<ArticleWord> = {}): ArticleWord {
|
||||
return getDefaultWord({
|
||||
nextSpace: true,
|
||||
isSymbol: false,
|
||||
symbolPosition: '',
|
||||
...val
|
||||
}) as ArticleWord
|
||||
}
|
||||
|
||||
export interface Sentence {
|
||||
text: string,
|
||||
translate: string,
|
||||
@@ -120,23 +90,6 @@ export interface Article {
|
||||
}[]
|
||||
}
|
||||
|
||||
export function getDefaultArticle(val: Partial<Article> = {}): Article {
|
||||
return {
|
||||
id: '',
|
||||
title: '',
|
||||
titleTranslate: '',
|
||||
text: '',
|
||||
textTranslate: '',
|
||||
newWords: [],
|
||||
textAllWords: [],
|
||||
sections: [],
|
||||
audioSrc: '',
|
||||
lrcPosition: [],
|
||||
questions: [],
|
||||
...val
|
||||
}
|
||||
}
|
||||
|
||||
export interface Statistics {
|
||||
startDate: number,//开始日期
|
||||
spend: number,//花费时间
|
||||
@@ -151,17 +104,6 @@ export interface DisplayStatistics extends Statistics {
|
||||
inputWordNumber: number//输入数
|
||||
}
|
||||
|
||||
export const DefaultDisplayStatistics: DisplayStatistics = {
|
||||
startDate: Date.now(),
|
||||
spend: -1,
|
||||
total: -1,
|
||||
new: 0,
|
||||
wrong: -1,
|
||||
review: -1,
|
||||
inputWordNumber: -1,
|
||||
wrongWords: [],
|
||||
}
|
||||
|
||||
export enum Sort {
|
||||
normal = 0,
|
||||
random = 1,
|
||||
@@ -249,29 +191,6 @@ export interface Dict extends DictResource {
|
||||
complete: boolean,//是否学习完成,学完了设为true,然后lastLearnIndex重置
|
||||
}
|
||||
|
||||
export function getDefaultDict(val: Partial<Dict> = {}): Dict {
|
||||
return {
|
||||
id: '',
|
||||
name: '',
|
||||
description: '',
|
||||
url: '',
|
||||
length: 0,
|
||||
category: '',
|
||||
tags: [],
|
||||
translateLanguage: '',
|
||||
type: DictType.word,
|
||||
language: 'en',
|
||||
lastLearnIndex: 0,
|
||||
perDayStudyNumber: 20,
|
||||
custom: false,
|
||||
complete: false,
|
||||
...val,
|
||||
words: shallowReactive(val.words ?? []),
|
||||
articles: shallowReactive(val.articles ?? []),
|
||||
statistics: shallowReactive(val.statistics ?? [])
|
||||
}
|
||||
}
|
||||
|
||||
export interface ArticleItem {
|
||||
item: Article,
|
||||
index: number
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import {Dict, DictResource, getDefaultDict} from "@/types/types.ts";
|
||||
import {Dict, DictResource} from "@/types/types.ts";
|
||||
import {getDictFile} from "@/utils/index.ts";
|
||||
import {cloneDeep} from "@/utils";
|
||||
import {nanoid} from "nanoid";
|
||||
import {getDefaultDict} from "@/types/func.ts";
|
||||
|
||||
export async function getArticleBookDataByUrl(val: DictResource) {
|
||||
let dictResourceUrl = `./dicts/${val.language}/${val.type}/${val.translateLanguage}/${val.url}`;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {SAVE_DICT_KEY, SAVE_SETTING_KEY} from "@/utils/const.ts";
|
||||
import {BaseState, DefaultBaseState} from "@/stores/base.ts";
|
||||
import {getDefaultSettingState} from "@/stores/setting.ts";
|
||||
import {Dict, DictResource, DictType, getDefaultArticle, getDefaultDict, getDefaultWord} from "@/types/types.ts";
|
||||
import {Dict, DictResource, DictType} from "@/types/types.ts";
|
||||
import {useRouter} from "vue-router";
|
||||
import {useRuntimeStore} from "@/stores/runtime.ts";
|
||||
import {nanoid} from "nanoid";
|
||||
@@ -11,6 +11,7 @@ import {env} from "@/config/ENV.ts";
|
||||
import {nextTick} from "vue";
|
||||
import {dictionaryResources, enArticle} from "@/assets/dictionary.ts";
|
||||
import {ElMessage} from "element-plus";
|
||||
import {getDefaultArticle, getDefaultDict, getDefaultWord} from "@/types/func.ts";
|
||||
|
||||
export function no() {
|
||||
ElMessage.warning('未现实')
|
||||
|
||||
Reference in New Issue
Block a user