基于Ant Design 和 jQuery UI 的表单设计器
github 地址

概念

  • Comonent 组件
  • Layout 布局,一种特殊的Component
  • Component Editor 组件属性编辑器
  • Component Factory 组件工厂,创建Component 和 Component Editor

扩展组件

创建一个组件

组件的定义是通过this.props.definition来传递的。definition的格式如下:

{type: 'Checkbox', // 必须存在title: '多选框',  // 必须存在props:{'columnNum':2},children:[// 只有在Layout 中出现该属性componentDefinition,...]
}

在this.props 中还提供了renderCounter属性,每次组件的刷新该属性值会自增。definition的结构可能是深层次的,然而在Ant Design提供的React 组件中的shouldComponentUpdate(nextProps,nextState)方法的实现是对象的浅层比较,在某些情况下Component Editor对组件属性的改变不会导致组件的刷新。可以通过renderCounter来解决组件不刷新的问题。

/*** 组件*/
@ComponentWrapper
class CheckboxComponent extends Component{render(){const { definition :{props}, renderCounter} = this.props;const defaultValue = props.options.filter(item=>{return item.checked;}).map(item=>{return item.value;});return (<CheckboxGroup options={props.options} value={defaultValue} renderCounter={renderCounter} />)}
}

/*** 组件编辑器*/
@ComponentEditor
class InputComponentEditor extends PureComponent{/*** 当编辑器改变时,此方法被调用*/onChange(_, allValues){if(!isNull(allValues.minLength, allValues.maxLength) && allValues.minLength > allValues.maxLength){message.warn(`最小长度${allValues.minLength}应该小于最大长度${allValues.maxLength}`);return false;// 阻止组件的刷新}const { definition:{props}, definition } = this.props;definition.name = getErasure(allValues, 'name');definition.title = getErasure(allValues, 'title');Object.assign(props, allValues);props.minLength = guaranteeNumber(props.minLength, 0, Number.MAX_VALUE);props.maxLength = guaranteeNumber(props.maxLength, 0, Number.MAX_VALUE);return true;}render(){return (<PropsEditor {...this.props} lengthLimit placeholder/>);}
}
/*** 组件工厂*/
@FactoryRegister(InputComponent,InputComponentEditor)
class InputFactory {type="Input"      // 必须存在title="单行输入框"    // 必须存在/*** 初始化一个组件定义* @returns {{type: string, title: string}}*/createComponentDefinition(){return {type: this.type,title: this.title,props:{placeholder: '请输入'},}}
}export default InputFactory;

在compoents/index.js 或 layout/index.js 引入自己组件

基于Ant Design 和 jQuery UI 的表单设计器相关推荐

  1. 基于Ant Design和jQuery UI的表单设计器

    基于Ant Design 和jQuery UI 的表单设计器 GitHub 地址 概念 Comonent 组件 Layout 布局,一种特殊的Component Component Editor 组件 ...

  2. activiti表单设计器_基于Vue,ElementUI开发的一款表单设计器

    介绍 基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来 工具地址: http://tools.xiaoyaoji.cn/form Gi ...

  3. 基于Vue,ElementUI开发的一款表单设计器

    介绍 基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来 工具地址:http://form.making.link GitHub地址:h ...

  4. FormMaking表单设计器的使用

    在开发过程中有一个可以让客户自己来设计表单的需求,看了多个动态表单生成的,最后选择了FormMaking,主要是这个基于vue和elmenet-ui的一款表单设计器,跟我们的项目更贴合. FormMa ...

  5. 基于springboot+element ui+vue的java快速开发平台,集成html5工作流设计器,flowable, element ui 表单设计器

    前后端分离.maven多模块开发,方便多人协同开发 后端选型:springboot2 + mybatis + shiro + jwt token + flowable 前端选型:vue + eleme ...

  6. html5拖拽表单设计器,require+jquery+backbone实现拖拽式报表设计器-拖拽式表单设计器...

    HTML我帮您-拖拽式报表设计器-拖拽式表单设计器是一个可视化设计器,基于require+jquery+backbone+underscore+bootstrap实现的表单设计器.思想来源于 Layo ...

  7. 基于 Formily 的表单设计器实现原理分析 ​

    编者寄语:本期为大家带来基于 Formily 的拖拽式表单设计器玩法,探索可视化时代表单设计器的可能. 背景 在控制台类 web 应用中,表单是最常见的交互形式.用户在表单中填写信息,点击提交就能完成 ...

  8. 基于 Formily 的表单设计器实现原理分析

    作者:段国伟.汪曦 背景 在控制台类 web 应用中,表单是最常见的交互形式.用户在表单中填写信息,点击提交就能完成对数据创建或者修改操作. 最开始前端开发人员根据业务模型和具体需求,通过**逐一** ...

  9. 开源推荐:国内3大主流前端UI表单设计器,千万不要让领导知道

    互联网应用架构:专注编程教学,架构,JAVA,Python,微服务,机器学习等领域,欢迎关注,一起学习. 偷得浮生半日闲,自古人生何其乐.开始之前告诉一下大家,距离国庆8天假只剩4天了,先乐呵乐呵. ...

  10. 基于VUE的ElementUi可视化表单设计器布局器

    码农苦码农懂的个人空间 工作日志 正文 基于VUE的ElementUi可视化表单设计器布局器 顶 原 码农苦码农懂 发布于 09/11 15:35 字数 1187 阅读 41 收藏 0 点赞 1 评论 ...

最新文章

  1. good food to buy when at the train station
  2. 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...
  3. ENVIArcGis——植被覆盖度提取
  4. srsLTE学习笔记(一)——eNB配置文件enb.conf解析
  5. 计算机组策略定时开机脚本,批处理+组策略 实现规定时间段无法开机and定时关机...
  6. 問題の解決策 [USACO18JAN]Lifeguards P(题解)
  7. 四、Vue项目去哪儿网首页推荐和周末游组件并使用Axios获取数据
  8. Markdown图标
  9. 虚实接口是当前元宇宙发展的重中之重
  10. android 更改浏览器默认主页
  11. 全球顶级白帽子:美女、通缉犯、公务员
  12. 【Web安全】常见的网站安全及解决方案
  13. 在计算机潮流计算的三类节点中,电力系统分析习题集.doc
  14. 如何选择消泡剂生产厂家?
  15. netty获取玩家chanel_netty源码解析(4.0)-14 Channel NIO实现:读取数据
  16. 银行自助设备详细介绍(三)——取款机
  17. 【运维面试】一个电商项目需要了解哪些知识点?
  18. 计算机前置usb应用,你今天插了没?剖析USB接口的前世今生
  19. 一套很好的C++学习课件
  20. identifier of an instance of 错误

热门文章

  1. hp服务器怎么装win7系统,惠普280 Pro G4台式机intel 8代cpu安装win7步骤
  2. 情商高手比智商高手要可怕多了
  3. 服务器如何挂网页游戏,网页游戏怎么挂云服务器
  4. The Performance of µ-Kernel-Based Systems
  5. 一篇就明白什么是H3C?
  6. 新年礼物送什么好?平价实用的蓝牙耳机推荐
  7. 第1周练习 货币转换 I
  8. 漏洞利用-SSH Banner信息获取
  9. python 离散点 等高线_Matplotlib中的散点图等高线
  10. 新手SEO篇之外链建设与查询