Skip to content

hdszy/form-create-designer-tdesign

 
 

Repository files navigation

form-create-designer-tdesign

这个是 Vue3 版本

MIT github

form-create-designer-tdesign 是基于 @form-create/tdesign vue3版本实现的表单设计器组件。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。

本项目基于 form-create-designer-naiveui 这个项目开发 ,将UI框架更改为 [TDesign] (https://tdesign.tencent.com/) ,做出的更改如下:

  • Naive UI v2.34.3 -> TDesign

form-create-designer 是基于 @form-create/element-ui 开发的表单设计器。

form-create-designer-naiveui 是基于 @form-create/naive-ui vue3版本实现的表单设计器组件。

文档 | form-create 文档

如果对您有帮助,您可以点右上角 "Star" 支持一下 谢谢!本项目可继续完善,如有任何建议或问题请在这里提出

引入

NodeJs:

npm i form-create-designer-tdesign

请自行导入TDesign并挂载

import formCreate from '@form-create/tdesign'
import FcDesigner  from 'form-create-designer-tdesign'

app.use(formCreate)
app.use(FcDesigner)

使用

<fc-designer ref="designer"/>

组件props

  • menuMenuList 重新配置拖拽的组件

  • heightint|string 设计器组件高度, 默认100%

  • localeobject 设置多语言

  • configConfig 设置多语言

  • mask boolean 设置拖拽表单中的组件是否可以操作

组件方法

  • 获取当前生成表单的生成规则

    type getRule = () => Rule[]

    示例: this.$refs.designer.getRule()

  • 获取当前表单的全局配置

    type getOption = () => Object
  • 设置当前生成表单的规则

    type setRule = (rules: Rule[]) => void;
  • 设置当前表单的全局配置

    type setOption = (option: Object) => void;
  • 增加一组拖拽组件

    type addMenu = (menu: Menu) => void;
  • 删除一组拖拽组件

    type removeMenu = (name: string) => void;
  • 批量覆盖插入拖拽组件

    type setMenuItem = (name: string, items: MenuItem[]) => void;
  • 插入一个拖拽组件到分组

    type appendMenuItem = (name:string, item: MenuItem) => void;
  • 删除一个拖拽组件

    type removeMenuItem = (item: string | MenuItem) => void;
  • 新增一个拖拽组件的生成规则

    type addComponent = (item: DragRule) => void;

提示! 内置的三个组件分组name分别为: main,aide,layout

License

MIT

Copyright (c) 2021-present xaboy

About

form-create-designer-tdesign 是基于 [@form-create/tdesign](https://github.com/xaboy/form-create) vue3版本实现的表单设计器组件。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 60.8%
  • Vue 38.2%
  • CSS 1.0%