Skip to content

内置组件

v3sf 通过适配器提供内置组件,不同 UI 库对应不同的组件集合。

内置组件一览
输入框
数字
开关
单选
多选
日期

Vant 适配器组件

适用于移动端,由 @v3sf/vant 提供。

widget 名称说明对应 Vant 组件适用 type
input文本输入框van-fieldstring
stepper步进器van-steppernumber
number数字输入(同 stepper)van-steppernumber
switch开关van-switchboolean
radio单选按钮组van-radio-groupstring
radioButton按钮风格单选van-radio-group (button 样式)string
checkbox复选框组van-checkbox-grouparray
picker滚动选择器van-pickerstring
cascader级联选择器van-cascaderarray
date日期选择器van-date-pickerdate

Vant 类型自动映射

当 Schema 中未指定 widget 时,根据 type 自动选择组件:

type默认 widget
stringinput
numberstepper
booleanswitch
arraycheckbox
datedate

Element Plus 适配器组件

适用于 PC 端,由 @v3sf/element-plus 提供。

widget 名称说明对应 Element Plus 组件适用 type
input文本输入框el-inputstring
textarea多行文本el-input (type=textarea)string
number数字输入el-input-numbernumber
switch开关el-switchboolean
radio单选按钮组el-radio-groupstring
checkbox复选框组el-checkbox-grouparray
select下拉选择器el-selectstring
cascader级联选择器el-cascaderarray
date日期选择器el-date-pickerdate

Element Plus 类型自动映射

type默认 widget
stringinput
numbernumber
booleanswitch
arraycheckbox
datedate

组件对照表

以下表格展示两个适配器的组件差异,帮助你在移动端和 PC 端之间切换时调整 Schema:

功能Vant widgetElement Plus widget
文本输入inputinput
多行文本input + propstextarea
数字输入stepper / numbernumber
开关switchswitch
单选radio / radioButtonradio
多选checkboxcheckbox
下拉选择pickerselect
级联选择cascadercascader
日期选择datedate

通过 props 透传属性

每个组件都支持通过 Schema 的 props 字段向底层 UI 组件透传属性。可传递的属性取决于底层 UI 组件本身。

json
{
  "quantity": {
    "type": "number",
    "title": "数量",
    "widget": "stepper",
    "props": {
      "min": 1,
      "max": 99,
      "step": 1
    }
  }
}

常见 props 示例

密码输入(Vant):

json
{
  "password": {
    "type": "string",
    "title": "密码",
    "props": { "type": "password" }
  }
}

日期格式(Element Plus):

json
{
  "birthday": {
    "type": "date",
    "title": "生日",
    "widget": "date",
    "props": { "format": "YYYY-MM-DD", "valueFormat": "YYYY-MM-DD" }
  }
}

数字范围(Element Plus):

json
{
  "price": {
    "type": "number",
    "title": "价格",
    "widget": "number",
    "props": { "min": 0, "max": 99999, "precision": 2, "step": 0.01 }
  }
}

组件标准 Props

所有组件(内置或自定义)都会接收以下标准 props:

prop类型说明
modelValueany字段当前值,通过 update:modelValue 事件更新
disabledboolean是否禁用
readonlyboolean是否只读
placeholderstring占位文本
errorstring校验错误信息
addonFieldWidgetAddon表单上下文对象(也可通过 useAddon() 获取)

适配器通过 propsMap 将标准 prop 名映射到 UI 组件实际的 prop 名。例如 Vant 的 input 组件将 error 映射为 error-message

下一步

Released under the MIT License.