ViewTab.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <div class="fit column">
  3. <q-tabs
  4. v-model="selectedTab"
  5. active-color="app"
  6. active-bg-color="app"
  7. indicator-color="bg-app"
  8. dense
  9. no-caps
  10. class="no-mp bg-menu-2 text-menu"
  11. >
  12. <q-tab name="mode" label="Режим" />
  13. <q-tab name="color" label="Цвет" />
  14. <q-tab name="font" label="Шрифт" />
  15. <q-tab name="text" label="Текст" />
  16. <q-tab name="status" label="Строка статуса" />
  17. </q-tabs>
  18. <div class="q-mb-sm" />
  19. <div class="col sets-tab-panel">
  20. <Mode v-if="selectedTab == 'mode'" :form="form" @tab-event="tabEvent" />
  21. <Color v-if="selectedTab == 'color'" :form="form" />
  22. <Font v-if="selectedTab == 'font'" :form="form" />
  23. <Text v-if="selectedTab == 'text'" :form="form" />
  24. <Status v-if="selectedTab == 'status'" :form="form" />
  25. </div>
  26. </div>
  27. </template>
  28. <script>
  29. //-----------------------------------------------------------------------------
  30. import vueComponent from '../../../vueComponent.js';
  31. import Mode from './Mode/Mode.vue';
  32. import Color from './Color/Color.vue';
  33. import Font from './Font/Font.vue';
  34. import Text from './Text/Text.vue';
  35. import Status from './Status/Status.vue';
  36. const componentOptions = {
  37. components: {
  38. Mode,
  39. Color,
  40. Font,
  41. Text,
  42. Status,
  43. },
  44. };
  45. class ViewTab {
  46. _options = componentOptions;
  47. _props = {
  48. form: Object,
  49. };
  50. selectedTab = 'mode';
  51. created() {
  52. }
  53. mounted() {
  54. }
  55. tabEvent(event) {
  56. if (!event || !event.action)
  57. return;
  58. switch (event.action) {
  59. case 'night-mode': this.$emit('tab-event', {action: 'night-mode'}); break;
  60. }
  61. }
  62. }
  63. export default vueComponent(ViewTab);
  64. //-----------------------------------------------------------------------------
  65. </script>
  66. <style scoped>
  67. .label {
  68. width: 75px;
  69. }
  70. </style>