index.vue 894 Bytes
<template>
  <button class="zui-button" :class="classRender" @click="onClick">
    <slot></slot>
  </button>
</template>

<script>
export default {
  name: 'Button',
  props: {
    type: {
      type: String,
      default: 'default',
    },
    size: {
      type: String,
      default: 'md',
    },
    block: {
      type: Boolean,
      default: false,
    },
    round: Boolean,
    square: Boolean,
    disabled: Boolean,
    plain: Boolean,
  },
  computed: {
    classRender() {
      return {
        [this.size]: true,
        [this.type]: true,
        disabled: this.disabled,
        block: this.block,
        round: this.round,
        square: this.square,
        plain: this.plain,
      };
    },
  },
  methods: {
    onClick() {
      if (!this.disabled) {
        this.$emit('click');
      }
    },
  },
};
</script>

<style lang="scss">
@import './index.scss';
</style>