Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

templatePage.vue 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <div class="container-fluid" style="margin-top:25px;">
  3. <div class="row">
  4. <div class="col-md-1"></div>
  5. <div class="col-md-10">
  6. <div class>
  7. <h3 class="sinse-title">Email Templates</h3>
  8. </div>
  9. </div>
  10. <div class="col-md-12">
  11. <hr />
  12. </div>
  13. </div>
  14. <div class="row">
  15. <div :class="listClass">
  16. <ListView :items="list" @onRowClick="onRowClick" @onNew="onNew" :showNew="true" />
  17. </div>
  18. <div class="col-md-6" v-if="showDetailView">
  19. <DetailView :placeHolders="detailItem ? detailItem.placeHolders : []" :item="detailItem" @onClose="onDetailClose" :editable="clickedNew" />
  20. </div>
  21. </div>
  22. <hr />
  23. </div>
  24. </template>
  25. <script>
  26. import { mapState, mapActions } from 'vuex';
  27. import ListView from '../shared/listView.vue';
  28. import DetailView from './templateDetail.vue';
  29. export default {
  30. data() {
  31. return {
  32. detailItem: undefined,
  33. clickedNew: false,
  34. };
  35. },
  36. components: {
  37. ListView,
  38. DetailView,
  39. },
  40. mounted() {
  41. this.getList();
  42. },
  43. computed: {
  44. ...mapState('template', ['list', 'item']),
  45. showDetailView() {
  46. return this.detailItem !== undefined && this.detailItem != null;
  47. },
  48. listClass() {
  49. return this.detailItem !== undefined && this.detailItem != null
  50. ? 'col-md-6'
  51. : 'col-md-12';
  52. },
  53. },
  54. methods: {
  55. ...mapActions('template', ['getList']),
  56. onRowClick(items) {
  57. if (items.length > 0) {
  58. const i = items[0];
  59. const item = this.list[i];
  60. if (this.detailItem !== item) {
  61. this.detailItem = item;
  62. } else this.detailItem = undefined;
  63. this.clickedNew = false;
  64. }
  65. },
  66. onNew() {
  67. this.detailItem = {};
  68. this.clickedNew = true;
  69. },
  70. onDetailClose() {
  71. this.detailItem = undefined;
  72. },
  73. },
  74. };
  75. </script>