index.vue 953 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <template>
  2. <div class="hc-gradient-card-box">
  3. <div class="flex radius hc-gradient-card" :class="'bg-' + bgColor + '-gradient'">
  4. <div class="hc-card-dot hc-card-dot1" :class="'bg-' + bgColor + '-gradient'"/>
  5. <div class="hc-card-dot hc-card-dot2" :class="'bg-' + bgColor + '-gradient'"/>
  6. <div class="hc-card-dot hc-card-dot3" :class="'bg-' + bgColor + '-gradient'"/>
  7. <div class="hc-card-main">
  8. <slot></slot>
  9. </div>
  10. </div>
  11. <div class="hc-gradient-card-bg" :class="'bg-' + bgColor"/>
  12. </div>
  13. </template>
  14. <script setup>
  15. import {ref, watch} from "vue"
  16. //初始
  17. const props = defineProps({
  18. color: {
  19. type: String,
  20. default: 'blue'
  21. }
  22. })
  23. const bgColor = ref(props.color)
  24. //监听
  25. watch(() => [
  26. props.color,
  27. ], ([color]) => {
  28. bgColor.value = color
  29. })
  30. </script>
  31. <style lang="scss" scoped>
  32. @import "./style.scss";
  33. </style>