index.tsx 687 B

1234567891011121314151617181920212223242526272829
  1. import clsx from 'clsx';
  2. import { defineComponent, PropType } from 'vue-demi';
  3. import './index.scss';
  4. export type CardType =
  5. | 'message-list'
  6. | 'incident-info'
  7. | 'command-chain'
  8. | 'incident-plan'
  9. | 'emergency-linkage'
  10. | 'execution-log'
  11. | 'live-monitoring';
  12. export default defineComponent({
  13. name: 'Card',
  14. props: {
  15. cardType: {
  16. type: String as PropType<CardType>,
  17. default: 'incident-info',
  18. },
  19. },
  20. setup(props, ctx) {
  21. const className = clsx('card-container', {
  22. [`card-container-bg-${props.cardType}`]: props.cardType,
  23. });
  24. return () => (
  25. <div class={className}>{ctx.slots.default && ctx.slots.default()}</div>
  26. );
  27. },
  28. });