配置模式复选框,单选框,以及多个复选框再脚本怎么使用
第 1 条补充
· 1 个月前
如果我要套用if判断怎么使用?
第 2 条补充
· 1 个月前
你们的配置模式我没有看懂是怎么使用的,应该怎么样引用到脚本里面,可以举个例子吗?
包括:
下拉选择
多个复选
单选
范围
回答
文档地址 https://docs.hamibot.com/
配置定义示例
[
// 多选复选框
{
"label": "多选框",
"type": "checkbox",
"name": "multiCheck",
"options": {
"opt1": "选项一",
"opt2": "选项二"
}
},
// 单项复选框
{
"label": "单选框",
"type": "checkbox",
"name": "singleCheck"
}
]
脚本调用方式
// 获取配置值
var multiSelect = hamibot.config.multiCheck; // 返回选中的键值数组
var singleSelect = hamibot.config.singleCheck; // 返回布尔值
// 创建对话框单选
var dialog = dialogs.build({
title: "单选列表",
items: ["A", "B", "C"],
itemsSelectMode: "singleChoice"
})
.on("item_select", function(index, item) {
toast("你选择了:" + item);
})
.show();
// 创建对话框多选
var multiDialog = dialogs.build({
title: "多选列表",
items: ["X", "Y", "Z"],
itemsSelectMode: "multiChoice"
})
.on("multi_choice", function(indices, items) {
toast("选中项:" + items.join(","));
})
.show();
关键参数说明
参数 | 类型 | 用途 |
---|---|---|
multiCheck | Array | 获取多选复选框选中的键值数组 |
singleCheck | Boolean | 获取单项复选框的选中状态 |
itemsSelectMode | String | 设置对话框选择模式(singleChoice/multiChoice) |
item_select 事件 | - | 单选时触发,返回(index,item) |
multi_choice 事件 | - | 多选时触发,返回(indices,items) |
注意:在脚本消息回调中处理选择结果时,建议使用传统函数表达式替代箭头函数以保证兼容性
补充回答 1
文档地址 https://docs.hamibot.com/
// 示例:基于配置的条件判断
if(hamibot.config.singleCheck) {
toast("单项复选框已勾选");
} else {
toast("单项复选框未勾选");
}
// 判断多选框是否包含指定选项
var selectedOptions = hamibot.config.multiCheck || [];
if(selectedOptions.indexOf("opt1") >= 0) {
toast("多选框选择了选项一");
}
// 对话框选择条件处理
dialogs.build({
title: "请选择",
items: ["选项A", "选项B"],
itemsSelectMode: "singleChoice"
})
.on("item_select", function(index, item) {
if(item == "选项A") {
toast("你选择了主选项");
} else if(index == 1) {
toast("次选项被选中");
}
})
.show();
常用判断模式
// 单值判断
if(hamibot.config.checkboxName) {
// 处理逻辑
}
// 多值存在判断
if((hamibot.config.checkboxName || []).indexOf("key") >= 0) {
// 处理逻辑
}
// 数量判断
if((hamibot.config.checkboxName || []).length > 1) {
toast("至少选择了2个选项");
}
// 组合判断
if(hamibot.config.optionA && (hamibot.config.optionB || []).length > 0) {
// 当选项A开启且选项B有选中项时执行
}
注意:在Rhino引擎中使用数组方法时,请确保使用兼容的写法。多选框配置值始终以数组形式存储,判断前建议使用 || [] 设置默认空数组。
补充回答 2
文档地址 https://docs.hamibot.com/
完整配置定义与使用示例
[
// 下拉选择
{
"label": "操作模式",
"type": "select",
"name": "mode",
"options": {
"normal": "常规模式",
"advanced": "高级模式"
},
"default": "normal"
},
// 多个复选框
{
"label": "执行任务",
"type": "checkbox",
"name": "tasks",
"options": {
"clean": "清理缓存",
"backup": "备份数据",
"update": "更新系统"
}
},
// 单选开关
{
"label": "夜间模式",
"type": "checkbox",
"name": "nightMode"
},
// 范围选择
{
"label": "重试次数",
"type": "number",
"name": "retry",
"min": 1,
"max": 5,
"default": 3
}
]
脚本调用方式
// 获取配置值
var mode = hamibot.config.mode; // 字符串类型
var tasks = hamibot.config.tasks || []; // 数组类型
var isNight = hamibot.config.nightMode; // 布尔类型
var retryCount = hamibot.config.retry; // 数字类型
// 下拉选择判断
if(mode === "advanced") {
toast("当前运行高级模式");
} else {
toast("当前运行常规模式");
}
// 多选处理
if(tasks.indexOf("clean") >= 0) {
toast("将执行清理缓存");
}
if(tasks.length === 0) {
toast("未选择任何任务");
}
// 单选开关处理
if(isNight) {
toast("夜间模式已开启");
// 执行暗色界面处理...
} else {
toast("日间模式运行");
}
// 范围值使用
for(var i=0; i<retryCount; i++) {
toast("第" + (i+1) + "次尝试");
// 执行重试逻辑...
}
配置值类型说明
配置类型 | 返回类型 | 示例值 |
---|---|---|
select | string | "normal" |
checkbox (单个) | boolean | true |
checkbox (多个) | array | ["clean", "update"] |
number (范围) | number | 3 |
关键注意点
- 默认值处理:建议为所有配置项设置
default
字段,避免undefined错误 - 类型安全:使用
|| []
处理可能为undefined的数组 - 数值验证:范围输入会自动限制输入值在min/max之间
- 选项映射:下拉选择的value是对象key(如"normal"),而非显示文本
在Rhino引擎中,建议使用传统循环语句代替Array.from等新特性。处理多选时应始终使用数组方法进行存在性判断。
ℹ️ 本回答由 AI 生成,内容仅供参考