Skip to content

界面控件(ui)

壳 App / VS Code「界面设计」中的基础字段,在启动脚本前注入为只读控件对象(启动时快照;脚本内改属性不会回写界面)。设计器里把字段 key 改成合法 JS 标识符后,脚本直接用全局写法:卡密.valuedemoMsg.label。TypeScript 声明见 script-typings/uiControlModule.d.ts

字段key - 全局控件对象

typescript
interface UiControl {
 readonly key: string;
 readonly value: string;
 readonly label: string;
 readonly type: string;
}
declare const 字段key: UiControl; // 例:卡密、demoMsg

说明:

参数名类型是否必填默认值描述
(无)---字段 key 须为合法 JS 标识符,且未占用保留名(如 auto / logger),才会挂到全局

返回字段(UiControl):

字段名类型是否必填默认值描述
keystring-设计器唯一标识,与全局变量名一致
valuestring-启动时快照值;数字 / 开关等一律以字符串注入
labelstring''标签文案;无元数据时为空串
typestring''控件类型(如 input / switch);无元数据时为空串

示例:

javascript
logger.info(卡密.value);
logger.info(demoMsg.label, demoMsg.type);

字段key.key - 唯一标识

typescript
readonly key: string;

返回值:

类型描述
string与设计器「唯一标识 / key」、壳 setConfig 键一致

示例:

javascript
logger.info(卡密.key); // 如 '卡密' 或 'demoMsg'

字段key.value - 当前值

typescript
readonly value: string;

返回值:

类型描述
string启动时快照;数字 / 开关 / 多选等一律以字符串注入,脚本侧自行转换

常见取值:

字段 typevalue 示例脚本侧建议
input / textarea'hello'直接使用字符串
number / slider / rate'3' / '50'Number(x.value)
switch'true' / 'false'x.value === 'true'
radio / select选项的 value 字符串与设计器选项 value 比对
checkbox多选值序列化字符串按实际序列化格式解析
time / date格式化时间字符串format / valueFormat 解析

示例:

javascript
let times = Number(loopCount.value) || 0;
const on = enableLog.value === 'true';
logger.info(卡密.value);

字段key.label - 标签文案

typescript
readonly label: string;

返回值:

类型描述
string设计器中的标签;无元数据时为空串 ''

示例:

javascript
logger.info(卡密.label); // 如 '卡密'

字段key.type - 控件类型

typescript
readonly type: string;

返回值:

类型描述
string基础字段 type,如 input / select / switch;无元数据时为空串

示例:

javascript
if (enableLog.type === 'switch') {
 logger.info('开关状态:', enableLog.value);
}

基础字段一览

对应界面设计器左侧「基础字段」。每种字段脚本侧都可读 唯一标识.value / .key / .label / .type;下方 options 为设计器配置项(如 defaultValue 仅影响界面初始值,不是脚本属性名)。

type名称脚本 .value
input单行文本字符串
textarea多行文本字符串
number数字数字字符串,如 '3'
radio单选框选中项 value
checkbox复选框多选值序列化字符串
select下拉框选中项 value
time时间时间字符串
date日期日期字符串
rate评分分数字符串
switch开关'true' / 'false'
slider滑块数字字符串
html富文本编辑器HTML 字符串
cascader级联框选中路径值字符串
uploadfile上传文件文件信息序列化字符串
signature签名签名数据 / URL 字符串

input - 单行文本(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring自动生成唯一标识;写法 唯一标识.key;请改成合法标识符
labelstring单行文本标签文案;写法 唯一标识.label
typestringinput控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
clearablebooleantrue是否可清空
isShowWordLimitbooleanfalse是否显示字数统计
renderTypenumber11 文本 / 2 邮箱 / 3 身份证 / 4 手机 / 5 网址
disabledbooleanfalse是否禁用
showPasswordbooleanfalse是否密码框
defaultValuestring''默认值
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
minnumber 或 nullnull最小长度
maxnumber 或 nullnull最大长度

示例:

javascript
logger.info(卡密.value);

textarea - 多行文本(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
clearablebooleantrue是否可清空
isShowWordLimitbooleanfalse是否显示字数统计
rowsnumber6可见行数
defaultValuestring''默认值
placeholderstring''占位提示
disabledbooleanfalse是否禁用
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
minnumber 或 nullnull最小长度
maxnumber 或 nullnull最大长度

示例:

javascript
logger.info(remark.value);

number - 数字(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
minnumber0最小值
maxnumber 或 nullnull最大值
stepnumber1步进
precisionnumber0小数精度
disabledbooleanfalse是否禁用
controlsbooleantrue是否显示加减按钮
controlsPositionbooleantrue按钮位置(右侧)
defaultValuenumber 或 nullnull默认值
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
minlengthnumber 或 nullnull最小长度(校验)
maxlengthnumber 或 nullnull最大长度(校验)

示例:

javascript
let n = Number(loopCount.value) || 0;

radio - 单选框(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
dataKeystring''选项数据源 key(关联 schema.data)
displayStylestringblock选项布局,如 block
defaultValuestring''默认选中项 value
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
disabledbooleanfalse是否禁用
requiredbooleanfalse是否必填

示例:

javascript
logger.info(runMode.value);

checkbox - 复选框(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
dataKeystring''选项数据源 key
displayStylestringblock选项布局
defaultValuearray[]默认选中项 value 列表
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用

示例:

javascript
logger.info(tags.value);

select - 下拉框(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
dataKeystring''选项数据源 key
filterablebooleantrue是否可搜索
multiplebooleanfalse是否多选
defaultValuestring''默认选中项 value
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
disabledbooleanfalse是否禁用
clearablebooleantrue是否可清空
requiredbooleanfalse是否必填

示例:

javascript
let mode = runMode.value; // 如 'normal'

time - 时间(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
clearablebooleantrue是否可清空
formatstringHH:mm:ss显示格式
valueFormatstringHH:mm:ss值格式
defaultValuestring 或 nullnull默认时间
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用

示例:

javascript
logger.info(startTime.value); // 如 '08:30:00'

date - 日期(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
isShowWordLimitbooleanfalse字数统计(一般不用)
clearablebooleantrue是否可清空
formatstringYYYY-MM-DD显示 / 值格式
defaultValuestring 或 nullnull默认日期
startTimestring 或 nullnull可选起始
endTimestring 或 nullnull可选结束
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
typestringdatedate / datetime / dates / daterange 等
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用

示例:

javascript
logger.info(birthday.value); // 如 '2026-09-04'

rate - 评分(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
maxnumber5最大星数
allowHalfbooleanfalse是否允许半星
defaultValuenumber0默认分数
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
disabledbooleanfalse是否禁用

示例:

javascript
let score = Number(rating.value) || 0;

switch - 开关(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
defaultValuebooleantrue默认开关状态
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
disabledbooleanfalse是否禁用

示例:

javascript
let on = enableLog.value === 'true';

slider - 滑块(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
minnumber0最小值
maxnumber100最大值
stepnumber1步进
defaultValuenumber0默认值
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用

示例:

javascript
let speed = Number(速度.value) || 0;

html - 富文本编辑器(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
defaultValuestring''默认 HTML
placeholderstring''占位提示
actionstring''上传地址等
sizenumber1相关尺寸配置
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用

示例:

javascript
logger.info(content.value);

cascader - 级联框(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
filterablebooleantrue是否可搜索
multiplebooleanfalse是否多选
checkStrictlybooleanfalse是否严格选中父子节点
defaultValuestring''默认值
placeholderstring''占位提示
labelWidthnumber100标签宽度
isShowLabelbooleantrue是否显示标签
requiredbooleanfalse是否必填
disabledbooleanfalse是否禁用
clearablebooleantrue是否可清空

示例:

javascript
logger.info(region.value);

uploadfile - 上传文件(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
isShowLabelbooleantrue是否显示标签
labelWidthnumber100标签宽度
defaultValuearray[]默认文件列表
multiplebooleanfalse是否多选
actionstring''上传接口
limitnumber1最大文件数
sizenumber5单文件大小上限(MB)
acceptstring.png,.jpg接受的扩展名
disabledbooleanfalse是否禁用
requiredbooleanfalse是否必填

示例:

javascript
logger.info(avatar.value);

signature - 签名(属性)

脚本可读属性:

属性名类型默认值描述
valuestring''当前填写值(启动快照);写法 唯一标识.value
keystring-唯一标识;写法 唯一标识.key
labelstring''标签文案;写法 唯一标识.label
typestring-控件类型;写法 唯一标识.type

设计器 options(非脚本属性名):

属性名类型默认值描述
requiredbooleanfalse是否必填
isShowLabelbooleantrue是否显示标签
labelWidthnumber100标签宽度
defaultValuestring''默认签名数据
penColorstringrgb(0, 0, 0)笔触颜色
actionstring''上传地址等
disabledbooleanfalse是否禁用

示例:

javascript
logger.info(sign.value);

综合示例(读界面参数 → 跑流程)

示例:

javascript
async function main() {
 logger.setLoggerLevel('debug');

 const msg = demoMsg?.value ?? '';
 const loops = Number(loopCount?.value ?? '1');
 const mode = runMode?.value ?? 'normal';
 const logOn = enableLog?.value === 'true';

 if (logOn) {
 logger.info('界面参数', { msg, loops, mode, type: runMode?.type });
 }

 for (let i = 0; i < loops; i++) {
 logger.info(msg, i + 1, '/', loops);
 sleep(500);
 }
}

return main();