diff --git a/components.d.ts b/components.d.ts
index 845f90ad..191235de 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -66,6 +66,8 @@ declare module 'vue' {
VolumeIcon: typeof import('./src/components/icon/VolumeIcon.vue')['default']
VolumeSetting: typeof import('./src/components/toolbar/VolumeSetting.vue')['default']
WordItem: typeof import('./src/components/list/WordItem.vue')['default']
+ WordList: typeof import('./src/components/list2/WordList.vue')['default']
+ WordList4: typeof import('./src/components/list2/WordList4.vue')['default']
WordListDialog: typeof import('./src/components/dialog/WordListDialog.vue')['default']
}
export interface ComponentCustomProperties {
diff --git a/src/assets/css/style.scss b/src/assets/css/style.scss
index 65b05c2d..1cb0fe50 100644
--- a/src/assets/css/style.scss
+++ b/src/assets/css/style.scss
@@ -372,6 +372,12 @@ footer {
}
&.border {
+ &.active {
+ .item-title {
+ border-bottom: 2px solid gray !important;
+ }
+ }
+
.item-title {
transition: all .3s;
cursor: pointer;
diff --git a/src/components/dialog/DictDiglog.vue b/src/components/dialog/DictDiglog.vue
index 58cc0525..cd91e9e9 100644
--- a/src/components/dialog/DictDiglog.vue
+++ b/src/components/dialog/DictDiglog.vue
@@ -22,6 +22,7 @@ import EditBatchArticleModal from "@/components/article/EditBatchArticleModal.vu
import {nanoid} from "nanoid";
import DictListPanel from "@/components/DictListPanel.vue";
import {useRouter} from "vue-router";
+import ArticleList4 from "@/components/list2/ArticleList4.vue";
const store = useBaseStore()
const settingStore = useSettingStore()
@@ -316,13 +317,26 @@ function addDict() {
{{ dictIsArticle ? '文章' : '章节' }}列表
-
-
+ :show-border="true"
+ @title="val => emitter.emit(EventKey.openArticleListModal,val.item)"
+ @click="(val:any) => runtimeStore.editDict.chapterIndex = val.index"
+ :active-index="runtimeStore.editDict.chapterIndex"
+ :list="runtimeStore.editDict.articles">
+
+
+
+
+
+
diff --git a/src/components/list2/ArticleList4.vue b/src/components/list2/ArticleList4.vue
index 1250a08e..1c1261a9 100644
--- a/src/components/list2/ArticleList4.vue
+++ b/src/components/list2/ArticleList4.vue
@@ -19,6 +19,7 @@ const props = withDefaults(defineProps<{
const emit = defineEmits<{
click: [val: { item: Article, index: number }],
+ title: [val: { item: Article, index: number }],
}>()
let searchKey = $ref('')
@@ -63,7 +64,7 @@ defineExpose({scrollToBottom, scrollToItem})
-
+
{{ `${searchKey ? '' : (index + 1) + '. '}${item.title}` }}
diff --git a/src/components/list2/BaseList.vue b/src/components/list2/BaseList.vue
index 6ae08848..a6f8a18e 100644
--- a/src/components/list2/BaseList.vue
+++ b/src/components/list2/BaseList.vue
@@ -102,7 +102,10 @@ defineExpose({scrollToBottom, scrollToItem})
>
diff --git a/src/components/list2/WordList.vue b/src/components/list2/WordList.vue
new file mode 100644
index 00000000..9f212645
--- /dev/null
+++ b/src/components/list2/WordList.vue
@@ -0,0 +1,67 @@
+
+
+
+ emit('click',e)"
+ :list="list"
+ v-bind="$attrs">
+
+
+
+
+
+ {{ item.name }}
+ {{ item.usphone }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/dict/components/ArticleDictDetail.vue b/src/pages/dict/components/ArticleDictDetail.vue
index 58c7c98d..99ce936e 100644
--- a/src/pages/dict/components/ArticleDictDetail.vue
+++ b/src/pages/dict/components/ArticleDictDetail.vue
@@ -21,6 +21,7 @@ import * as XLSX from "xlsx";
import {MessageBox} from "@/utils/MessageBox.tsx";
import {syncMyDictList} from "@/hooks/dict.ts";
import {useWindowClick} from "@/hooks/event.ts";
+import ArticleList4 from "@/components/list2/ArticleList4.vue";
const store = useBaseStore()
const settingStore = useSettingStore()
@@ -39,7 +40,7 @@ const isPinDict = $computed(() => {
function handleCheckedChange(val) {
chapterIndex = val.index
- article = val.data
+ article = val.item
}
function delArticle(index: number) {
@@ -297,20 +298,21 @@ defineExpose({getDictDetail, add, editDict})
@@ -454,6 +456,7 @@ defineExpose({getDictDetail, add, editDict})
.wrapper {
flex: 1;
+ display: flex;
padding-bottom: var(--space);
overflow: hidden;
}
diff --git a/src/pages/practice/Panel.vue b/src/pages/practice/Panel.vue
index 582d531a..d6284ba9 100644
--- a/src/pages/practice/Panel.vue
+++ b/src/pages/practice/Panel.vue
@@ -20,6 +20,7 @@ import ArticleList2 from "@/components/list/ArticleList2.vue";
import {useRouter} from "vue-router";
import {useRuntimeStore} from "@/stores/runtime.ts";
import {cloneDeep} from "lodash-es";
+import WordList from "@/components/list2/WordList.vue";
const router = useRouter()
const store = useBaseStore()
@@ -126,18 +127,18 @@ function addSimple() {
-
-
+
-
+
@@ -178,18 +179,18 @@ function addSimple() {
-
-
+
-
+
@@ -207,17 +208,17 @@ function addSimple() {
-
-
+
-
+
diff --git a/src/pages/practice/practice-word/TypingWord.vue b/src/pages/practice/practice-word/TypingWord.vue
index c114325b..532785fc 100644
--- a/src/pages/practice/practice-word/TypingWord.vue
+++ b/src/pages/practice/practice-word/TypingWord.vue
@@ -18,6 +18,8 @@ import {useRuntimeStore} from "@/stores/runtime.ts";
import {useWordOptions} from "@/hooks/dict.ts";
import BaseIcon from "@/components/BaseIcon.vue";
import CommonWordList from "@/components/list/CommonWordList.vue";
+import WordList from "@/components/list2/WordList.vue";
+import Empty from "@/components/Empty.vue";
interface IProps {
words: Word[],
@@ -286,39 +288,41 @@ onUnmounted(() => {
{{ data.words.length }}个单词
- data.index = val.index"
:show-word="!settingStore.dictation"
:show-translate="settingStore.translate"
:list="data.words"
- :activeIndex="data.index">
-
+ :activeIndex="data.index"
+ @click="(val:any) => data.index = val.index"
+ >
+
-
+
+
diff --git a/src/stores/base.ts b/src/stores/base.ts
index 5ce18994..79af35c0 100644
--- a/src/stores/base.ts
+++ b/src/stores/base.ts
@@ -115,7 +115,7 @@ export const useBaseStore = defineStore('base', {
},
],
current: {
- index: 3,
+ index: 4,
// dictType: DictType.article,
// index: 0,
practiceType: DictType.word,