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

<template>
<div class="layout hom-layout">
<div class="list-group-item"
v-for="(item,index) in componentsData"
:key="index">
<com-header v-if="item.type==='header'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-header>
<com-classify-header v-if="item.type==='classify-header'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-classify-header>
<!-- <component :is="componentMap[terminal-1].get(item.type)" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></component>-->
<com-banner v-if="item.type==='banner'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-banner>
<com-text v-if="item.type==='text'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-text>
<com-image-text v-if="item.type==='imageText'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-image-text>
<com-brand-list v-if="item.type==='brandList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-brand-list>
<com-category-list v-if="item.type==='categoryList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-category-list>
<com-product-group-list v-if="item.type==='productGroupList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-product-group-list>
<com-image-text-list v-if="item.type==='imageTextList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-image-text-list>
<com-assist-div v-if="item.type==='assistDiv'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-assist-div>
<com-image-text-nav v-if="item.type==='imageTextNav'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-image-text-nav>
<com-product v-if="item.type==='productList'"
ref="productPage"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-product>
<com-video-box v-if="item.type==='videoBox'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-video-box>
<com-coupon v-if="item.type==='coupon'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-coupon>
<com-custom v-if="item.type==='custom'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-custom>
<com-notice v-if="item.type==='notice'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-notice>
<com-vip v-if="item.type==='vip'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-vip>
<com-group v-if="item.type==='groupList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-group>
<com-discount v-if="item.type==='discountList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-discount>
<com-spike v-if="item.type==='spikeList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-spike>
<com-price v-if="item.type==='priceList'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-price>
<com-new-product v-if="item.type==='newProduct'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-new-product>
<com-shop v-if="item.type==='shop'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId"></com-shop>
<!-- <com-live v-if="item.type==='live'"
:componentContent="item.componentContent"
:terminal="terminal"
:typeId="typeId"
:shopId="shopId "></com-live>-->
</div>
</div>
</template>
<script>
// import comComponentMap from './componentMap'
import comHeader from '@/components/canvasShow/basics/header/app'
import comClassifyHeader from '@/components/canvasShow/basics/classifyHeader/app'
import comBanner from '@/components/canvasShow/basics/banner'
import comText from '@/components/canvasShow/basics/text'
import comImageText from '@/components/canvasShow/basics/imageText'
import comBrandList from '@/components/canvasShow/basics/brandList'
import comCategoryList from '@/components/canvasShow/basics/categoryList'
import comProductGroupList from '@/components/canvasShow/basics/productGroupList'
import comImageTextList from '@/components/canvasShow/basics/imageTextList'
import comAssistDiv from '@/components/canvasShow/basics/assistDiv'
import comImageTextNav from '@/components/canvasShow/basics/imageTextNav'
import comProduct from '@/components/canvasShow/basics/product/app/index'
import comVideoBox from '@/components/canvasShow/basics/video'
import comCoupon from '@/components/canvasShow/basics/coupon/app'
import comCustom from '@/components/canvasShow/basics/custom'
import comNotice from '@/components/canvasShow/basics/notice'
import comVip from '@/components/canvasShow/basics/vip/app'
import comGroup from '@/components/canvasShow/basics/group/app/index'
import comDiscount from '@/components/canvasShow/basics/discount/app'
import comSpike from '@/components/canvasShow/basics/spike/app'
import comPrice from '@/components/canvasShow/basics/price/app'
import comNewProduct from '@/components/canvasShow/basics/newProduct/app'
import comShop from '@/components/canvasShow/basics/shop'
import comLive from '@/components/canvasShow/basics/live/app'
import {sendReqMixin} from './config/mixin'
export default {
name: 'canvasPage',
mixins: [sendReqMixin],
data() {
return {
// terminal: 4, // 画布设备 1 小程序,2 H5,3 App 4 电脑
// typeId: 3, // 画布类型 1 平台画布,2 自定义页面,3 商家店铺装修
// shopId: 0, // 店铺id
// componentsData: [],
// componentMap: componentMap
}
},
components: {
comHeader,
comClassifyHeader,
comBanner,
comText,
comImageText,
comBrandList,
comCategoryList,
comProductGroupList,
comImageTextList,
comAssistDiv,
comImageTextNav,
comProduct,
comVideoBox,
comCoupon,
comCustom,
comGroup,
comDiscount,
comSpike,
comPrice,
comNotice,
comVip,
comNewProduct,
comShop,
comLive
},
props: {
terminal: {
type: Number,
default: 4
},
typeId: {
type: Number,
default: 1
},
shopId: {
type: Number,
default: 0
},
componentsData: {
type: Array,
default: ()=>[]
}
},
methods: {
}
}
</script>
<style lang="scss"
scoped>
.hom-layout {
width: 100%;
overflow: hidden;
}
</style>
<style lang="scss">
.warp {
width: 710upx;
margin: 0 auto;
max-width: 100%;
&.terminal4 {
width: 1200px;
max-width: 100%;
}
}
.flex-box {
display: flex;
}
</style>