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

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

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

      使用form-create生成表單組件

      FormCreate 是一個可以通過 JSON 生成具有動態(tài)渲染、數(shù)據(jù)收集、驗證和提交功能的表單生成組件。支持5個UI框架,并且支持生成任何 Vue 組件。內(nèi)置20種常用表單組件和自定義組件,再復(fù)雜的表單都可以輕松搞定

      FormCreate官網(wǎng):https://www.form-create.com

      幫助文檔:https://form-create.com/v3/

      
      
      1. 生成內(nèi)置組件
      <template>
        <div>
          <form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
          </form-create>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            fApi: {},
            value: {},
            options: {
              onSubmit: (formData) => {
                alert(JSON.stringify(formData))
              },
              resetBtn: true
            },
            rule: [
              {type: 'input', field: 'field1', title: 'input', value: ''},
              {type: 'datePicker', field: 'field2', title: 'date', value: ''},
            ]
          }
        }
      }
      </script>

      2. 生成UI組件

      <template>
        <div>
          <form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
          </form-create>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            fApi: {},
            value: {},
            options: {
              onSubmit: (formData) => {
                alert(JSON.stringify(formData))
              },
              resetBtn: true
            },
            rule: [
              {
                type: 'AButton',
                props: {
                  size: 'mini'
                },
                children: ['AButton']
              },
              {
                type: 'AImage',
                //非表單組件不會自動生成col,自定義組件需要通過native控制是否生成col
                native: false,
                props: {
                  width: '200px',
                  src: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
                }
              },
            ]
          }
        }
      }
      </script>

       

      3. 生成自定義組件

      <template>
        <div>
          <form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
          </form-create>
        </div>
      </template>
      
      <script>
      import {h, defineComponent, resolveComponent} from 'vue'
      import formCrate from '@form-create/ant-design-vue'
      import formCreate from "@form-create/ant-design-vue";
      // import UserSelect from "./UserSelect.vue";
      //自定義表單組件
      const UserSelect = defineComponent({
        props: {
          //預(yù)定義
          disabled: Boolean,
          modelValue: Number,
          options: Array,
        },
        emits: ['update:modelValue'],
        data: function () {
          return {
            value: this.modelValue,
          }
        },
        render() {
          return h(resolveComponent('ASelect'), {
            disabled: this.disabled,
            value: this.value,
            'onUpdate:value': this.onChange,
            options: this.options
          });
        },
        watch: {
          modelValue(n) {
            //同步 value 的值
            this.value = n
          }
        },
        methods: {
          onChange: function (val) {
            this.value = val;
            //更新組件內(nèi)部的值
            this.$emit('update:modelValue', val)
          },
        },
      });
      
      export default {
        beforeCreate() {
          //掛載組件
          formCrate.component('UserSelect', UserSelect);
        },
        data() {
          return {
            fApi: {},
            value: {},
            options: {
              onSubmit: (formData) => {
                alert(JSON.stringify(formData))
              },
              resetBtn: true
            },
            rule: [
              {
                type: 'UserSelect',
                field: 'field1',
                title: '用戶選擇',
                value: '小王',
                props: {
                  options: [
                    {label: '小王', value: '小王'},
                    {label: '小李', value: '小李'},
                  ]
                },
              },
            ]
          }
        }
      }
      </script>

       

      4. 通過插槽生成組件

      <template>
        <div>
          <form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
          </form-create>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            fApi: {},
            value: {},
            options: {
              onSubmit: (formData) => {
                alert(JSON.stringify(formData))
              },
              resetBtn: true
            },
            rule: [
              {
                type: 'div',
                style: 'width:200px;height:200x;background-color:#FF7271;',
                children: [
                  {
                    type: 'span',
                    style: 'color:#FFFFFF;',
                    children: ['FormCreate']
                  }
                ]
              },
            ]
          }
        }
      }
      </script>

       

      5. 生成HTML標(biāo)簽

      <template>
        <div>
          <form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
            <template #type-UserSelect="scope">
              <ASelect :value="scope.model.value" v-bind="scope.prop" @update:value="scope.model.callback">
              </ASelect>
            </template>
          </form-create>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            fApi: {},
            value: {},
            options: {
              onSubmit: (formData) => {
                alert(JSON.stringify(formData))
              },
              resetBtn: true
            },
            rule: [
              {
                type: 'UserSelect',
                field: 'field1',
                title: '用戶選擇',
                value: '小王',
                props: {
                  options: [
                    {label: '小王', value: '小王'},
                    {label: '小李', value: '小李'},
                  ]
                },
              },
            ]
          }
        }
      }
      </script>

       

      posted @ 2024-06-03 11:08  xaboy  閱讀(785)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 羞羞影院午夜男女爽爽免费视频| 2020年最新国产精品正在播放| 疯狂做受XXXX高潮国产| 成人免费在线播放av| 免费人成视频在线观看网站| 亚洲 中文 欧美 日韩 在线| 亚洲欧洲自拍拍偷午夜色| 呦系列视频一区二区三区| 在线精品另类自拍视频| 免费看又黄又无码的网站| 国产一国产精品免费播放| 国产精品中文字幕视频| 欧美一本大道香蕉综合视频| 国产乱码精品一区二区三上| 国产品精品久久久久中文| 国产成人精品一区二区秒拍1o| 蜜臀精品一区二区三区四区| 成人特黄特色毛片免费看| 一区二区三区四区亚洲自拍| 色婷婷欧美在线播放内射| 亚洲成在人网站av天堂| 成人亚洲av免费在线| 久久热这里这里只有精品| 国产精品三级中文字幕| 日韩有码国产精品一区| 国产精品成人无码久久久| 98久久人妻少妇激情啪啪| 亚洲AV色香蕉一区二区蜜桃小说| 亚洲成人资源在线观看| 亚洲综合伊人五月天中文| 天堂在线www天堂中文在线| 中文字幕有码在线第十页| 免费无码VA一区二区三区| 沁源县| 成人国产精品一区二区不卡| 免费99视频| 老色批国产在线观看精品| 天堂国产一区二区三区四区不卡| 麻豆久久久9性大片| 激情国产一区二区三区四区| 欧美人与性动交ccoo|