02-component_props-配置规范.md 6.11 KB

component_props 配置规范

通用属性

所有组件类型都支持的属性:

属性 类型 必填 默认值 说明
tag string - 组件类型标识,决定渲染哪个组件
name string - 组件名称
label string - 字段标签(显示名称)
default any - 默认值
placeholder string "请输入" 占位符文本
required boolean false 是否必填
disabled boolean false 是否隐藏字段
disabled_show boolean false 隐藏时是否显示闭眼图标
readonly boolean false 是否只读
note string - 提示文本(支持HTML)

选项类组件属性

Radio、Checkbox、Picker 等组件额外支持:

属性 类型 说明
options Option[] 选项列表数组
direction string 排列方向:vertical(垂直)/ horizontal(水平)
align string 文本对齐:left / center / right

Option 结构

interface Option {
  title: string                  // 显示文本
  value: any                     // 选项值
  checked?: boolean              // 默认选中
  disabled?: boolean             // 禁用状态
  color?: string                 // 选项颜色
  background_color?: string      // 背景色

  // 描述信息
  desc_text?: string             // 描述文本
  desc_type?: string             // "text" 或 "url"
  desc_url?: string              // 描述链接
  desc_btn_name?: string         // 描述按钮名称

  // 补充信息
  is_input?: boolean             // 是否需要补充信息输入
  input_required?: boolean       // 补充信息是否必填
  input_placeholder?: string     // 补充信息占位符
  affix?: string                 // 补充信息值
}

文本输入类属性

input / textarea / number

属性 类型 说明
align string 文本对齐方式
is_camera_scan boolean 是否启用微信扫一扫
camera_scan_type string 扫码类型:ALL_CODE / QR_CODE / BAR_CODE
is_edit_camera_scan_result boolean 是否允许编辑扫码结果

上传类属性

image_uploader

属性 类型 默认值 说明
max_count number 9 最大上传数量
max_size number 10 最大文件大小(MB)
image_type string "jpg/..." 允许的图片类型

返回值结构:

{
  key: "image_uploader",
  filed_name: "field_1",
  value: [
    { url: "https://...", name: "image.jpg" }
  ]
}

file_uploader

image_uploader 类似,用于普通文件上传。

日期时间类属性

date / time / datetime / calendar

属性 类型 说明
min_date Date/Date[] 最小可选日期
max_date Date/Date[] 最大可选日期
formatter Function 格式化函数

预约控件属性

appointment

复杂配置结构:

{
  tag: "appointment",
  label: "预约时间",
  appointment_title: "选择入寺时间",
  options: [
    {
      title: "03月27日",           // 日期标题
      placeholder: "剩余余量 9878", // 提示信息
      disabled: false,             // 是否禁用该日期
      columns: [                   // 时间段列表
        {
          checked: false,
          disabled: false,
          value: "1",
          text: "16:00-17:30 余1399"
        }
      ]
    }
  ]
}

规则控件属性

rule / multi_rule

属性 类型 说明
desc_text string 规则内容(支持 \n 换行)
desc_type string text(弹窗)或 url(跳转)
desc_url string 规则详情链接
desc_btn_name string 按钮名称,如"查看详情"

组集合控件属性

group

{
  tag: "group",
  label: "物品详情",
  field_groups: [
    {
      tag: "input",
      label: "物品描述",
      field_name: "field_10",
      group_field_name: "field_4",  // 所属组字段
      // ... 其他属性
    }
  ]
}

评分控件属性

rate

属性 类型 说明
x_score number 显示分值(会显示在标签旁)

表格控件属性

table_editor

属性 类型 说明
default string/html 默认表格内容(HTML格式)

特殊功能属性

微信扫码

input 类型支持:

{
  tag: "input",
  is_camera_scan: true,
  camera_scan_type: "ALL_CODE"  // ALL_CODE | QR_CODE | BAR_CODE
}

补充信息

Radio、Checkbox 支持选择后输入补充信息:

options: [
  {
    title: "其他",
    value: "other",
    is_input: true,              // 启用补充输入
    input_required: true,        // 补充信息必填
    input_placeholder: "请输入补充信息",
    affix: ""                    // 补充信息值
  }
]

显示隐藏控制

通过规则动态控制字段显示/隐藏:

{
  tag: "input",
  disabled: false  // true=隐藏,false=显示
}

样式属性

对齐方式

{
  align: "left"    // left | center | right
}

颜色

选项类组件支持单独配置颜色:

options: [
  {
    title: "重要",
    value: "important",
    color: "#ff0000",            // 文字颜色
    background_color: "#fff0f0"  // 背景色
  }
]

数据提交格式

普通字段

{
  key: "field_1",
  value: "用户输入的值"
}

选项类字段(Radio)

{
  key: "field_1",
  value: "选项值",
  affix: "补充信息: xxx",  // 如果有补充信息
  type: "radio"
}

选项类字段(Checkbox)

{
  key: "field_1",
  value: ["值1", "值2"],  // 数组
  type: "checkbox"
}

图片上传

{
  key: "field_1",
  filed_name: "field_1",
  value: [
    { url: "https://...", name: "image.jpg" }
  ],
  type: "image_uploader"
}