多租户商城-商户小程序端
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.

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