Skip to content

BizForm Schema 表单 ​

页面级 Schema 表单:fields 声明 17 类控件(input / email / url / textarea / number / select / date / datetime / time / daterange / cascader / switch / radio / checkbox / rate / slider / slot;email / url 复用 BizLinkInput(邮箱/网址双模式),域名白名单、https-only 等经 attrs 透传),24 栅格布局,view 只读态同一套 schema 查看⇄编辑双态渲染,show / disabled 函数联动,required 自动规则 + rules 叠加,v-model:model 双向。

弹层场景用 BizFormDialog(新增 / 编辑二合一弹窗),两者共用同一渲染内核 BizFormBody——本组件即该内核的页面级公开形态(内核由 biz-form-dialog 包内私有模块下沉而来,biz-form-designer 预览态同样复用)。适用于配置页 / 设置页内嵌表单、页面区块编辑表单、详情页查看⇄编辑同构切换。

基础表单 ​

姓名
手机号
部门
请选择部门
入职日期
备注
两列栅格(span 12)+ 必填自动规则 + pattern 叠加规则 + 整行 textarea(span 24)。

全控件类型 ​

单行文本
数字
下拉
请选择下拉
日期
日期时间
时间
日期区间
-
级联
开关
单选
多选
评分
滑块
文本域
控件一屏总览:三列栅格(default-span 8),cascader 级联选项经 children 递归。

邮箱 / 网址字段 ​

联系邮箱
官网地址
帮助文档
type: 'email' / 'url' 复用 BizLinkInput 双模式:校验、后缀建议、域名白名单(allowed-domains)、协议补全与 https-only(https-only)经 attrs 透传,required 自动规则触发时机为 blur。

查看 ⇄ 编辑同构 ​

客户名称
—
等级
—
战略合作
否
所在区域
—
合作周期
—
满意度
—
备注
—
view 只读态:同一套 schema,选项取 label、switch 取是 / 否、区间拼接、级联取全路径;viewFormatter 可自定义文案。

字段联动 ​

发票类型
结算周期
请选择结算周期
条款说明
show 按表单值显隐(专票才显示税号)、disabled 按值禁用(分期才可编辑预付比例)——函数拿到的就是当前表单数据。

设置页内嵌(三列 + 整表禁用) ​

接口对接设置
回调地址
重试次数
超时(秒)
仅 HTTPS
签名密钥
default-span=8 三列紧凑布局;disabled 整表禁用(权限不足只读),defaultValue 初始回填。

slot 自定义控件 ​

看板名称
主题色
type: 'slot' 渲染具名插槽(name=prop),作用域暴露 model——特殊控件混入 schema 统一布局。

动态字段区块 ​

指标
统计周期
请选择统计周期
fields 响应式增删(高级配置展开 / 收起):新字段自动按 defaultValue / 类型默认值增量合并。

程序化方法 ​

用户名
邮箱
(操作结果)
expose:validate / getValues / setValues / reset / clearValidate(另有 validateField / scrollToField)。

与详情描述联动 ​

服务器名
IP 地址
环境
请选择环境
启用监控
编辑保存后交给 BizDescriptions 展示——同一数据的编辑态与展示态组合。

属性 ​

属性类型默认值说明
fieldsBizFormField[][]字段 schema(见下)
model / v-model:modelRecord<string, unknown>{}表单数据(缺省字段初始化 defaultValue / 类型默认值)
label-widthstring | number'100px'标签宽度
gutternumber16栅格间隔
default-spannumber12字段缺省栅格占位(24 制)
viewbooleanfalse只读态(控件换文本)
disabledbooleanfalse整表禁用
ts
interface BizFormField {
  prop: string                 // 字段名
  label: string
  type?: BizFormFieldType      // 17 类控件(含 email / url),默认 input
  span?: number                // 栅格占位(24 制),24 占满整行
  defaultValue?: unknown       // 默认值(初始与 reset 回填)
  options?: BizFormFieldOption[]  // select/radio/checkbox/cascader(children 递归)
  required?: boolean           // 自动追加 required 规则
  rules?: FormItemRule[]       // 附加规则(叠加)
  placeholder?: string         // 缺省按类型自动生成
  attrs?: Record<string, unknown>  // 透传内部 el 控件(maxlength/rows/min/max/step...)
  show?: (model) => boolean    // 联动显隐(false 隐藏,值保留)
  disabled?: boolean | ((model) => boolean)  // 联动禁用
  viewFormatter?: (model) => string  // view 态自定义文案
}

事件 ​

事件名参数说明
update:model(model)任一字段变化整表回发
change(prop, value, model)任一字段变化(含字段名)

插槽 ​

插槽名作用域说明
字段名(type: slot){ model }自定义控件
default—表单末尾追加区(操作按钮等)

Expose ​

名称类型说明
validate() => Promise<boolean>全量校验
validateField(props: string | string[]) => Promise<boolean>校验指定字段
clearValidate(props?) => void清除校验状态
scrollToField(prop: string) => void滚动到字段(长表单定位)
reset() => void以 model + defaultValue 重建并清校验
getValues() => Record<string, unknown>当前数据(浅拷贝)
setValues(partial) => void批量设值