From 6696d2f461dfde0aab8cd181a974e200d4c9e266 Mon Sep 17 00:00:00 2001 From: Zyronon Date: Fri, 14 Nov 2025 03:39:33 +0000 Subject: [PATCH] feat: allow skipping blank spaces in article practice mode --- src/App.vue | 4 +++- src/pages/article/components/TypingArticle.vue | 17 +++++++++++------ src/pages/setting/Setting.vue | 18 +++++++++++++++++- src/pages/word/WordsPage.vue | 2 ++ src/stores/setting.ts | 8 +------- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/App.vue b/src/App.vue index 14ef6389..d6ac43df 100644 --- a/src/App.vue +++ b/src/App.vue @@ -62,7 +62,9 @@ async function init() { store.load = true setTheme(settingStore.theme) - if (!settingStore.first) { + if (settingStore.first) { + set(APP_VERSION.key,APP_VERSION.version) + }else { get(APP_VERSION.key).then(r => { runtimeStore.isNew = r ? (APP_VERSION.version > Number(r)) : true }) diff --git a/src/pages/article/components/TypingArticle.vue b/src/pages/article/components/TypingArticle.vue index 82fbe26e..4aca1364 100644 --- a/src/pages/article/components/TypingArticle.vue +++ b/src/pages/article/components/TypingArticle.vue @@ -245,6 +245,7 @@ function nextSentence() { } function onTyping(e: KeyboardEvent) { + debugger if (!props.article.sections.length) return if (isTyping || isEnd) return; isTyping = true; @@ -277,12 +278,16 @@ function onTyping(e: KeyboardEvent) { if (e.code === 'Space') { next() } else { - wrong = ' ' - playBeep() - setTimeout(() => { - wrong = '' - wrong = input = '' - }, 500) + // 如果在第一个单词的最后一位上, 不按空格的直接输入下一个字母的话 + next() + isTyping = false + onTyping(e) + // wrong = ' ' + // playBeep() + // setTimeout(() => { + // wrong = '' + // wrong = input = '' + // }, 500) } } else { //如果是首句首词 diff --git a/src/pages/setting/Setting.vue b/src/pages/setting/Setting.vue index ef6a57e3..4cc8da5e 100644 --- a/src/pages/setting/Setting.vue +++ b/src/pages/setting/Setting.vue @@ -555,7 +555,7 @@ function importOldData() {
@@ -684,6 +684,22 @@ function importOldData() {
+
+
+
+
更新日期:2025/11/14
+
更新内容:新增文章练习时可跳过空格:如果在单词的最后一位上,不按空格直接输入下一个字母的话,自动跳下一个单词, 按空格也自动跳下一个单词
+
+
+
+
+
+
+
更新日期:2025/11/13
+
更新内容:新增文章练习时“输入时忽略符号/数字”选项
+
+
+
diff --git a/src/pages/word/WordsPage.vue b/src/pages/word/WordsPage.vue index b35d2f5a..5441f55e 100644 --- a/src/pages/word/WordsPage.vue +++ b/src/pages/word/WordsPage.vue @@ -86,6 +86,8 @@ function startPractice() { complete: store.sdict.complete, wordPracticeMode: settingStore.wordPracticeMode }) + //把是否是第一次设置为false + settingStore.first = false nav('practice-words/' + store.sdict.id, {}, {taskWords: currentStudy}) } else { window.umami?.track('no-dict') diff --git a/src/stores/setting.ts b/src/stores/setting.ts index a0875f07..424ae68e 100644 --- a/src/stores/setting.ts +++ b/src/stores/setting.ts @@ -117,13 +117,7 @@ export const useSettingStore = defineStore('setting', { }, init() { return new Promise(async resolve => { - //TODO 后面记得删除了 - let configStr = localStorage.getItem(SAVE_SETTING_KEY.key) - let configStr2 = await get(SAVE_SETTING_KEY.key) - if (configStr2) { - //兼容localStorage.getItem - configStr = configStr2 - } + let configStr = await get(SAVE_SETTING_KEY.key) let data = checkAndUpgradeSaveSetting(configStr) if (CAN_REQUEST) { let res = await getSetting()