diff --git a/components.d.ts b/components.d.ts
index 76ede58f..525e664d 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -44,6 +44,7 @@ declare module 'vue' {
IconFluentArrowClockwise20Regular: typeof import('~icons/fluent/arrow-clockwise20-regular')['default']
IconFluentArrowDownload20Regular: typeof import('~icons/fluent/arrow-download20-regular')['default']
IconFluentArrowLeft16Regular: typeof import('~icons/fluent/arrow-left16-regular')['default']
+ IconFluentArrowMove20Regular: typeof import('~icons/fluent/arrow-move20-regular')['default']
IconFluentArrowRepeatAll20Regular: typeof import('~icons/fluent/arrow-repeat-all20-regular')['default']
IconFluentArrowRight16Regular: typeof import('~icons/fluent/arrow-right16-regular')['default']
IconFluentArrowShuffle16Regular: typeof import('~icons/fluent/arrow-shuffle16-regular')['default']
@@ -54,7 +55,6 @@ declare module 'vue' {
IconFluentBookLetter20Regular: typeof import('~icons/fluent/book-letter20-regular')['default']
IconFluentBookNumber20Filled: typeof import('~icons/fluent/book-number20-filled')['default']
IconFluentCalendarDate20Regular: typeof import('~icons/fluent/calendar-date20-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']
IconFluentCheckmarkCircle20Filled: typeof import('~icons/fluent/checkmark-circle20-filled')['default']
diff --git a/package-lock.json b/package-lock.json
index f06c9bef..acad8ede 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
"dependencies": {
"@imengyu/vue3-context-menu": "^1.5.1",
"@vueuse/core": "14.0.0-alpha.0",
+ "@zumer/snapdom": "^2.0.0",
"axios": "^1.10.0",
"compromise": "^14.14.4",
"copy-to-clipboard": "^3.3.3",
@@ -28,12 +29,14 @@
"devDependencies": {
"@alicloud/pop-core": "^1.8.0",
"@iconify-json/bx": "^1.2.2",
+ "@iconify-json/dinkie-icons": "^1.2.0",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/fluent": "^1.2.28",
"@iconify-json/icon-park-outline": "^1.2.4",
"@iconify-json/icon-park-solid": "^1.2.4",
"@iconify-json/ix": "^1.2.10",
"@iconify-json/material-symbols": "^1.2.33",
+ "@iconify-json/mdi": "^1.2.3",
"@iconify-json/oui": "^1.2.6",
"@iconify-json/ph": "^1.2.2",
"@iconify-json/qlementine-icons": "^1.2.11",
@@ -1095,6 +1098,16 @@
"@iconify/types": "*"
}
},
+ "node_modules/@iconify-json/dinkie-icons": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@iconify-json/dinkie-icons/-/dinkie-icons-1.2.0.tgz",
+ "integrity": "sha512-/RSAjK6twyEOKfW9FddZDP+EPMeSIocb4Y4Zq2Y2IbqUxYmNHqXtxidVioBzpv+a3JeiQ61ARlRKtCQ0BqSGpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@iconify/types": "*"
+ }
+ },
"node_modules/@iconify-json/eos-icons": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@iconify-json/eos-icons/-/eos-icons-1.2.4.tgz",
@@ -1150,6 +1163,16 @@
"@iconify/types": "*"
}
},
+ "node_modules/@iconify-json/mdi": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
+ "integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@iconify/types": "*"
+ }
+ },
"node_modules/@iconify-json/oui": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@iconify-json/oui/-/oui-1.2.6.tgz",
@@ -3934,6 +3957,12 @@
"vue": "^3.5.0"
}
},
+ "node_modules/@zumer/snapdom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@zumer/snapdom/-/snapdom-2.0.0.tgz",
+ "integrity": "sha512-e/fkm5wCUd+9CssUIyH09xTeR4DvRTmZLGVOlnXLhr4HeI7sdc6ed8cLPiZKFtiQDRiwD3EKx4RIUrpQOJQY7A==",
+ "license": "MIT"
+ },
"node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
@@ -13543,6 +13572,15 @@
"@iconify/types": "*"
}
},
+ "@iconify-json/dinkie-icons": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@iconify-json/dinkie-icons/-/dinkie-icons-1.2.0.tgz",
+ "integrity": "sha512-/RSAjK6twyEOKfW9FddZDP+EPMeSIocb4Y4Zq2Y2IbqUxYmNHqXtxidVioBzpv+a3JeiQ61ARlRKtCQ0BqSGpA==",
+ "dev": true,
+ "requires": {
+ "@iconify/types": "*"
+ }
+ },
"@iconify-json/eos-icons": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@iconify-json/eos-icons/-/eos-icons-1.2.4.tgz",
@@ -13597,6 +13635,15 @@
"@iconify/types": "*"
}
},
+ "@iconify-json/mdi": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
+ "integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
+ "dev": true,
+ "requires": {
+ "@iconify/types": "*"
+ }
+ },
"@iconify-json/oui": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@iconify-json/oui/-/oui-1.2.6.tgz",
@@ -15554,6 +15601,11 @@
"integrity": "sha512-J8cmTJkB0hAwPBXRR5U3N9FJkhPBrhyYiQm21kZ3j/o8W69Pg6JlPSxLOJtkg+AwC/r5x7Gpq2Vglv84vHotwA==",
"requires": {}
},
+ "@zumer/snapdom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@zumer/snapdom/-/snapdom-2.0.0.tgz",
+ "integrity": "sha512-e/fkm5wCUd+9CssUIyH09xTeR4DvRTmZLGVOlnXLhr4HeI7sdc6ed8cLPiZKFtiQDRiwD3EKx4RIUrpQOJQY7A=="
+ },
"acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
diff --git a/src/pages/word/DictDetail.vue b/src/pages/word/DictDetail.vue
index 303b6490..a97f863f 100644
--- a/src/pages/word/DictDetail.vue
+++ b/src/pages/word/DictDetail.vue
@@ -256,6 +256,17 @@ async function addMyStudyList() {
startPractice()
}
+async function startTest() {
+ if (!runtimeStore.editDict.words.length) {
+ loading = true
+ let r = await _getDictDataByUrl(runtimeStore.editDict)
+ runtimeStore.editDict = r
+ loading = false
+ }
+ await base.changeDict(runtimeStore.editDict)
+ nav('word-test/' + store.sdict.id, {})
+}
+
let exportLoading = $ref(false)
let importLoading = $ref(false)
let tableRef = ref()
@@ -388,6 +399,7 @@ defineRender(() => {