HelpPage.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <Window @close="close">
  3. <template #header>
  4. Справка
  5. </template>
  6. <div class="col column" style="min-width: 600px">
  7. <q-btn-toggle
  8. v-model="selectedTab"
  9. toggle-color="primary"
  10. no-caps unelevated
  11. :options="buttons"
  12. />
  13. <div class="separator"></div>
  14. <keep-alive>
  15. <component :is="activePage" ref="page" class="col"></component>
  16. </keep-alive>
  17. </div>
  18. </Window>
  19. </template>
  20. <script>
  21. //-----------------------------------------------------------------------------
  22. import vueComponent from '../../vueComponent.js';
  23. import Window from '../../share/Window.vue';
  24. import CommonHelpPage from './CommonHelpPage/CommonHelpPage.vue';
  25. import HotkeysHelpPage from './HotkeysHelpPage/HotkeysHelpPage.vue';
  26. import MouseHelpPage from './MouseHelpPage/MouseHelpPage.vue';
  27. import VersionHistoryPage from './VersionHistoryPage/VersionHistoryPage.vue';
  28. //import DonateHelpPage from './DonateHelpPage/DonateHelpPage.vue';
  29. const pages = {
  30. 'CommonHelpPage': CommonHelpPage,
  31. 'HotkeysHelpPage': HotkeysHelpPage,
  32. 'MouseHelpPage': MouseHelpPage,
  33. 'VersionHistoryPage': VersionHistoryPage,
  34. //'DonateHelpPage': DonateHelpPage,
  35. };
  36. const tabs = [
  37. ['CommonHelpPage', 'Общее'],
  38. ['MouseHelpPage', 'Мышь/тачскрин'],
  39. ['HotkeysHelpPage', 'Клавиатура'],
  40. ['VersionHistoryPage', 'История версий'],
  41. //['DonateHelpPage', 'Помочь проекту'],
  42. ];
  43. const componentOptions = {
  44. components: Object.assign({ Window }, pages),
  45. };
  46. class HelpPage {
  47. _options = componentOptions;
  48. selectedTab = 'CommonHelpPage';
  49. close() {
  50. this.$emit('do-action', {action: 'help'});
  51. }
  52. get activePage() {
  53. if (pages[this.selectedTab])
  54. return pages[this.selectedTab];
  55. return null;
  56. }
  57. get buttons() {
  58. let result = [];
  59. for (const tab of tabs)
  60. result.push({label: tab[1], value: tab[0]});
  61. return result;
  62. }
  63. activateDonateHelpPage() {
  64. //this.selectedTab = 'DonateHelpPage';
  65. }
  66. activateVersionHistoryHelpPage() {
  67. this.selectedTab = 'VersionHistoryPage';
  68. }
  69. keyHook(event) {
  70. if (event.type == 'keydown' && event.key == 'Escape') {
  71. this.close();
  72. }
  73. return true;
  74. }
  75. }
  76. export default vueComponent(HelpPage);
  77. //-----------------------------------------------------------------------------
  78. </script>
  79. <style scoped>
  80. .separator {
  81. height: 1px;
  82. background-color: #E0E0E0;
  83. }
  84. </style>