canvasShowPage.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <div class="layout hom-layout">
  3. <div class="list-group-item"
  4. v-for="(item,index) in componentsData"
  5. :key="index">
  6. <!-- <component :is="componentMap[terminal-1].get(item.type)" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></component>-->
  7. <com-banner v-if="item.type==='banner'"
  8. :componentContent="item.componentContent"
  9. :terminal="terminal"
  10. :typeId="typeId"
  11. :shopId="shopId"></com-banner>
  12. <com-text v-if="item.type==='text'"
  13. :componentContent="item.componentContent"
  14. :terminal="terminal"
  15. :typeId="typeId"
  16. :shopId="shopId"></com-text>
  17. <com-image-text v-if="item.type==='imageText'"
  18. :componentContent="item.componentContent"
  19. :terminal="terminal"
  20. :typeId="typeId"
  21. :shopId="shopId"></com-image-text>
  22. <com-brand-list v-if="item.type==='brandList'"
  23. :componentContent="item.componentContent"
  24. :terminal="terminal"
  25. :typeId="typeId"
  26. :shopId="shopId"></com-brand-list>
  27. <com-category-list v-if="item.type==='categoryList'"
  28. :componentContent="item.componentContent"
  29. :terminal="terminal"
  30. :typeId="typeId"
  31. :shopId="shopId"></com-category-list>
  32. <com-image-text-list v-if="item.type==='imageTextList'"
  33. :componentContent="item.componentContent"
  34. :terminal="terminal"
  35. :typeId="typeId"
  36. :shopId="shopId"></com-image-text-list>
  37. <com-assist-div v-if="item.type==='assistDiv'"
  38. :componentContent="item.componentContent"
  39. :terminal="terminal"
  40. :typeId="typeId"
  41. :shopId="shopId"></com-assist-div>
  42. <com-image-text-nav v-if="item.type==='imageTextNav'"
  43. :componentContent="item.componentContent"
  44. :terminal="terminal"
  45. :typeId="typeId"
  46. :shopId="shopId"></com-image-text-nav>
  47. <com-product v-if="item.type==='productList'"
  48. ref="productPage"
  49. :componentContent="item.componentContent"
  50. :terminal="terminal"
  51. :typeId="typeId"
  52. :shopId="shopId"></com-product>
  53. <com-video-box v-if="item.type==='videoBox'"
  54. :componentContent="item.componentContent"
  55. :terminal="terminal"
  56. :typeId="typeId"
  57. :shopId="shopId"></com-video-box>
  58. <com-coupon v-if="item.type==='coupon'"
  59. :componentContent="item.componentContent"
  60. :terminal="terminal"
  61. :typeId="typeId"
  62. :shopId="shopId"></com-coupon>
  63. <com-custom v-if="item.type==='custom'"
  64. :componentContent="item.componentContent"
  65. :terminal="terminal"
  66. :typeId="typeId"
  67. :shopId="shopId"></com-custom>
  68. <com-notice v-if="item.type==='notice'"
  69. :componentContent="item.componentContent"
  70. :terminal="terminal"
  71. :typeId="typeId"
  72. :shopId="shopId"></com-notice>
  73. <com-vip v-if="item.type==='vip'"
  74. :componentContent="item.componentContent"
  75. :terminal="terminal"
  76. :typeId="typeId"
  77. :shopId="shopId"></com-vip>
  78. <com-group v-if="item.type==='groupList'"
  79. :componentContent="item.componentContent"
  80. :terminal="terminal"
  81. :typeId="typeId"
  82. :shopId="shopId"></com-group>
  83. <com-discount v-if="item.type==='discountList'"
  84. :componentContent="item.componentContent"
  85. :terminal="terminal"
  86. :typeId="typeId"
  87. :shopId="shopId"></com-discount>
  88. <com-spike v-if="item.type==='spikeList'"
  89. :componentContent="item.componentContent"
  90. :terminal="terminal"
  91. :typeId="typeId"
  92. :shopId="shopId"></com-spike>
  93. <com-price v-if="item.type==='priceList'"
  94. :componentContent="item.componentContent"
  95. :terminal="terminal"
  96. :typeId="typeId"
  97. :shopId="shopId"></com-price>
  98. <com-new-product v-if="item.type==='newProduct'"
  99. :componentContent="item.componentContent"
  100. :terminal="terminal"
  101. :typeId="typeId"
  102. :shopId="shopId"></com-new-product>
  103. <com-shop v-if="item.type==='shop'"
  104. :componentContent="item.componentContent"
  105. :terminal="terminal"
  106. :typeId="typeId"
  107. :shopId="shopId"></com-shop>
  108. <com-live v-if="item.type==='live'"
  109. :componentContent="item.componentContent"
  110. :terminal="terminal"
  111. :typeId="typeId"
  112. :shopId="shopId"></com-live>
  113. </div>
  114. </div>
  115. </template>
  116. <script>
  117. // import comComponentMap from './componentMap'
  118. import comBanner from '@/components/canvasShow/basics/banner'
  119. import comText from '@/components/canvasShow/basics/text'
  120. import comImageText from '@/components/canvasShow/basics/imageText'
  121. import comBrandList from '@/components/canvasShow/basics/brandList'
  122. import comCategoryList from '@/components/canvasShow/basics/categoryList'
  123. import comImageTextList from '@/components/canvasShow/basics/imageTextList'
  124. import comAssistDiv from '@/components/canvasShow/basics/assistDiv'
  125. import comImageTextNav from '@/components/canvasShow/basics/imageTextNav'
  126. import comProduct from '@/components/canvasShow/basics/product/app/index'
  127. import comVideoBox from '@/components/canvasShow/basics/video'
  128. import comCoupon from '@/components/canvasShow/basics/coupon/app'
  129. import comCustom from '@/components/canvasShow/basics/custom'
  130. import comNotice from '@/components/canvasShow/basics/notice'
  131. import comVip from '@/components/canvasShow/basics/vip/app'
  132. import comGroup from '@/components/canvasShow/basics/group/app/index'
  133. import comDiscount from '@/components/canvasShow/basics/discount/app'
  134. import comSpike from '@/components/canvasShow/basics/spike/app'
  135. import comPrice from '@/components/canvasShow/basics/price/app'
  136. import comNewProduct from '@/components/canvasShow/basics/newProduct/app'
  137. import comShop from '@/components/canvasShow/basics/shop'
  138. import comLive from '@/components/canvasShow/basics/live/app'
  139. import {sendReqMixin} from './config/mixin'
  140. export default {
  141. name: 'canvasPage',
  142. mixins: [sendReqMixin],
  143. data() {
  144. return {
  145. // terminal: 4, // 画布设备 1 小程序,2 H5,3 App 4 电脑
  146. // typeId: 3, // 画布类型 1 平台画布,2 自定义页面,3 商家店铺装修
  147. // shopId: 0, // 店铺id
  148. // componentsData: [],
  149. // componentMap: componentMap
  150. }
  151. },
  152. components: {
  153. comBanner,
  154. comText,
  155. comImageText,
  156. comBrandList,
  157. comCategoryList,
  158. comImageTextList,
  159. comAssistDiv,
  160. comImageTextNav,
  161. comProduct,
  162. comVideoBox,
  163. comCoupon,
  164. comCustom,
  165. comGroup,
  166. comDiscount,
  167. comSpike,
  168. comPrice,
  169. comNotice,
  170. comVip,
  171. comNewProduct,
  172. comShop,
  173. comLive
  174. },
  175. props: {
  176. terminal: {
  177. type: Number,
  178. default: 4
  179. },
  180. typeId: {
  181. type: Number,
  182. default: 1
  183. },
  184. shopId: {
  185. type: Number,
  186. default: 0
  187. },
  188. componentsData: {
  189. type: Array,
  190. default: ()=>[]
  191. }
  192. },
  193. methods: {
  194. }
  195. }
  196. </script>
  197. <style lang="scss"
  198. scoped>
  199. .hom-layout {
  200. background-color: #ffffff;
  201. width: 100%;
  202. overflow: hidden;
  203. }
  204. </style>
  205. <style lang="scss">
  206. .warp {
  207. width: 710upx;
  208. margin: 0 auto;
  209. max-width: 100%;
  210. &.terminal4 {
  211. width: 1200px;
  212. max-width: 100%;
  213. }
  214. }
  215. .flex-box {
  216. display: flex;
  217. }
  218. </style>