SystemBar.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <!--
  2. System bars
  3. -->
  4. <template>
  5. <v-system-bar
  6. height="50"
  7. :class="'d-flex flex-row justify-center align-center text-center ' + classes"
  8. @click="onClick !== undefined ? onClick() : null"
  9. >
  10. <slot>
  11. <v-icon v-if="icon" small :icon="icon" />
  12. {{ text }}
  13. </slot>
  14. </v-system-bar>
  15. </template>
  16. <script setup lang="ts">
  17. const props = defineProps({
  18. text: {
  19. type: String,
  20. required: false,
  21. default: ''
  22. },
  23. icon: {
  24. type: String,
  25. required: false,
  26. default: undefined
  27. },
  28. backgroundColor: {
  29. type: String,
  30. required: false,
  31. default: '#eeeeee'
  32. },
  33. textColor: {
  34. type: String,
  35. required: false,
  36. default: '#5f5f5f'
  37. },
  38. onClick: {
  39. type: Function,
  40. required: false,
  41. default: undefined
  42. },
  43. })
  44. // TODO: voir si possible d'utiliser les variables sass à la place?
  45. const classes = [
  46. 'bg-' + props.backgroundColor,
  47. 'text-' + props.textColor,
  48. (props.onClick !== undefined ? 'clickable' : '')
  49. ].join(' ')
  50. </script>
  51. <style scoped lang="scss">
  52. .v-system-bar {
  53. font-size: 14px;
  54. }
  55. .v-icon {
  56. height: 20px;
  57. margin: 0 6px;
  58. }
  59. .clickable {
  60. cursor: pointer;
  61. }
  62. .clickable:hover {
  63. text-decoration: underline;
  64. }
  65. </style>