Skip to content

⚡ 快速开始

功能总览

格子表单/GRID-FORM包含以下模块:

包名说明版本
@grid-form/common通用工具(内置组件)common
@grid-form/designer可视化表单设计器(基于 Naive UI)designer
@grid-form/render-naive基于Naive UI实现的渲染器render-naive
@grid-form/render-element基于Element Plus实现的渲染器render-element
@grid-form/render-vant基于Vant4实现的渲染器(适配移动端)render-vant

提示

设计器与渲染器可单独使用,按需引入包即可😄

渲染器简单示例

此处使用 render-naive,其他渲染器类似

sh
$ npm i @grid-form/render-naive
sh
$ pnpm add @grid-form/render-naive
sh
$ yarn add @grid-form/render-naive

接着,我们可以在页面引入渲染器并使用它。

js
<template>
    <FormRender :renders="RenderFuncs" :form="form" debug  @submit="onSubmit" />
</template>

<script setup>
    import { FormRender, RenderFuncs } from "@grid-form/render-naive"

    // 如需扩展 RenderFuncs 请自行扩写
    // 表单对象通常来自后端,详细数据结构请查看 packages/example/src/views/渲染器.vue
    let form = reactive({
        "size":"medium",            //表单尺寸
        "width":"100%",             //表单整体宽度
        "grid":3,                   //每行的列数
        "labelWidth":120,           //标签宽度
        "labelPlacement":"top",     //标签位置,可选:top(默认)、left
        items:[
            { _widget:"INPUT", _uuid:"name", _text:"您的姓名", _required:true },
            { _widget:"INPUT", _uuid:"origin", _text:"籍贯" },
            { _widget:"NUMBER", _uuid:"age", _text:"年龄", suffix:"岁" }
        ]
    })

    const onSubmit = (formData,action)=>console.debug(`表单值:`, action, formData)
</script>

内置组件 18+

我们内置了常用的输入、选择、展示组件,并支持扩展自定义组件

组件名称说明Naive UIElement PlusVant4
文本输入支持TEXTAREA
数值输入仅限数字
动态标签标签组输入(Array)
按钮可用于交互操作
日期选择
下拉选择(Select)支持多选
单选框(Radio)
开关(Switch)布尔值
多选框(Checkbox)
星级评分(Rate)数值
颜色选择器
文件上传按指定格式读取内容
静态文本支持HTML
信息框标题+正文,支持HTML
分割线
图片展示
静态表格简单的二维数据展示表格
子容器(Card)嵌套容器

注意:上述组件特殊标注则表示支持自定义脚本