Skip to content

表单渲染

表单组件有 2 种自定义方式渲染:

  • render:完全自定义表单组件渲染,支持 h 函数、jsx/tsx
  • slots:根据配置项的 prop 生成对应的表单组件插槽,生成规则为 {prop},和 render 函数功能一致

表单标签有 3 种自定义方式进行渲染:

  • render:完全自定义表单标签渲染,支持 h 函数、jsx/tsx
  • renderHtml:返回 HTML 字符串渲染表单标签
  • slots:根据配置项的 prop 生成对应的表单标签插槽,生成规则为 {prop}-header,和 render 函数功能一致

如果同时存在多个方式,只生效一个,优先级从高到低(表单组件和表单标签 同理)。

自定义表单组件 (render)

render 渲染的组件不支持 v-model 时,需要手动调用 render 的第二个参数 update 回调把值传给表单。

自定义el-input
自定义 el-transfer

无数据
上传
    原生表单(返回VNode)
    原生标签(返回字符串)
    初始值1
    { "img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", "input": "input 值", "transfer": [], "data": "初始值", "data1": "初始值1" }

    自定义表单组件(jsx/tsx)

    除了 h 函数,你还可以使用 jsxtsx 自定义单元格渲染。

    警告

    使用 jsxtsx 时,请在 script 上将 lang=ts 改为 lang=tsx

    html
    <script setup lang="tsx">
    名称
    默认值
    状态

    自定义表单组件 (插槽)

    Teek 会将单个 columnprop 属性生成插槽,因此你也可以使用插槽自定义表单组件渲染。

    生成插槽的规则为当前 prop 的值,假设一个 column 的 prop 为 username,那么插槽为 username

    名称
    状态

    自定义表单标签 (render)

    默认值

    自定义表单标签(jsx/tsx)

    名称

    自定义表单标签 (插槽)

    Teek 会将单个 columnprop 属性根据规则生成标签 插槽,因此你也可以使用标签 插槽自定义表单标签 渲染。

    生成插槽的规则为当前 prop 的值 + -label,假设一个 column 的 prop 为 username,那么表头插槽为 username-label

    名称
    状态

    自定义表单标签 (renderLabelHTML)

    如果你只想对内容进行替换,可以使用 renderLabelHTML 属性返回一个可信的 HTML 字符串进行表头内容渲染。

    名称
    状态