This commit is contained in:
zyronon
2024-05-31 02:31:38 +08:00
parent b9a35f5c6d
commit ce07e9e20e
10 changed files with 4307 additions and 5061 deletions

View File

@@ -1,7 +1,7 @@
import {Article, Dict, DictType, Word} from "@/types.ts";
import {useBaseStore} from "@/stores/base.ts";
import {useRuntimeStore} from "@/stores/runtime.ts";
import {chunk, cloneDeep} from "lodash-es";
import {chunk, cloneDeep, shuffle} from "lodash-es";
import {isArticle} from "@/hooks/article.ts";
import {nanoid} from "nanoid";
@@ -109,24 +109,60 @@ export function syncMyDictList(dict: Dict, isCustom = true) {
}
export function getCurrentStudyWord() {
console.time()
const store = useBaseStore()
let data = {new: [], review: []}
let data = {new: [], review: [], write: []}
let c = store.currentStudy.word
let dict = store.currentStudyWordDict;
if (dict.words?.length) {
for (let i = c.lastLearnIndex; i < dict.words.length; i++) {
if (data.new.length >= c.perDayStudyNumber) break
let item = dict.words[i]
if (!store.skipWordNames.includes(item.word.toLowerCase())) {
if (!store.simple2.map(v => v.word.toLowerCase()).includes(item.word.toLowerCase())) {
data.new.push(item)
}
}
if (dict.statistics.length) {
let stat = dict.statistics.reverse()
stat.slice(0, 1).map(({startIndex, endIndex}) => {
let list = dict.words.splice(startIndex, endIndex)
})
const getList = (startIndex, endIndex) => {
if (startIndex < 0) return []
return dict.words.slice(startIndex, endIndex)
}
let s = c.lastLearnIndex - c.perDayStudyNumber
let e = c.lastLearnIndex
//取上一次学习的单词用于复习
let list = getList(s, e)
list.map(item => {
if (!store.master.map(v => v.word.toLowerCase()).includes(item.word.toLowerCase())) {
data.review.push(item)
}
})
data.review = shuffle(data.review)
//取前天至再往前数3天的单词用于默写
Array.from({length: 4}).map((_, j) => {
e = s
s -= c.perDayStudyNumber
list = getList(s, e)
let d = []
for (let i = 0; i < list.length; i++) {
if (j === 3) {
if (d.length >= c.perDayStudyNumber - data.write.length) break
} else {
if (d.length >= Math.floor(c.perDayStudyNumber / 4)) break
}
let item = list[i]
if (!store.master.map(v => v.word.toLowerCase()).includes(item.word.toLowerCase())) {
d.push(item)
}
}
data.write = data.write.concat(d)
})
data.write = shuffle(data.write)
}
console.timeEnd()
console.log('data', data)
return data
}

View File

@@ -63,7 +63,7 @@ export function useStartKeyboardEventListener() {
for (let i = 0; i < list.length; i++) {
let [k, v] = list[i]
if (v === shortcutKey) {
console.log('快捷键', k)
// console.log('快捷键', k)
shortcutEvent = k
break
}