OptionPanel.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <template>
  2. <option-panel-tabs v-model:options="localOptions">
  3. <template #main-tab>
  4. <div class="option-panel-container">
  5. <div class="row q-col-gutter-md">
  6. <div class="input-container col-12 q-mt-md">
  7. <div class="outsideLabel">آدرس فایل عکس</div>
  8. <q-input v-model="localOptions.imageSource"
  9. label="image" />
  10. </div>
  11. <!-- <div class="input-container q-py-md">-->
  12. <!-- <div class="outsideLabel">height</div>-->
  13. <!-- <q-input v-model="localOptions.height"-->
  14. <!-- label="image" />-->
  15. <!-- </div>-->
  16. <div class="input-container col-4">
  17. <div class="outsideLabel">size</div>
  18. <q-select v-model="size"
  19. :options="sizeOptions"
  20. label="page size" />
  21. </div>
  22. <div class="input-container col-4">
  23. <div class="outsideLabel">عرض در سایز {{size}}</div>
  24. <q-input v-model="localOptions[size].width"
  25. label="width" />
  26. </div>
  27. <div class="input-container col-4">
  28. <div class="outsideLabel">ارتفاع در سایز {{size}}</div>
  29. <q-input v-model="localOptions[size].height"
  30. label="height" />
  31. </div>
  32. <div class="input-container col-12">
  33. <div class="outsideLabel">لینک عکس در سایز {{size}}</div>
  34. <q-input v-model="localOptions[size].src"
  35. label="image link" />
  36. </div>
  37. <div class="action col-md-12">
  38. <div class="cehckBox">
  39. <q-checkbox v-model="localOptions.useAEEEvent"
  40. label="استفاده از ایونت GTM"
  41. right-label />
  42. </div>
  43. <div v-if="localOptions.useAEEEvent"
  44. class="action-container q-gutter-lg-md">
  45. <div>فیلد های مورد نظر ایونت GTM :</div>
  46. <div class="col-9">
  47. <div class="outsideLabel">id</div>
  48. <q-input v-model="localOptions.AEEEventBody.id"
  49. label="id" />
  50. </div>
  51. <div class="col-6">
  52. <div class="outsideLabel">name</div>
  53. <q-input v-model="localOptions.AEEEventBody.name"
  54. label="name" />
  55. </div>
  56. <div class="col-6">
  57. <div class="outsideLabel">creative</div>
  58. <q-input v-model="localOptions.AEEEventBody.creative"
  59. label="creative" />
  60. </div>
  61. <div class="col-6">
  62. <div class="outsideLabel">position</div>
  63. <q-input v-model="localOptions.AEEEventBody.position"
  64. label="position" />
  65. </div>
  66. </div>
  67. <div class="cehckBox">
  68. <q-checkbox v-model="localOptions.hasAction"
  69. label="hasAction"
  70. right-label />
  71. </div>
  72. <div v-if="localOptions.hasAction"
  73. class="action-container">
  74. <div>
  75. <q-select v-model="localOptions.action.name"
  76. :options="actionTypes" />
  77. </div>
  78. <div v-if="localOptions.action.name === 'link'">
  79. <q-input v-model="localOptions.action.route"
  80. label="route" />
  81. </div>
  82. <div v-if="localOptions.action.name === 'event'">
  83. <q-input v-model="localOptions.action.eventName"
  84. label="event name" />
  85. <q-input v-model="localOptions.action.eventArgs"
  86. label="event args" />
  87. </div>
  88. <div v-if="localOptions.action.name === 'scroll'">
  89. <q-input v-model="localOptions.action.scrollTo"
  90. label="scrollTo class" />
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. </template>
  97. </option-panel-tabs>
  98. </template>
  99. <script>
  100. import { defineComponent } from 'vue'
  101. import { mixinOptionPanel } from 'quasar-ui-q-page-builder'
  102. import OptionPanelTabs from 'quasar-ui-q-page-builder/src/components/OptionPanelComponents/OptionPanelTabs.vue'
  103. export default defineComponent({
  104. name: 'OptionPanel',
  105. components: { OptionPanelTabs },
  106. mixins: [mixinOptionPanel],
  107. data() {
  108. return {
  109. size: 'xs',
  110. sizeOptions: ['xs', 'sm', 'md', 'lg', 'xl'],
  111. actionTypes: ['event', 'scroll', 'link'],
  112. defaultOptions: {
  113. imageSource: null,
  114. ratio: null,
  115. hasAction: false,
  116. useAEEEvent: false,
  117. AEEEventBody: {
  118. id: '-',
  119. name: '-',
  120. creative: null,
  121. position: null
  122. },
  123. action: {
  124. name: null,
  125. route: null,
  126. scrollTo: null,
  127. eventName: null,
  128. eventArgs: null
  129. },
  130. xs: {
  131. height: null,
  132. width: null,
  133. src: null
  134. },
  135. sm: {
  136. height: null,
  137. width: null,
  138. src: null
  139. },
  140. md: {
  141. height: null,
  142. width: null,
  143. src: null
  144. },
  145. lg: {
  146. height: null,
  147. width: null,
  148. src: null
  149. },
  150. xl: {
  151. height: null,
  152. width: null,
  153. src: null
  154. }
  155. }
  156. }
  157. }
  158. })
  159. </script>