diff --git a/components.d.ts b/components.d.ts
index 74f16838..99043100 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -10,6 +10,7 @@ declare module 'vue' {
export interface GlobalComponents {
About: typeof import('./src/components/About.vue')['default']
ArticleList: typeof import('./src/components/list/ArticleList.vue')['default']
+ ArticleSettting: typeof import('./src/components/setting/ArticleSettting.vue')['default']
Audio: typeof import('./src/components/base/Audio.vue')['default']
BackIcon: typeof import('./src/components/BackIcon.vue')['default']
BaseButton: typeof import('./src/components/BaseButton.vue')['default']
@@ -23,6 +24,7 @@ declare module 'vue' {
ChannelIcons: typeof import('./src/components/ChannelIcons/ChannelIcons.vue')['default']
Checkbox: typeof import('./src/components/base/checkbox/Checkbox.vue')['default']
Close: typeof import('./src/components/icon/Close.vue')['default']
+ CommonSetting: typeof import('./src/components/setting/CommonSetting.vue')['default']
ConflictNotice: typeof import('./src/components/ConflictNotice.vue')['default']
DeleteIcon: typeof import('./src/components/icon/DeleteIcon.vue')['default']
Dialog: typeof import('./src/components/dialog/Dialog.vue')['default']
@@ -159,5 +161,6 @@ declare module 'vue' {
WeChat: typeof import('./src/components/ChannelIcons/WeChat.vue')['default']
WordItem: typeof import('./src/components/WordItem.vue')['default']
WordList: typeof import('./src/components/list/WordList.vue')['default']
+ WordSetting: typeof import('./src/components/setting/WordSetting.vue')['default']
}
}
diff --git a/src/assets/css/style.scss b/src/assets/css/style.scss
index 67fc02a2..12c18dba 100644
--- a/src/assets/css/style.scss
+++ b/src/assets/css/style.scss
@@ -28,6 +28,7 @@
--toolbar-width: 50rem;
--panel-width: 24rem;
+ --modal-padding: 1.3rem;
--space: 0.9rem;
--stat-gap: 1rem;
--shadow: rgba(0, 0, 0, 0.08) 0px 4px 12px;
@@ -245,7 +246,7 @@ body {
display: flex;
flex-direction: column;
- &>.page-content {
+ & > .page-content {
padding: 10rem;
box-sizing: border-box;
overflow: auto;
@@ -532,6 +533,6 @@ a {
.btn-no-margin {
.base-button + .base-button {
- margin-left: 0!important;
+ margin-left: 0 !important;
}
}
\ No newline at end of file
diff --git a/src/components/BaseTable.vue b/src/components/BaseTable.vue
index 3437d2ca..c1f1a9ae 100644
--- a/src/components/BaseTable.vue
+++ b/src/components/BaseTable.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/src/components/BaseTable2.vue b/src/components/BaseTable2.vue
index c1f1a9ae..d37bd4e9 100644
--- a/src/components/BaseTable2.vue
+++ b/src/components/BaseTable2.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/src/components/dialog/Dialog.vue b/src/components/dialog/Dialog.vue
index ddab3626..3c4ee612 100644
--- a/src/components/dialog/Dialog.vue
+++ b/src/components/dialog/Dialog.vue
@@ -89,7 +89,7 @@ watch(() => props.modelValue, n => {
// console.log('n', n)
if (n) {
id = Date.now()
- runtimeStore.modalList.push({id, close})
+ runtimeStore.modalList.push({ id, close })
zIndex = 999 + runtimeStore.modalList.length
visible = true
} else {
@@ -101,7 +101,7 @@ onMounted(() => {
if (props.modelValue === undefined) {
visible = true
id = Date.now()
- runtimeStore.modalList.push({id, close})
+ runtimeStore.modalList.push({ id, close })
zIndex = 999 + runtimeStore.modalList.length
}
})
@@ -175,7 +175,7 @@ async function cancel() {
{{ cancelButtonText }}
{{ confirmButtonText }}
@@ -292,7 +292,8 @@ $header-height: 4rem;
display: flex;
justify-content: space-between;
align-items: center;
- padding: 1.3rem 1.3rem 1rem;
+ padding: var(--modal-padding);
+ padding-bottom: 0;
border-radius: $radius $radius 0 0;
.title {
@@ -315,7 +316,7 @@ $header-height: 4rem;
display: flex;
&.padding {
- padding: .2rem 1.6rem 1.6rem;
+ padding: .2rem var(--modal-padding);
}
.content {
@@ -327,7 +328,7 @@ $header-height: 4rem;
.modal-footer {
display: flex;
justify-content: space-between;
- padding: var(--space);
+ padding: var(--modal-padding);
}
}
}
diff --git a/src/pages/article/PracticeArticles.vue b/src/pages/article/PracticeArticles.vue
index 4c3ab289..ed3e94b2 100644
--- a/src/pages/article/PracticeArticles.vue
+++ b/src/pages/article/PracticeArticles.vue
@@ -36,7 +36,7 @@ import ArticleAudio from "@/pages/article/components/ArticleAudio.vue";
import { AppEnv, DICT_LIST, LIB_JS_URL, PracticeSaveArticleKey, TourConfig } from "@/config/env.ts";
import { addStat, setUserDictProp } from "@/apis";
import { useRuntimeStore } from "@/stores/runtime.ts";
-import SettingDialog from "@/components/SettingDialog.vue";
+import SettingDialog from "@/components/setting/SettingDialog.vue";
const store = useBaseStore()
const runtimeStore = useRuntimeStore()
diff --git a/src/pages/setting/Setting.vue b/src/pages/setting/Setting.vue
index 3da22da4..3ab8af42 100644
--- a/src/pages/setting/Setting.vue
+++ b/src/pages/setting/Setting.vue
@@ -43,28 +43,21 @@ import { useExport } from "@/hooks/export.ts";
import MigrateDialog from "@/components/MigrateDialog.vue";
import Log from "@/pages/setting/Log.vue";
import About from "@/components/About.vue";
+import CommonSetting from "@/components/setting/CommonSetting.vue";
+import ArticleSettting from "@/components/setting/ArticleSettting.vue";
+import WordSetting from "@/components/setting/WordSetting.vue";
const emit = defineEmits<{
toggleDisabledDialogEscKey: [val: boolean]
}>()
-const tabIndex = $ref(4)
+const tabIndex = $ref(0)
const settingStore = useSettingStore()
const runtimeStore = useRuntimeStore()
const store = useBaseStore()
//@ts-ignore
const gitLastCommitHash = ref(LATEST_COMMIT_HASH);
-const simpleWords = $computed({
- get: () => store.simpleWords.join(','),
- set: v => {
- try {
- store.simpleWords = v.split(',');
- } catch (e) {
-
- }
- }
-})
let editShortcutKey = $ref('')
@@ -311,6 +304,18 @@ function transferOk() {
+
+
+ 通用
+
+
+
+ 单词
+
+
+
+ 文章
+
数据管理
@@ -339,6 +344,11 @@ function transferOk() {
+
+
+
+
+
diff --git a/src/pages/word/components/ChangeLastPracticeIndexDialog.vue b/src/pages/word/components/ChangeLastPracticeIndexDialog.vue
index 77aeb1db..a05c50a0 100644
--- a/src/pages/word/components/ChangeLastPracticeIndexDialog.vue
+++ b/src/pages/word/components/ChangeLastPracticeIndexDialog.vue
@@ -2,8 +2,7 @@
import BaseTable from "@/components/BaseTable.vue";
import WordItem from "@/components/WordItem.vue";
-import {useBaseStore} from "@/stores/base.ts";
-import {defineAsyncComponent} from "vue";
+import { defineAsyncComponent } from "vue";
import { useRuntimeStore } from "@/stores/runtime.ts";
const Dialog = defineAsyncComponent(() => import('@/components/dialog/Dialog.vue'))
@@ -19,8 +18,10 @@ defineEmits<{
-