Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

termsConditions.vue 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <main id="main" style="padding-bottom: 50px;">
  3. <div class="container">
  4. <div class="form">
  5. <div class="row">
  6. <div class="col">
  7. <div class="section-header">
  8. <h2>Terms And Conditions</h2>
  9. </div>
  10. </div>
  11. </div>
  12. <div v-if="checkAccess">
  13. <div class="row">
  14. <div class="col-md-6">
  15. <label for="version" class="uniSelectLabel">Version:</label>
  16. <input
  17. name="version"
  18. type="text"
  19. v-model="version"
  20. class="mt-5 mb-3 ml-2"
  21. />
  22. </div>
  23. <div class="col-md-6 mt-5">
  24. <p style="float: right;">Last Modified: {{ getModiefiedDate }}</p>
  25. </div>
  26. </div>
  27. <div class="row">
  28. <div class="col">
  29. <vue-editor
  30. v-model="termsInput"
  31. :editor-toolbar="customToolbar"
  32. />
  33. </div>
  34. </div>
  35. <div class="row">
  36. <div class="col-md-2 mt-3">
  37. <button @click="saveTerms()" class="btn-white-border">
  38. Save
  39. </button>
  40. </div>
  41. <div v-if="updated" class="col mt-3">
  42. <alert
  43. :text="'Terms and Contidtions Updated!!'"
  44. :type="'SUCCESS'"
  45. />
  46. </div>
  47. </div>
  48. </div>
  49. <div v-else>
  50. <alert
  51. :text="'You don\'t have permission to view this page'"
  52. :type="'ERROR'"
  53. />
  54. </div>
  55. </div>
  56. </div>
  57. <div v-if="wait" id="preloader"></div>
  58. </main>
  59. </template>
  60. <script>
  61. /* eslint-disable */
  62. import { VueEditor } from 'vue2-editor'
  63. import { mapActions, mapGetters, mapState } from 'vuex'
  64. import Log from '../../../assets/Log'
  65. import alert from '../../shared/alert'
  66. export default {
  67. components: {
  68. VueEditor,
  69. alert,
  70. },
  71. data() {
  72. return {
  73. termsInput: '',
  74. version: '',
  75. updated: false,
  76. wait: true,
  77. customToolbar: [
  78. [{ header: [false, 1, 2, 3, 4, 5, 6] }],
  79. ['bold', 'italic', 'underline', 'strike'],
  80. [{ list: 'ordered' }, { list: 'bullet' }, { list: 'check' }],
  81. [{ script: 'sub' }, { script: 'super' }],
  82. [{ indent: '-1' }, { indent: '+1' }],
  83. ],
  84. }
  85. },
  86. mounted() {
  87. this.populateTerms()
  88. },
  89. methods: {
  90. ...mapActions('termsConditions', ['setTerms', 'retrieveTerms']),
  91. saveTerms() {
  92. var termsObj = {
  93. termsConditions: this.termsInput,
  94. version: this.version,
  95. }
  96. this.setTerms(termsObj)
  97. .then(() => {
  98. this.updated = true
  99. this.$router.go()
  100. })
  101. .catch((ex) => {
  102. console.log(ex)
  103. })
  104. },
  105. async populateTerms() {
  106. await this.retrieveTerms()
  107. this.version = this.terms.version
  108. this.termsInput = this.terms.termsConditions
  109. setTimeout(() => {
  110. this.wait = false
  111. }, 500)
  112. },
  113. },
  114. computed: {
  115. ...mapGetters('termsConditions', ['getTermsAndConditions']),
  116. ...mapState('termsConditions', ['terms']),
  117. getModiefiedDate() {
  118. var date = new Date(this.terms.modified)
  119. return (
  120. date.getDate() +
  121. ' / ' +
  122. (date.getMonth() + 1) +
  123. ' / ' +
  124. date.getFullYear()
  125. )
  126. },
  127. checkAccess() {
  128. if (Log.getUser().role === 'Super Admin') {
  129. return true
  130. } else {
  131. return false
  132. }
  133. },
  134. },
  135. }
  136. </script>
  137. <style lang="scss" scoped></style>