多租户商城-商户小程序端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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