最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 基于vue3.0+TS的自定义表单工具 ✨

    正文概述 掘金(寒夜梦未央)   2021-04-15   940
    基于vue3.0+TS的自定义表单工具 ✨

    由于本人最近要做一个动态工作流系统,其中需要用到自定义表单这个功能。但是由于我自己的这个项目是基于vue3.0开发的,目前市面上已有的这些自定义表单都是不支持的。想了想算了,还是自己搞一个,后面可扩展性也比较强。于是参考了目前市面上大部分自定义表单的功能,做了个基于vue3.0 + ts的自定义表单插件。支持 ant-design-vue 和 element-plus这两个UI库。目前刚做好初版,做个简单介绍,大家有需要的可以直接拿去用。

    vue-form-create

    基于 Vue3.0 + TS 的自定义表单生成器。支持 npm 与 cdn 引入的方式。UI 库支持 ant-design-vue 与 element-plus。

    基于vue3.0+TS的自定义表单工具 ✨

    支持功能

    • 远端数据获取
    • 图片上传
    • 富文本编辑器
    • 栅格布局
    • 生成JSON
    • 生成代码

    演示地址(github)

    fuchengwei.github.io/vue-form-cr…

    演示地址(gitee)

    fuchengwei.gitee.io/vue-form-cr…

    github

    github.com/fuchengwei/…

    npm

    www.npmjs.com/package/vue…

    1 安装

    使用 npm 或 yarn 安装

    我们推荐使用 npm 或 yarn 的方式进行开发,不仅可在开发环境轻松调试,也可放心地在生产环境打包部署使用,享受整个生态圈和工具链带来的诸多好处。

    $ npm install vue-form-create --save
    $ yarn add vue-form-create

    浏览器引入

    在浏览器中使用 script 标签直接引入文件,并使用全局变量 formCreate

    我们在 npm 发布包内的 vue-form-create/dist提供了 formCreate.common.js formCreate.umd.js formCreate.umd.min.js。你可以通过 UNPKG 进行下载。

    <script src="https://unpkg.com/vue-form-create/dist/formCreate.umd.min.js"></script>

    注意

    1. 无论 npm 或者 cdn 引入都需要在全局引入 ant-design-vue 或 element-plus 。并且项目依赖了 acejs , 需要在全局使用 cdn 的方式引入。

      <script src="https://unpkg.com/ace-builds/src-noconflict/ace.js"></script>
    2. cdn 引入 ant-design-vue 需要自行引入 moment 。

    3. 不想在全局安装也可以在组件内直接使用相应的组件。

      import { AntdDesignForm, ElDesignForm, AntdGenerateForm, ElGenerateForm } from 'vue-form-create'

    示例

    npm引入

    import { createApp } from 'vue'
    import antd from 'ant-design-vue'
    import App from './App.vue'
    import DesignForm from 'vue-form-create'
    import 'ant-design-vue/dist/antd.css'

    createApp(App)
      .use(antd)
      .use(DesignForm)
      .mount('#app')

    浏览器引入

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <link
          rel="stylesheet"
          href="https://unpkg.com/ant-design-vue@next/dist/antd.min.css"
        />
      </head>
      <body>
        <div id="app">
          <antd-design-form />
        </div>
        <script src="https://unpkg.com/vue@next/dist/vue.global.prod.js"></script>
        <script src="https://unpkg.com/vue-form-create/dist/formCreate.umd.min.js"></script>
        <script src="https://unpkg.com/ace-builds/src-noconflict/ace.js"></script>
        <script src="https://unpkg.com/moment/moment.js"></script>
        <script src="https://unpkg.com/ant-design-vue@next/dist/antd.min.js"></script>
        <script>
          const { createApp, reactive, toRefs } = Vue

          createApp({})
            .use(antd)
            .use(formCreate)
            .mount('#app')
        </script>
      </body>
    </html>

    2 组件说明

    表单设计器(AntdDesignForm)

    示例

    <template>
     <AntdDesignForm ref="designForm"  />
    </template>

    API

    Props
    参数 说明 类型 默认值
    preview 设计器预览操作按钮 boolean true generateCode 设计器生成代码按钮 boolean true generateJson 设计器生成Json按钮 boolean true uploadJson 设计器导入JSON按钮 boolean true clearable 设计器清空按钮 boolean true basicFields 设计器左侧基础字段配置 array - advanceFields 设计器左侧高级字段配置 array - layoutFields 设计器左侧布局字段配置 array -
    方法

    通过 ref 可以获取到实例并调用实例方法

    方法名 说明 参数
    getJson() 获取设计器配置的JSON数据 - setJson(value) 设置设计器的配置信息 通过getJson获取的数据 clear() 清空设计器 getTemplate(type) 获取设计器生成的可以直接使用的代码 type的类型为 'vue' 或 'html'
    字段说明

    基础字段(basicFields)

    type 字段名
    input 单行文本 password 密码框 textarea 多行文本 number 计数器 radio 单选框组 checkbox 多选框组 time 时间选择器 date 日期选择器 rate 评分 select 下拉选择框 switch 开关 slider 滑块 text 文字

    高级字段(advanceFields)

    type 字段名
    img-upload 图片 richtext-editor 富文本编辑器 cascader 级联选择器

    布局字段(layoutFields)

    type 字段名
    grid 栅格布局

    表单生成器(AntdGenerateForm)

    示例

    <template>
     <AntdGenerateForm ref="generateForm"  />
    </template>

    API

    Props
    参数 说明 类型 默认值
    data 表单json配置数据(从表单设计器获取的json) object - value 表单数据(从表单生成器获取的value) object -
    方法

    通过 ref 可以获取到实例并调用实例方法

    方法名 说明 参数
    getData() 获取表单数据(返回Promise) - reset() 重置表单数据 通过getJson获取的数据

    3 功能说明

    远端数据

    单选框,多选框,下拉选择框、级联选择器等选择项需要通过数据生成,这时可以配置远端数据。

    设置远端方法地址与返回值。

    基于vue3.0+TS的自定义表单工具 ✨

    文件上传

    填写服务器上传地址、参数名等配置信息。

    基于vue3.0+TS的自定义表单工具 ✨

    4 后续规划

    目前是v1.0.0的初版,后面预计支持更多的功能组件与布局组件,以及对移动端的支持。 对于移动端不知道大家对那个UI库用的比较多,可以在下面留言告诉我,后面我会优先考虑支持的。

    最后如果大家觉得还不错挺好用的话,麻烦给个 Star ???。


    起源地下载网 » 基于vue3.0+TS的自定义表单工具 ✨

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元