form.vue 555 Bytes
<template>
  <div class="form">
    <slot></slot>
  </div>
</template>

<script>
export default {
  name: 'Form',
  data() {
    return {
      items: []
    };
  },
  methods: {
    getItem() {
      this.items = this.$children.filter(i => i.$options.name === 'FormItem');
    },
    validate() {
      this.getItem();

      let result = true;

      this.items.forEach(i => {
        if (!i.validate()) {
          result = false;
        }
      });

      return result;
    }
  },
  mounted() {
  }
};
</script>

<style lang="scss" scoped>
</style>