diff --git a/src/pages/pc/article/ArticleHomePage.vue b/src/pages/pc/article/ArticleHomePage.vue index 16eb8e8a..98231359 100644 --- a/src/pages/pc/article/ArticleHomePage.vue +++ b/src/pages/pc/article/ArticleHomePage.vue @@ -95,8 +95,10 @@ function startStudy() {
-
{{ dict.name }}
-
{{ dict.description }}
+
+
{{ dict.name }}
+
{{ dict.description }}
+
{{ dict.length }}篇
@@ -118,8 +120,10 @@ function startStudy() {
-
{{ dict.name }}
-
{{ dict.description }}
+
+
{{ dict.name }}
+
{{ dict.description }}
+
{{ dict.length }}篇
diff --git a/src/pages/pc/article/BookDetail.vue b/src/pages/pc/article/BookDetail.vue index 9e9e5c08..52eb2444 100644 --- a/src/pages/pc/article/BookDetail.vue +++ b/src/pages/pc/article/BookDetail.vue @@ -11,6 +11,7 @@ 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() @@ -53,7 +54,12 @@ const showBookDetail = computed(() => { onMounted(() => { if (route.query?.isAdd) { isAdd = true + }else { + if (!runtimeStore.editDict.id) { + router.push("/") + } } + }) function formClose() { @@ -69,7 +75,7 @@ function formClose() {
{{ runtimeStore.editDict.name }}
- 编辑信息 + 编辑 文章管理 学习
@@ -109,11 +115,20 @@ function formClose() { -
-
- +
+ +
{{ + runtimeStore.editDict.id ? '修改' : '添加' + }}书籍 +
+
+
+
diff --git a/src/pages/pc/article/components/EditBook.vue b/src/pages/pc/article/components/EditBook.vue index dbe7abb3..97776ea3 100644 --- a/src/pages/pc/article/components/EditBook.vue +++ b/src/pages/pc/article/components/EditBook.vue @@ -10,7 +10,8 @@ import {useBaseStore} from "@/stores/base.ts"; import {syncMyDictList} from "@/hooks/dict.ts"; const props = defineProps<{ - isAdd: boolean + isAdd: boolean, + isBook: boolean }>() const emit = defineEmits<{ submit: [] @@ -44,28 +45,29 @@ async function onSubmit() { ...getDefaultDict(), ...dictForm, }) + let source = [store.article, store.word][props.isBook ? 0 : 1] //任意修改,都将其变为自定义词典 data.isCustom = true if (props.isAdd) { data.id = 'custom-dict-' + Date.now() //TODO 允许同名? - if (store.article.bookList.find(v => v.name === data.name)) { + if (source.bookList.find(v => v.name === data.name)) { return ElMessage.warning('已有相同名称书籍!') } else { - store.article.bookList.push(data) + source.bookList.push(data) runtimeStore.editDict = data emit('submit') ElMessage.success('添加成功') } } else { - let rIndex = store.article.bookList.findIndex(v => v.id === data.id) + let rIndex = source.bookList.findIndex(v => v.id === data.id) if (rIndex > -1) { - store.article.bookList[rIndex] = cloneDeep(data) + source.bookList[rIndex] = cloneDeep(data) runtimeStore.editDict = cloneDeep(data) emit('submit') ElMessage.success('修改成功') - }else { + } else { ElMessage.warning('修改失败') } } @@ -85,61 +87,43 @@ onMounted(() => { diff --git a/src/pages/pc/components/BaseTable.vue b/src/pages/pc/components/BaseTable.vue index 5a137fc1..3e9ad528 100644 --- a/src/pages/pc/components/BaseTable.vue +++ b/src/pages/pc/components/BaseTable.vue @@ -1,6 +1,5 @@ - diff --git a/src/pages/pc/components/WordItem.vue b/src/pages/pc/components/WordItem.vue index f01cf87b..f7152e94 100644 --- a/src/pages/pc/components/WordItem.vue +++ b/src/pages/pc/components/WordItem.vue @@ -8,10 +8,12 @@ const props = withDefaults(defineProps<{ item: Word, showTranslate?: boolean showWord?: boolean + showTransPop?: boolean hiddenOptionIcon?: boolean }>(), { showTranslate: true, showWord: true, + showTransPop: true, hiddenOptionIcon: false, }) @@ -34,7 +36,7 @@ const playWordAudio = usePlayWordAudio()
-
+
diff --git a/src/pages/pc/word/EditWordDict.vue b/src/pages/pc/word/EditWordDict.vue index 4a0abf0d..d309a033 100644 --- a/src/pages/pc/word/EditWordDict.vue +++ b/src/pages/pc/word/EditWordDict.vue @@ -1,19 +1,27 @@