فهرست منبع

快捷运营开发

xiebaomin 2 سال پیش
والد
کامیت
3dcd557eac

+ 12 - 7
components/cm-module/homeIndex/banner.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view class="banner">
 		<view class="swiper-banner-content">
 			<view class="swiper-banner-box" >
 				<swiper class="tui-banner-swiper tui-banner tui-skeleton-fillet" :autoplay="true" :interval="5000" :duration="500"  @change="swiperChange" :circular="true">
@@ -44,7 +44,8 @@
 		},
 		data() {
 			return{
-				current:0
+				current:0,
+                StatusBar: this.StatusBar,
 			}
 		},
 		created(){
@@ -66,21 +67,25 @@
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
+    .banner {
+        background-color: #f7f7f7;
+    }
 	.swiper-banner-content{
 		width: 100%;
-		height: 200rpx;
-		padding-top:100rpx;
-		background:#FF7F00;
+		height: auto;
+		margin-top: 55px;
+        background: url(https://static.caimei365.com/app/img/bg/new_home_cumres@2x.png) no-repeat;
 		position: relative;
 		background-size: cover;
-		margin-bottom: 170rpx;
+        background-position-y: -170rpx;
 	}
 	.swiper-banner-box{
 		width: 100%;
 		height: 360rpx;
 		position: relative;
 		background-size: cover;
+        display: flex;
 	}	
 	.tui-banner-swiper {
 		width: 700rpx;

+ 177 - 154
components/cm-module/homeIndex/customer.vue

@@ -1,160 +1,183 @@
 <template name="headerNavbar">
-	<!-- 自定义导航栏 -->
-	<view class='navbar-wrap' :style="{height:(CustomBar+55)+'px',paddingTop:StatusBar+'px'}"> 
-	  	<view class="navbar-text" 
-			  :style="{color:navbarData.textColor ? navbarData.textColor:'',lineHeight:(CustomBar - StatusBar)+'px;',fontSize:fontSizeSetting+'px;',paddingLeft:navbarData.textLeft ? '' : 12+'px'}" :class="platformClass">
-	    	  {{navbarData.title ? navbarData.title : " "}}
-	  	</view>
-		<view class="search-input">
-			<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>
-	</view>
+    <!-- 自定义导航栏 -->
+    <view
+        class="navbar-wrap"
+        :class="isScroll ? opacityNav : ''"
+        :style="{
+            height: CustomBar + 55 + 'px',
+            paddingTop: StatusBar + 'px',
+        }"
+    >
+        <view
+            class="navbar-text"
+            :style="{
+                color: navbarData.textColor ? navbarData.textColor : '',
+                lineHeight: CustomBar - StatusBar + 'px;',
+                fontSize: fontSizeSetting + 'px;',
+                paddingLeft: navbarData.textLeft ? '' : 12 + 'px'
+            }"
+            :class="platformClass"
+        >
+            {{ navbarData.title ? navbarData.title : ' ' }}
+        </view>
+        <view class="search-input">
+            <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>
+    </view>
 </template>
 
 <script>
-	var self;
-	import btSearch from '@/components/uni-search/bt-search.vue'
-	export default{
-		name:'headerNavbar',
-		components:{
-			btSearch,
-		},
-		props:{
-		    navbarData: { // 由父页面传递的数据
-				type: Object
-		    }
-		},
-		data() {
-			return{
-				clickPath:'/pages/search/search',
-				hotSearchText:'搜索商品/项目仪器',
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				StatusBar: this.StatusBar,
-				fontSizeSetting:this.fontSizeSetting,
-				screenWidth:this.screenWidth,
-				capsule:this.capsule,
-				platformClass:this.platformClass,
-			}
-		},
-		created() {
-			if (getCurrentPages().length === 1) { // 当只有一个页面时
-			      this.navbarData.haveBack = false;
-			} else {
-			      this.navbarData.haveBack = true;
-			}
-		},
-		onLoad(){
-			
-		},
-		methods:{
-			BackPage: function () {
-				this.$emit('navigateBack')
-		    },
-			_goSearchPath:function () {
-				this.$emit('goSearchPath')
-			},
-			_goHome:function(){
-				uni.switchTab({
-		        	url: '/pages/tabBar/home/index'
-		      	})
-			}
-		},
-		onShow(){
-	
-		}
-	}
+var self
+import btSearch from '@/components/uni-search/bt-search.vue'
+export default {
+    name: 'headerNavbar',
+    components: {
+        btSearch
+    },
+    props: {
+        navbarData: {
+            // 由父页面传递的数据
+            type: Object
+        },
+        isScroll: {
+            type: Boolean,
+            default: () => false
+        }
+    },
+    data() {
+        return {
+            clickPath: '/pages/search/search',
+            hotSearchText: '搜索商品/项目仪器',
+            CustomBar: this.CustomBar, // 顶部导航栏高度
+            StatusBar: this.StatusBar,
+            fontSizeSetting: this.fontSizeSetting,
+            screenWidth: this.screenWidth,
+            capsule: this.capsule,
+            platformClass: this.platformClass,
+            opacityNav: 'opacityNav', // 渐变颜色
+        }
+    },
+    created() {
+        if (getCurrentPages().length === 1) {
+            // 当只有一个页面时
+            this.navbarData.haveBack = false
+        } else {
+            this.navbarData.haveBack = true
+        }
+        console.log(this.isScroll)
+    },
+    onLoad() {},
+    onPageScroll(e) {
+    	console.log(e)
+    },
+    methods: {
+        BackPage: function() {
+            this.$emit('navigateBack')
+        },
+        _goSearchPath: function() {
+            this.$emit('goSearchPath')
+        },
+        _goHome: function() {
+            uni.switchTab({
+                url: '/pages/tabBar/home/index'
+            })
+        }
+    },
+    onShow() {}
+}
 </script>
 
-<style lang="scss">
-	.navbar-wrap {
-		 position: fixed;
-		 width: 100%;
-		 top: 0;
-		 z-index: 100000;
-		 box-sizing: border-box;
-		 background: url(https://static.caimei365.com/app/img/bg/home_cumres@2x.png);
-		 background-size: cover;
-		 border-bottom:none;
-	}
-	.navbar-text {
-		 font-size: 30rpx;
-		 color: #000000;
-		 font-weight: 500;
-	}
-	.navbar-text.center{
-		text-align: center;
-	}
-	.navbar-text.left{
-		text-align: left;
-		padding-left: 45px;
-	}
-	.navbar-icon {
-		 position: fixed;
-		 display: flex;
-		 box-sizing: border-box;
-	}
-	.navbar-icon .iconfont {
-		 display: inline-block;
-		 overflow: hidden;
-		 font-size: 44rpx;
-		 padding-right:40rpx;
-		 margin-top: 1px;
-	}
-	.navbar-icon .icon-iconfonticonfontsousuo1 {
-		color: #000000;
-	}
-	.navbar-icon view {
-		 height: 18px;
-		 border-left: 0.5px solid rgba(0,0,0, 0.3);
-		 margin-top: 6px;
-	}
-	.navbar-loading {
-		 background: #fff;
-		 text-align: center;
-	}
-	.search-input{
-		width: 100%;
-		height: 110rpx;
-		padding: 20rpx 24rpx;
-		box-sizing: border-box;
-		.gosearch-btn{
-			width: 100%;
-			height: 100%;
-			border-radius: 40rpx;
-			background: #F0F0F0;
-			margin: 0 auto;
-			font-size: 28rpx;
-			line-height: 70rpx;
-			color: #8A8A8A;
-			background: #FFFFFF;
-			position: relative;
-			box-sizing: border-box;
-			padding-left: 80rpx;
-			.search-icon{
-				width: 80rpx;
-				height: 70rpx;
-				position:absolute ;
-				left: 0;
-				top: 2rpx;
-				text-align: center;
-				line-height: 70rpx;
-				.icon-iconfonticonfontsousuo1{
-					margin:0 6rpx;
-					font-size: $font-size-34;
-					color: #8A8A8A;
-					z-index: 10;
-				}
-			}
-			.search-text{
-				font-size: $font-size-24;
-				line-height: 70rpx;
-				color: #8A8A8A;
-			}
-		}
-	}
-</style>
+<style lang="scss" scoped>
+.navbar-wrap {
+    position: fixed;
+    width: 100%;
+    top: 0;
+    z-index: 100000;
+    box-sizing: border-box;
+    background: url(https://static.caimei365.com/app/img/bg/new_home_cumres@2x.png) no-repeat;
+    background-position-y: -50rpx;
+    border-bottom: none;
+}
+.opacityNav {
+    background: linear-gradient(180deg, #FF5B00 0%, rgba(255,91,0, 1) 100%) !important;
+}
+.navbar-text {
+    font-size: 30rpx;
+    color: #000000;
+    font-weight: 500;
+}
+.navbar-text.center {
+    text-align: center;
+}
+.navbar-text.left {
+    text-align: left;
+    padding-left: 45px;
+}
+.navbar-icon {
+    position: fixed;
+    display: flex;
+    box-sizing: border-box;
+}
+.navbar-icon .iconfont {
+    display: inline-block;
+    overflow: hidden;
+    font-size: 44rpx;
+    padding-right: 40rpx;
+    margin-top: 1px;
+}
+.navbar-icon .icon-iconfonticonfontsousuo1 {
+    color: #000000;
+}
+.navbar-icon view {
+    height: 18px;
+    border-left: 0.5px solid rgba(0, 0, 0, 0.3);
+    margin-top: 6px;
+}
+.navbar-loading {
+    background: #fff;
+    text-align: center;
+}
+.search-input {
+    width: 100%;
+    height: 110rpx;
+    padding: 20rpx 24rpx;
+    box-sizing: border-box;
+    .gosearch-btn {
+        width: 100%;
+        height: 100%;
+        border-radius: 40rpx;
+        background: #f0f0f0;
+        margin: 0 auto;
+        font-size: 28rpx;
+        line-height: 70rpx;
+        color: #8a8a8a;
+        background: #ffffff;
+        position: relative;
+        box-sizing: border-box;
+        padding-left: 80rpx;
+        .search-icon {
+            width: 80rpx;
+            height: 70rpx;
+            position: absolute;
+            left: 0;
+            top: 2rpx;
+            text-align: center;
+            line-height: 70rpx;
+            .icon-iconfonticonfontsousuo1 {
+                margin: 0 6rpx;
+                font-size: $font-size-34;
+                color: #8a8a8a;
+                z-index: 10;
+            }
+        }
+        .search-text {
+            font-size: $font-size-24;
+            line-height: 70rpx;
+            color: #8a8a8a;
+        }
+    }
+}
+</style>

+ 12 - 5
components/cm-module/homeIndex/navbars.vue

@@ -1,5 +1,5 @@
 <template name="navbars">
-	<view>
+	<view class="navbar">
 		<view class="navbars-content clearfix">
 			<view class="nav-item" v-for="(item,index) in navList" :key="index" @click="NavToDetailPage(item,index)">
 				<view class="icon">
@@ -63,7 +63,6 @@
 					         25:'/pages/goods/goods-doc-list' ,//美业资料
 					         28:`/pages/h5/article/path?link=${pros.link}`, // 采美认证通
 					 		29:'/pages/user/coupon/coupon-collection',//领券中心
-					 		
 					 	 }
 					 	const url = typeMap[pros.linkType]
 					 	this.$api.navigateTo(url)
@@ -74,13 +73,21 @@
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
+    .navbar {
+        background: #f7f7f7;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+    }
 	.navbars-content{
-		width: 100%;
+		width: 94%;
 		height: auto;
 		box-sizing: border-box;
-		padding: 0 24rpx;
 		margin-top: 24rpx;
+        padding: 32rpx 0;
+        background-color: #fff;
+        border-radius: 16rpx;
 		.nav-item{
 			width: 164rpx;
 			height: auto;

+ 209 - 0
components/cm-module/homeIndex/quickOperation.vue

@@ -0,0 +1,209 @@
+<template>
+    <!-- 快捷运营 -->
+    <view class="quick-oprea">
+        <swiper class="swiper" :autoplay="false" @change="swiperChange" :circular="true">
+            <swiper-item v-for="(item, index) in footList" :key="index" class="swiper-item">
+                <view class="content" v-for="(i, o) in item" :key="i" @click="NavToDetailPage(i)">
+                    <view class="list">
+                        <div class="list-icon">
+                            <image :src="i.icon" style="width: 100%;height: 100%;" mode=""></image>
+                        </div>
+                        <div class="list-title">
+                            <div class="title-1">
+                                <div class="title-1-item">
+                                    <view style="display: inline-block;">{{ i.name }}</view>
+                                    <text class="title-2-item">GO></text>
+                                </div>
+                            </div>
+                            <!-- <div class="title-2">量大优惠 豪礼相送</div> -->
+                        </div>
+                    </view>
+                </view>
+            </swiper-item>
+        </swiper>
+        <view class="swiper__dots-box" v-if="footList.length > 1">
+            <view
+                v-for="(item, idx) in footList"
+                :key="idx"
+                :class="[idx === current ? 'swiper__dots-long' : 'none']"
+                :data-index="current"
+                class="swiper__dots-item"
+            ></view>
+        </view>
+    </view>
+</template>
+
+<script>
+import cmsMixins from '@/mixins/cmsMixins.js'
+import { mapState } from 'vuex'
+export default {
+    mixins: [cmsMixins],
+    props: {
+        list: {
+            type: Array,
+            default: () => []
+        }
+    },
+    data() {
+        return {
+            current: 0 // 切换轮播
+        }
+    },
+    computed: {
+        ...mapState(['hasLogin']),
+        // 快捷运营列表
+        footList() {
+            let newArr = [],
+                a = []
+            this.list.map((item, index) => {
+                if (index !== 0 && index % 4 === 0) {
+                    newArr.push(a)
+                    a = []
+                    a.push(item)
+                } else a.push(item)
+                if (this.list.length === index + 1) {
+                    newArr.push(a)
+                }
+            })
+            return newArr
+        }
+    },
+    watch: {},
+    mounted() {
+        console.log('this.footList', this.footList)
+    },
+    methods: {
+        // 链接跳转
+        NavToDetailPage(pros) {
+            if (!this.hasLogin) return this.$api.navigateTo('/pages/login/login')
+            /**
+             * 页面跳转类型
+             * 1、二级页面,2、搜索项目仪器,3、直播页面,4、自由页面,5、商品详情,6、仪器项目详情,7、供应商主页
+             * 8、专题活动页,9、二手市场介绍,10、二手商品列表,11、二手商品发布,12、商品搜索,13、信息详情
+             * 14、品牌招商介绍页,15、维修保养介绍页,16、首页,17、注册页,18、信息中心,19、供应商列表
+             * 23、新活动专题页面
+             **/
+            if (pros.linkType) {
+                const typeMap = {
+                    1: `/pages/goods/goods-instrument?linkId=${pros.linkParam.id}&title=${pros.name}`,
+                    3: '/pages/h5/article/path-live',
+                    4: '/pages/h5/other/brands',
+                    10: '/pages/second/product/product-list',
+                    14: '/pages/h5/other/brand',
+                    15: '/pages/h5/other/repair',
+                    18: `/pages/h5/article/path?link=${pros.link}`,
+                    20: `/pages/goods/good-floor?linkId=${pros.linkParam.id}&title=${pros.name}`,
+                    21: '/pages/h5/activity/meobohui',
+                    22: `/pages/goods/good-floor-temp?linkId=${pros.linkParam.id}&title=${pros.name}`,
+                    23: `/pages/h5/activity/activity-topic?linkId=${pros.linkParam.id}`, //活动专题页面
+                    25: '/pages/goods/goods-doc-list', //美业资料
+                    28: `/pages/h5/article/path?link=${pros.link}`, // 采美认证通
+                    29: '/pages/user/coupon/coupon-collection', //领券中心
+                    30: `/pages/h5/activity/quick-operation?linkId=${pros.linkParam.id}`, // 快捷运营入口
+                }
+                const url = typeMap[pros.linkType]
+                console.log(url)
+                this.$api.navigateTo(url)
+            }
+        },
+        swiperChange(e) {
+            //轮播图切换
+            this.current = e.detail.current
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.quick-oprea {
+    background-color: #f7f7f7;
+    padding: 20rpx;
+    position: relative;
+    height: 400rpx;
+    .swiper__dots-box {
+        position: absolute;
+        left: 0;
+        right: 0;
+        bottom: 32rpx;
+        display: flex;
+        flex: 1;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        .swiper__dots-item {
+            width: 14rpx;
+            height: 5rpx;
+            border-radius: 100%;
+            margin-left: 6px;
+            background-color: #e15621;
+            opacity: 0.2;
+        }
+        .swiper__dots-long {
+            width: 26rpx;
+            height: 5rpx;
+            border-radius: 4rpx;
+            background-color: #e15621;
+            transition: all 0.4s;
+            opacity: 1;
+        }
+    }
+}
+.swiper {
+    height: 340rpx;
+    .swiper-item {
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        grid-template-rows: repeat(2, 1fr);
+        grid-gap: 18rpx;
+        .content {
+            box-sizing: border-box;
+            border-radius: 16rpx;
+            background-color: #fff;
+            display: flex;
+            align-items: center;
+            background: linear-gradient(180deg, #FFF1EB 0%, #FFFFFF 100%);
+            .list {
+                width: 100%;
+                display: flex;
+                height: 80rpx;
+                .list-icon {
+                    width: 80rpx;
+                    height: 100%;
+                    border-radius: 50%;
+                    margin-left: 24rpx;
+                    overflow: hidden;
+                }
+                .list-title {
+                    margin-left: 16rpx;
+                    display: flex;
+                    flex-direction: column;
+                    justify-content: space-between;
+                    .title-1 {
+                        .title-1-item {
+                            color: #333333;
+                            font-size: 28rpx;
+                            width: 170rpx;
+                            .title-2-item {
+                                width: 62rpx;
+                                height: 32rpx;
+                                background: #ff5b00;
+                                border-radius: 14rpx;
+                                font-size: 22rpx;
+                                text-align: center;
+                                height: 32rpx;
+                                color: white;
+                                display: inline-block;
+                                margin-left: 6rpx;
+                            }
+                        }
+                    }
+                    .title-2 {
+                        color: #999999;
+                        font-size: 22rpx;
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 7 - 0
pages.json

@@ -934,6 +934,13 @@
 						"enablePullDownRefresh": true
 					}
 				},
+                {
+                	"path": "activity/quick-operation",
+                	"style": {
+                		"navigationBarTitleText": "快捷运营",
+                		"enablePullDownRefresh": true
+                	}
+                },
 				{
 					"path": "activity/activity-detail",
 					"style": {

+ 198 - 174
pages/h5/activity/activity-topic.vue

@@ -1,184 +1,208 @@
 <template>
-	<view class="container floor clearfix">
-		<!-- top -->
-		<view class="container-top" @click="BannerNavigateTo(pageInfo.linkType,pageInfo.linkParam.id,pageInfo.headLink,pageInfo.keyword)" v-if="isRequest && headImage!==''"><image :src="headImage" ></image></view>
-		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
-		<!-- 楼层 -->
-		<view class="container-section tui-skeleton">
-			<page-floor :list="pageList" :userIdentity="userIdentity" :pageType="2" v-if="isRequest"></page-floor>
-		</view>
-		<!-- 侧边 -->
-		<scroll-top :isScrollTop="isScrollTop" :bottom="50" ></scroll-top>
+    <view class="container floor clearfix">
+        <!-- top -->
+        <view
+            class="container-top"
+            @click="BannerNavigateTo(pageInfo.linkType, pageInfo.linkParam.id, pageInfo.headLink, pageInfo.keyword)"
+            v-if="isRequest && headImage !== ''"
+        >
+            <image :src="headImage"></image>
+        </view>
+        <tui-skeleton
+            v-if="skeletonShow"
+            backgroundColor="#fafafa"
+            borderRadius="10rpx"
+            :isLoading="true"
+            :loadingType="5"
+        ></tui-skeleton>
+        <!-- 楼层 -->
+        <view class="container-section tui-skeleton">
+            <page-floor :list="pageList" :userIdentity="userIdentity" :pageType="2" v-if="isRequest"></page-floor>
+        </view>
+        <!-- 侧边 -->
+        <scroll-top :isScrollTop="isScrollTop" :bottom="50"></scroll-top>
         <!-- 右侧联系 活动入口 -->
         <activity-contact :pageInfo="pageInfo" v-if="isRequest"></activity-contact>
-	</view>
+    </view>
 </template>
 
 <script>
-	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/active-floor.vue'
-    import  ActivityContact from './components/activity-contact.vue'
-	import authorize from '@/common/config/authorize.js'
-	import wxLogin from '@/common/config/wxLogin.js'
-	
-	export default{ 
-		components:{
-			customFloor,
-			templateNav,
-			pageFloor,
-            ActivityContact
-		},
-		data(){
-			return{
-				userId:0,
-				shopId:0,
-				userIdentity:0,
-				skeletonShow:true,
-				headerBtnPosi:	this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
-				systeminfo: this.setSysteminfo(),		 //获取设备信息
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				navBarsList:[],
-				pageList:[],//楼层
-				isRequest:false,
-				isScrollTop:false,
-				pageId:'',
-				typeSort:'',
-				headImage:'',
-				pageInfo:{},
-                activityEntryVisiable:false
-			}
-		},
-		onLoad(option) {
-			if(option.type =='share'){
-				authorize.checkLogin()
-				.then(res => {
-					wxLogin.wxLoginAuthorize()
-				})
-				.catch(err => {
-					console.log(new Date +'用户未授权微信信息')
-				})
-			}
-			this.pageId = option.linkId
-			this.$api.getComStorage('userInfo').then((resolve) =>{
-				this.userId = resolve.userId ? resolve.userId : 0
-				this.shopId = resolve.shopId ? resolve.shopId : 0
-				this.userIdentity = resolve.userIdentity
-				this.GetActivityFloorData()
-			}).catch(error =>{
-				this.GetActivityFloorData()
-			})
-			setTimeout(()=>{
-				this.skeletonShow = false
-			},2000)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','identity'])
-		},
-		methods:{
-            
-			GetActivityFloorData(){//获取楼层数据
-				this.CommonService.GetActivityFloorData({pageId:this.pageId,userId:this.userId,source:2}).then(response =>{
-					let data = response.data
-					this.typeSort = data.page.typeSort
-					this.pageList = data.floorList
-					this.headImage = data.page.crmHeadImage
-					this.pageInfo = data.page
-					this.isRequest =true
-					uni.setStorageSync('pageLabel',`${data.page.contentLabel}`)
-					uni.setNavigationBarTitle({title:data.page.title})
-					// this.GetHomeInit()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			GetHomeInit(){//金刚区分类
-				this.CommonService.GetFirstClassly({typeSort:this.typeSort,source:'crm'}).then(response =>{
-					this.navBarsList = response.data
-					this.isRequest =true
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			setHeaderBtnPosi(){
-				// 获得胶囊按钮位置信息
-				let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
-				return headerBtnPosi
-			},
-			setSysteminfo(){
-				let systeminfo
-				uni.getSystemInfo({ // 获取设备信息
-					success: (res) => {
-						systeminfo = res
-					},
-				})
-				return systeminfo
-			},
-			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
-				console.log(linkType,linkId,linkHref,keyword)
-				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
-			}
-		},
-		onPageScroll(e){//实时获取到滚动的值
-			if(e.scrollTop>400){
-				this.isScrollTop = true
-			}else{
-				this.isScrollTop = false
-			}	
-		},
-		onPullDownRefresh() {
-			setTimeout(() => {
-				uni.stopPullDownRefresh()
-			}, 200)
-		},
-		onShareAppMessage(res){//分享转发
-			if (res.from === 'button') {
-		      // 来自页面内转发按钮
-		    }
-			return {
-			  title: '采美-一站式生/医美采购服务平台',
-			  path: `pages/h5/activity/activity-topic?type=share&linkId=${this.pageId}`
-			}
-		},
-		
-	}
+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/active-floor.vue'
+import ActivityContact from './components/activity-contact.vue'
+import authorize from '@/common/config/authorize.js'
+import wxLogin from '@/common/config/wxLogin.js'
+
+export default {
+    components: {
+        customFloor,
+        templateNav,
+        pageFloor,
+        ActivityContact
+    },
+    data() {
+        return {
+            userId: 0,
+            shopId: 0,
+            userIdentity: 0,
+            skeletonShow: true,
+            headerBtnPosi: this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
+            systeminfo: this.setSysteminfo(), //获取设备信息
+            CustomBar: this.CustomBar, // 顶部导航栏高度
+            navBarsList: [],
+            pageList: [], //楼层
+            isRequest: false,
+            isScrollTop: false,
+            pageId: '',
+            typeSort: '',
+            headImage: '',
+            pageInfo: {},
+            activityEntryVisiable: false
+        }
+    },
+    onLoad(option) {
+        if (option.type == 'share') {
+            authorize
+                .checkLogin()
+                .then(res => {
+                    wxLogin.wxLoginAuthorize()
+                })
+                .catch(err => {
+                    console.log(new Date() + '用户未授权微信信息')
+                })
+        }
+        this.pageId = option.linkId
+        this.$api
+            .getComStorage('userInfo')
+            .then(resolve => {
+                this.userId = resolve.userId ? resolve.userId : 0
+                this.shopId = resolve.shopId ? resolve.shopId : 0
+                this.userIdentity = resolve.userIdentity
+                this.GetActivityFloorData()
+            })
+            .catch(error => {
+                this.GetActivityFloorData()
+            })
+        setTimeout(() => {
+            this.skeletonShow = false
+        }, 2000)
+    },
+    computed: {
+        ...mapState(['hasLogin', 'userInfo', 'identity'])
+    },
+    methods: {
+        GetActivityFloorData() {
+            //获取楼层数据
+            this.CommonService.GetActivityFloorData({ pageId: this.pageId, userId: this.userId, source: 2 })
+                .then(response => {
+                    let data = response.data
+                    this.typeSort = data.page.typeSort
+                    this.pageList = data.floorList
+                    this.headImage = data.page.crmHeadImage
+                    this.pageInfo = data.page
+                    this.isRequest = true
+                    uni.setStorageSync('pageLabel', `${data.page.contentLabel}`)
+                    uni.setNavigationBarTitle({ title: data.page.title })
+                    // this.GetHomeInit()
+                })
+                .catch(error => {
+                    this.$util.msg(error.msg, 2000)
+                })
+        },
+        GetHomeInit() {
+            //金刚区分类
+            this.CommonService.GetFirstClassly({ typeSort: this.typeSort, source: 'crm' })
+                .then(response => {
+                    this.navBarsList = response.data
+                    this.isRequest = true
+                })
+                .catch(error => {
+                    this.$util.msg(error.msg, 2000)
+                })
+        },
+        setHeaderBtnPosi() {
+            // 获得胶囊按钮位置信息
+            let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
+            return headerBtnPosi
+        },
+        setSysteminfo() {
+            let systeminfo
+            uni.getSystemInfo({
+                // 获取设备信息
+                success: res => {
+                    systeminfo = res
+                }
+            })
+            return systeminfo
+        },
+        BannerNavigateTo(linkType, linkId, linkHref, keyword) {
+            //跳转商品详情页
+            console.log(linkType, linkId, linkHref, keyword)
+            this.$api.BannerNavigateTo(linkType, linkId, linkHref, keyword)
+        }
+    },
+    onPageScroll(e) {
+        //实时获取到滚动的值
+        if (e.scrollTop > 400) {
+            this.isScrollTop = true
+        } else {
+            this.isScrollTop = false
+        }
+    },
+    onPullDownRefresh() {
+        setTimeout(() => {
+            uni.stopPullDownRefresh()
+        }, 200)
+    },
+    onShareAppMessage(res) {
+        //分享转发
+        if (res.from === 'button') {
+            // 来自页面内转发按钮
+        }
+        return {
+            title: '采美-一站式生/医美采购服务平台',
+            path: `pages/h5/activity/activity-topic?type=share&linkId=${this.pageId}`
+        }
+    }
+}
 </script>
 
 <style lang="scss" scoped>
-	page{
-		background-color: #FFFFFF;
-	}
-	.container-home{
-		width: 100%;
-		height: auto;
-	}
-	.container-section{
-		width: 100%;
-		height: auto;
-		background-color: #F7F7F7;
-	}
-	.container-top{
-		width: 100%;
-		height: 340rpx;
-		float: left;
-		image{
-			width: 100%;
-			height: 100%;
-			display: block;
-		}
-	}
-	.container-activ{
-		width: 100%;
-		height: 240rpx;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		margin: 24rpx 0;
-		float: left;
-		image{
-			width: 100%;
-			height: 240rpx;
-			display: block;
-		}
-	}
+page {
+    background-color: #ffffff;
+}
+.container-home {
+    width: 100%;
+    height: auto;
+}
+.container-section {
+    width: 100%;
+    height: auto;
+    background-color: #f7f7f7;
+}
+.container-top {
+    width: 100%;
+    height: 340rpx;
+    float: left;
+    image {
+        width: 100%;
+        height: 100%;
+        display: block;
+    }
+}
+.container-activ {
+    width: 100%;
+    height: 240rpx;
+    box-sizing: border-box;
+    padding: 0 24rpx;
+    margin: 24rpx 0;
+    float: left;
+    image {
+        width: 100%;
+        height: 240rpx;
+        display: block;
+    }
+}
 </style>

+ 2 - 2
pages/h5/activity/components/activity-contact.vue

@@ -6,7 +6,7 @@
             <view class="cm-icon cm-bround cm-open-btn" @click="handleToggleAcitve(true)" v-if="contactVisiable"></view>
         </view>
         <!-- 展开状态 -->
-        <view class="cm-close-box" v-show="contactVisiable && isActive">
+        <!-- <view class="cm-close-box" v-show="contactVisiable && isActive">
             <view class="cm-icon cm-entry" @click="handleToggleEntry(true)" v-if="activityEntryVisiable"></view>
             <view class="cm-icon regexp" @click="handleToCouponExp">优惠券\n规则</view>
             <view class="cm-icon cm-bround cm-mobile" @click="handelShowMobile">
@@ -46,7 +46,7 @@
                 </view>
             </view>
             <view class="cm-icon cm-bround cm-close-btn" @click="handleToggleAcitve(false)"></view>
-        </view>
+        </view> -->
         <view class="mask cover" v-if="activityEntryVisiable && entryVisiable">
             <view class="content">
                 <!-- <image

+ 4 - 2
pages/h5/activity/components/template-picture/templateE.vue

@@ -41,7 +41,7 @@ import { mapState, mapMutations } from 'vuex'
 import uniGrader from '@/components/uni-grade/uni-grade.vue'
 import caimeiApi from '@/common/config/caimeiApi.js'
 export default {
-    name: 'templateH',
+    name: 'templateE',
     components: {
         uniGrader
     },
@@ -80,10 +80,12 @@ export default {
     },
     methods: {
         initData(data) {
+            console.log(data)
             this.imageCount = data.floorImageList.length
             while (data.floorImageList.length > 0) {
                 this.productList.push(data.floorImageList.splice(0, this.pageSize))
             }
+            console.log(this.productList)
         },
         swiperChange(e) {
             //轮播切换
@@ -182,4 +184,4 @@ export default {
         }
     }
 }
-</style>
+</style>

+ 181 - 0
pages/h5/activity/quick-operation.vue

@@ -0,0 +1,181 @@
+<template>
+	<view class="container floor clearfix">
+		<!-- top -->
+		<view class="container-top" @click="BannerNavigateTo(pageInfo.linkType,pageInfo.linkParam.id,pageInfo.headLink,pageInfo.keyword)" v-if="isRequest && headImage!==''"><image :src="headImage" ></image></view>
+		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
+		<!-- 楼层 -->
+		<view class="container-section tui-skeleton">
+			<page-floor :list="pageList" :userIdentity="userIdentity" :pageType="2" v-if="isRequest"></page-floor>
+		</view>
+		<!-- 侧边 -->
+		<scroll-top :isScrollTop="isScrollTop" :bottom="50" ></scroll-top>
+        <!-- 右侧联系 活动入口 -->
+        <activity-contact :pageInfo="pageInfo" v-if="isRequest"></activity-contact>
+	</view>
+</template>
+
+<script>
+	import { mapState,mapMutations} from 'vuex' 
+	import customFloor from '@/components/cm-custom/custom-floor' 		 //自定义导航
+	import templateNav from '@/components/cm-module/pageTemplate/templateNav.vue'
+    import pageFloor from './components/active-floor.vue'
+    import  ActivityContact from './components/activity-contact.vue'
+	import authorize from '@/common/config/authorize.js'
+	import wxLogin from '@/common/config/wxLogin.js'
+	
+	export default{ 
+		components:{
+			customFloor,
+			templateNav,
+			pageFloor,
+            ActivityContact
+		},
+		data(){
+			return{
+				userId:0,
+				shopId:0,
+				userIdentity:0,
+				skeletonShow:true,
+				headerBtnPosi:	this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
+				systeminfo: this.setSysteminfo(),		 //获取设备信息
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				navBarsList:[],
+				pageList:[],//楼层
+				isRequest:false,
+				isScrollTop:false,
+				pageId:'',
+				typeSort:'',
+				headImage:'',
+				pageInfo:{},
+                activityEntryVisiable:false
+			}
+		},
+		onLoad(option) {
+			if(option.type =='share'){
+				authorize.checkLogin()
+				.then(res => {
+					wxLogin.wxLoginAuthorize()
+				})
+				.catch(err => {
+					console.log(new Date +'用户未授权微信信息')
+				})
+			}
+			this.pageId = option.linkId
+			this.$api.getComStorage('userInfo').then((resolve) =>{
+				this.userId = resolve.userId ? resolve.userId : 0
+				this.shopId = resolve.shopId ? resolve.shopId : 0
+				this.userIdentity = resolve.userIdentity
+				this.GetActivityFloorData()
+			}).catch(error =>{
+				this.GetActivityFloorData()
+			})
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','identity'])
+		},
+		methods:{            
+			GetActivityFloorData(){//获取楼层数据
+				this.CommonService.GetActivityFloorData({pageId:this.pageId,userId:this.userId,source:2}).then(response =>{
+					let data = response.data
+					this.typeSort = data.page.typeSort
+					this.pageList = data.floorList
+					this.headImage = data.page.crmHeadImage
+					this.pageInfo = data.page
+					this.isRequest =true
+					uni.setStorageSync('pageLabel',`${data.page.contentLabel}`)
+					// uni.setNavigationBarTitle({title:data.page.title})
+                    this.skeletonShow = false
+					// this.GetHomeInit()
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			GetHomeInit(){//金刚区分类
+				this.CommonService.GetFirstClassly({typeSort:this.typeSort,source:'crm'}).then(response =>{
+					this.navBarsList = response.data
+					this.isRequest =true
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			setHeaderBtnPosi(){
+				// 获得胶囊按钮位置信息
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
+				return headerBtnPosi
+			},
+			setSysteminfo(){
+				let systeminfo
+				uni.getSystemInfo({ // 获取设备信息
+					success: (res) => {
+						systeminfo = res
+					},
+				})
+				return systeminfo
+			},
+			BannerNavigateTo(linkType,linkId,linkHref,keyword) {//跳转商品详情页
+				console.log(linkType,linkId,linkHref,keyword)
+				this.$api.BannerNavigateTo(linkType,linkId,linkHref,keyword)
+			}
+		},
+		onPageScroll(e){//实时获取到滚动的值
+			if(e.scrollTop>400){
+				this.isScrollTop = true
+			}else{
+				this.isScrollTop = false
+			}	
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				uni.stopPullDownRefresh()
+			}, 200)
+		},
+		onShareAppMessage(res){//分享转发
+			if (res.from === 'button') {
+		      // 来自页面内转发按钮
+		    }
+			return {
+			  title: '采美-一站式生/医美采购服务平台',
+			  path: `pages/h5/activity/quick-operation?type=share&linkId=${this.pageId}`
+			}
+		},
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #FFFFFF;
+	}
+	.container-home{
+		width: 100%;
+		height: auto;
+	}
+	.container-section{
+		width: 100%;
+		height: auto;
+		background-color: #F7F7F7;
+	}
+	.container-top{
+		width: 100%;
+		height: 340rpx;
+		float: left;
+		image{
+			width: 100%;
+			height: 100%;
+			display: block;
+		}
+	}
+	.container-activ{
+		width: 100%;
+		height: 240rpx;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		margin: 24rpx 0;
+		float: left;
+		image{
+			width: 100%;
+			height: 240rpx;
+			display: block;
+		}
+	}
+</style>

+ 212 - 179
pages/supplier/components/home.vue

@@ -1,187 +1,220 @@
 <template>
-	<view class="container home clearfix" :style="{paddingTop:CustomBar+'px'}">
-		<customer ref="customer" :navbar-data='nvabarData'></customer>
-		<!-- 主页内容 -->
-		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
-		<view class="container-home tui-skeleton">
-			<!-- 轮播 -->
-			<banner :list="bannerImageList" v-if="isNavRequest"></banner>
-			<!-- 金刚区菜单 -->
-			<navbars :list="navBarsList" v-if="isNavRequest"></navbars>
-			<!-- 轮播公告 -->
-			<notice :list="newsList" v-if="isNavRequest && newsList.length>0 "></notice>
-			<!-- 直播 -->
-			<page-special :templateData="templateData" v-if="isLiveRequest"></page-special>
-			<!-- 新品橱窗 -->
-			<hot-floor :list="hotListPageFloor" :usserIdentity="userIdentity" v-if="isRequest"></hot-floor>
-		</view>	
-		<!-- 楼层 -->
-		<view class="container-section tui-skeleton">
-			<page-floor :list="pageList" :userIdentity="userIdentity" :pageType='1' v-if="isRequest"></page-floor>
-			<supplier-list :supplierObj="supplierObj" v-if="isRequest"></supplier-list>
-		</view>
-		<!-- 资质证书 -->
-		<Certificate v-if="isRequest"></Certificate>
-		<!-- 活动弹窗 -->
-		<activityAlert :show="isActivity" @click="handleClick" @cancel="handleCancelClick"></activityAlert>
-		<!-- 侧边 -->
-		<scroll-top :isScrollTop="isScrollTop" :bottom="50"></scroll-top>
-	</view>
+    <view class="container home clearfix" :style="{ paddingTop: CustomBar + 'px' }">
+        <customer ref="customer" :isScroll="isScroll" :navbar-data="nvabarData"></customer>
+        <!-- 主页内容 -->
+        <tui-skeleton
+            v-if="skeletonShow"
+            backgroundColor="#fafafa"
+            borderRadius="10rpx"
+            :isLoading="true"
+            :loadingType="5"
+        ></tui-skeleton>
+        <view class="container-home tui-skeleton">
+            <!-- 轮播 -->
+            <banner :list="bannerImageList" v-if="isNavRequest"></banner>
+            <!-- 金刚区菜单 -->
+            <navbars :list="navBarsList" v-if="isNavRequest"></navbars>
+            <!-- 快捷运营 -->
+            <quick-opera :list="quickOpreaList" v-if="isNavRequest && quickOpreaList.length > 0"/>
+            <!-- 轮播公告 -->
+            <notice :list="newsList" v-if="isNavRequest && newsList.length > 0"></notice>
+            <!-- 直播 -->
+            <page-special :templateData="templateData" v-if="isLiveRequest"></page-special>
+            <!-- 新品橱窗 -->
+            <hot-floor :list="hotListPageFloor" :usserIdentity="userIdentity" v-if="isRequest"></hot-floor>
+        </view>
+        <!-- 楼层 -->
+        <view class="container-section tui-skeleton">
+            <page-floor :list="pageList" :userIdentity="userIdentity" :pageType="1" v-if="isRequest"></page-floor>
+            <supplier-list :supplierObj="supplierObj" v-if="isRequest"></supplier-list>
+        </view>
+        <!-- 资质证书 -->
+        <Certificate v-if="isRequest"></Certificate>
+        <!-- 活动弹窗 -->
+        <activityAlert :show="isActivity" @click="handleClick" @cancel="handleCancelClick"></activityAlert>
+        <!-- 侧边 -->
+        <scroll-top :isScrollTop="isScrollTop" :bottom="50"></scroll-top>
+    </view>
 </template>
 
 <script>
-	import authorize from '@/common/config/authorize.js'
-	import customer from '@/components/cm-module/homeIndex/customer.vue'
-	import banner from '@/components/cm-module/homeIndex/banner.vue'
-	import navbars from '@/components/cm-module/homeIndex/navbars.vue'
-	import notice from '@/components/cm-module/homeIndex/notice.vue'
-	import hotFloor from '@/components/cm-module/homeIndex/hotFloor.vue'
-	import pageFloor from '@/components/cm-module/homeIndex/pageFloor.vue'
-	import Certificate from '@/components/cm-module/homeIndex/certificate.vue'
-	import pageSpecial from '@/components/cm-module/homeIndex/pageSpecial.vue'
-	import supplierList from '@/components/cm-module/homeIndex/supplierList.vue'
-	import { mapState,mapMutations} from 'vuex'
-	export default {
-		components:{
-			customer,
-			banner,
-			navbars,
-			notice,
-			hotFloor,
-			pageFloor,
-			Certificate,
-			pageSpecial,
-			supplierList
-		},
-		data() {
-			return {
-				nvabarData: {//顶部自定义导航
-					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
-					showSearch: 0,
-					title: '采美采购商城', // 导航栏 中间的标题
-					haveBack:false,
-					textLeft:this.$store.state.isIphone,
-					textColor:'#FFFFFF'
-				},
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				userID:0,
-				clubStatus:'',
-				current:0,
-				mode:'round',
-				modallayer:false,
-				isLogin:false,
-				skeletonShow: true,
-				userIdentity:'',
-				flootData:[],//楼层
-				bannerImageList:[],//轮播
-				navBarsList:[],//导航分类
-				newsList:[],				// 公告
-				templateData:{},
-				hotListPageFloor:[],					// 新品橱窗
-				pageList:[],//楼层
-				supplierObj:{},//供应商列表
-				isScrollTop:false,
-				isRequest:false,
-				isNavRequest:false,
-				isLiveRequest:false,
-			}
-		},
-		created() {
-			this.$api.getStorage().then((resolve) =>{
-				this.userID = resolve.userId ? resolve.userId : 0
-				this.userIdentity = resolve.userIdentity
-				this.getHomeInformation()
-			})
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2)
-			},
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isActivity'])
-		},
-		methods: {
-			...mapMutations(['login','logout']),
-			GetHomeTopDataInfo(){//直播、活动、文章模块
-				this.CommonService.GetHomeTopDataInfo({source:2}).then(response =>{
-					this.templateData = response.data
-					this.isLiveRequest = true
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			GetHomeFloorInfo(){//初始化首页楼层数据
-				this.CommonService.GetHomeDataInfo({userId:this.userID,source:2}).then(response =>{
-					let data = response.data
-					this.pageList = data.homePageFloor
-					this.hotListPageFloor =  data.pageFloorList
-					console.log('hotListPageFloor',this.hotListPageFloor)
-					this.supplierObj = data.supplierImage
-					this.isRequest = true
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			getHomeInformation(){//初始化首页数据	
-				this.CommonService.GetHomeModulesDataInfo({ source: 2 }).then(res =>{
-					let data = res.data
-					this.bannerImageList = data.bannerList
-					this.mallPageModules = data.mallPageModules
-					this.skeletonShow = false
-					this.navBarsList = data.topMenuList
-					this.newsList = data.annlist
-					this.isNavRequest = true
-					this.GetHomeTopDataInfo()
-					this.GetHomeFloorInfo()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			handleClick(data){
-				this.$api.navigateTo('/pages/h5/activity/meobohui')
-				this.$store.commit('setActivity',data)
-			},
-			handleCancelClick(data){
-				this.$store.commit('setActivity',data)
-			}
-		},
-		onPageScroll(e){//实时获取到滚动的值
-			if(e.scrollTop>50){
-				this.inputActive = 'fixed'
-			}else{
-				this.inputActive = 'float'
-			}	
-			if(e.scrollTop>400){
-				this.isScrollTop = true
-			}else{
-				this.isScrollTop = false
-			}	
-		},
-		onPullDownRefresh() {//下拉刷新
-			this.getHomeInformation()
-			uni.stopPullDownRefresh()
-		},
-		onShareAppMessage(res){//分享转发
-			if (res.from === 'button') {
-		      // 来自页面内转发按钮
-		    }
-			return {
-			  title: '生美医美正品采购服务平台',
-			  path: 'pages/tabBar/home/index',
-			  imageUrl:'https://static.caimei365.com/app/img/bg/min-banner.jpg'
-			}
-		}
-	}
+import authorize from '@/common/config/authorize.js'
+import customer from '@/components/cm-module/homeIndex/customer.vue'
+import banner from '@/components/cm-module/homeIndex/banner.vue'
+import navbars from '@/components/cm-module/homeIndex/navbars.vue'
+import notice from '@/components/cm-module/homeIndex/notice.vue'
+import hotFloor from '@/components/cm-module/homeIndex/hotFloor.vue'
+import pageFloor from '@/components/cm-module/homeIndex/pageFloor.vue'
+import Certificate from '@/components/cm-module/homeIndex/certificate.vue'
+import pageSpecial from '@/components/cm-module/homeIndex/pageSpecial.vue'
+import supplierList from '@/components/cm-module/homeIndex/supplierList.vue'
+import quickOpera from '@/components/cm-module/homeIndex/quickOperation.vue'
+import { mapState, mapMutations } from 'vuex'
+export default {
+    components: {
+        customer,
+        banner,
+        navbars,
+        notice,
+        hotFloor,
+        pageFloor,
+        Certificate,
+        pageSpecial,
+        supplierList,
+        quickOpera
+    },
+    data() {
+        return {
+            nvabarData: {
+                //顶部自定义导航
+                showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+                showSearch: 0,
+                title: '采美采购商城', // 导航栏 中间的标题
+                haveBack: false,
+                textLeft: this.$store.state.isIphone,
+                textColor: '#FFFFFF'
+            },
+            CustomBar: this.CustomBar, // 顶部导航栏高度
+            userID: 0,
+            clubStatus: '',
+            current: 0,
+            mode: 'round',
+            modallayer: false,
+            isLogin: false,
+            skeletonShow: true,
+            userIdentity: '',
+            flootData: [], //楼层
+            bannerImageList: [], //轮播
+            navBarsList: [], //导航分类
+            newsList: [], // 公告
+            templateData: {},
+            hotListPageFloor: [], // 新品橱窗
+            pageList: [], //楼层
+            supplierObj: {}, //供应商列表
+            isScrollTop: false,
+            isRequest: false,
+            isNavRequest: false,
+            isLiveRequest: false,
+            isScroll: false,
+            quickOpreaList: []
+        }
+    },
+    created() {
+        this.$api.getStorage().then(resolve => {
+            this.userID = resolve.userId ? resolve.userId : 0
+            this.userIdentity = resolve.userIdentity
+            this.getHomeInformation()
+        })
+    },
+    filters: {
+        NumFormat: function(text) {
+            //处理金额
+            return Number(text).toFixed(2)
+        }
+    },
+    computed: {
+        ...mapState(['hasLogin', 'userInfo', 'isActivity'])
+    },
+    methods: {
+        ...mapMutations(['login', 'logout']),
+        GetHomeTopDataInfo() {
+            //直播、活动、文章模块
+            this.CommonService.GetHomeTopDataInfo({ source: 2 })
+                .then(response => {
+                    this.templateData = response.data
+                    this.isLiveRequest = true
+                })
+                .catch(error => {
+                    this.$util.msg(error.msg, 2000)
+                })
+        },
+        GetHomeFloorInfo() {
+            //初始化首页楼层数据
+            this.CommonService.GetHomeDataInfo({ userId: this.userID, source: 2 })
+                .then(response => {
+                    let data = response.data
+                    this.pageList = data.homePageFloor
+                    this.hotListPageFloor = data.pageFloorList
+                    console.log('hotListPageFloor', this.hotListPageFloor)
+                    this.supplierObj = data.supplierImage
+                    this.isRequest = true
+                })
+                .catch(error => {
+                    this.$util.msg(error.msg, 2000)
+                })
+        },
+        getHomeInformation() {
+            //初始化首页数据
+            this.CommonService.GetHomeModulesDataInfo({ source: 2 })
+                .then(res => {
+                    let data = res.data
+                    this.bannerImageList = data.bannerList
+                    this.mallPageModules = data.mallPageModules
+                    this.skeletonShow = false
+                    this.navBarsList = data.topMenuList
+                    this.newsList = data.annlist
+                    this.quickOpreaList = data.shortcutList || []
+                    this.isNavRequest = true
+                    this.GetHomeTopDataInfo()
+                    this.GetHomeFloorInfo()
+                })
+                .catch(error => {
+                    this.$util.msg(error.msg, 2000)
+                })
+        },
+        handleClick(data) {
+            this.$api.navigateTo('/pages/h5/activity/meobohui')
+            this.$store.commit('setActivity', data)
+        },
+        handleCancelClick(data) {
+            this.$store.commit('setActivity', data)
+        }
+    },
+    onPageScroll(e) {
+        //实时获取到滚动的值
+        if (e.scrollTop > 0) {
+            this.isScroll = true
+        } else {
+            this.isScroll = false
+        }
+        console.log(e, this.isScroll)
+        if (e.scrollTop > 50) {
+            this.inputActive = 'fixed'
+        } else {
+            this.inputActive = 'float'
+        }
+        if (e.scrollTop > 400) {
+            this.isScrollTop = true
+        } else {
+            this.isScrollTop = false
+        }
+    },
+    onPullDownRefresh() {
+        //下拉刷新
+        this.getHomeInformation()
+        uni.stopPullDownRefresh()
+    },
+    onShareAppMessage(res) {
+        //分享转发
+        if (res.from === 'button') {
+            // 来自页面内转发按钮
+        }
+        return {
+            title: '生美医美正品采购服务平台',
+            path: 'pages/tabBar/home/index',
+            imageUrl: 'https://static.caimei365.com/app/img/bg/min-banner.jpg'
+        }
+    }
+}
 </script>
 
 <style lang="scss">
-	page{
-		background-color: #FFFFFF;
-	}
-	.container-section{
-		width: 100%;
-		height: auto;
-		background-color: #F7F7F7;
-	}
+page {
+    background-color: #ffffff;
+}
+.container-section {
+    width: 100%;
+    height: auto;
+    background-color: #f7f7f7;
+}
 </style>

+ 2 - 1
pages/tabBar/home/index.js

@@ -99,6 +99,7 @@ const homeMiXins = {
         			this.navBarsList = data.topMenuList
         			this.couponEntry = data.couponEntry
         			this.newsList = data.annlist
+                    this.quickOpreaList = data.shortcutList || [] // 快捷运营
         			if (!this.hasLogin && this.couponEntry == 1) {
         				if (uni.getStorageSync('isActivitySwitch')) {
         					this.$store.commit('setActivity', false)
@@ -146,7 +147,7 @@ const homeMiXins = {
         },
         handleBeanlClick() {
         	this.isActivityBean = false
-        }
+        },
     }
 }
 

+ 14 - 3
pages/tabBar/home/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="container home clearfix" :style="{ paddingTop: CustomBar + 'px' }">
-		<customer ref="customer" :navbar-data="nvabarData"></customer>
+		<customer ref="customer" :isScroll="isScroll" :navbar-data="nvabarData"></customer>
 		<!-- 主页内容 -->
 		<tui-skeleton
 			v-if="skeletonShow"
@@ -14,6 +14,8 @@
 			<banner :list="bannerImageList" v-if="isNavRequest"></banner>
 			<!-- 金刚区菜单 -->
 			<navbars :list="navBarsList" v-if="isNavRequest"></navbars>
+            <!-- 快捷运营 -->
+            <quick-opera :list="quickOpreaList" v-if="isNavRequest && quickOpreaList.length > 0"/>
 			<!-- 轮播公告 -->
 			<notice :list="newsList" v-if="isNavRequest && newsList.length > 0"></notice>
 			<!-- 优惠券入口 -->
@@ -64,6 +66,7 @@ import pageSpecial from '@/components/cm-module/homeIndex/pageSpecial.vue'
 import supplierList from '@/components/cm-module/homeIndex/supplierList.vue'
 import activityAlert from '@/components/cm-module/activity/activity.vue'
 import activityBean from '@/components/cm-module/activity/activityBean.vue'
+import quickOpera from '@/components/cm-module/homeIndex/quickOperation.vue'
 import homeMiXins from './index.js'
 export default {
 	mixins: [ homeMiXins ], 
@@ -79,7 +82,8 @@ export default {
 		pageSpecial,
 		supplierList,
 		activityAlert,
-		activityBean
+		activityBean,
+        quickOpera
 	},
 	data() {
 		return {
@@ -104,6 +108,7 @@ export default {
 			flootData: [], // 楼层
 			bannerImageList: [], // 轮播
 			navBarsList: [], // 导航分类
+            quickOpreaList: [], // 快捷运营
 			newsList: [], // 公告
 			templateData: {},
 			hotListPageFloor: [], // 新品橱窗
@@ -117,11 +122,17 @@ export default {
 			beansType: 1,
 			beanNumber: 50,
 			couponEntry: 2,
-			autoplay: true
+			autoplay: true,
+            isScroll: false
 		}
 	},
 	onLoad() {},
 	onPageScroll(e) {
+        if (e.scrollTop > 0) {
+            this.isScroll = true
+        } else {
+            this.isScroll = false
+        }
 		//实时获取到滚动的值
 		if (e.scrollTop > 50) {
 			this.inputActive = 'fixed'

+ 1 - 1
pages/tabBar/user/user.vue

@@ -7,7 +7,7 @@
                 :style="{
                     height: CustomBar + 120 - StatusBar + 'px',
                     paddingTop: CustomBar + 'px',
-                    background: 'url(https://static.caimei365.com/app/img/bg/home_cumres@2x.png)',
+                    background: 'url(https://static.caimei365.com/app/img/bg/new_home_cumres@2x.png)',
                     backgroundSize: 'cover'
                 }"
             >