diff --git a/src/components/RandomPicker.vue b/src/components/RandomPicker.vue index f02ab36..495e712 100644 --- a/src/components/RandomPicker.vue +++ b/src/components/RandomPicker.vue @@ -43,6 +43,48 @@ /> + +
+ + 姓名模式 + 学号模式 + +
+ + +
+
学号范围设置
+
+ + 至 + +
+
+
- 没有可抽取的学生,请调整过滤选项 + +
当前可抽取学生: {{ filteredStudents.length }}人 - + diff --git a/src/pages/settings.vue b/src/pages/settings.vue index f2303cb..ad67a0f 100644 --- a/src/pages/settings.vue +++ b/src/pages/settings.vue @@ -143,7 +143,9 @@ - + + + @@ -222,7 +224,7 @@ import SettingsExplorer from "@/components/settings/SettingsExplorer.vue"; import SettingsLinkGenerator from "@/components/SettingsLinkGenerator.vue"; import dataProvider from "@/utils/dataProvider"; import NamespaceSettingsCard from "@/components/settings/cards/NamespaceSettingsCard.vue"; - +import RandomPickerCard from "@/components/settings/cards/RandomPickerCard.vue"; export default { name: "Settings", components: { @@ -240,6 +242,7 @@ export default { SettingsExplorer, SettingsLinkGenerator, NamespaceSettingsCard, + RandomPickerCard, }, setup() { const { mobile } = useDisplay(); @@ -372,6 +375,11 @@ export default { icon: "mdi-account-group", value: "student", }, + { + title: "随机点名", + icon: "mdi-dice-multiple", + value: "randomPicker", + }, { title: "开发者", icon: "mdi-developer-board", diff --git a/src/utils/settings.js b/src/utils/settings.js index bae0f3c..301fc9c 100644 --- a/src/utils/settings.js +++ b/src/utils/settings.js @@ -360,7 +360,7 @@ const settingsDefinitions = { "randomPicker.defaultCount": { type: "number", default: 1, - validate: (value) => value >= 1 && value <= 10, + validate: (value) => value >= 1 && value, description: "默认抽取人数", icon: "mdi-counter", }, @@ -382,6 +382,27 @@ const settingsDefinitions = { description: "是否排除不参与学生", icon: "mdi-account-cancel", }, + "randomPicker.mode": { + type: "string", + default: "name", + validate: (value) => ["name", "number"].includes(value), + description: "随机点名模式", + icon: "mdi-format-list-numbered", + }, + "randomPicker.maxNumber": { + type: "number", + default: 60, + validate: (value) => value >= 1 && value, + description: "学号模式最大值", + icon: "mdi-numeric", + }, + "randomPicker.minNumber": { + type: "number", + default: 1, + validate: (value) => value >= 1 && value, + description: "学号模式最小值", + icon: "mdi-numeric-negative-1", + }, }; /**