save
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user