<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      vue自定義表單生成器,可根據json參數動態生成表單

      介紹

      form-create 是一個可以通過 JSON 生成具有動態渲染、數據收集、驗證和提交功能的表單生成器。并且支持生成任何 Vue 組件。結合內置17種常用表單組件和自定義組件,再復雜的表單都可以輕松搞定。

      文檔 | github

       

      功能

      • 自定義組件

        • 可生成任何Vue組件
        • 自帶數據驗證
        • 輕松轉換為表單組件
      • 通過 JSON 生成表單

      • 通過 Maker 生成表單

      • 強大的API,可快速操作表單

      • 雙向數據綁定

      • 事件擴展

      • 局部更新

      • 數據驗證

      • 柵格布局

      • 內置組件17種常用表單組件

      對比 1.x

      • 速度更快

      • 體積更小

      • 更強大的全局配置

      • 自定義組件更容易擴展

      • 更容易支持第三方 UI 庫

      • 更少的 bug

      示例

      通過 JSON 創建表單 通過 JSON 創建表單

      通過 API 操作表單 通過 API 操作表單

      @form-create包說明

      名稱說明
      @form-create/iview iview 版表單生成器
      @form-create/element-ui element-ui 版表單生成器
      @form-create/core form-create 核心包
      @form-create/utils form-create 工具包
      @form-create/data 省市區多級聯動數據

      使用

      以element-ui版本為例介紹如何在項目中使用 form-create

      安裝

      npm i @form-create/element-ui

       

      掛載

      全局注冊

      import formCreate form '@form-create/element-ui';
      
      Vue.use(formCreate);

       

      局部掛載

      import formCreate form '@form-create/element-ui';
      
      export default {
          components:{
              formCreate:formCreaet.$form()
          }
      }

      生成表單

      <template>
          <form-create v-model="$f" :rule="rule" @on-submit="onSubmit"></form-create>
      </template>
      export default {
        data () {
          return {
           //表單實例對象
           $f:{},
           //表單生成規則
           rule:[
             {
                type:'input',
                field:'goods_name',
                title:'商品名稱'
              },
              {
                type:'datePicker',
                field:'created_at',
                title:'創建時間'
              }
           ]
          };
        },
        methods:{
            onSubmit(formData){
                //TODO 提交表單
            }
        }
      };

       

      效果

      form-create 效果圖

      實例對象 $f

      可以通過 $f 快速操作表單,例如:

      • $f.hidden:隱藏指定組件
      • $f.validate:驗證表單
      • $f.setValue:修改表單組件的值
      • $f.append:追加表單組件

      自定義組件

      生成

      通過標簽生成

      {
          type:'el-button',
          name: 'btn',
          props:{
              type:'primary',
              field:'btn',
              loading:true
          },
          children:['加載中']
      }

       

      通過模板生成

      {
          type:'template',
          name:'btn'
          template:'<el-button :loading="loading">{{text}}<el-button>',
          vm: new Vue({
            data:{
              loading:true,
              text:'加載中'
            }
          })
      }

       

      轉換為表單組件

      自定義組件轉換為表單組件后,可通過$f.formData,$f.getValue,$f.setValue,$f.disabled等方法快速操作組件,達到和內置組件相同的效果

      預定義

      props

      在自定義組件內部通過props接收一下屬性

      • value 表單的值
      • disabled 組件的禁用狀態

      例如:

      vm = Vue({
        props:{
         value:String,
         disabled:Boolean      
        }
      })

       

      input 事件

      通過input事件更新組件內部的值

      當組件值發生變化后,通過 input 事件更新值.例如:

      vm.$emit('input',newValue);

       

      掛載自定義組件

      要生成的自定義組件必須通過Vue.component方法掛載到全局,或者通過formCreate.component方法掛載

      例如:

      formCreate.component('TestComponent',component);

       

      或者

      Vue.component('TestComponent',component);

       

      生成

      表單組件必須定義field屬性

      JSON

      {
          type:'TestComponent',
          value:'test',
          field:'testField',
          title:'自定義組件'
      }

       

      Maker

      formCreate.maker.create('TestComponent','testField','自定義組件').value('test')

       

      示例

      自定義計數器按鈕組件,獲取按鈕點擊數.該組件的功能和內置組件相同

      formCreate.maker.template('<el-button @click="onClick" long :disabled="disabled">計數器-{{num}}</el-button>', new Vue({
        props:{
          //預定義
          disabled:Boolean,
          value:Number,
        },
        data: function () {
          return {
              num: this.value,
          }
        },
        watch:{
          value(n){
              this.num = n;
          }
        },
        methods: {
          onClick: function () {
              this.num++;
              //更新組件內部的值
              this.$emit('input',this.num);
          },
        },
      }), 'tmp', '自定義 title').value(100).props('disabled',false)

       

      完整示例

      form-create示例.png

      posted @ 2019-07-19 08:49  xaboy  閱讀(36382)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 国产成人高清亚洲综合| 亚洲日产韩国一二三四区| 四虎永久在线精品无码视频| 开心一区二区三区激情| 99久久精品国产一区二区蜜芽 | 国产黄色精品一区二区三区| 日韩国产中文字幕精品| 亚洲人成网站18禁止无码| 国产午夜精品理论片久久影院| 免费吃奶摸下激烈视频| 国产欧美一区二区精品仙草咪| 韩国 日本 亚洲 国产 不卡| 国产精品综合av一区二区| 国产亚洲人成网站在线观看| 黄色A级国产免费大片视频| 夜夜夜高潮夜夜爽夜夜爰爰 | 国产亚洲精品久久久久婷婷瑜伽| 国产高清乱码又大又圆| 日本欧美一区二区三区在线播放| 欧产日产国产精品精品| 水蜜桃视频在线观看免费18| 亚洲综合一区二区三区在线| 99久久免费精品色老| 乱码中文字幕| 不卡一区二区三区四区视频| 亚洲三级香港三级久久| 精品人妻少妇一区二区三区在线| 国产一区二区三区的视频| 一区二区三区午夜无码视频| 日韩精品亚洲专在线电影| 男女一级国产片免费视频| 免青青草免费观看视频在线| 在线高清免费不卡全码| 亚洲一区二区av偷偷| 狠狠色噜噜狠狠狠狠av不卡| 一本久久a久久精品综合| 亚洲av天堂综合网久久| 四虎在线成人免费观看| 国产精品视频白浆免费视频| 日韩有码国产精品一区| 在线a久青草视频在线观看|