+
+
{{ index + 1 }}.
{{ item.word }}
{{ item.phonetic0 }}
@@ -72,5 +73,10 @@ defineExpose({scrollToBottom, scrollToItem})
diff --git a/src/pages/setting/Setting.vue b/src/pages/setting/Setting.vue
index 3ffc53ae..f1af2864 100644
--- a/src/pages/setting/Setting.vue
+++ b/src/pages/setting/Setting.vue
@@ -152,7 +152,9 @@ function getShortcutKeyName(key: string): string {
'ToggleDictation': '切换默写模式',
'ToggleTheme': '切换主题',
'ToggleConciseMode': '切换简洁模式',
- 'TogglePanel': '切换面板'
+ 'TogglePanel': '切换面板',
+ 'RandomWrite': '随机默写',
+ 'NextRandomWrite': '继续随机默写'
}
return shortcutKeyNameMap[key] || key
diff --git a/src/pages/word/PracticeWords.vue b/src/pages/word/PracticeWords.vue
index 0aacca14..1630202c 100644
--- a/src/pages/word/PracticeWords.vue
+++ b/src/pages/word/PracticeWords.vue
@@ -57,6 +57,8 @@ let data = $ref
({
wrongWords: [],
})
+let isRandomWrite = false;
+
async function loadDict() {
// console.log('load好了开始加载')
let dict = getDefaultDict()
@@ -229,7 +231,8 @@ function next(isTyping: boolean = true) {
//开始默写新词
if (statStore.step === 0) {
- if (settingStore.wordPracticeMode === 1) {
+ if (settingStore.wordPracticeMode === 1 || isRandomWrite) {
+ isRandomWrite = false
console.log('自由模式,全完学完了')
showStatDialog = true
localStorage.removeItem(PracticeSaveWordKey.key)
@@ -380,9 +383,24 @@ function continueStudy() {
initData(getCurrentStudyWord())
}
+function randomWrite() {
+ console.log('随机默写')
+ data.words = shuffle(data.words);
+ data.index = 0
+ settingStore.dictation = true
+ isRandomWrite = true
+}
+function nextRandomWrite() {
+ console.log('继续随机默写')
+ initData(getCurrentStudyWord())
+ randomWrite();
+ showStatDialog = false
+}
+
useEvents([
[EventKey.repeatStudy, repeat],
[EventKey.continueStudy, continueStudy],
+ [EventKey.randomWrite, nextRandomWrite],
[EventKey.changeDict, () => {
initData(getCurrentStudyWord())
}],
@@ -401,6 +419,8 @@ useEvents([
[ShortcutKey.ToggleTheme, toggleTheme],
[ShortcutKey.ToggleConciseMode, toggleConciseMode],
[ShortcutKey.TogglePanel, togglePanel],
+ [ShortcutKey.RandomWrite, randomWrite],
+ [ShortcutKey.NextRandomWrite, nextRandomWrite],
])
@@ -453,6 +473,11 @@ useEvents([
:title="`下一组(${settingStore.shortcutKeyMap[ShortcutKey.NextChapter]})`">
+
+
+
diff --git a/src/pages/word/Statistics.vue b/src/pages/word/Statistics.vue
index ca090289..f6a5cafe 100644
--- a/src/pages/word/Statistics.vue
+++ b/src/pages/word/Statistics.vue
@@ -168,6 +168,11 @@ function options(emitType: string) {
@click="options(EventKey.continueStudy)">
{{ dictIsEnd ? '重新练习' : '再来一组' }}
+
+ 继续默写
+
返回主页
diff --git a/src/types/types.ts b/src/types/types.ts
index 0f2cca47..68b2bd7e 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -115,7 +115,9 @@ export enum ShortcutKey {
ToggleDictation = 'ToggleDictation',
ToggleTheme = 'ToggleTheme',
ToggleConciseMode = 'ToggleConciseMode',
- TogglePanel = 'TogglePanel'
+ TogglePanel = 'TogglePanel',
+ RandomWrite = 'RandomWrite',
+ NextRandomWrite = 'NextRandomWrite'
}
export const DefaultShortcutKeyMap = {
@@ -135,6 +137,8 @@ export const DefaultShortcutKeyMap = {
[ShortcutKey.ToggleTheme]: 'Ctrl+Q',
[ShortcutKey.ToggleConciseMode]: 'Ctrl+M',
[ShortcutKey.TogglePanel]: 'Ctrl+L',
+ [ShortcutKey.RandomWrite]: 'Ctrl+R',
+ [ShortcutKey.NextRandomWrite]: 'Ctrl+Shift+R',
}
export enum TranslateEngine {
diff --git a/src/utils/eventBus.ts b/src/utils/eventBus.ts
index 4ce756ce..6fb47c48 100644
--- a/src/utils/eventBus.ts
+++ b/src/utils/eventBus.ts
@@ -17,6 +17,7 @@ export const EventKey = {
editDict: 'editDict',
openMyDictDialog: 'openMyDictDialog',
stateInitEnd: 'stateInitEnd',
+ randomWrite: 'randomWrite',
}
export function useEvent(key: string, func: any) {