diff --git a/components.d.ts b/components.d.ts index af905938..9da45e8e 100644 --- a/components.d.ts +++ b/components.d.ts @@ -38,14 +38,30 @@ declare module 'vue' { IconFluentAdd16Regular: typeof import('~icons/fluent/add16-regular')['default'] IconFluentAdd20Filled: typeof import('~icons/fluent/add20-filled')['default'] IconFluentAdd20Regular: typeof import('~icons/fluent/add20-regular')['default'] + IconFluentAddCircle20Filled: typeof import('~icons/fluent/add-circle20-filled')['default'] IconFluentAddSquare20Regular: typeof import('~icons/fluent/add-square20-regular')['default'] IconFluentArrowBounce20Regular: typeof import('~icons/fluent/arrow-bounce20-regular')['default'] IconFluentArrowCircleRight16Regular: typeof import('~icons/fluent/arrow-circle-right16-regular')['default'] + IconFluentArrowClockwise20Regular: typeof import('~icons/fluent/arrow-clockwise20-regular')['default'] + IconFluentArrowClockwise32Filled: typeof import('~icons/fluent/arrow-clockwise32-filled')['default'] + IconFluentArrowClockwise32Regular: typeof import('~icons/fluent/arrow-clockwise32-regular')['default'] + IconFluentArrowCounterclockwise32Filled: typeof import('~icons/fluent/arrow-counterclockwise32-filled')['default'] + IconFluentArrowCounterclockwise32Regular: typeof import('~icons/fluent/arrow-counterclockwise32-regular')['default'] IconFluentArrowLeft16Regular: typeof import('~icons/fluent/arrow-left16-regular')['default'] + IconFluentArrowMove20Regular: typeof import('~icons/fluent/arrow-move20-regular')['default'] IconFluentArrowRight16Regular: typeof import('~icons/fluent/arrow-right16-regular')['default'] IconFluentArrowShuffle16Regular: typeof import('~icons/fluent/arrow-shuffle16-regular')['default'] + IconFluentArrowShuffle20Filled: typeof import('~icons/fluent/arrow-shuffle20-filled')['default'] + IconFluentArrowShuffle20Regular: typeof import('~icons/fluent/arrow-shuffle20-regular')['default'] + IconFluentArrowShuffle24Regular: typeof import('~icons/fluent/arrow-shuffle24-regular')['default'] + IconFluentArrowShuffle28Filled: typeof import('~icons/fluent/arrow-shuffle28-filled')['default'] + IconFluentArrowShuffle28Regular: typeof import('~icons/fluent/arrow-shuffle28-regular')['default'] IconFluentArrowSort20Regular: typeof import('~icons/fluent/arrow-sort20-regular')['default'] + IconFluentArrowSwap20Regular: typeof import('~icons/fluent/arrow-swap20-regular')['default'] IconFluentBookLetter20Regular: typeof import('~icons/fluent/book-letter20-regular')['default'] + IconFluentBookNumber20Filled: typeof import('~icons/fluent/book-number20-filled')['default'] + IconFluentBookNumber20Regular: typeof import('~icons/fluent/book-number20-regular')['default'] + IconFluentCalendarEdit20Regular: typeof import('~icons/fluent/calendar-edit20-regular')['default'] IconFluentCheckmark20Regular: typeof import('~icons/fluent/checkmark20-regular')['default'] IconFluentCheckmarkCircle16Filled: typeof import('~icons/fluent/checkmark-circle16-filled')['default'] IconFluentCheckmarkCircle16Regular: typeof import('~icons/fluent/checkmark-circle16-regular')['default'] @@ -53,16 +69,20 @@ declare module 'vue' { IconFluentChevronLeft20Filled: typeof import('~icons/fluent/chevron-left20-filled')['default'] IconFluentChevronLeft28Filled: typeof import('~icons/fluent/chevron-left28-filled')['default'] IconFluentDatabasePerson20Regular: typeof import('~icons/fluent/database-person20-regular')['default'] + IconFluentDataUsageEdit20Regular: typeof import('~icons/fluent/data-usage-edit20-regular')['default'] IconFluentDelete20Regular: typeof import('~icons/fluent/delete20-regular')['default'] IconFluentDismiss20Regular: typeof import('~icons/fluent/dismiss20-regular')['default'] IconFluentDismissCircle16Regular: typeof import('~icons/fluent/dismiss-circle16-regular')['default'] IconFluentDismissCircle20Filled: typeof import('~icons/fluent/dismiss-circle20-filled')['default'] + IconFluentDocumentEdit20Regular: typeof import('~icons/fluent/document-edit20-regular')['default'] IconFluentErrorCircle20Filled: typeof import('~icons/fluent/error-circle20-filled')['default'] IconFluentEye16Regular: typeof import('~icons/fluent/eye16-regular')['default'] IconFluentEyeOff16Regular: typeof import('~icons/fluent/eye-off16-regular')['default'] IconFluentHome20Regular: typeof import('~icons/fluent/home20-regular')['default'] IconFluentKeyboardLayoutFloat20Regular: typeof import('~icons/fluent/keyboard-layout-float20-regular')['default'] + IconFluentLayoutColumnTwoEdit20Regular: typeof import('~icons/fluent/layout-column-two-edit20-regular')['default'] IconFluentMyLocation20Regular: typeof import('~icons/fluent/my-location20-regular')['default'] + IconFluentNoteEdit20Regular: typeof import('~icons/fluent/note-edit20-regular')['default'] IconFluentPaddingLeft20Regular: typeof import('~icons/fluent/padding-left20-regular')['default'] IconFluentPerson20Regular: typeof import('~icons/fluent/person20-regular')['default'] IconFluentPlay20Regular: typeof import('~icons/fluent/play20-regular')['default'] @@ -72,6 +92,8 @@ declare module 'vue' { IconFluentSearch24Regular: typeof import('~icons/fluent/search24-regular')['default'] IconFluentSettings20Regular: typeof import('~icons/fluent/settings20-regular')['default'] IconFluentShieldQuestion20Regular: typeof import('~icons/fluent/shield-question20-regular')['default'] + IconFluentSlideTextEdit20Regular: typeof import('~icons/fluent/slide-text-edit20-regular')['default'] + IconFluentSlideTextTitleEdit20Regular: typeof import('~icons/fluent/slide-text-title-edit20-regular')['default'] IconFluentSpeakerEdit20Regular: typeof import('~icons/fluent/speaker-edit20-regular')['default'] IconFluentSpeakerSettings20Regular: typeof import('~icons/fluent/speaker-settings20-regular')['default'] IconFluentStar12Regular: typeof import('~icons/fluent/star12-regular')['default'] diff --git a/src/components/BaseButton.vue b/src/components/BaseButton.vue index 95940b47..714f942c 100644 --- a/src/components/BaseButton.vue +++ b/src/components/BaseButton.vue @@ -7,7 +7,7 @@ interface IProps { disabled?: boolean loading?: boolean size?: 'small' | 'normal' | 'large', - type?: 'primary' | 'link' | 'info' + type?: 'primary' | 'link' | 'info' | 'orange' } withDefaults(defineProps(), { @@ -97,7 +97,7 @@ defineEmits(['click']) } } - &:hover { + &:hover:not(.disabled) { opacity: .8; } @@ -120,6 +120,11 @@ defineEmits(['click']) color: var(--color-main-text); } + &.orange { + background: #FACC15; + color: black; + } + &.active { opacity: .4; } diff --git a/src/hooks/dict.ts b/src/hooks/dict.ts index a9bc1cff..541fb915 100644 --- a/src/hooks/dict.ts +++ b/src/hooks/dict.ts @@ -1,4 +1,4 @@ -import {Article, TaskWords, Word, WordPracticeMode} from "@/types/types.ts"; +import { Article, TaskWords, Word, WordPracticeMode } from "@/types/types.ts"; import { useBaseStore } from "@/stores/base.ts"; import { useSettingStore } from "@/stores/setting.ts"; import { getDefaultWord } from "@/types/func.ts"; @@ -87,7 +87,7 @@ export function useArticleOptions() { export function getCurrentStudyWord(): TaskWords { const store = useBaseStore() - let data = {new: [], review: [], write: []} + let data = {new: [], review: [], write: [], shuffle: []} let dict = store.sdict; let isTest = false let words = dict.words.slice() diff --git a/src/pages/word/PracticeWords.vue b/src/pages/word/PracticeWords.vue index 33b94479..761dd372 100644 --- a/src/pages/word/PracticeWords.vue +++ b/src/pages/word/PracticeWords.vue @@ -1,17 +1,17 @@ diff --git a/src/pages/word/components/Footer.vue b/src/pages/word/components/Footer.vue index 7522b27a..44f931c5 100644 --- a/src/pages/word/components/Footer.vue +++ b/src/pages/word/components/Footer.vue @@ -62,6 +62,9 @@ const status = $computed(() => { case 8: str += '默写之前学习' break + case 10: + str += '随机复习' + break } return str }) diff --git a/src/pages/word/components/PracticeSettingDialog.vue b/src/pages/word/components/PracticeSettingDialog.vue index 202ea6bc..cb9ab1a2 100644 --- a/src/pages/word/components/PracticeSettingDialog.vue +++ b/src/pages/word/components/PracticeSettingDialog.vue @@ -1,18 +1,15 @@ + + + + diff --git a/src/types/types.ts b/src/types/types.ts index c6d1ae2f..6573d906 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -200,6 +200,7 @@ export interface TaskWords { new: Word[], review: Word[], write: Word[], + shuffle: Word[], } export class DictId { diff --git a/uno.config.ts b/uno.config.ts index 466cc218..b411c566 100644 --- a/uno.config.ts +++ b/uno.config.ts @@ -8,6 +8,8 @@ export default defineConfig({ 'bg-third': 'bg-[var(--color-third)]', 'bg-card-active': 'bg-[var(--color-card-active)]', 'bg-item': 'bg-[var(--color-item-bg)]', + 'bg-reverse-white': 'bg-[var(--color-reverse-white)]', + 'bg-reverse-black': 'bg-[var(--color-reverse-black)]', 'color-main': 'color-[var(--color-main-text)]', 'gap-space': 'gap-[var(--space)]', 'p-space': 'p-[var(--space)]',