Browse Source

美博会页面完成

yuwenjun 4 years ago
parent
commit
0171c4a741

+ 218 - 0
components/cm-module/activity/pageFloor.vue

@@ -0,0 +1,218 @@
+<template>
+	<view>
+		<view class="page-content clearfix" v-for="(page, index) in pageFloorList" :key="index">
+			<view class="tui-group-name" v-if="page.floorContent">
+				<view class="tui-group-title">
+					<view class="tui-group-l">{{ page.title }}</view>
+					<view
+						class="tui-group-r"
+						v-if="isSwiperTemp.indexOf(page.floorContent.templateType) === -1"
+						@click="NavToDetailPage(page)"
+					>
+						<text>更多</text> <text class="iconfont icon-xiayibu"></text>
+					</view>
+				</view>
+				<view class="tui-sub__desc">{{ page.detail }}</view>
+			</view>
+			<!-- 图文模板 -->
+			<template v-if="page.floorContent.templateType == '3'">
+				<articleA :pageData="page" :userIdentity="userIdentity"></articleA>
+			</template>
+			<template v-if="page.floorContent.templateType == '4'">
+				<articleB :pageData="page" :userIdentity="userIdentity"></articleB>
+			</template>
+			<template v-if="page.floorContent.templateType == '5'">
+				<articleC :pageData="page" :userIdentity="userIdentity"></articleC>
+			</template>
+			<template v-if="page.floorContent.templateType == '6'">
+				<articleD :pageData="page" :userIdentity="userIdentity"></articleD>
+			</template>
+			<!-- 图片模板 -->
+			<template v-if="page.floorContent.templateType == '1'">
+				<pictureA :pageData="page" :userIdentity="userIdentity"></pictureA>
+			</template>
+			<template v-if="page.floorContent.templateType == '2'">
+				<pictureB :pageData="page" :userIdentity="userIdentity"></pictureB>
+			</template>
+			<template v-if="page.floorContent.templateType == '7'">
+				<pictureC :pageData="page" :userIdentity="userIdentity"></pictureC>
+			</template>
+			<template v-if="page.floorContent.templateType == '8'">
+				<pictureD :pageData="page" :userIdentity="userIdentity"></pictureD>
+			</template>
+			<template v-if="page.floorContent.templateType == '9'">
+				<pictureE :pageData="page" :userIdentity="userIdentity"></pictureE>
+			</template>
+			<template v-if="page.floorContent.templateType == '10'">
+				<pictureF :pageData="page" :userIdentity="userIdentity"></pictureF>
+			</template>
+			<!-- 产品模板 -->
+			<template v-if="page.floorContent.templateType == '11'">
+				<productI :pageData="page" :userIdentity="userIdentity"></productI>
+			</template>
+			<template v-if="page.floorContent.templateType == '12'">
+				<productJ :pageData="page" :userIdentity="userIdentity"></productJ>
+			</template>
+			<template v-if="page.floorContent.templateType == '13'">
+				<productK :pageData="page" :userIdentity="userIdentity"></productK>
+			</template>
+			<template v-if="page.floorContent.templateType == '14'">
+				<productG :pageData="page" :userIdentity="userIdentity"></productG>
+			</template>
+			<template v-if="page.floorContent.templateType == '15'">
+				<productD :pageData="page" :userIdentity="userIdentity"></productD>
+			</template>
+			<template v-if="page.floorContent.templateType == '16'">
+				<productC :pageData="page" :userIdentity="userIdentity"></productC>
+			</template>
+			<template v-if="page.floorContent.templateType == '17'">
+				<productB :pageData="page" :userIdentity="userIdentity"></productB>
+			</template>
+			<template v-if="page.floorContent.templateType == '18'">
+				<productA :pageData="page" :userIdentity="userIdentity"></productA>
+			</template>
+			<template v-if="page.floorContent.templateType == '19'">
+				<productE :pageData="page" :userIdentity="userIdentity"></productE>
+			</template>
+			<template v-if="page.floorContent.templateType == '20'">
+				<productF :pageData="page" :userIdentity="userIdentity"></productF>
+			</template>
+			<template v-if="page.floorContent.templateType == '21'">
+				<productH :pageData="page" :userIdentity="userIdentity"></productH>
+			</template>
+		</view>
+	</view>
+</template>
+
+<script>
+//引入产品模板	
+import productA from '@/components/cm-module/pageTemplate/templateA.vue'
+import productB from '@/components/cm-module/pageTemplate/templateB.vue'
+import productC from '@/components/cm-module/pageTemplate/templateC.vue'
+import productD from '@/components/cm-module/pageTemplate/templateD.vue'
+import productE from '@/components/cm-module/pageTemplate/templateE.vue'
+import productF from '@/components/cm-module/pageTemplate/templateF.vue'
+import productG from '@/components/cm-module/pageTemplate/templateG.vue'
+import productH from '@/components/cm-module/pageTemplate/templateH.vue'
+import productI from '@/components/cm-module/pageTemplate/templateI.vue'
+import productJ from '@/components/cm-module/pageTemplate/templateJ.vue'
+import productK from '@/components/cm-module/pageTemplate/templateK.vue'
+//引入图片模板
+import pictureA from '@/components/cm-module/pcitureTemplate/templateA.vue'
+import pictureB from '@/components/cm-module/pcitureTemplate/templateB.vue'
+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 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'
+
+export default {
+	name: 'pageFloor',
+	components: {
+		productA,
+		productB,
+		productC,
+		productD,
+		productE,
+		productF,
+		productG,
+		productH,
+		productI,
+		productJ,
+		productK,
+		pictureA,
+		pictureB,
+		pictureC,
+		pictureD,
+		pictureE,
+		pictureF,
+		articleA,
+		articleB,
+		articleC,
+		articleD
+	},
+	props: {
+		list: {
+			type: Array
+		},
+		pageType: {
+			type: Number
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			pageFloorList: [],
+			isSwiperTemp:['1','2','9','21','5','7']
+		}
+	},
+	created() {
+		this.initData(this.list)
+	},
+	computed: {},
+	methods: {
+		initData(data) {
+			this.pageFloorList = data
+		},
+		NavToDetailPage(page) {
+			//跳转
+			this.$api.navigateTo(
+				`/h5/pages/activity/activity-floorMore?pageType=${this.pageType}&floorId=${page.id}&title=${
+					page.title
+				}`
+			)
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.page-content {
+	background-color: #f7f7f7;
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	float: left;
+}
+.tui-group-name {
+	width: 100%;
+	height: 92rpx;
+	padding: 20rpx 0;
+}
+.tui-group-title {
+	width: 100%;
+	float: left;
+	.tui-group-l {
+		float: left;
+		font-size: 34rpx;
+		font-weight: bold;
+		text-align: left;
+		line-height: 49rpx;
+		color: #333;
+	}
+	.tui-group-r {
+		float: right;
+		font-size: $font-size-26;
+		text-align: right;
+		line-height: 49rpx;
+		color: #999999;
+		.icon-xiayibu {
+			font-size: $font-size-30;
+			color: #999999;
+		}
+	}
+}
+.tui-sub__desc {
+	width: 100%;
+	float: left;
+	color: rgba(153, 153, 153, 0.9);
+	font-size: $font-size-26;
+}
+</style>

+ 39 - 40
components/cm-module/articleTemplate/templateA.vue

@@ -1,43 +1,10 @@
 <template>
 	<view class="container article-list">
-		<view class="section clearfix">
-			<image :src="coverUrl" mode="aspectFit" class="cover"></image>
+		<view class="section clearfix" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="aspectFit" class="cover"></image>
 			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section clearfix">
-			<image :src="coverUrl" mode="aspectFit" class="cover"></image>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section clearfix">
-			<image :src="coverUrl" mode="aspectFit" class="cover"></image>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section clearfix">
-			<image :src="coverUrl" mode="aspectFit" class="cover"></image>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
+				<view class="title">{{item.name}}</view>
+				<view class="content" v-text="item.content"></view>
 			</view>
 		</view>
 	</view>
@@ -45,9 +12,41 @@
 
 <script>
 export default {
-	data() {
-		return {
-			coverUrl:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/8df647e0-69c4-4ea5-ac2f-648218096656.jpg'
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		},
+		flag:{
+			type:Boolean,
+			default:false
+		}
+	},
+	created() {
+		this.initData(this.pageData);
+	},
+	methods:{
+		initData(data){
+			if(this.flag){
+				this.productList = data.floorImageList
+			}else{
+				this.productList = data.floorImageList.slice(0,4);
+			}
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 39 - 24
components/cm-module/articleTemplate/templateB.vue

@@ -1,27 +1,10 @@
 <template>
 	<view class="container article-list">
-		<view class="section clearfix">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section clearfix">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
+		<view class="section clearfix" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="aspectFit" class="cover"></image>
 			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
+				<view class="title">{{item.name}}</view>
+				<view class="content" v-text="item.content"></view>
 			</view>
 		</view>
 	</view>
@@ -29,9 +12,41 @@
 
 <script>
 export default {
-	data() {
-		return {
-			coverUrl:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/fe0d2892-b934-4c98-842f-6682e07890a4.jpg'
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		},
+		flag:{
+			type:Boolean,
+			default:false
+		}
+	},
+	created() {
+		this.initData(this.pageData);
+	},
+	methods:{
+		initData(data){
+			if(this.flag){
+				this.productList = data.floorImageList
+			}else{
+				this.productList = data.floorImageList.slice(0,2);
+			}
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 32 - 34
components/cm-module/articleTemplate/templateC.vue

@@ -1,39 +1,12 @@
 <template>
 	<scroll-view scroll-x="true" class="container article-list">
-		<view class="section">
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
 			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
+				<image :src="item.adsImage" mode="widthFix" class="cover-gg"></image>
 			</view>
 			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
+				<view class="title">{{item.name}}</view>
+				<view class="content" v-text="item.content"></view>
 			</view>
 		</view>
 	</scroll-view>
@@ -41,9 +14,33 @@
 
 <script>
 export default {
-	data() {
-		return {
-			coverUrl:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/fe0d2892-b934-4c98-842f-6682e07890a4.jpg'
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	created() {
+		this.initData(this.pageData);
+	},
+	methods:{
+		initData(data){
+			this.productList = data.floorImageList;
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }
@@ -64,6 +61,7 @@ export default {
 		box-sizing: border-box;
 		border-radius: 16rpx;
 		margin-right: 24rpx;
+		vertical-align: middle;
 		&:first-child{
 			margin-left: 24rpx;
 		}

+ 40 - 49
components/cm-module/articleTemplate/templateD.vue

@@ -1,51 +1,10 @@
 <template>
-	<view class="container article-list">
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
+	<view class="container article-list clearfix">
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="aspectFit" class="cover"></image>
 			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
-			</view>
-		</view>
-		<view class="section">
-			<view class="cover">
-				<image :src="coverUrl" mode="widthFix" class="cover-gg"></image>
-			</view>
-			<view class="article-text">
-				<view class="title">11月上海美博会预告</view>
-				<view class="content">
-					第46届中国(上海)国际美博会即将开幕来 自世界各地的美业人将带着最新的美容科
-					技汇聚在广州琶洲国际会展中心,届时参 展人数将突破100万,即使广如26万平...
-				</view>
+				<view class="title">{{item.name}}</view>
+				<view class="content" v-text="item.content"></view>
 			</view>
 		</view>
 	</view>
@@ -53,9 +12,41 @@
 
 <script>
 export default {
-	data() {
-		return {
-			coverUrl:'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/fe0d2892-b934-4c98-842f-6682e07890a4.jpg'
+	data(){
+		return{
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		},
+		flag:{
+			type:Boolean,
+			default:false
+		}
+	},
+	created() {
+		this.initData(this.pageData);
+	},
+	methods:{
+		initData(data){
+			if(this.flag){
+				this.productList = data.floorImageList
+			}else{
+				this.productList = data.floorImageList.slice(0,4);
+			}
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 1 - 20
components/cm-module/homeIndex/pageFloor.vue

@@ -15,7 +15,6 @@
 				<view class="tui-sub__desc">{{ page.detail }}</view>
 			</view>
 
-			<!-- 图文列表END -->
 			<template v-if="page.floorContent.templateType == '1'">
 				<templateA :pageData="page" :userIdentity="userIdentity"></templateA>
 			</template>
@@ -40,16 +39,6 @@
 			<template v-if="page.floorContent.templateType == '8'">
 				<templateH :pageData="page" :userIdentity="userIdentity"></templateH>
 			</template>
-			<!-- 新增模板 -->
-			<template v-if="page.floorContent.templateType == '9'">
-				<templateI :pageData="page" :userIdentity="userIdentity"></templateI>
-			</template>
-			<template v-if="page.floorContent.templateType == '10'">
-				<templateJ :pageData="page" :userIdentity="userIdentity"></templateJ>
-			</template>
-			<template v-if="page.floorContent.templateType == '11'">
-				<templateK :pageData="page" :userIdentity="userIdentity"></templateK>
-			</template>
 		</view>
 	</view>
 </template>
@@ -63,10 +52,6 @@ import templateE from '@/components/cm-module/pageTemplate/templateE.vue'
 import templateF from '@/components/cm-module/pageTemplate/templateF.vue'
 import templateG from '@/components/cm-module/pageTemplate/templateG.vue'
 import templateH from '@/components/cm-module/pageTemplate/templateH.vue'
-import templateI from '@/components/cm-module/pageTemplate/templateI.vue'
-import templateJ from '@/components/cm-module/pageTemplate/templateJ.vue'
-import templateK from '@/components/cm-module/pageTemplate/templateK.vue'
-import pictureE from '@/components/cm-module/pcitureTemplate/templateE.vue'
 export default {
 	name: 'pageFloor',
 	components: {
@@ -77,11 +62,7 @@ export default {
 		templateE,
 		templateF,
 		templateG,
-		templateH,
-		templateI,
-		templateJ,
-		templateK,
-		pictureE
+		templateH
 	},
 	props: {
 		list: {

+ 333 - 0
components/cm-module/pageFloorTemplate/templateG.vue

@@ -0,0 +1,333 @@
+<template>
+	<view class="section_page_main clearfix">
+		<view class="floor-item ad_04 clearfix" v-for="(item, idx) in floorData.floorImageList" :key="idx" @click.stop="navToDetailPage(item)">
+			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
+			<view class="floor-item_tag" v-if="item.listType == 2">
+				<text>{{ item.label }}</text>
+			</view>
+			<view class="floor-item-content">
+				<view class="title tui-skeleton-rect">
+					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''">{{item.name}} </text>
+				</view>
+				<view class="floor-item-price" v-if="item.listType == 1">
+					<view class="floor-item-act">
+						<template v-if="userIdentity === 3">
+							<template v-if="item.product.actStatus===1">
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
+									{{item.product.promotions.name}}
+									<text v-if="hasLogin && item.product.price1TextFlag != 1 && item.product.shopID == shopId">:¥{{item.product.retailPrice | NumFormat}}</text>
+								</view>
+								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+							</template>
+							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
+								<view class="floor-tags">阶梯价格</view>	
+							</template>
+						</template>	
+						<template v-else>
+							<template v-if="item.product.actStatus===1">
+								<view class="floor-tags" v-if="PromotionsFormat(item.product.promotions)">
+									{{item.product.promotions.name}}
+									<text v-if="hasLogin && item.product.price1TextFlag != 1">:¥{{item.product.retailPrice | NumFormat}}</text>
+								</view>
+								<view class="floor-tags" v-else>{{item.product.promotions.name}}</view>	
+							</template>
+							<template v-if="item.product.actStatus ===0  &&  item.product.ladderPriceFlag===1">
+								<view class="floor-tags">阶梯价格</view>	
+							</template>
+						</template>
+					</view>	
+					<view v-if="hasLogin">
+						<template v-if="item.product.productCategory == 1">
+							<template v-if="userIdentity == 3">
+								<template v-if="item.product.shopID == shopId">
+									<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+										<text class="p big">¥未公开价格</text>
+									</view>
+									<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+										<text class="p sm">¥</text>
+										<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.price1 : item.product.retailPrice ) | NumFormat}}</text>
+									</view>
+								</template>	
+								<template v-else>
+									<view class="no-price">
+										<view class="p-stars">
+											<text class="p-no">¥</text>
+											<uni-grader :grade="Number(item.product.price1Grade)" :margin="14"></uni-grader>
+										</view>
+									</view>	
+								</template>
+							</template>
+							<template v-else-if="userIdentity ===4">
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view class="title-none"  v-if="item.product.price1TextFlag === '2'">
+									<text class="p big">¥价格仅会员可见</text>
+								</view>
+								<view class="price tui-skeleton-rect" v-if="item.product.price1TextFlag === '0'" :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<text class="p sm">¥</text>
+									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.price1 : item.product.retailPrice ) | NumFormat}}</text>
+								</view>
+							</template>
+							<template v-else>
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view class="price tui-skeleton-rect" v-else :class="PromotionsFormat(item.product.promotions) ? 'none' : ''">
+									<text class="p sm">¥</text>
+									<text class="p big">{{ (PromotionsFormat(item.product.promotions) ? item.product.price1 : item.product.retailPrice ) | NumFormat}}</text>
+								</view>
+							</template>
+						</template>	
+						<template v-else>
+							<view class="price tui-skeleton-rect" v-if="item.product.detailTalkFlag == '2'">
+								<text class="p sm">¥</text>
+								<text class="p big">价格详聊</text>
+							</view>
+							<view class="price tui-skeleton-rect" v-else>
+								<text class="p sm">¥</text>
+								<text class="p big">{{ item.product.retailPrice | NumFormat }}</text>
+							</view>
+						</template>
+					</view>
+					<view v-else class="no-price">
+						<template v-if="item.product.productCategory == 1">
+							<view class="p-stars">
+								<text class="p-no">¥</text>
+								<uni-grader :grade="Number(item.product.price1Grade)" :margin="14"></uni-grader>
+							</view>
+						</template>
+						<template v-else>
+							<view class="p-stars">
+								<text class="p-no">¥登录可见</text>
+							</view>
+						</template>
+					</view>	
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState,mapMutations} from 'vuex';
+	import uniGrader from '@/components/uni-grade/uni-grade.vue'
+	export default{
+		name:"templateG",
+		components:{
+			uniGrader
+		},
+		props:{
+			pageData:{
+				type:Object
+			},
+			userIdentity:{
+				type:Number
+			}
+		},
+		data() {
+			return{
+				shopId:0,
+				floorData:{}
+			}
+		},
+		filters: {
+			NumFormat:function(text) {//处理金额				
+				return Number(text).toFixed(2);			
+			},		
+		},
+		created(){
+			this.initData(this.pageData)
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','isActivity'])
+		},
+		watch: {
+			pageData: {
+				handler: function (el) {//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+					this.pageData = el
+					this.initData(this.pageData)
+				},
+				deep: true
+			}
+		},
+		methods:{
+			initData(data){
+				this.$api.getStorage().then((resolve) =>{
+					this.shopId = resolve.shopId ? resolve.shopId : 0
+				})
+				this.floorData = data
+				// console.log(this.floorData)
+			},
+			PromotionsFormat(promo){//促销活动类型数据处理
+				if(promo!=null){
+					if(promo.type == 1 && promo.mode == 1){
+						return true
+					}else{
+						return false
+					}
+				}
+				return false
+			},
+			
+			navToDetailPage(pros) {//跳转商品详情页
+				this.$api.FlooryNavigateTo(pros)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.section_page_main{
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		.floor-item{
+			width: 339rpx;
+			height: 516rpx;
+			margin-right: 20rpx;
+			font-size: $font-size-24;
+			color: $text-color;
+			background: #FFFFFF;
+			line-height: 36rpx;
+			border-radius: 16rpx;
+			margin-bottom: 20rpx;
+			float: left;
+			box-sizing: border-box;
+			position: relative;
+			&:nth-child(2n){
+				margin-right: 0;
+			}
+			.item-img-gg{
+				width: 339rpx;
+				height: 516rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+			.item-img{
+				width: 339rpx;
+				height: 339rpx;
+				border-radius: 16rpx 16rpx 0 0;
+				display: block;
+				margin-bottom: 8rpx;
+			}
+			.floor-item_tag{
+				width: 100%;
+				height: 32rpx;
+				float: left;
+				margin: 20rpx 0;
+				padding: 0 20rpx;
+				box-sizing: border-box;
+				text{
+					display: inline-block;
+					padding: 0 8rpx;
+					border: 1px solid #e3ebf7;
+					border-radius: 8rpx ;
+					color: #9aa5b5;
+					font-size: $font-size-22;
+					line-height: 32rpx;
+					text-align: center;
+					float: left;
+				}
+			}
+			.floor-item-content{
+				width: 100%;
+				padding: 0 20rpx;
+				box-sizing: border-box;
+			}
+			.floor-item-act{
+				display: block;
+				width: 100%;
+				height: 32rpx;
+				text-align: center;
+				box-sizing: border-box;
+			}
+			.floor-tags{
+				height: 28rpx;
+				border-radius: 6rpx;
+				background-color: #FFFFFF;
+				line-height: 28rpx;
+				color: $color-system;
+				text-align: center;
+				display: inline-block;
+				padding:0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #E15616;
+				float: left;
+			}
+			.title-none{
+				font-size: $font-size-26;
+				color: #FF2A2A;
+				line-height: 54rpx;
+			}
+			.title{
+				width: 100%;
+				height: 70rpx;
+				display: flex;
+				line-height: 35rpx;
+				flex-direction: column;
+				margin: 8rpx 0;
+				padding: 0;
+				position: relative;
+				.mclap{
+					width: 100%;
+					line-height:35rpx;
+					text-overflow:ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+					font-size: 26rpx;
+					&.indent{
+						text-indent: 95rpx;
+					}
+				}
+				.mclap-tag{
+					display: block;
+					width: 84rpx;
+					height: 32rpx;
+					background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+					border-radius: 4rpx 48rpx 4px 4px;
+					line-height: 32rpx;
+					font-size: $font-size-22;
+					color: #FFFFFF;
+					text-align: center;
+					position: absolute;
+					left: 0;
+					top: 0;
+				}
+			}
+			.no-price{
+				height: 54rpx;
+				line-height: 54rpx;
+				display: flex;
+				box-sizing: border-box;
+				.p-no{
+					font-size: $font-size-30;
+					color: $text-color;
+					display: block;
+					float: left;
+				}
+				.p-stars{
+					float: left;
+				}
+			}
+			.price{
+				color: #FF2A2A;
+				line-height:54rpx;
+				&.none{
+					text-decoration: line-through;
+					color: #999999;
+				}
+				.sm{
+					font-size: $font-size-24;
+				}
+				.big{
+					font-size: $font-size-28;
+				}
+			}
+		}
+	}
+</style>

+ 489 - 0
components/cm-module/pageFloorTemplate/templateI.vue

@@ -0,0 +1,489 @@
+<template>
+	<view class="section_page_main clearfix">
+		<view class="floor-item ad_01">
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage1"
+				@click="
+					BannerNavigateTo(
+						floorData.floorContent.linkType1,
+						floorData.floorContent.linkParam1.id
+							? floorData.floorContent.linkParam1.id
+							: '',
+						floorData.floorContent.adsLink1,
+						floorData.floorContent.linkParam1.keyword
+							? floorData.floorContent.linkParam1.keyword
+							: ''
+					)
+				"
+				mode="aspectFill"
+			>
+			</image>
+		</view>
+		<view class="floor-item ad_02">
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
+						floorData.floorContent.linkType2,
+						floorData.floorContent.linkParam2.id
+							? floorData.floorContent.linkParam2.id
+							: '',
+						floorData.floorContent.adsLink2,
+						floorData.floorContent.linkParam2.keyword
+							? floorData.floorContent.linkParam2.keyword
+							: ''
+					)
+				"
+				mode="aspectFill"
+			>
+			</image>
+		</view>
+		<view class="floor-item ad_03">
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage3"
+				@click="
+					BannerNavigateTo(
+						floorData.floorContent.linkType3,
+						floorData.floorContent.linkParam3.id
+							? floorData.floorContent.linkParam3.id
+							: '',
+						floorData.floorContent.adsLink3,
+						floorData.floorContent.linkParam3.keyword
+							? floorData.floorContent.linkParam3.keyword
+							: ''
+					)
+				"
+				mode="aspectFill"
+			>
+			</image>
+		</view>
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
+			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
+			<view class="floor-item_tag" v-if="item.listType == 2">
+				<text>{{ item.label }}</text>
+			</view>
+			<view class="floor-item-content">
+				<view class="title tui-skeleton-rect">
+					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
+				</view>
+				<view class="floor-item-price" v-if="item.listType == 1">
+					<view class="floor-item-act">
+						<template v-if="userIdentity === 3">
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="
+											hasLogin &&
+												item.product.price1TextFlag != 1 &&
+												item.product.shopID == shopId
+										"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+						<template v-else>
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.price1TextFlag != 1"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+					</view>
+					<view v-if="hasLogin">
+						<template v-if="item.product.productCategory == 1">
+							<template v-if="userIdentity == 3">
+								<template v-if="item.product.shopID == shopId">
+									<view
+										class="title-none"
+										v-if="item.product.price1TextFlag === '1'"
+									>
+										<text class="p big">¥未公开价格</text>
+									</view>
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="
+											PromotionsFormat(item.product.promotions) ? 'none' : ''
+										"
+									>
+										<text class="p sm">¥</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.price1
+												: item.product.retailPrice) | NumFormat
+										}}</text>
+									</view>
+								</template>
+								<template v-else>
+									<view class="no-price">
+										<view class="p-stars">
+											<text class="p-no">¥</text>
+											<uni-grader
+												:grade="Number(item.product.price1Grade)"
+												:margin="14"
+											></uni-grader>
+										</view>
+									</view>
+								</template>
+							</template>
+							<template v-else-if="userIdentity === 4">
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view class="title-none" v-if="item.product.price1TextFlag === '2'">
+									<text class="p big">¥价格仅会员可见</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.price1TextFlag === '0'"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+							<template v-else>
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+						</template>
+						<template v-else>
+							<view
+								class="price tui-skeleton-rect"
+								v-if="item.product.detailTalkFlag == '2'"
+							>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
+							</view>
+							<view class="price tui-skeleton-rect" v-else>
+								<text class="p sm">¥</text>
+								<text class="p big">{{
+									item.product.retailPrice | NumFormat
+								}}</text>
+							</view>
+						</template>
+					</view>
+					<view v-else class="no-price">
+						<template v-if="item.product.productCategory == 1">
+							<view class="p-stars">
+								<text class="p-no">¥</text>
+								<uni-grader
+									:grade="Number(item.product.price1Grade)"
+									:margin="14"
+								></uni-grader>
+							</view>
+						</template>
+						<template v-else>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
+						</template>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateD',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
+			},
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.$api.getStorage().then(resolve => {
+				this.shopId = resolve.shopId ? resolve.shopId : 0
+			})
+			this.floorData = data
+			// console.log(this.floorData)
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
+		box-sizing: border-box;
+		position: relative;
+		&.ad_01 {
+			width: 100%;
+			height: 240rpx;
+			margin-right: 0;
+			.item-img-gg {
+				width: 100%;
+				height: 240rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+		}
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+
+		&.ad_02,&.ad_03{
+			width: 339rpx;
+			height: 260rpx;
+			.item-img-gg {
+				width: 339rpx;
+				height: 260rpx;
+				display: block;
+				border-radius: 16rpx;
+			}
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
+			}
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+		}
+		.floor-tags {
+			height: 28rpx;
+			border-radius: 6rpx;
+			background-color: #ffffff;
+			line-height: 28rpx;
+			color: $color-system;
+			text-align: center;
+			display: inline-block;
+			padding: 0 16rpx;
+			font-size: $font-size-20;
+			border: 1px solid #e15616;
+			float: left;
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
+				width: 100%;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
+			}
+			.mclap-tag {
+				display: block;
+				width: 84rpx;
+				height: 32rpx;
+				background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+				border-radius: 4rpx 48rpx 4px 4px;
+				line-height: 32rpx;
+				font-size: $font-size-22;
+				color: #ffffff;
+				text-align: center;
+				position: absolute;
+				left: 0;
+				top: 0;
+			}
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
+			}
+			.p-stars {
+				float: left;
+			}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
+			}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
+			}
+		}
+	}
+}
+</style>

+ 505 - 0
components/cm-module/pageFloorTemplate/templateJ.vue

@@ -0,0 +1,505 @@
+<template>
+	<view class="section_page_main clearfix">
+		<view class="floor-item-ad clearfix">
+			<view class="floor-item-left">
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage1"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType1,
+							floorData.floorContent.linkParam1.id
+								? floorData.floorContent.linkParam1.id
+								: '',
+							floorData.floorContent.adsLink1,
+							floorData.floorContent.linkParam1.keyword
+								? floorData.floorContent.linkParam1.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+			</view>
+			<view class="floor_item_right">
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage2"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType2,
+							floorData.floorContent.linkParam2.id
+								? floorData.floorContent.linkParam2.id
+								: '',
+							floorData.floorContent.adsLink2,
+							floorData.floorContent.linkParam2.keyword
+								? floorData.floorContent.linkParam2.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage3"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType3,
+							floorData.floorContent.linkParam3.id
+								? floorData.floorContent.linkParam3.id
+								: '',
+							floorData.floorContent.adsLink3,
+							floorData.floorContent.linkParam3.keyword
+								? floorData.floorContent.linkParam3.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+			</view>
+		</view>
+
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
+			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
+			<view class="floor-item_tag" v-if="item.listType == 2">
+				<text>{{ item.label }}</text>
+			</view>
+			<view class="floor-item-content">
+				<view class="title tui-skeleton-rect">
+					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
+				</view>
+				<view class="floor-item-price" v-if="item.listType == 1">
+					<view class="floor-item-act">
+						<template v-if="userIdentity === 3">
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="
+											hasLogin &&
+												item.product.price1TextFlag != 1 &&
+												item.product.shopID == shopId
+										"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+						<template v-else>
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.price1TextFlag != 1"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+					</view>
+					<view v-if="hasLogin">
+						<template v-if="item.product.productCategory == 1">
+							<template v-if="userIdentity == 3">
+								<template v-if="item.product.shopID == shopId">
+									<view
+										class="title-none"
+										v-if="item.product.price1TextFlag === '1'"
+									>
+										<text class="p big">¥未公开价格</text>
+									</view>
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="
+											PromotionsFormat(item.product.promotions) ? 'none' : ''
+										"
+									>
+										<text class="p sm">¥</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.price1
+												: item.product.retailPrice) | NumFormat
+										}}</text>
+									</view>
+								</template>
+								<template v-else>
+									<view class="no-price">
+										<view class="p-stars">
+											<text class="p-no">¥</text>
+											<uni-grader
+												:grade="Number(item.product.price1Grade)"
+												:margin="14"
+											></uni-grader>
+										</view>
+									</view>
+								</template>
+							</template>
+							<template v-else-if="userIdentity === 4">
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view class="title-none" v-if="item.product.price1TextFlag === '2'">
+									<text class="p big">¥价格仅会员可见</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.price1TextFlag === '0'"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+							<template v-else>
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+						</template>
+						<template v-else>
+							<view
+								class="price tui-skeleton-rect"
+								v-if="item.product.detailTalkFlag == '2'"
+							>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
+							</view>
+							<view class="price tui-skeleton-rect" v-else>
+								<text class="p sm">¥</text>
+								<text class="p big">{{
+									item.product.retailPrice | NumFormat
+								}}</text>
+							</view>
+						</template>
+					</view>
+					<view v-else class="no-price">
+						<template v-if="item.product.productCategory == 1">
+							<view class="p-stars">
+								<text class="p-no">¥</text>
+								<uni-grader
+									:grade="Number(item.product.price1Grade)"
+									:margin="14"
+								></uni-grader>
+							</view>
+						</template>
+						<template v-else>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
+						</template>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateD',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
+			},
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.$api.getStorage().then(resolve => {
+				this.shopId = resolve.shopId ? resolve.shopId : 0
+			})
+			this.floorData = data
+			// console.log(this.floorData)
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	
+	.floor-item-ad{
+		width: 100%;
+		margin-bottom: 24rpx;
+		.floor-item-left,.floor_item_right{
+			width: 339rpx;
+			height: 516rpx;
+		}
+		.floor-item-left{
+			margin-right: 20rpx;
+			float: left;
+			.item-img-gg{
+				width: 339rpx;
+				height: 516rpx;
+				border-radius: 16rpx;
+			}
+		}
+		.floor_item_right{
+			float: left;
+			.item-img-gg {
+				width: 100%;
+				height: 246rpx;
+				display: block;
+				border-radius: 16rpx;
+				&:nth-child(1){
+					margin-bottom:24rpx;
+				}
+			}
+		}
+	}
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
+		box-sizing: border-box;
+		position: relative;
+		
+		&:nth-child(odd) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
+			}
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+		}
+		.floor-tags {
+			height: 28rpx;
+			border-radius: 6rpx;
+			background-color: #ffffff;
+			line-height: 28rpx;
+			color: $color-system;
+			text-align: center;
+			display: inline-block;
+			padding: 0 16rpx;
+			font-size: $font-size-20;
+			border: 1px solid #e15616;
+			float: left;
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
+				width: 100%;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
+			}
+			.mclap-tag {
+				display: block;
+				width: 84rpx;
+				height: 32rpx;
+				background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+				border-radius: 4rpx 48rpx 4px 4px;
+				line-height: 32rpx;
+				font-size: $font-size-22;
+				color: #ffffff;
+				text-align: center;
+				position: absolute;
+				left: 0;
+				top: 0;
+			}
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
+			}
+			.p-stars {
+				float: left;
+			}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
+			}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
+			}
+		}
+	}
+}
+</style>

+ 558 - 0
components/cm-module/pageFloorTemplate/templateK.vue

@@ -0,0 +1,558 @@
+<template>
+	<view class="section_page_main clearfix">
+		<view class="floor-item-ad clearfix">
+			<view class="floor-item-left">
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage1"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType1,
+							floorData.floorContent.linkParam1.id
+								? floorData.floorContent.linkParam1.id
+								: '',
+							floorData.floorContent.adsLink1,
+							floorData.floorContent.linkParam1.keyword
+								? floorData.floorContent.linkParam1.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+			</view>
+			<view class="floor_item_right">
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage2"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType2,
+							floorData.floorContent.linkParam2.id
+								? floorData.floorContent.linkParam2.id
+								: '',
+							floorData.floorContent.adsLink2,
+							floorData.floorContent.linkParam2.keyword
+								? floorData.floorContent.linkParam2.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+				<image
+					class="item-img-gg"
+					:src="floorData.floorContent.appletsAdsImage3"
+					@click="
+						BannerNavigateTo(
+							floorData.floorContent.linkType3,
+							floorData.floorContent.linkParam3.id
+								? floorData.floorContent.linkParam3.id
+								: '',
+							floorData.floorContent.adsLink3,
+							floorData.floorContent.linkParam3.keyword
+								? floorData.floorContent.linkParam3.keyword
+								: ''
+						)
+					"
+					mode="aspectFill"
+				>
+				</image>
+			</view>
+		</view>
+		
+		<view class="floor-item-ad ad-row2 clearfix">
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage2"
+				@click="
+					BannerNavigateTo(
+						floorData.floorContent.linkType2,
+						floorData.floorContent.linkParam2.id
+							? floorData.floorContent.linkParam2.id
+							: '',
+						floorData.floorContent.adsLink2,
+						floorData.floorContent.linkParam2.keyword
+							? floorData.floorContent.linkParam2.keyword
+							: ''
+					)
+				"
+				mode="aspectFill"
+			>
+			</image>
+			<image
+				class="item-img-gg"
+				:src="floorData.floorContent.appletsAdsImage3"
+				@click="
+					BannerNavigateTo(
+						floorData.floorContent.linkType3,
+						floorData.floorContent.linkParam3.id
+							? floorData.floorContent.linkParam3.id
+							: '',
+						floorData.floorContent.adsLink3,
+						floorData.floorContent.linkParam3.keyword
+							? floorData.floorContent.linkParam3.keyword
+							: ''
+					)
+				"
+				mode="aspectFill"
+			>
+			</image>
+		</view>
+		
+		<view
+			class="floor-item ad_04 clearfix"
+			v-for="(item, idx) in floorData.floorImageList"
+			:key="idx"
+			@click.stop="navToDetailPage(item)"
+		>
+			<image class="item-img tui-skeleton-fillet" :src="item.image" mode="aspectFill"></image>
+			<view class="floor-item_tag" v-if="item.listType == 2">
+				<text>{{ item.label }}</text>
+			</view>
+			<view class="floor-item-content">
+				<view class="title tui-skeleton-rect">
+					<text class="mclap-tag" v-if="item.product.beautyActFlag == '1'">美博会</text>
+					<text class="mclap" :class="item.product.beautyActFlag == '1' ? 'indent' : ''"
+						>{{ item.name }}
+					</text>
+				</view>
+				<view class="floor-item-price" v-if="item.listType == 1">
+					<view class="floor-item-act">
+						<template v-if="userIdentity === 3">
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text
+										v-if="
+											hasLogin &&
+												item.product.price1TextFlag != 1 &&
+												item.product.shopID == shopId
+										"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+						<template v-else>
+							<template v-if="item.product.actStatus === 1">
+								<view
+									class="floor-tags"
+									v-if="PromotionsFormat(item.product.promotions)"
+								>
+									{{ item.product.promotions.name }}
+									<text v-if="hasLogin && item.product.price1TextFlag != 1"
+										>:¥{{ item.product.retailPrice | NumFormat }}</text
+									>
+								</view>
+								<view class="floor-tags" v-else>{{
+									item.product.promotions.name
+								}}</view>
+							</template>
+							<template
+								v-if="
+									item.product.actStatus === 0 &&
+										item.product.ladderPriceFlag === 1
+								"
+							>
+								<view class="floor-tags">阶梯价格</view>
+							</template>
+						</template>
+					</view>
+					<view v-if="hasLogin">
+						<template v-if="item.product.productCategory == 1">
+							<template v-if="userIdentity == 3">
+								<template v-if="item.product.shopID == shopId">
+									<view
+										class="title-none"
+										v-if="item.product.price1TextFlag === '1'"
+									>
+										<text class="p big">¥未公开价格</text>
+									</view>
+									<view
+										class="price tui-skeleton-rect"
+										v-else
+										:class="
+											PromotionsFormat(item.product.promotions) ? 'none' : ''
+										"
+									>
+										<text class="p sm">¥</text>
+										<text class="p big">{{
+											(PromotionsFormat(item.product.promotions)
+												? item.product.price1
+												: item.product.retailPrice) | NumFormat
+										}}</text>
+									</view>
+								</template>
+								<template v-else>
+									<view class="no-price">
+										<view class="p-stars">
+											<text class="p-no">¥</text>
+											<uni-grader
+												:grade="Number(item.product.price1Grade)"
+												:margin="14"
+											></uni-grader>
+										</view>
+									</view>
+								</template>
+							</template>
+							<template v-else-if="userIdentity === 4">
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view class="title-none" v-if="item.product.price1TextFlag === '2'">
+									<text class="p big">¥价格仅会员可见</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-if="item.product.price1TextFlag === '0'"
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+							<template v-else>
+								<view class="title-none" v-if="item.product.price1TextFlag === '1'">
+									<text class="p big">¥未公开价格</text>
+								</view>
+								<view
+									class="price tui-skeleton-rect"
+									v-else
+									:class="PromotionsFormat(item.product.promotions) ? 'none' : ''"
+								>
+									<text class="p sm">¥</text>
+									<text class="p big">{{
+										(PromotionsFormat(item.product.promotions)
+											? item.product.price1
+											: item.product.retailPrice) | NumFormat
+									}}</text>
+								</view>
+							</template>
+						</template>
+						<template v-else>
+							<view
+								class="price tui-skeleton-rect"
+								v-if="item.product.detailTalkFlag == '2'"
+							>
+								<text class="p sm">¥</text> <text class="p big">价格详聊</text>
+							</view>
+							<view class="price tui-skeleton-rect" v-else>
+								<text class="p sm">¥</text>
+								<text class="p big">{{
+									item.product.retailPrice | NumFormat
+								}}</text>
+							</view>
+						</template>
+					</view>
+					<view v-else class="no-price">
+						<template v-if="item.product.productCategory == 1">
+							<view class="p-stars">
+								<text class="p-no">¥</text>
+								<uni-grader
+									:grade="Number(item.product.price1Grade)"
+									:margin="14"
+								></uni-grader>
+							</view>
+						</template>
+						<template v-else>
+							<view class="p-stars"> <text class="p-no">¥登录可见</text> </view>
+						</template>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+import uniGrader from '@/components/uni-grade/uni-grade.vue'
+export default {
+	name: 'templateD',
+	components: {
+		uniGrader
+	},
+	props: {
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	data() {
+		return {
+			shopId: 0,
+			floorData: {}
+		}
+	},
+	filters: {
+		NumFormat: function(text) {
+			//处理金额
+			return Number(text).toFixed(2)
+		}
+	},
+	created() {
+		this.initData(this.pageData)
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo', 'isActivity'])
+	},
+	watch: {
+		pageData: {
+			handler: function(el) {
+				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
+				this.pageData = el
+				this.initData(this.pageData)
+			},
+			deep: true
+		}
+	},
+	methods: {
+		initData(data) {
+			this.$api.getStorage().then(resolve => {
+				this.shopId = resolve.shopId ? resolve.shopId : 0
+			})
+			this.floorData = data
+			// console.log(this.floorData)
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		},
+		navToDetailPage(pros) {
+			//跳转商品详情页
+			this.$api.FlooryNavigateTo(pros)
+		},
+		BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+			//跳转商品详情页
+			this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.section_page_main {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	
+	.floor-item-ad{
+		width: 100%;
+		margin-bottom: 20rpx;
+		.floor-item-left,.floor_item_right{
+			width: 339rpx;
+			height: 516rpx;
+		}
+		.floor-item-left{
+			margin-right: 20rpx;
+			float: left;
+			.item-img-gg{
+				width: 339rpx;
+				height: 516rpx;
+				border-radius: 16rpx;
+			}
+		}
+		.floor_item_right{
+			float: left;
+			.item-img-gg {
+				width: 100%;
+				height: 246rpx;
+				display: block;
+				border-radius: 16rpx;
+				&:nth-child(1){
+					margin-bottom:24rpx;
+				}
+			}
+		}
+		&.ad-row2{
+			width: 100%;
+			margin: 24rpx 0;
+			.item-img-gg {
+				width: 339rpx;
+				height: 246rpx;
+				float: left;
+				display: block;
+				border-radius: 16rpx;
+				&:nth-child(1){
+					margin-right: 20rpx;
+				}
+			}
+		}
+	}
+	.floor-item {
+		width: 339rpx;
+		height: 516rpx;
+		margin-right: 20rpx;
+		font-size: $font-size-24;
+		color: $text-color;
+		background: #ffffff;
+		line-height: 36rpx;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		float: left;
+		box-sizing: border-box;
+		position: relative;
+		
+		&:nth-child(even) {
+			margin-right: 0;
+		}
+		.item-img-gg {
+			width: 339rpx;
+			height: 516rpx;
+			display: block;
+			border-radius: 16rpx;
+		}
+		.item-img {
+			width: 339rpx;
+			height: 339rpx;
+			border-radius: 16rpx 16rpx 0 0;
+			display: block;
+			margin-bottom: 8rpx;
+		}
+		.floor-item_tag {
+			width: 100%;
+			height: 32rpx;
+			float: left;
+			margin: 20rpx 0;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			text {
+				display: inline-block;
+				padding: 0 8rpx;
+				border: 1px solid #e3ebf7;
+				border-radius: 8rpx;
+				color: #9aa5b5;
+				font-size: $font-size-22;
+				line-height: 32rpx;
+				text-align: center;
+				float: left;
+			}
+		}
+		.floor-item-content {
+			width: 100%;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+		}
+		.floor-item-act {
+			display: block;
+			width: 100%;
+			height: 32rpx;
+			text-align: center;
+			box-sizing: border-box;
+		}
+		.floor-tags {
+			height: 28rpx;
+			border-radius: 6rpx;
+			background-color: #ffffff;
+			line-height: 28rpx;
+			color: $color-system;
+			text-align: center;
+			display: inline-block;
+			padding: 0 16rpx;
+			font-size: $font-size-20;
+			border: 1px solid #e15616;
+			float: left;
+		}
+		.title-none {
+			font-size: $font-size-26;
+			color: #ff2a2a;
+			line-height: 54rpx;
+		}
+		.title {
+			width: 100%;
+			height: 70rpx;
+			display: flex;
+			line-height: 35rpx;
+			flex-direction: column;
+			margin: 8rpx 0;
+			padding: 0;
+			position: relative;
+			.mclap {
+				width: 100%;
+				line-height: 35rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				font-size: 26rpx;
+				&.indent {
+					text-indent: 95rpx;
+				}
+			}
+			.mclap-tag {
+				display: block;
+				width: 84rpx;
+				height: 32rpx;
+				background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);
+				border-radius: 4rpx 48rpx 4px 4px;
+				line-height: 32rpx;
+				font-size: $font-size-22;
+				color: #ffffff;
+				text-align: center;
+				position: absolute;
+				left: 0;
+				top: 0;
+			}
+		}
+		.no-price {
+			height: 54rpx;
+			line-height: 54rpx;
+			display: flex;
+			box-sizing: border-box;
+			.p-no {
+				font-size: $font-size-28;
+				color: $text-color;
+				display: block;
+				float: left;
+			}
+			.p-stars {
+				float: left;
+			}
+		}
+		.price {
+			color: #ff2a2a;
+			line-height: 54rpx;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
+			}
+			.sm {
+				font-size: $font-size-24;
+			}
+			.big {
+				font-size: $font-size-28;
+			}
+		}
+	}
+}
+</style>

+ 15 - 89
components/cm-module/pcitureTemplate/templateA.vue

@@ -9,56 +9,9 @@
 				:circular="true"
 				@change="swiperChange"
 			>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-				</swiper-item>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
+				<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.adsImage" mode="aspectFill"></image>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -94,23 +47,13 @@ export default {
 	},
 	data() {
 		return {
-			shopId: 0,
-			productList: [1, 2],
-			current: 100,
+			productList: [],
 			swiperCurrent: 0,
-			pageSize: 4,
-			testImgUrl:
-				'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/8df647e0-69c4-4ea5-ac2f-648218096656.jpg'
-		}
-	},
-	filters: {
-		NumFormat: function(text) {
-			//处理金额
-			return Number(text).toFixed(2)
+			pageSize: 8,
 		}
 	},
 	created() {
-		// this.initData(this.pageData)
+		this.initData(this.pageData)
 	},
 	watch: {
 		pageData: {
@@ -124,39 +67,22 @@ export default {
 	},
 	methods: {
 		initData(data) {
-			this.$api.getStorage().then(resolve => {
-				this.shopId = resolve.shopId ? resolve.shopId : 0
-			})
-			if (data.floorImageList.length > 0) {
-				this.productList.splice(0, this.productList.length)
-				for (var i = 0, j = data.floorImageList.length; i < j; i += this.pageSize) {
-					this.productList.push(data.floorImageList.slice(i, i + this.pageSize))
-				}
-			}
-		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
+			while(data.floorImageList.length > 0){
+				this.productList.push(data.floorImageList.splice(0,this.pageSize))
 			}
-			return false
-		},
-		tabClick(index) {
-			//轮播图切换
-			this.current = index
 		},
 		swiperChange(e) {
 			//轮播切换
 			const index = e.detail.current
 			this.swiperCurrent = index
 		},
-		navToDetailPage(pros) {
-			//跳转商品详情页
-			this.$api.FlooryNavigateTo(pros)
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 15 - 74
components/cm-module/pcitureTemplate/templateB.vue

@@ -9,44 +9,9 @@
 				:circular="true"
 				@change="swiperChange"
 			>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-				</swiper-item>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
+				<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.adsImage" mode="aspectFill"></image>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -82,23 +47,13 @@ export default {
 	},
 	data() {
 		return {
-			shopId: 0,
-			productList: [1, 2],
-			current: 100,
+			productList: [],
 			swiperCurrent: 0,
-			pageSize: 4,
-			testImgUrl:
-				'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/8df647e0-69c4-4ea5-ac2f-648218096656.jpg'
-		}
-	},
-	filters: {
-		NumFormat: function(text) {
-			//处理金额
-			return Number(text).toFixed(2)
+			pageSize: 6,
 		}
 	},
 	created() {
-		// this.initData(this.pageData)
+		this.initData(this.pageData)
 	},
 	watch: {
 		pageData: {
@@ -115,36 +70,22 @@ export default {
 			this.$api.getStorage().then(resolve => {
 				this.shopId = resolve.shopId ? resolve.shopId : 0
 			})
-			if (data.floorImageList.length > 0) {
-				this.productList.splice(0, this.productList.length)
-				for (var i = 0, j = data.floorImageList.length; i < j; i += this.pageSize) {
-					this.productList.push(data.floorImageList.slice(i, i + this.pageSize))
-				}
+			while(data.floorImageList.length > 0){
+				this.productList.push(data.floorImageList.splice(0,this.pageSize))
 			}
 		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
-			}
-			return false
-		},
-		tabClick(index) {
-			//轮播图切换
-			this.current = index
-		},
 		swiperChange(e) {
 			//轮播切换
 			const index = e.detail.current
 			this.swiperCurrent = index
 		},
-		navToDetailPage(pros) {
-			//跳转商品详情页
-			this.$api.FlooryNavigateTo(pros)
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 27 - 14
components/cm-module/pcitureTemplate/templateC.vue

@@ -1,16 +1,7 @@
 <template>
 	<scroll-view scroll-x="true" class="picture">
-		<view class="section">
-			<image :src="testImgUrl" mode="heightFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="heightFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="heightFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="heightFix"></image>
+		<view class="section" v-for="(item , index) in productList" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="heightFix"></image>
 		</view>
 	</scroll-view>
 </template>
@@ -19,9 +10,31 @@
 export default{
 	data(){
 		return{
-			testImgUrl:
-					'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/fe0d2892-b934-4c98-842f-6682e07890a4.jpg'
-			
+			productList:[]
+		}
+	},
+	props:{
+		pageData: {
+			type: Object
+		},
+		userIdentity: {
+			type: Number
+		}
+	},
+	created() {
+		this.initData(this.pageData);
+	},
+	methods:{
+		initData(data){
+			this.productList = data.floorImageList;
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 45 - 13
components/cm-module/pcitureTemplate/templateD.vue

@@ -1,16 +1,7 @@
 <template>
 	<view class="picture">
-		<view class="section">
-			<image :src="testImgUrl" mode="widthFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="widthFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="widthFix"></image>
-		</view>
-		<view class="section">
-			<image :src="testImgUrl" mode="widthFix"></image>
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="widthFix"></image>
 		</view>
 	</view>
 </template>
@@ -19,9 +10,50 @@
 export default{
 	data(){
 		return{
-			testImgUrl:
-					'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/fe0d2892-b934-4c98-842f-6682e07890a4.jpg'
+			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,2);
+			}
 			
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 15 - 65
components/cm-module/pcitureTemplate/templateE.vue

@@ -9,32 +9,9 @@
 				:circular="true"
 				@change="swiperChange"
 			>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-				</swiper-item>
-				<swiper-item class="clearfix">
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
-					</view>
-					<view class="img-box">
-						<image :src="testImgUrl" mode="aspectFill"></image>
+				<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.adsImage" mode="aspectFill"></image>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -70,23 +47,13 @@ export default {
 	},
 	data() {
 		return {
-			shopId: 0,
-			productList: [1, 2],
-			current: 100,
+			productList: [],
 			swiperCurrent: 0,
-			pageSize: 4,
-			testImgUrl:
-				'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-3ad36ff8-4f90-4748-8ad3-ca265841c862/8df647e0-69c4-4ea5-ac2f-648218096656.jpg'
-		}
-	},
-	filters: {
-		NumFormat: function(text) {
-			//处理金额
-			return Number(text).toFixed(2)
+			pageSize: 4
 		}
 	},
 	created() {
-		// this.initData(this.pageData)
+		this.initData(this.pageData)
 	},
 	watch: {
 		pageData: {
@@ -100,39 +67,22 @@ export default {
 	},
 	methods: {
 		initData(data) {
-			this.$api.getStorage().then(resolve => {
-				this.shopId = resolve.shopId ? resolve.shopId : 0
-			})
-			if (data.floorImageList.length > 0) {
-				this.productList.splice(0, this.productList.length)
-				for (var i = 0, j = data.floorImageList.length; i < j; i += this.pageSize) {
-					this.productList.push(data.floorImageList.slice(i, i + this.pageSize))
-				}
-			}
-		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
+			while(data.floorImageList.length > 0){
+				this.productList.push(data.floorImageList.splice(0,this.pageSize))
 			}
-			return false
-		},
-		tabClick(index) {
-			//轮播图切换
-			this.current = index
 		},
 		swiperChange(e) {
 			//轮播切换
 			const index = e.detail.current
 			this.swiperCurrent = index
 		},
-		navToDetailPage(pros) {
-			//跳转商品详情页
-			this.$api.FlooryNavigateTo(pros)
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
 		}
 	}
 }

+ 78 - 0
components/cm-module/pcitureTemplate/templateF.vue

@@ -0,0 +1,78 @@
+<template>
+	<view class="picture">
+		<view class="section" v-for="(item,index) in productList" :key="index" @click="navigaitionTo(item)">
+			<image :src="item.adsImage" mode="heightFix"></image>
+		</view>
+	</view>
+</template>
+
+<script>
+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,1);
+			}
+		},
+		navigaitionTo(item){
+			console.log(item);
+			if(item.link){
+				uni.navigateTo({
+					url:`/h5/pages/article/path?link=${item.link}`
+				})
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.picture{
+	.section{
+		width: 702rpx;
+		height: 340rpx;
+		overflow: hidden;
+		border-radius: 16rpx;
+		margin-top: 24rpx;
+		&:first-child{
+			margin-top: 0;
+		}
+		image{
+			width: 702rpx;
+			height: 340rpx;
+		}
+	}
+}
+</style>

+ 230 - 0
h5/pages/activity/activity-floorMore.vue

@@ -0,0 +1,230 @@
+<template>
+	<view class="container floor clearfix">
+		<view class='navbar-wrap' v-if="showSearch"> 
+			<view class="gosearch-btn" @click="this.$api.navigateTo(clickPath)">
+				<view class="search-icon">
+					<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+				</view>
+				<view class="search-text">{{hotSearchText}}</view>
+			</view>
+		</view>
+		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="isRequest" :loadingType="5"></tui-skeleton>
+		<!-- 楼层 -->
+		<view class="container-section tui-skeleton">
+			<!-- 图片模板 -->
+			<template v-if="pageData && pageData.floorContent.templateType == '8'">
+				<pictureD :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></pictureD>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '10'">
+				<pictureF :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></pictureF>
+			</template>
+			<!-- 文章列表 -->
+			<template v-if="pageData && pageData.floorContent.templateType == '3'">
+				<articleA :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></articleA>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '4'">
+				<articleB :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></articleB>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '6'">
+				<articleD :pageData="pageData" :userIdentity="userIdentity" :flag="true" v-if="isRequest"></articleD>
+			</template>
+			<!-- 产品列表 -->
+			<template v-if="pageData && pageData.floorContent.templateType == '11'">
+				<productI :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productI>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '12'">
+				<productJ :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productJ>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '13'">
+				<productK :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productK>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '14'">
+				<productG :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productG>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '15'">
+				<productD :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productD>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '16'">
+				<productC :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productC>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '17'">
+				<productB :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productB>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '18'">
+				<productA :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productA>
+			</template>
+			<template v-if="pageData && pageData.floorContent.templateType == '19' || pageData.floorContent.templateType == '20' ">
+				<productE :pageData="pageData" :userIdentity="userIdentity" v-if="isRequest"></productE>
+			</template>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState,mapMutations} from 'vuex';
+	//引入产品模板
+	import productA from '@/components/cm-module/pageFloorTemplate/templateA.vue'
+	import productB from '@/components/cm-module/pageFloorTemplate/templateB.vue'
+	import productC from '@/components/cm-module/pageFloorTemplate/templateC.vue'
+	import productD from '@/components/cm-module/pageFloorTemplate/templateD.vue'
+	import productE from '@/components/cm-module/pageFloorTemplate/templateE.vue'
+	import productG from '@/components/cm-module/pageFloorTemplate/templateG.vue'
+	import productI from '@/components/cm-module/pageFloorTemplate/templateI.vue'
+	import productJ from '@/components/cm-module/pageFloorTemplate/templateJ.vue'
+	import productK from '@/components/cm-module/pageFloorTemplate/templateK.vue'
+	//引入图片模板
+	import pictureD from '@/components/cm-module/pcitureTemplate/templateD.vue'
+	import pictureF from '@/components/cm-module/pcitureTemplate/templateF.vue'
+	//引入图文模板
+	import articleA from '@/components/cm-module/articleTemplate/templateA.vue'
+	import articleB from '@/components/cm-module/articleTemplate/templateB.vue'
+	import articleD from '@/components/cm-module/articleTemplate/templateD.vue'
+	export default{
+		components:{
+			productA,
+			productB,
+			productC,
+			productD,
+			productE,
+			productG,
+			productI,
+			productJ,
+			productK,
+			pictureD,
+			pictureF,
+			articleA,
+			articleB,
+			articleD
+		},
+		data(){
+			return{
+				clickPath:'/search/pages/search/search',
+				hotSearchText:'搜索商品/项目仪器',	
+				userIdentity:0,
+				skeletonShow:true,
+				isRequest:false,
+				navBarsList:[],
+				pageData:{},//楼层
+				floorId:null,
+				pageType:null,
+				userID:'',
+				noSearch:['3','4','6','8','10'],
+				showSearch:true
+			}
+		},
+		onLoad(option) {
+			this.pageType = option.pageType
+			this.floorId = Number(option.floorId)
+			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.userIdentity = resolve.userIdentity
+				this.GetHomeFloorContentDetails(this.pageType);
+			}).catch(error =>{
+				this.GetHomeFloorContentDetails(this.pageType);
+			})
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','identity'])
+		},
+		methods:{
+			checkShowSearch(templateType){
+				const result = this.noSearch.indexOf(templateType)
+				if(result !== -1){
+					this.showSearch = false
+				}else {
+					this.showSearch = true
+				}
+			},
+			GetHomeFloorContentDetails(pageType){//楼层查看更多
+				if(pageType == '1'){ //首页
+					this.CommonService.GetHomeFloorContentDetails({userId:this.userID,floorId:this.floorId,source:2}).then(response =>{
+						this.pageData = response.data
+						this.skeletonShow = false
+						this.isRequest = true
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				}else{  //二级页面楼层数据
+					this.CommonService.GePageFloorContentDetails({userId:this.userID,centreId:this.floorId,source:2}).then(response =>{
+						this.pageData = response.data
+						this.skeletonShow = false
+						this.isRequest = true
+						this.checkShowSearch(this.pageData.floorContent.templateType)
+						console.log(this.pageData);
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				}
+			}
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.GetHomeFloorContentDetails(this.pageType);
+				uni.stopPullDownRefresh()
+			}, 200)
+		},
+		onShow() {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #FFFFFF;
+	}
+	.container-home{
+		width: 100%;
+		height: auto;
+	}
+	.container-section{
+		width: 100%;
+		height: auto;
+		background-color: #F7F7F7;
+		box-sizing: border-box;
+		padding:24rpx;
+	}
+	.navbar-wrap {
+		 width: 100%;
+		 height: 116rpx;
+		 box-sizing: border-box;
+		 background: #FFFFFF;
+		 padding: 25rpx 24rpx;
+		 .gosearch-btn{
+		 	width: 100%;
+		 	height: 100%;
+		 	border-radius: 40rpx;
+		 	font-size: 28rpx;
+		 	line-height: 66rpx;
+		 	color: #8A8A8A;
+		 	background: #f7f7f7;
+		 	position: relative;
+		 	box-sizing: border-box;
+		 	padding-left: 66rpx;
+		 	.search-icon{
+		 		width: 66rpx;
+		 		height: 66rpx;
+		 		position:absolute ;
+		 		left: 0;
+		 		top: 2rpx;
+		 		text-align: center;
+		 		line-height: 66rpx;
+		 		.icon-iconfonticonfontsousuo1{
+		 			margin:0 6rpx;
+		 			font-size: $font-size-34;
+		 			color: #8A8A8A;
+		 			z-index: 10;
+		 		}
+		 	}
+		 	.search-text{
+		 		font-size: $font-size-24;
+		 		line-height: 66rpx;
+		 		color: #8A8A8A;
+		 	}
+		 }
+	}
+</style>
+                               

+ 8 - 5
h5/pages/activity/activity-topci.vue → h5/pages/activity/activity-topic.vue

@@ -1,8 +1,7 @@
 <template>
 	<view class="container floor clearfix">
 		<!-- top -->
-		<view class="container-top"><image src="http://static.caimei365.com/app/meibohui/banner.jpg" mode=""></image></view>
-		<view class="container-activ" @click="LookMyCouponDetils"><image src="http://static.caimei365.com/app/meibohui/meibo_coupon_02.png" mode=""></image></view>
+		<view class="container-top" v-if="isRequest && headImage!==''"><image :src="headImage" mode="widthFix"></image></view>
 		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
 		<!-- 楼层 -->
 		<view class="container-section tui-skeleton">
@@ -17,7 +16,7 @@
 	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/homeIndex/pageFloor.vue'
+	import pageFloor from '@/components/cm-module/activity/pageFloor.vue'
 	import authorize from '@/common/config/authorize.js'
 	import wxLogin from "@/common/config/wxLogin.js"
 	
@@ -42,6 +41,7 @@
 				isScrollTop:false,
 				pageId:'',
 				typeSort:'',
+				headImage:''
 			}
 		},
 		onLoad(option) {
@@ -72,11 +72,14 @@
 		},
 		methods:{
 			GetInstrumentPageData(){//获取楼层数据
-				this.CommonService.GetInstrumentPageData({pageId:this.pageId,userId:this.userID,source:2}).then(response =>{
+				this.CommonService.GetActivityFloorData({pageId:this.pageId,userId:this.userID,source:2}).then(response =>{
 					let data = response.data
+					console.log(data);
 					this.typeSort = data.page.typeSort
 					this.pageList = data.floorList
-					this.GetHomeInit()
+					this.headImage = data.page.crmHeadImage
+					this.isRequest =true
+					// this.GetHomeInit()
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000)
 				})

+ 8 - 1
pages.json

@@ -562,12 +562,19 @@
 					}
 				},
 				{
-					"path": "pages/activity/activity-topci",
+					"path": "pages/activity/activity-topic",
 					"style": {
 						"navigationBarTitleText": "活动专题页",
 						"enablePullDownRefresh":true
 					}
 				},
+				{
+					"path": "pages/activity/activity-floorMore",
+					"style": {
+						"navigationBarTitleText": "更多",
+						"enablePullDownRefresh":true
+					}
+				},
 				{
 					"path": "pages/activity/meobohui-booth",
 					"style": {

+ 2 - 2
services/ajax.env.js

@@ -1,11 +1,11 @@
 let URL_CONFIG = ''
 if(process.env.NODE_ENV === 'development'){
     // 开发环境
-	// URL_CONFIG = 'http://192.168.2.68:8008'	 //涛涛联调地址
+	URL_CONFIG = 'http://192.168.2.68:8008'	 //涛涛联调地址
 	// URL_CONFIG = 'http://192.168.2.67:8008'	 //裴裴联调地址
 	// URL_CONFIG = 'http://192.168.2.81:8008'
 	// URL_CONFIG = 'http://192.168.2.75:8008'	 //超超联调地址
-    URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
+    // URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{
     // 生产环境

+ 4 - 1
services/common.service.js

@@ -70,5 +70,8 @@ export default class CommonService {
 	GetProductOneClassly (data = {}) {
 		return this.AjaxService.get({ url:'/product/typeId/classify', data, isLoading: false })
 	}
-	
+	/*活动页面获取楼层*/
+	GetActivityFloorData (data = {}) {
+		return this.AjaxService.get({ url:'/home/activity/data', data, isLoading: false })
+	}
 }

+ 1 - 0
services/config.env.js

@@ -3,6 +3,7 @@ if(process.env.NODE_ENV === 'development'){
     // 开发环境
     // URL_CONFIG = 'http://192.168.2.75:18002'	 //采美测试地址
 	// URL_CONFIG = 'http://192.168.2.67:18002'	 //裴裴联调地址
+	// URL_CONFIG = 'http://192.168.2.68:8008'
 	URL_CONFIG = 'https://core-b.caimei365.com'
 }else{
     // 生产环境