V1.0.0
Skip to content

WInputNumber 组件

数字输入框组件,基于 WinDesignNext InputNumber 封装,用于输入数值,支持步进按钮、精度控制、最大最小值限制及数据绑定。

与 WInput 的区别:WInputNumber 专用于数值输入,绑定值为 数字类型;支持 min/max/step/precision 等数值约束,并可通过 path 动态引用 dataModel。

基础用法

Props API

属性名类型默认值说明
idstring-组件唯一标识(必填)
componentstringWInputNumber组件类型(必填)
modelValueobject-绑定值(A2UI 数据绑定,支持 path
minnumber/object-最小值(支持 path
maxnumber/object-最大值(支持 path
stepnumber/object1步长(支持 path
precisionnumber/object-小数精度(支持 path
sizestringdefault输入框尺寸
disabledbooleanfalse是否禁用
readonlybooleanfalse是否只读
controlsbooleantrue是否显示增减按钮
controlsPositionstringright按钮位置(right 或空)
stepStrictlybooleanfalse是否只能输入 step 的倍数
valueOnClearnumber/string/nullnull清空时的默认值(可为 min/max
placeholderstring-占位文本
namestring-原生 name 属性
alignstringcenter内容对齐方式
inputmodestring-移动端键盘类型
disabledScientificbooleanfalse是否禁用科学计数法
statusstring-验证状态样式
tipsstring-提示文本
validateEventbooleantrue是否触发表单验证
actionobject-A2UI v0.9 事件定义

path 支持说明

通用绑定格式见 path 数据绑定速查

属性支持 path说明
modelValue双向绑定数值(数字类型)
min / max / step / precision动态数值约束
action.event.context[].value事件上下文可引用 dataModel
action.event.api.constParams[].valueAPI 固定参数可引用 dataModel
placeholder / disabled / size静态配置

min / max / step / precision 绑定示例:

json
{
  "min": { "path": "/dosageMin" },
  "max": { "path": "/dosageMax" },
  "step": { "literalNumber": 0.5 },
  "precision": { "path": "/numberPrecision" },
  "modelValue": { "path": "/dosage" }
}

通过 updateDataModel 动态调整范围:

json
{
  "version": "v0.9",
  "updateDataModel": {
    "surfaceId": "main",
    "path": "/dosageMax",
    "value": 20
  }
}

modelValue 数据绑定

modelValue 将数值绑定到 dataModel,变化后写回对应 path

json
{ "modelValue": { "path": "/quantity" } }

modelValue 绑定规则:

  • 绑定值类型为 数字(如 52.5),不是字符串
  • 可通过 literalNumber 设置初始值:{ "literalNumber": 10 }
  • 清空后值为 null

action 定义

数值变化并确认时触发(失焦、回车或点击步进按钮),默认 typechange

json
{
  "action": {
    "event": {
      "name": "onQuantityChange",
      "type": "change",
      "context": [
        { "key": "quantity", "value": { "path": "/quantity" } }
      ]
    }
  }
}

数据同步机制

WInputNumber 在数值确认变化后会自动将值同步到 dataModel:

  1. Agent 发送 updateComponents 定义组件,modelValue.path 指向 dataModel 路径
  2. Agent 发送 updateDataModel 初始化数值和约束
  3. 用户修改数值后,渲染器自动调用 setData 更新 dataModel
  4. 若配置了 action,同时触发 A2UI 事件

使用场景

场景推荐配置
整数数量step: 1 + min/max
小数剂量step: 0.5 + precision: 1
动态范围min/max 使用 path 绑定
隐藏步进按钮controls: false
严格步进stepStrictly: true

注意事项

  • 绑定值为数字类型,与 WInput 的字符串不同
  • 默认在 change 事件(失焦/回车/步进)时同步 dataModel,非每次按键
  • valueOnClear 可设为 "min""max",清空时恢复为对应边界值