PrimaryButton.vue 704 Bytes
<template>
  <button
    :class="[
      'w-full bg-blue-500 text-white font-bold py-3 px-4 rounded-lg shadow-lg',
      'hover:bg-blue-600 transition-colors duration-300',
      'disabled:bg-gray-400 disabled:cursor-not-allowed'
    ]"
    :disabled="disabled"
    @click="$emit('click')"
  >
    <slot></slot>
  </button>
</template>

<script setup>
/**
 * PrimaryButton 组件
 * @description 一个通用的主操作按钮,封装了统一样式和交互效果。
 * @props {boolean} disabled - 是否禁用按钮。
 * @emits {void} click - 点击事件。
 */

const props = defineProps({
  disabled: {
    type: Boolean,
    default: false
  }
});

const emit = defineEmits(['click']);
</script>