多租户商城-商户小程序端

239 lines
8.7 KiB

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