zhengjinyi 3 роки тому
батько
коміт
31e37cf013

+ 39 - 2
components/cm-module/activity/pageFloor.vue

@@ -80,6 +80,32 @@
 			<template v-if="page.floorContent.templateType == '21'">
 				<productH :pageData="page" :userIdentity="userIdentity"></productH>
 			</template>
+            <!-- 直播模板 -->
+            <template v-if="page.floorContent.templateType == '22'">
+            	<liveA :pageData="page" :userIdentity="userIdentity"></liveA>
+            </template>
+            <template v-if="page.floorContent.templateType == '23'">
+            	<liveC :pageData="page" :userIdentity="userIdentity"></liveC>
+            </template>
+            <template v-if="page.floorContent.templateType == '24'">
+            	<liveA :pageData="page" :userIdentity="userIdentity"></liveA>
+            </template>
+            <template v-if="page.floorContent.templateType == '25'">
+            	<liveB :pageData="page" :userIdentity="userIdentity"></liveB>
+            </template>
+            <!-- 视频模板 -->
+            <template v-if="page.floorContent.templateType == '26'">
+            	<pictureH :pageData="page" :userIdentity="userIdentity"></pictureH>
+            </template>
+            <template v-if="page.floorContent.templateType == '27'">
+            	<pictureC :pageData="page" :userIdentity="userIdentity"></pictureC>
+            </template>
+            <template v-if="page.floorContent.templateType == '28'">
+            	<pictureG :pageData="page" :userIdentity="userIdentity"></pictureG>
+            </template>
+            <template v-if="page.floorContent.templateType == '29'">
+            	<pictureD :pageData="page" :userIdentity="userIdentity"></pictureD>
+            </template>
 		</view>
 	</view>
 </template>
@@ -104,11 +130,17 @@ import pictureC from '@/components/cm-module/pcitureTemplate/templateC.vue'
 import pictureD from '@/components/cm-module/pcitureTemplate/templateD.vue'
 import pictureE from '@/components/cm-module/pcitureTemplate/templateE.vue'
 import pictureF from '@/components/cm-module/pcitureTemplate/templateF.vue'
+import pictureG from '@/components/cm-module/pcitureTemplate/templateG.vue'
+import pictureH from '@/components/cm-module/pcitureTemplate/templateH.vue'
 //引入图文模板
 import articleA from '@/components/cm-module/articleTemplate/templateA.vue'
 import articleB from '@/components/cm-module/articleTemplate/templateB.vue'
 import articleC from '@/components/cm-module/articleTemplate/templateC.vue'
 import articleD from '@/components/cm-module/articleTemplate/templateD.vue'
+// 直播楼层模板
+import liveA from '@/components/cm-module/liveTemplate/templateA.vue' 
+import liveB from '@/components/cm-module/liveTemplate/templateB.vue' 
+import liveC from '@/components/cm-module/liveTemplate/templateC.vue' 
 
 export default {
 	name: 'pageFloor',
@@ -130,10 +162,15 @@ export default {
 		pictureD,
 		pictureE,
 		pictureF,
+        pictureG,
+        pictureH,
 		articleA,
 		articleB,
 		articleC,
-		articleD
+		articleD,
+        liveA,
+        liveC, 
+        liveB
 	},
 	props: {
 		list: {
@@ -149,7 +186,7 @@ export default {
 	data() {
 		return {
 			pageFloorList: [],
-			isSwiperTemp:['1','2','9','21','5','7']
+			isSwiperTemp:['1','2','9','21','5','7','22','23','24','25','27']
 		}
 	},
 	created() {

+ 250 - 0
components/cm-module/activityContact/index.vue

@@ -0,0 +1,250 @@
+<template>
+    <view class="cm-contact" v-if="activityEntryVisiable || contactVisiable">
+        <!-- 未展开状态 -->
+        <view class="cm-close-box" v-show="!isActive">
+            <view class="cm-icon cm-entry" @click="handleToggleEntry(true)" v-if="activityEntryVisiable"></view>
+            <view class="cm-icon cm-bround cm-open-btn" @click="handleToggleAcitve(true)" v-if="contactVisiable"></view>
+        </view>
+        <!-- 展开状态 -->
+        <view class="cm-close-box" v-show="contactVisiable && isActive">
+            <view class="cm-icon cm-entry" @click="handleToggleEntry(true)" v-if="activityEntryVisiable"></view>
+            <view class="cm-icon cm-bround cm-mobile" @click="handelShowMobile">
+                <view class="cm-dialog" v-show="mobileVisiable">
+                    <view class="cm-dialog-content content1">
+                        <view class="cm-item"> <text>展会咨询电话:13766896620</text> </view>
+                        <view class="cm-line line1"></view>
+                        <view class="cm-item"> <text>业务咨询电话:13766896620</text> </view>
+                    </view>
+                </view>
+            </view>
+            <view class="cm-icon cm-bround cm-ewm" @click="handelShowWechat">
+                <view class="cm-dialog" v-show="wechatVisiable">
+                    <view class="cm-dialog-content content2">
+                        <view class="cm-item">
+                            <image
+                                src="https://static.caimei365.com/app/img/icon2/cm_entry_bg.png"
+                                mode="widthFix"
+                            ></image>
+                            <text>展会咨询微信</text>
+                        </view>
+                        <view class="cm-line line2"></view>
+                        <view class="cm-item">
+                            <image
+                                src="https://static.caimei365.com/app/img/icon2/cm_entry_bg.png"
+                                mode="widthFix"
+                            ></image>
+                            <text>业务咨询微信</text>
+                        </view>
+                    </view>
+                </view>
+            </view>
+            <view class="cm-icon cm-bround cm-close-btn" @click="handleToggleAcitve(false)"></view>
+        </view>
+        <view class="mask cover" v-if="activityEntryVisiable && entryVisiable">
+            <view class="content">
+                <image src="https://static.caimei365.com/app/img/icon2/cm_entry_bg.png" mode="widthFix"></image>
+                <view class="mask-close" @click="handleToggleEntry(false)"></view>
+            </view>
+        </view>
+        <view class="mask" v-if="mobileVisiable || wechatVisiable" @click="handleClose"></view>
+    </view>
+</template>
+
+<script>
+export default {
+    props: {
+        pageInfo: {
+            type: Object
+        }
+    },
+    data() {
+        return {
+            isActive: true,
+            mobileVisiable: false,
+            wechatVisiable: false,
+            entryVisiable: true,
+            activityEntryVisiable: false,
+            contactVisiable: false
+        }
+    },
+    created() {
+        this.contactVisiable = this.pageInfo.infoBarStatus === 1
+        this.activityEntryVisiable = this.initActivityEntry(
+            this.pageInfo.redPacketBeginTime,
+            this.pageInfo.redPacketEndTime
+        )
+        console.log(this.pageInfo)
+    },
+    methods: {
+        // 是否展开
+        handleToggleAcitve(active) {
+            this.isActive = active
+            this.mobileVisiable = false
+            this.wechatVisiable = false
+        },
+        // 显示微信二维码
+        handelShowWechat() {
+            this.wechatVisiable = !this.wechatVisiable
+            this.mobileVisiable = false
+        },
+        // 显示联系电话
+        handelShowMobile() {
+            this.mobileVisiable = !this.mobileVisiable
+            this.wechatVisiable = false
+        },
+        // 隐藏微信二维码和联系电话
+        handleClose() {
+            this.mobileVisiable = false
+            this.wechatVisiable = false
+        },
+        // 显示活动入口
+        handleToggleEntry(visiable) {
+            this.entryVisiable = visiable
+        },
+        // 初始化红包入口状态
+        initActivityEntry(begin, end) {
+            const nowTime = new Date().getTime()
+            const beginTime = new Date(begin).getTime()
+            const endTime = new Date(end).getTime()
+            return nowTime >= beginTime && nowTime <= endTime
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.cm-contact {
+    position: fixed;
+    right: 20rpx;
+    top: 30%;
+}
+.cm-close-box {
+    position: relative;
+    z-index: 9;
+    .cm-icon {
+        position: relative;
+        width: 80rpx;
+        height: 80rpx;
+        margin: 10rpx 0;
+        &.cm-bround {
+            border-radius: 50%;
+        }
+        &.cm-entry {
+            height: 88rpx;
+            background: url(https://static.caimei365.com/app/img/icon2/cm_entry_icon.png) no-repeat center;
+            background-size: 80rpx;
+        }
+        &.cm-open-btn {
+            background: rgba(0, 0, 0, 0.4) url(https://static.caimei365.com/app/img/icon2/cm_open.png) no-repeat center;
+            background-size: 39rpx;
+        }
+        &.cm-mobile {
+            background: rgba(0, 0, 0, 0.4) url(https://static.caimei365.com/app/img/icon2/cm_mobile.png) no-repeat
+                center;
+            background-size: 39rpx;
+        }
+        &.cm-ewm {
+            background: rgba(0, 0, 0, 0.4) url(https://static.caimei365.com/app/img/icon2/cm_ewm.png) no-repeat center;
+            background-size: 39rpx;
+        }
+        &.cm-close-btn {
+            background: rgba(0, 0, 0, 0.4) url(https://static.caimei365.com/app/img/icon2/cm_close.png) no-repeat center;
+            background-size: 39rpx;
+        }
+    }
+}
+.cm-dialog {
+    top: 0;
+    right: 110rpx;
+    position: absolute;
+    padding: 20rpx;
+    background: rgb(255, 92, 0);
+    border-radius: 16rpx;
+    &::after {
+        position: absolute;
+        top: 20rpx;
+        right: -20rpx;
+        content: '';
+        display: block;
+        width: 0;
+        height: 0;
+        border-top: 16rpx solid transparent;
+        border-bottom: 16rpx solid transparent;
+        border-left: 20rpx solid rgb(255, 92, 0);
+    }
+    .cm-line {
+        &.line1 {
+            width: 100%;
+            height: 1px;
+            background: #fff;
+            margin: 10rpx 0;
+        }
+        &.line2 {
+            width: 1px;
+            height: 200rpx;
+            background: #eee;
+            margin: 0 10rpx;
+        }
+    }
+    .content1 {
+        .cm-item {
+            color: #fff;
+            text {
+                display: block;
+                width: 400rpx;
+                font-size: 28rpx;
+                text-align: center;
+            }
+        }
+    }
+    .content2 {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        .cm-item {
+            color: #fff;
+            text {
+                display: block;
+                font-size: 28rpx;
+                text-align: center;
+                margin-top: 10rpx;
+            }
+            image {
+                width: 240rpx;
+                height: 240rpx;
+            }
+        }
+    }
+}
+.mask {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: fixed;
+    z-index: 1;
+    top: 0;
+    left: 0;
+    width: 100vw;
+    height: 100vh;
+    .content {
+        position: relative;
+        .mask-close {
+            z-index: 9;
+            position: absolute;
+            top: -40rpx;
+            right: 40rpx;
+            width: 64rpx;
+            height: 64rpx;
+            background: url(https://static.caimei365.com/app/img/icon2/cm_float_close.png) no-repeat center;
+            background-size: 60rpx 60rpx;
+        }
+        image {
+            width: 560rpx;
+        }
+    }
+    &.cover {
+        z-index: 999;
+        background: rgba(0, 0, 0, 0.4);
+    }
+}
+</style>

+ 103 - 0
components/cm-module/liveTemplate/components/scroll-temp.vue

@@ -0,0 +1,103 @@
+<template>
+    <scroll-view scroll-x="true" class="picture">
+        <view class="section" v-for="(item, index) in floorImageList" @click="navigaitionTo(item)" :key="index">
+            <image :src="item.appletsImage"></image>
+            <view class="cm-cover" :class="'color' + checkDisplayDate">{{ coverText[checkDisplayDate] }}</view>
+        </view>
+    </scroll-view>
+</template>
+
+<script>
+import caimeiApi from '@/common/config/caimeiApi.js'
+export default {
+    name: 'ScrollTemp',
+    data() {
+        return {
+            coverText: ['未开始', '已开始', '已结束']
+        }
+    },
+    props: {
+        floorImageList: {
+            type: Array
+        },
+        displayDate: String
+    },
+    computed: {
+        checkDisplayDate() {
+            const nowDate = new Date().getTime()
+            const displayDate = new Date(this.displayDate).getTime()
+            const oneDay = 60 * 60 * 24 * 1000
+            // 未开始
+            if (nowDate < displayDate && nowDate > displayDate - oneDay) {
+                return 0
+            }
+            // 已开始
+            if (nowDate > displayDate && nowDate < displayDate + oneDay) {
+                return 1
+            }
+            // 已结束
+            if (nowDate > displayDate + oneDay) {
+                return 2
+            }
+        }
+    },
+    methods: {
+        navigaitionTo(item) {
+            if (item.adsImage === '' && item.linkType === -1) {
+                return
+            } else if (item.linkType === -1) {
+                uni.navigateTo({
+                    url: `/pages/h5/activity/activity-detail?adsImage=${item.adsImage}&title=${item.name}`
+                })
+            } else {
+                caimeiApi.FlooryNavigateTo(item)
+            }
+        }
+    }
+}
+</script>
+
+<style lang="scss">
+.picture {
+    width: 750rpx;
+    margin-left: -24rpx;
+    white-space: nowrap;
+    .section {
+        position: relative;
+        display: inline-block;
+        margin-right: 24rpx;
+        width: 310rpx;
+        height: 240rpx;
+        overflow: hidden;
+        border-radius: 16rpx;
+        image {
+            width: 310rpx;
+            height: 240rpx;
+        }
+        &:first-child {
+            margin-left: 24rpx;
+        }
+        .cm-cover {
+            position: absolute;
+            width: 96rpx;
+            height: 40rpx;
+            top: 0;
+            right: 0;
+            border-radius: 0 16rpx 0 16rpx;
+            color: #fff;
+            font-size: 24rpx;
+            text-align: center;
+            line-height: 36rpx;
+            &.color2 {
+                background: rgba(0, 0, 0, 0.5);
+            }
+            &.color1 {
+                background: rgb(255, 92, 0);
+            }
+            &.color0 {
+                background: rgb(30, 206, 112);
+            }
+        }
+    }
+}
+</style>

+ 202 - 0
components/cm-module/liveTemplate/components/swiper-temp1.vue

@@ -0,0 +1,202 @@
+<template>
+    <view class="section_page_main clearfix">
+        <view class="recommend-list">
+            <swiper
+                class="tui-banner-swiper"
+                :autoplay="true"
+                :interval="5000"
+                :duration="500"
+                :circular="true"
+                @change="swiperChange"
+                :class="{ minHeigth: hasLessImage }"
+            >
+                <swiper-item class="clearfix" v-for="(item, index1) in list" :key="index1">
+                    <view
+                        class="img-box"
+                        v-for="(product, index2) in item"
+                        :key="index2"
+                        @click="navigaitionTo(product)"
+                    >
+                        <view class="cm-cover" :class="'color' + checkDisplayDate">{{coverText[checkDisplayDate]}}</view>
+                        <image :src="product.appletsImage" mode="scaleToFill"></image>
+                    </view>
+                </swiper-item>
+            </swiper>
+            <view class="swiper__recommenddots-box" v-if="list.length > 1">
+                <view
+                    v-for="(item, idx) in list"
+                    :key="idx"
+                    :class="[idx === swiperCurrent ? 'swiper__dots-long' : 'none']"
+                    :data-index="swiperCurrent"
+                    class="swiper__dots-item"
+                >
+                </view>
+            </view>
+        </view>
+    </view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import caimeiApi from '@/common/config/caimeiApi.js'
+export default {
+    name: 'SwiperTemp',
+    props: {
+        floorImageList: {
+            type: Array
+        },
+        displayDate: String
+    },
+    data() {
+        return {
+            list: [],
+            swiperCurrent: 0,
+            pageSize: 4,
+            imageCount: 0,
+            coverText: ['未开始', '已开始', '已结束']
+        }
+    },
+    created() {
+        this.initData()
+    },
+    computed: {
+        hasLessImage() {
+            return this.imageCount <= 2
+        },
+        checkDisplayDate() {
+            const nowDate = new Date().getTime()
+            const displayDate = new Date(this.displayDate).getTime()
+            const oneDay = 60 * 60 * 24 * 1000
+            // 未开始
+            if (nowDate < displayDate) {
+                return 0
+            }
+            // 已开始
+            if (nowDate > displayDate && nowDate < displayDate + oneDay) {
+                return 1
+            }
+            // 已结束
+            if (nowDate > displayDate + oneDay) {
+                return 2
+            }
+        }
+    },
+    methods: {
+        initData() {
+            this.imageCount = this.floorImageList.length
+            while (this.floorImageList.length > 0) {
+                this.list.push(this.floorImageList.splice(0, this.pageSize))
+            }
+        },
+        swiperChange(e) {
+            //轮播切换
+            const index = e.detail.current
+            this.swiperCurrent = index
+        },
+        navigaitionTo(item) {
+            if (item.adsImage === '' && item.linkType === -1) {
+                return
+            } else if (item.linkType === -1) {
+                uni.navigateTo({
+                    url: `/pages/h5/activity/activity-detail?adsImage=${item.adsImage}&title=${item.name}`
+                })
+            } else {
+                caimeiApi.FlooryNavigateTo(item)
+            }
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.minHeigth {
+    height: 250rpx !important;
+}
+.section_page_main {
+    width: 100%;
+    height: auto;
+    box-sizing: border-box;
+    .recommend-list {
+        width: 100%;
+        position: relative;
+        padding-bottom: 20rpx;
+        .tui-banner-swiper {
+            height: 550rpx;
+            width: 100%;
+            margin: 0 auto;
+            background: #f7f7f7;
+            overflow: hidden;
+            transform: translateY(0);
+            .img-box {
+                position: relative;
+                width: 339rpx;
+                height: 240rpx;
+                float: left;
+                margin: 24rpx 24rpx 0 0;
+                overflow: hidden;
+                border-radius: 16rpx;
+                image {
+                    width: 339rpx;
+                    height: 240rpx;
+                }
+                &:nth-child(2n) {
+                    margin-right: 0;
+                }
+                &:nth-child(1),
+                &:nth-child(2) {
+                    margin-top: 0;
+                }
+                .cm-cover {
+                    position: absolute;
+                    width: 96rpx;
+                    height: 40rpx;
+                    top: 0;
+                    right: 0;
+                    border-radius: 0 16rpx 0 16rpx;
+                    color: #fff;
+                    font-size: 24rpx;
+                    text-align: center;
+                    line-height: 36rpx;
+                    &.color2 {
+                        background: rgba(0, 0, 0, 0.5);
+                    }
+                    &.color1 {
+                        background: rgb(255, 92, 0);
+                    }
+                    &.color0 {
+                        background: rgb(30, 206, 112);
+                    }
+                }
+            }
+        }
+    }
+    .swiper__recommenddots-box {
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        /* #ifndef APP-NVUE */
+        display: flex;
+        /* #endif */
+        flex: 1;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        height: 60rpx;
+        .swiper__dots-item {
+            width: 8rpx;
+            height: 8rpx;
+            border-radius: 100%;
+            margin-left: 6px;
+            background-color: rgba(225, 86, 22, 0.3);
+        }
+        .swiper__dots-long {
+            width: 32rpx;
+            height: 8rpx;
+            border-radius: 4rpx;
+            background-color: #e15616;
+            transition: all 0.4s;
+        }
+    }
+}
+</style>

+ 197 - 0
components/cm-module/liveTemplate/components/swiper-temp2.vue

@@ -0,0 +1,197 @@
+<template>
+    <view class="section_page_main clearfix">
+        <view class="recommend-list">
+            <swiper
+                class="tui-banner-swiper"
+                :autoplay="true"
+                :interval="5000"
+                :duration="500"
+                :circular="true"
+                @change="swiperChange"
+                :class="{ minHeigth: hasLessImage }"
+            >
+                <swiper-item class="clearfix" v-for="(item, index1) in list" :key="index1">
+                    <view
+                        class="img-box"
+                        v-for="(product, index2) in item"
+                        :key="index2"
+                        @click="navigaitionTo(product)"
+                    >
+                        <view class="cm-cover" :class="'color' + checkDisplayDate">{{coverText[checkDisplayDate]}}</view>
+                        <image :src="product.appletsImage" mode="scaleToFill"></image>
+                    </view>
+                </swiper-item>
+            </swiper>
+            <view class="swiper__recommenddots-box" v-if="list.length > 1">
+                <view
+                    v-for="(item, idx) in list"
+                    :key="idx"
+                    :class="[idx === swiperCurrent ? 'swiper__dots-long' : 'none']"
+                    :data-index="swiperCurrent"
+                    class="swiper__dots-item"
+                >
+                </view>
+            </view>
+        </view>
+    </view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import caimeiApi from '@/common/config/caimeiApi.js'
+export default {
+    name: 'SwiperTemp',
+    props: {
+        floorImageList: {
+            type: Array
+        },
+        displayDate: String
+    },
+    data() {
+        return {
+            list: [],
+            swiperCurrent: 0,
+            pageSize: 2,
+            imageCount: 0,
+            coverText: ['未开始', '已开始', '已结束']
+        }
+    },
+    created() {
+        this.initData()
+    },
+    computed: {
+        hasLessImage() {
+            return this.imageCount <= 1
+        },
+        checkDisplayDate() {
+            const nowDate = new Date().getTime()
+            const displayDate = new Date(this.displayDate).getTime()
+            const oneDay = 60 * 60 * 24 * 1000
+            // 未开始
+            if (nowDate < displayDate) {
+                return 0
+            }
+            // 已开始
+            if (nowDate > displayDate && nowDate < displayDate + oneDay) {
+                return 1
+            }
+            // 已结束
+            if (nowDate > displayDate + oneDay) {
+                return 2
+            }
+        }
+    },
+    methods: {
+        initData() {
+            this.imageCount = this.floorImageList.length
+            while (this.floorImageList.length > 0) {
+                this.list.push(this.floorImageList.splice(0, this.pageSize))
+            }
+        },
+        swiperChange(e) {
+            //轮播切换
+            const index = e.detail.current
+            this.swiperCurrent = index
+        },
+        navigaitionTo(item) {
+            if (item.adsImage === '' && item.linkType === -1) {
+                return
+            } else if (item.linkType === -1) {
+                uni.navigateTo({
+                    url: `/pages/h5/activity/activity-detail?adsImage=${item.adsImage}&title=${item.name}`
+                })
+            } else {
+                caimeiApi.FlooryNavigateTo(item)
+            } 
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.minHeigth {
+    height: 380rpx !important;
+}
+.section_page_main {
+    width: 100%;
+    height: auto;
+    box-sizing: border-box;
+    .recommend-list {
+        width: 100%;
+        position: relative;
+        padding-bottom: 20rpx;
+        .tui-banner-swiper {
+            height: 780rpx;
+            width: 100%;
+            margin: 0 auto;
+            background: #f7f7f7;
+            overflow: hidden;
+            transform: translateY(0);
+            .img-box {
+                position: relative;
+                width: 702rpx;
+                height: 360rpx;
+                margin-bottom: 24rpx;
+                overflow: hidden;
+                border-radius: 16rpx;
+                image {
+                    width: 702rpx;
+                    height: 360rpx;
+                }
+                &:last-child{
+                    margin-bottom: 0;
+                }
+                .cm-cover {
+                    position: absolute;
+                    width: 96rpx;
+                    height: 40rpx;
+                    top: 0;
+                    right: 0;
+                    border-radius: 0 16rpx 0 16rpx;
+                    color: #fff;
+                    font-size: 24rpx;
+                    text-align: center;
+                    line-height: 36rpx;
+                    &.color2 {
+                        background: rgba(0, 0, 0, 0.5);
+                    }
+                    &.color1 {
+                        background: rgb(255, 92, 0);
+                    }
+                    &.color0 {
+                        background: rgb(30, 206, 112);
+                    }
+                }
+            }
+        }
+    }
+    .swiper__recommenddots-box {
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        /* #ifndef APP-NVUE */
+        display: flex;
+        /* #endif */
+        flex: 1;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        height: 60rpx;
+        .swiper__dots-item {
+            width: 8rpx;
+            height: 8rpx;
+            border-radius: 100%;
+            margin-left: 6px;
+            background-color: rgba(225, 86, 22, 0.3);
+        }
+        .swiper__dots-long {
+            width: 32rpx;
+            height: 8rpx;
+            border-radius: 4rpx;
+            background-color: #e15616;
+            transition: all 0.4s;
+        }
+    }
+}
+</style>

+ 103 - 0
components/cm-module/liveTemplate/templateA.vue

@@ -0,0 +1,103 @@
+<template>
+    <view class="live-container">
+        <view class="cm-tabs">
+            <view
+                class="cm-tab-item"
+                :class="{ on: index === currentTab }"
+                v-for="(tab, index) in tablist"
+                :key="index"
+                @click="handleTabChange(index)"
+                >{{ tab.title | dateFormat }}</view
+            >
+        </view>
+        <!-- 轮播图区域 -->
+        <view class="cm-swiper-list">
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate1"
+                :floorImageList="pageData.floorImageList"
+                v-show="currentTab === 0"
+            ></swiper-temp>
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate2"
+                :floorImageList="pageData.floorImageList2"
+                v-show="currentTab === 1"
+            ></swiper-temp>
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate3"
+                :floorImageList="pageData.floorImageList3"
+                v-show="currentTab === 2"
+            ></swiper-temp>
+        </view>
+    </view>
+</template>
+
+<script>
+import SwiperTemp from './components/swiper-temp1.vue'
+export default {
+    components: { SwiperTemp },
+    props: {
+        pageData: {
+            type: Object
+        },
+        userIdentity: {
+            type: Number
+        }
+    },
+    data() {
+        return {
+            tablist: [],
+            currentTab: 0
+        }
+    },
+    filters: {
+        dateFormat(val) {
+            // 2021-08-16 00:00:00
+            const str = val.split(' ')[0].split('-')
+            return str[1] + '-' + str[2]
+        }
+    },
+    created() {
+        this.initTabs()
+    },
+    methods: {
+        // 初始化tab列表
+        initTabs() {
+            for (let i = 1; i < 4; i++) {
+                this.tablist.push({ title: this.pageData.floorContent['displayDate' + i] })
+            }
+        },
+        // tab点击事件
+        handleTabChange(index) {
+            this.currentTab = index
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.live-container {
+    position: relative;
+}
+.cm-tabs {
+    position: absolute;
+    border-radius: 18rpx;
+    overflow: hidden;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 250rpx;
+    top: -80rpx;
+    right: 0;
+    .cm-tab-item {
+        width: 80rpx;
+        font-size: 20rpx;
+        line-height: 36rpx;
+        text-align: center;
+        background: #fff;
+        &.on {
+            color: #fff;
+            background: rgb(255, 92, 0);
+        }
+    }
+}
+</style>

+ 103 - 0
components/cm-module/liveTemplate/templateB.vue

@@ -0,0 +1,103 @@
+<template>
+    <view class="live-container">
+        <view class="cm-tabs">
+            <view
+                class="cm-tab-item"
+                :class="{ on: index === currentTab }"
+                v-for="(tab, index) in tablist"
+                :key="index"
+                @click="handleTabChange(index)"
+                >{{ tab.title | dateFormat }}</view
+            >
+        </view>
+        <!-- 轮播图区域 -->
+        <view class="cm-swiper-list">
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate1"
+                :floorImageList="pageData.floorImageList"
+                v-show="currentTab === 0"
+            ></swiper-temp>
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate2"
+                :floorImageList="pageData.floorImageList2"
+                v-show="currentTab === 1"
+            ></swiper-temp>
+            <swiper-temp
+                :displayDate="pageData.floorContent.displayDate3"
+                :floorImageList="pageData.floorImageList3"
+                v-show="currentTab === 2"
+            ></swiper-temp>
+        </view>
+    </view>
+</template>
+
+<script>
+import SwiperTemp from './components/swiper-temp2.vue'
+export default {
+    components: { SwiperTemp },
+    props: {
+        pageData: {
+            type: Object
+        },
+        userIdentity: {
+            type: Number
+        }
+    },
+    data() {
+        return {
+            tablist: [],
+            currentTab: 0
+        }
+    },
+    filters: {
+        dateFormat(val) {
+            // 2021-08-16 00:00:00
+            const str = val.split(' ')[0].split('-')
+            return str[1] + '-' + str[2]
+        }
+    },
+    created() {
+        this.initTabs()
+    },
+    methods: {
+        // 初始化tab列表
+        initTabs() {
+            for (let i = 1; i < 4; i++) {
+                this.tablist.push({ title: this.pageData.floorContent['displayDate' + i] })
+            }
+        },
+        // tab点击事件
+        handleTabChange(index) {
+            this.currentTab = index
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.live-container {
+    position: relative;
+}
+.cm-tabs {
+    position: absolute;
+    border-radius: 18rpx;
+    overflow: hidden;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 250rpx;
+    top: -80rpx;
+    right: 0;
+    .cm-tab-item {
+        width: 80rpx;
+        font-size: 20rpx;
+        line-height: 36rpx;
+        text-align: center;
+        background: #fff;
+        &.on {
+            color: #fff;
+            background: rgb(255, 92, 0);
+        }
+    }
+}
+</style>

+ 103 - 0
components/cm-module/liveTemplate/templateC.vue

@@ -0,0 +1,103 @@
+<template>
+    <view class="live-container">
+        <view class="cm-tabs">
+            <view
+                class="cm-tab-item"
+                :class="{ on: index === currentTab }"
+                v-for="(tab, index) in tablist"
+                :key="index"
+                @click="handleTabChange(index)"
+                >{{ tab.title | dateFormat }}</view
+            >
+        </view>
+        <!-- 轮播图区域 -->
+        <view class="cm-scroll-list">
+            <scroll-temp
+                :displayDate="pageData.floorContent.displayDate1"
+                :floorImageList="pageData.floorImageList"
+                v-show="currentTab === 0"
+            ></scroll-temp>
+            <scroll-temp
+                :displayDate="pageData.floorContent.displayDate2"
+                :floorImageList="pageData.floorImageList2"
+                v-show="currentTab === 1"
+            ></scroll-temp>
+            <scroll-temp
+                :displayDate="pageData.floorContent.displayDate3"
+                :floorImageList="pageData.floorImageList3"
+                v-show="currentTab === 2"
+            ></scroll-temp>
+        </view>
+    </view>
+</template>
+
+<script>
+import ScrollTemp from './components/scroll-temp.vue'
+export default {
+    components: { ScrollTemp },
+    props: {
+        pageData: {
+            type: Object
+        },
+        userIdentity: {
+            type: Number
+        }
+    },
+    data() {
+        return {
+            tablist: [],
+            currentTab: 0
+        }
+    },
+    filters: {
+        dateFormat(val) {
+            // 2021-08-16 00:00:00
+            const str = val.split(' ')[0].split('-')
+            return str[1] + '-' + str[2]
+        }
+    },
+    created() {
+        this.initTabs()
+    },
+    methods: {
+        // 初始化tab列表
+        initTabs() {
+            for (let i = 1; i < 4; i++) {
+                this.tablist.push({ title: this.pageData.floorContent['displayDate' + i] })
+            }
+        },
+        // tab点击事件
+        handleTabChange(index) {
+            this.currentTab = index
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.live-container {
+    position: relative;
+}
+.cm-tabs {
+    position: absolute;
+    border-radius: 18rpx;
+    overflow: hidden;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 250rpx;
+    top: -80rpx;
+    right: 0;
+    .cm-tab-item {
+        width: 80rpx;
+        font-size: 20rpx;
+        line-height: 36rpx;
+        text-align: center;
+        background: #fff;
+        &.on {
+            color: #fff;
+            background: rgb(255, 92, 0);
+        }
+    }
+}
+</style>

+ 12 - 0
components/cm-module/pcitureTemplate/templateB.vue

@@ -13,6 +13,7 @@
 				<swiper-item class="clearfix" v-for="(list,index1) in productList" :key="index1">
 					<view class="img-box"  v-for="(product,index2) in list" :key="index2" @click="navigaitionTo(product)">
 						<image :src="product.appletsImage" ></image>
+                        <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -121,6 +122,7 @@ export default {
 			overflow: hidden;
 			transform: translateY(0);
 			.img-box {
+                position: relative;
 				width: 224rpx;
 				height: 156rpx;
 				float: left;
@@ -139,6 +141,16 @@ export default {
 				&:nth-child(3) {
 					margin-top: 0;
 				}
+                .cm-cover{
+                    z-index: 99;
+                    top: 0;
+                    left: 0;
+                    position: absolute;
+                    width: 100%;
+                    height: 100%;
+                    background:url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+                    background-size: 40rpx 40rpx;
+                }
 			}
 		}
 	}

+ 15 - 3
components/cm-module/pcitureTemplate/templateC.vue

@@ -1,7 +1,8 @@
 <template>
 	<scroll-view scroll-x="true" class="picture">
-		<view class="section" v-for="(item , index) in productList" @click="navigaitionTo(item)">
+		<view class="section" v-for="(item , index) in productList" @click="navigaitionTo(item)" :key="index">
 			<image :src="item.appletsImage" ></image>
+            <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
 		</view>
 	</scroll-view>
 </template>
@@ -23,11 +24,11 @@ export default{
 		}
 	},
 	created() {
-		this.initData(this.pageData);
+		this.initData(this.pageData)
 	},
 	methods:{
 		initData(data){
-			this.productList = data.floorImageList;
+			this.productList = data.floorImageList
 		},
 		navigaitionTo(item){
 			if (item.adsImage === '' && item.linkType === -1) {
@@ -50,6 +51,7 @@ export default{
 	margin-left: -24rpx;
 	white-space: nowrap;
 	.section{
+        position: relative;
 		display: inline-block;
 		margin-right: 24rpx;
 		width: 310rpx;
@@ -63,6 +65,16 @@ export default{
 		&:first-child{
 			margin-left: 24rpx;
 		}
+        .cm-cover{
+            z-index: 99;
+            top: 0;
+            left: 0;
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            background:url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+            background-size: 40rpx 40rpx;
+        }
 	}
 }
 </style>

+ 15 - 3
components/cm-module/pcitureTemplate/templateD.vue

@@ -2,6 +2,7 @@
 	<view class="picture">
 		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
 			<image :src="item.appletsImage" ></image>
+            <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
 		</view>
 	</view>
 </template>
@@ -27,7 +28,7 @@ export default{
 		}
 	},
 	created() {
-		this.initData(this.pageData);
+		this.initData(this.pageData)
 	},
 	watch: {
 		pageData: {
@@ -42,9 +43,9 @@ export default{
 	methods:{
 		initData(data){
 			if(this.flag){
-				this.productList = data.floorImageList;
+				this.productList = data.floorImageList
 			}else{
-				this.productList = data.floorImageList.slice(0,2);
+				this.productList = data.floorImageList.slice(0,2)
 			}
 			
 		},
@@ -67,6 +68,7 @@ export default{
 .picture{
 	width: 100%;
 	.section{
+        position: relative;
 		margin-bottom: 24rpx;
 		width: 702rpx;
 		height: 360rpx;
@@ -79,6 +81,16 @@ export default{
 		&:first-child{
 			margin-top: 0;
 		}
+        .cm-cover{
+            z-index: 99;
+            top: 0;
+            left: 0;
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            background: url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+            background-size: 40rpx 40rpx;
+        }
 	}
 }
 </style>

+ 12 - 0
components/cm-module/pcitureTemplate/templateE.vue

@@ -13,6 +13,7 @@
 				<swiper-item class="clearfix"  v-for="(list,index1) in productList" :key="index1">
 					<view class="img-box"  v-for="(product,index2) in list" :key="index2" @click="navigaitionTo(product)">
 						<image :src="product.appletsImage" ></image>
+                        <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -117,6 +118,7 @@ export default {
 			overflow: hidden;
 			transform: translateY(0);
 			.img-box {
+                position: relative;
 				width: 339rpx;
 				height: 210rpx;
 				float: left;
@@ -134,6 +136,16 @@ export default {
 				&:nth-child(2) {
 					margin-top: 0;
 				}
+                .cm-cover{
+                    z-index: 99;
+                    top: 0;
+                    left: 0;
+                    position: absolute;
+                    width: 100%;
+                    height: 100%;
+                    background: url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+                    background-size: 40rpx 40rpx;
+                }
 			}
 		}
 	}

+ 16 - 4
components/cm-module/pcitureTemplate/templateF.vue

@@ -2,6 +2,7 @@
 	<view class="picture">
 		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
 			<image :src="item.appletsImage" ></image>
+            <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
 		</view>
 	</view>
 </template>
@@ -27,7 +28,7 @@ export default{
 		}
 	},
 	created() {
-		this.initData(this.pageData);
+		this.initData(this.pageData)
 	},
 	watch: {
 		pageData: {
@@ -42,13 +43,13 @@ export default{
 	methods:{
 		initData(data){
 			if(this.flag){
-				this.productList = data.floorImageList;
+				this.productList = data.floorImageList
 			}else{
-				this.productList = data.floorImageList.slice(0,1);
+				this.productList = data.floorImageList.slice(0,1)
 			}
 		},
 		navigaitionTo(item){
-			console.log(item.linkType);
+			console.log(item.linkType)
 			if (item.adsImage === '' && item.linkType === -1) {
 				return
 			}else if(item.linkType === -1){
@@ -66,6 +67,7 @@ export default{
 <style lang="scss">
 .picture{
 	.section{
+        position: relative;
 		width: 702rpx;
 		height: 340rpx;
 		overflow: hidden;
@@ -78,6 +80,16 @@ export default{
 			width: 702rpx;
 			height: 340rpx;
 		}
+        .cm-cover{
+            z-index: 99;
+            top: 0;
+            left: 0;
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            background: url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+            background-size: 40rpx 40rpx;
+        }
 	}
 }
 </style>

+ 102 - 0
components/cm-module/pcitureTemplate/templateG.vue

@@ -0,0 +1,102 @@
+<template>
+	<view class="picture">
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.appletsImage" ></image>
+            <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
+		</view>
+	</view>
+</template>
+
+<script>
+import caimeiApi from '@/common/config/caimeiApi.js'
+export default{
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		},
+		flag:{
+			type:Boolean,
+			default:false
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
+			},
+			deep: true
+		}
+	},
+	methods:{
+		initData(data){
+			if(this.flag){
+				this.productList = data.floorImageList
+			}else{
+				this.productList = data.floorImageList.slice(0,4)
+			}
+			
+		},
+		navigaitionTo(item){
+			if (item.adsImage === '' && item.linkType === -1) {
+				return
+			}else if(item.linkType === -1){
+				uni.navigateTo({
+					url:`/pages/h5/activity/activity-detail?adsImage=${item.adsImage}&title=${item.name}`
+				})
+			}else{
+				caimeiApi.FlooryNavigateTo(item)
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.picture{
+	width: 100%;
+	.section{
+        float: left;
+        position: relative;
+		margin-bottom: 24rpx;
+        margin-right: 24rpx;
+		width: 339rpx;
+		height: 230rpx;
+		overflow: hidden;
+		border-radius: 16rpx;
+		image{
+			width: 339rpx;
+			height: 230rpx;
+		}
+		&:nth-child(1),
+        &:nth-child(2){
+			margin-top: 0;
+		}
+        &:nth-child(2n){
+            margin-right: 0;
+        }
+        .cm-cover{
+            z-index: 99;
+            top: 0;
+            left: 0;
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            background:url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+            background-size: 40rpx 40rpx;
+        }
+	}
+}
+</style>

+ 103 - 0
components/cm-module/pcitureTemplate/templateH.vue

@@ -0,0 +1,103 @@
+<template>
+	<view class="picture">
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.appletsImage" ></image>
+            <view class="cm-cover" v-if="pageData.floorContent.templateClassify === 4"></view>
+		</view>
+	</view>
+</template>
+
+<script>
+import caimeiApi from '@/common/config/caimeiApi.js'
+export default{
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		},
+		flag:{
+			type:Boolean,
+			default:false
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
+			},
+			deep: true
+		}
+	},
+	methods:{
+		initData(data){
+			if(this.flag){
+				this.productList = data.floorImageList
+			}else{
+				this.productList = data.floorImageList.slice(0,6)
+			}
+			
+		},
+		navigaitionTo(item){
+			if (item.adsImage === '' && item.linkType === -1) {
+				return
+			}else if(item.linkType === -1){
+				uni.navigateTo({
+					url:`/pages/h5/activity/activity-detail?adsImage=${item.adsImage}&title=${item.name}`
+				})
+			}else{
+				caimeiApi.FlooryNavigateTo(item)
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.picture{
+	width: 100%;
+	.section{
+        float: left;
+        position: relative;
+		margin-bottom: 14rpx;
+        margin-right: 14rpx;
+		width: 224rpx;
+		height: 157rpx;
+		overflow: hidden;
+		border-radius: 16rpx;
+		image{
+			width: 224rpx;
+			height: 257rpx;
+		}
+		&:nth-child(1),
+        &:nth-child(2),
+        &:nth-child(3){
+			margin-top: 0;
+		}
+        &:nth-child(3n){
+            margin-right: 0;
+        }
+        .cm-cover{
+            z-index: 99;
+            top: 0;
+            left: 0;
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            background: url(https://static.caimei365.com/app/img/icon2/cm_player.png) no-repeat center;
+            background-size: 40rpx 40rpx;
+        }
+	}
+}
+</style>

+ 17 - 0
pages/goods/product.vue

@@ -49,6 +49,7 @@
 								<swiper class="banner tui-banner tui-skeleton-rect"  @change="swiperChange" :duration='800' :autoplay="false" :circular="true" >
 									<swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item"> 
 										<image :src="item" @click="previewImg(index)" class="product-img" />
+										<view class="cm-product-cover" v-if="product.appletsActType === 1">云上美博会</view>
 									</swiper-item>
 								</swiper>
 								<view class="swiper__dots-box">
@@ -1058,6 +1059,22 @@
 			width: 100%;
 			height: 100%;
 		}
+		.banner-item{
+			position: relative;
+		   .cm-product-cover{
+			   position: absolute;
+			   right: 30rpx;
+			   top: 30rpx;
+			   width: 147rpx;
+			   height: 57rpx;
+			   line-height: 57rpx;
+			   font-size: 24rpx;
+			   color: #fff;
+			   text-align: center;
+			   background: url(https://static.caimei365.com/app/img/icon2/cm_cover_bg_app.png) no-repeat center;
+			   background-size: 147rpx;
+		   } 
+		}
 	}
 	.swiper__dots-box{
 		position: absolute;

+ 18 - 8
pages/h5/activity/activity-floorMore.vue

@@ -56,12 +56,22 @@
 			<template v-if="pageData && pageData.floorContent.templateType == '19' || pageData.floorContent.templateType == '20' ">
 				<productE :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productE>
 			</template>
+            <!-- 视频 -->
+            <template v-if="pageData && pageData.floorContent.templateType == '26'">
+            	<pictureD :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></pictureD>
+            </template>
+            <template v-if="pageData && pageData.floorContent.templateType == '28'">
+            	<pictureD :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></pictureD>
+            </template>
+            <template v-if="pageData && pageData.floorContent.templateType == '29'">
+            	<pictureD :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></pictureD>
+            </template>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
+	import { mapState,mapMutations} from 'vuex'
 	//引入产品模板
 	import productA from '@/components/cm-module/pageFloorTemplate/templateA.vue'
 	import productB from '@/components/cm-module/pageFloorTemplate/templateB.vue'
@@ -115,15 +125,15 @@
 		onLoad(option) {
 			this.pageType = option.pageType
 			this.floorId = Number(option.floorId)
-			uni.setNavigationBarTitle({title:option.title});
+			uni.setNavigationBarTitle({title:option.title})
 			this.$api.getComStorage('userInfo').then((resolve) =>{
 				this.clubStatus = resolve.clubStatus
-				this.userID = resolve.userId ? resolve.userId : 0;
-				this.shopId = resolve.shopId ? resolve.shopId : 0;
+				this.userID = resolve.userId ? resolve.userId : 0
+				this.shopId = resolve.shopId ? resolve.shopId : 0
 				this.userIdentity = resolve.userIdentity
-				this.GetHomeFloorContentDetails(this.pageType);
+				this.GetHomeFloorContentDetails(this.pageType)
 			}).catch(error =>{
-				this.GetHomeFloorContentDetails(this.pageType);
+				this.GetHomeFloorContentDetails(this.pageType)
 			})
 		},
 		computed: {
@@ -153,7 +163,7 @@
 						this.skeletonShow = false
 						this.isRequest = true
 						this.checkShowSearch(this.pageData.floorContent.templateType)
-						console.log(this.pageData);
+						console.log(this.pageData)
 					}).catch(error =>{
 						this.$util.msg(error.msg,2000)
 					})
@@ -162,7 +172,7 @@
 		},
 		onPullDownRefresh() {
 			setTimeout(() => {
-				this.GetHomeFloorContentDetails(this.pageType);
+				this.GetHomeFloorContentDetails(this.pageType)
 				uni.stopPullDownRefresh()
 			}, 200)
 		},

+ 23 - 20
pages/h5/activity/activity-topic.vue

@@ -8,23 +8,27 @@
 			<page-floor :list="pageList" :userIdentity="userIdentity" :pageType="2" v-if="isRequest"></page-floor>
 		</view>
 		<!-- 侧边 -->
-		<scroll-top :isScrollTop="isScrollTop" :bottom="50"></scroll-top>
+		<scroll-top :isScrollTop="isScrollTop" :bottom="50" ></scroll-top>
+        <!-- 右侧联系 活动入口 -->
+        <activity-contact :pageInfo="pageInfo" v-if="isRequest"></activity-contact>
 	</view>
 </template>
 
 <script>
-	import { mapState,mapMutations} from 'vuex';
+	import { mapState,mapMutations} from 'vuex' 
 	import customFloor from '@/components/cm-custom/custom-floor' 		 //自定义导航
 	import templateNav from '@/components/cm-module/pageTemplate/templateNav.vue'
 	import pageFloor from '@/components/cm-module/activity/pageFloor.vue'
 	import authorize from '@/common/config/authorize.js'
-	import wxLogin from "@/common/config/wxLogin.js"
+	import wxLogin from '@/common/config/wxLogin.js'
+    import  ActivityContact from '@/components/cm-module/activityContact/index.vue'
 	
-	export default{
+	export default{ 
 		components:{
 			customFloor,
 			templateNav,
-			pageFloor
+			pageFloor,
+            ActivityContact
 		},
 		data(){
 			return{
@@ -42,7 +46,8 @@
 				pageId:'',
 				typeSort:'',
 				headImage:'',
-				pageInfo:{}
+				pageInfo:{},
+                activityEntryVisiable:false
 			}
 		},
 		onLoad(option) {
@@ -57,12 +62,12 @@
 			}
 			this.pageId = option.linkId
 			this.$api.getComStorage('userInfo').then((resolve) =>{
-				this.userID = resolve.userId ? resolve.userId : 0;
-				this.shopId = resolve.shopId ? resolve.shopId : 0;
+				this.userID = resolve.userId ? resolve.userId : 0
+				this.shopId = resolve.shopId ? resolve.shopId : 0
 				this.userIdentity = resolve.userIdentity
-				this.GetInstrumentPageData();
+				this.GetInstrumentPageData()
 			}).catch(error =>{
-				this.GetInstrumentPageData();
+				this.GetInstrumentPageData()
 			})
 			setTimeout(()=>{
 				this.skeletonShow = false
@@ -72,17 +77,17 @@
 			...mapState(['hasLogin','userInfo','identity'])
 		},
 		methods:{
+            
 			GetInstrumentPageData(){//获取楼层数据
 				this.CommonService.GetActivityFloorData({pageId:this.pageId,userId:this.userID,source:2}).then(response =>{
 					let data = response.data
-					console.log(data);
-					uni.setNavigationBarTitle({title:data.page.title});
+					console.log(data)
+					uni.setNavigationBarTitle({title:data.page.title})
 					this.typeSort = data.page.typeSort
 					this.pageList = data.floorList
 					this.headImage = data.page.crmHeadImage
 					this.pageInfo = data.page
 					this.isRequest =true
-					
 					// this.GetHomeInit()
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000)
@@ -98,11 +103,11 @@
 			},
 			setHeaderBtnPosi(){
 				// 获得胶囊按钮位置信息
-				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
 				return headerBtnPosi
 			},
 			setSysteminfo(){
-				let systeminfo;
+				let systeminfo
 				uni.getSystemInfo({ // 获取设备信息
 					success: (res) => {
 						systeminfo = res
@@ -111,7 +116,7 @@
 				return systeminfo
 			},
 			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				console.log(linkType,linkId,linkHref,keyword);
+				console.log(linkType,linkId,linkHref,keyword)
 				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
 			}
 		},
@@ -136,13 +141,11 @@
 			  path: `pages/goods/good-floor?type=share&linkId=${this.pageId}`
 			}
 		},
-		onShow() {
-			
-		}
+		
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 	page{
 		background-color: #FFFFFF;
 	}