vue组件(23)生成表单控件的属性的小工具

用辅助工具生成json

基于elementPlus封装的表单控件,把需要的属性都提取出来,放在了json文件,那么这么多属性要怎么办,手撸吗?当然不是,我们需要一个小工具来辅助一下。

这几天都在折腾这个小工具,又遇到电脑不给力居然罢工的事件,这就是传说中的好事多磨吗?不管怎么说,终于是有点模样了。

其实也比较简单,就是做几个表单,管理一下json而已,只是内容有一点点多。

表单控件需要的json基本是这样的,两个部分,一个是自己需要的属性,另一个是表单子控件需要的属性。

    formMeta: {
      baseMeta: {
        id: 1, // 表单ID
        name: '状态管理里面的演示表单', // 表单名称
        colOrder: [101, 102], // 显示的字段以及排序
        state: 'add', // 表单状态,添加、修改、显示(只读)
        formColCount: 1 // 表单列数
      },
      itemMeta: {
        101: {
          controlId: 101,
          colName: 'name',
          controlType: 101,
          defaultValue: '1',
          isClear: false,
          readonly: false,
          disabled: false,
          placeholder: '请输入姓名',
          title: '姓名',
          maxlength: 6,
          minlength: 2,
          autofocus: true,
          colCount: 1
        },
        102: {
          controlId: 102,
          colName: 'name1',
          controlType: 101,
          defaultValue: '1',
          isClear: false,
          readonly: false,
          disabled: false,
          placeholder: '请输入姓名',
          title: '姓名',
          maxlength: 6,
          minlength: 2,
          autofocus: true,
          colCount: 1
        }
      }
    },

然后就是围绕这个来做个维护的小工具。

先做个表单维护表单自己的属性,然后做个小列表表单,维护子控件的列表,然后再做一个表单,维护子控件的属性,好吧还需要一个表单来维护子控件的扩展属性。

然后就是子控件的实时渲染看看设置的效果,最后是表单的整体的动态渲染看效果,顺便看看表单的model。

各个组件之间的数据用Vuex来共享。

做这个工具一个是想生成json,另一个就是想验证一下表单控件在真实需求里面到底好不好用。因为上面这个表单,就是用封装的表单控件来实现的。

也不知道要怎么介绍,发几个截图吧,另外把代码迁到码云上面了,因为GitHub总是连接不上。

表单自己的属性

001表单自己的属性.png

表单,维护表单自己需要的属性,以后还会扩展几个,现在这些明显不够用。

下面列表是表单子控件,添加表单的item,这里只是确定数量和id、name,其他的属性在另一个表单里面实现。

表单子控件的属性

在上面那个列表里面选择一个子控件,就会显示这个子控件的属性表单:

002表单子控件的属性.png

这里有两个表单,一个是基础属性,一个是扩展属性。基础属性就基于HTML5的属性来做的,而扩展数据就是UI库提供的扩展属性。

子控件的json

设置好之后会生成这样的子控件需要的json

003表单子控件的json.png

有json文件格式,以及js对象格式。前者用于json文件,后者用于js代码。

表单控件的json

各个子控件设置好了之后就是整个表单了。

004表单控件的json.png

这样就可以依据这个json来动态渲染表单了。

当然还有许多要补充的,比如表单验证,这个就是把el-form的 rules 也做到 json 里面,理论上没啥难度,只是需要继续做表单来维护。

还有联动设置,拖拽排序这些功能,总之都是理论上没问题,只是需要时间去完善的事情。

话说,现在的效率好低呀。

最后,表单的子控件也不需要一个一个的填 ,而是可以依据数据库文档自动创建。然后做点加减法就好。

源码

https://gitee.com/naturefw/nf-vue-element

github总是连接不上去。。。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容