Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

templatePage.vue 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <div>
  3. <br />
  4. <hr />
  5. <hr />
  6. <hr />
  7. <hr />
  8. <hr />
  9. <div class="row">
  10. <div :class="listClass">
  11. <ListView :items="list" @onRowClick="onRowClick" />
  12. </div>
  13. <div class="col-md-6" v-if="showDetailView">
  14. <DetailView :item="detailItem" />
  15. </div>
  16. </div>
  17. <hr />
  18. </div>
  19. </template>
  20. <script>
  21. import { mapState, mapActions } from 'vuex';
  22. import ListView from '../shared/listView.vue';
  23. import DetailView from './templateDetail.vue';
  24. export default {
  25. data() {
  26. return {
  27. detailItem: undefined,
  28. };
  29. },
  30. components: {
  31. ListView,
  32. DetailView,
  33. },
  34. mounted() {
  35. this.getList();
  36. },
  37. computed: {
  38. ...mapState('template', ['list', 'item']),
  39. showDetailView() {
  40. return this.detailItem !== undefined && this.detailItem != null;
  41. },
  42. listClass() {
  43. return this.detailItem !== undefined && this.detailItem != null
  44. ? 'col-md-6'
  45. : 'col-md-12';
  46. },
  47. },
  48. methods: {
  49. ...mapActions('template', ['getList']),
  50. onRowClick(item) {
  51. console.log(item);
  52. this.detailItem = item;
  53. },
  54. },
  55. };
  56. </script>