Reader.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <div>
  3. <div class="slide show-mode">
  4. <template v-for="page in pages">
  5. <reader-page-vue :key="page.id" :page="page"></reader-page-vue>
  6. </template>
  7. </div>
  8. <div class="tools-top">
  9. <read-mode-button-group-vue
  10. defaultMode="show"
  11. @change-mode="handleChangeMode"
  12. ></read-mode-button-group-vue>
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. import { mapState } from 'vuex'
  18. import generatePages from '@/utils/generate-pages'
  19. import ReaderPageVue from './ReaderPage.vue'
  20. import ReadModeButtonGroupVue from '../../../components/ReadModeButtonGroup.vue'
  21. export default {
  22. components: { ReaderPageVue, ReadModeButtonGroupVue },
  23. computed: {
  24. ...mapState({
  25. items: state => state.reader.items
  26. }),
  27. pages() {
  28. return generatePages(this.$store.state.reader.items)
  29. }
  30. },
  31. methods: {
  32. handleChangeMode(mode) {
  33. // todo
  34. }
  35. }
  36. }
  37. </script>
  38. <style lang="scss" scoped>
  39. @import '@/common/slide/slide.scss';
  40. .tools-top {
  41. position: fixed;
  42. top: 20px;
  43. left: 0;
  44. right: 0;
  45. display: flex;
  46. justify-content: center;
  47. }
  48. </style>