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 @@
/>
+
+
+
+
@@ -195,7 +241,7 @@
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",
+ },
};
/**