Selaa lähdekoodia

commit -m 呵呵商城

zhengjinyi 4 vuotta sitten
vanhempi
commit
b235a96769

+ 4 - 2
common/css/common.scss

@@ -80,8 +80,8 @@ button::after{
 		margin-bottom: 20rpx;
 	}
 	&-image {
-		width: 200rpx;
-		height: 200rpx;
+		width: 290rpx;
+		height: 230rpx;
 		margin-bottom: 10rpx;
 		margin-top: -120rpx;
 	}
@@ -106,6 +106,8 @@ button::after{
 		background: $btn-confirm;
 		border-radius: 44rpx;
 		margin-top: 40rpx;
+		position: absolute;
+		bottom: 10%;
 	}
 }
 /*弹窗*/

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 2
common/css/iconfont.scss


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

@@ -14,19 +14,6 @@
 				</view>	  
 			</view>
 		</view>
-		<view class="swiper-banner-msg">
-			<view class="content">
-				<view class="item le">
-					<text class="iconfont icon-zhengpin"><text class="sm">正品保证</text></text>
-				</view>
-				<view class="item ce">
-					<text class="iconfont icon-jigou"><text class="sm">5000+机构</text></text>
-				</view>
-				<view class="item ri">
-					<text class="iconfont icon-gongyingshang"><text class="sm">100+供应商</text></text>
-				</view>
-			</view>
-		</view>
 	</view>
 </template>
 
@@ -73,13 +60,12 @@
 		width: 700rpx;
 		margin: 0 auto;
 		height: 340rpx;
-		border-radius: 24rpx;
+		border-radius: 16rpx;
 		overflow: hidden;
 		transform: translateY(0);
-		box-shadow:0px 3px 6px rgba(225,86,22,0.08);
 		margin-top: 16rpx;
 		.banner-item{
-			border-radius: 24rpx;
+			border-radius: 16rpx;
 		}
 		.tui-slide-image {
 			width: 100%;
@@ -100,57 +86,18 @@
 		justify-content: center;
 		align-items: center;
 		.swiper__dots-item{
-			width: 8rpx;
-			height: 8rpx;
+			width: 10rpx;
+			height: 10rpx;
 			border-radius: 100%;
 			margin-left: 6px;
 			background-color:rgba(255,255,255,.7);
 		}
 		.swiper__dots-long{
-			width: 35rpx;
-			height: 8rpx;
+			width: 10rpx;
+			height: 10rpx;
 			border-radius: 4rpx;
-			background-color: #ffff;
+			background-color: #fa55bf;
 			transition: all 0.4s;
 		}
 	}
-	.swiper-banner-msg{
-		width: 100%;
-		height: 54rpx;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		margin-top: 20rpx;
-		.content{
-			width: 100%;
-			height: 54rpx;
-			box-sizing: border-box;
-			padding: 0 34rpx;
-			background-color: #fff0e9;
-			border-radius: 16rpx;
-			.item{
-				width: 33.33%;
-				height: 54rpx;
-				line-height: 54rpx;
-				font-size: $font-size-24;
-				color: $color-system;
-				float: left;
-				&.le{
-					text-align: left;
-				}
-				&.ce{
-					text-align: center;
-				}
-				&.ri{
-					text-align: right;
-				}
-				.iconfont{
-					color: $color-system;
-					font-size: $font-size-32;
-					.sm{
-						font-size: $font-size-26;
-					}
-				}
-			}
-		}
-	}
 </style>

+ 0 - 11
components/cm-module/listTemplate/productList.vue

@@ -7,15 +7,6 @@
 		}"
 	>
 		<list-skeleton v-if="showSkeleton" :listType="0"></list-skeleton>
-		<!-- 搜索框 -->
-		<fuzzy-search
-			placeholder="搜索商品名称"
-			:fixed="true"
-			@search="searchValHandle"
-			@input="searchValChange"
-			@clear="searchValClear"
-			@blur="searchValBlur"
-		></fuzzy-search>
 		<!-- 内容区域 -->
 		<scroll-view
 			class="product-container"
@@ -111,7 +102,6 @@ import listSkeleton from '@/components/cm-module/listTemplate/listSkeleton'
 import modalLayer from '@/components/modal-layer'
 import uniStars from '@/components/uni-stars/uni-stars.vue'
 import cmDrag from '@/components/cm-custom/cm-drag.vue'
-import fuzzySearch from '@/components/cm-module/search/fuzzySearch.vue'
 import { mapState, mapMutations } from 'vuex'
 export default {
 	name: 'productList',
@@ -120,7 +110,6 @@ export default {
 		modalLayer,
 		uniStars,
 		cmDrag,
-		fuzzySearch
 	},
 	props: {
 		emptyText: {

+ 2 - 12
components/cm-module/scrollTop/scrollTop.vue

@@ -2,13 +2,6 @@
 	<!-- 商品详情价格判断 -->
 	<view>
 		<view class="scrollTop" :style="{bottom:bottom+'rpx'}">
-			<view class="icon msg" v-if="!hideContact">
-				<!-- #ifdef MP-WEIXIN -->
-				<button class="contact-btn" open-type="contact" @bindcontact="handleContact">
-					<text class="iconfont icon-zaixiankefu"></text>
-				</button>	
-				<!-- #endif -->
-			</view>
 			<view class="icon top" @click="onPageScrollTop" :class="isScrollTop ? 'show' : 'none'">
 				<text class="iconfont icon-zhiding"></text>
 			</view>
@@ -61,7 +54,7 @@
 <style lang="scss">	
 	.scrollTop{
 		width: 80rpx;
-		height: 200rpx;
+		height: 80rpx;
 		position: fixed;
 		right: 20rpx;
 		z-index: 999;
@@ -83,11 +76,8 @@
 					color: #FFFFFF;
 				}
 			}
-			&.msg{
-				background-image: linear-gradient(0deg, #f28e31 0%, #e15616 100%);
-			}
 			&.top{
-				background-color: rgba(0,0,0,0.4);
+				background-color: rgba(25, 25, 25, 0.3);
 				&.show{
 					opacity: 1;
 				}

+ 0 - 152
components/cm-module/search/fuzzySearch.vue

@@ -1,152 +0,0 @@
-<template>
-	<view>
-		<view class="search" :style="{ position: fixed ? 'fixed' : 'relative' }">
-			<view class="search-box">
-				<text class="iconfont icon-sousuo"></text>
-				<input
-					type="text"
-					:placeholder="placeholder"
-					v-model="text"
-					@input="onInputHandle"
-					@focus="inputFoucsHandle"
-					@blur="inputBlurHandle"
-				/>
-				<view v-show="showClosable" class="iconfont icon-guanbi" @click="clearInput"></view>
-			</view>
-			<view class="search-btn" @click="searchHandle"> 搜索 </view>
-		</view>
-		<view class="mask" v-show="showMask"></view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		placeholder: {
-			type: String,
-			default: '请输入搜索内容'
-		},
-		fixed: {
-			type: Boolean,
-			default: false
-		}
-	},
-	data() {
-		return {
-			showMask: false,
-			text:''
-		}
-	},
-	computed:{
-		showClosable(){
-			return this.text.trim().length>0
-		}
-	},
-	methods: {
-		chickHandle(e) {
-			this.$emit('fuzzyClick', e)
-		},
-		// 文本框获取焦点
-		inputFoucsHandle() {
-			this.showMask = true
-		},
-		// 文本框失去焦点
-		inputBlurHandle() {
-			this.showMask = false
-			this.$emit('blur')
-		},
-		// 文本框输入事件
-		onInputHandle() {
-			this.$emit('input', this.text)
-		},
-		// 搜索按钮点击事件
-		searchHandle(){
-			this.$emit('search',this.text)
-		},
-		clearInput(){
-			this.text = ''
-			this.$emit('clear')
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-// 自定义动画
-@keyframes fadeIn {
-	from {
-		opacity: 0;
-	}
-	to {
-		opacity: 1;
-	}
-}
-.mask {
-	width: 100vh;
-	height: 100vh;
-	position: fixed;
-	background-color: rgba(0, 0, 0, 0.4);
-	top: 0;
-	left: 0;
-	z-index: 666;
-	animation: fadeIn ease-in 0.2s;
-}
-.search {
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	position: relative;
-	top: 0;
-	padding: 20rpx 24rpx;
-	width: 100%;
-	box-sizing: border-box;
-	background-color: #fff;
-	z-index: 999;
-	.search-btn{
-		width: 80rpx;
-		font-size: 28rpx;
-		margin-left: 10rpx;
-		text-align: right;
-	}
-	.search-box {
-		display: flex;
-		flex: 1;
-		justify-content: flex-start;
-		align-items: center;
-		height: 60rpx;
-		padding-left: 10rpx;
-		background-color: #f1f1f1;
-		box-sizing: border-box;
-		border-radius: 30rpx;
-		position: relative;
-		z-index: 999;
-		.iconfont {
-			width: 60rpx;
-			height: 60rpx;
-			margin-right: 8rpx;
-			text-align: center;
-			line-height: 60rpx;
-		}
-		.iconfont-guanbi{
-			position: absolute;
-			top: 0;
-			right: 0;
-			color: #eee;
-		}
-		input {
-			width: 480rpx;
-			font-size: 26rpx;
-		}
-	}
-	.fuzzy {
-		padding: 10rpx 0;
-		padding-left: 76rpx;
-		animation: fadeIn ease-in 0.2s;
-		.fuzzy-item {
-			font-size: 26rpx;
-			color: #444;
-			line-height: 60rpx;
-		}
-	}
-}
-</style>

+ 3 - 3
components/thorui/tui-modal/tui-modal.vue

@@ -247,17 +247,17 @@
 	}
 
 	.tui-danger {
-		background: #191919 !important;
+		background-image: linear-gradient(270deg, #f83c6c 0%, #fc32b4 100%);
 		color: #fff;
 	}
 
 	.tui-danger-hover {
-		background: #191919;
+		background-image: linear-gradient(270deg, #f83c6c 0%, #fc32b4 100%);
 		color: #e5e5e5;
 	}
 
 	.tui-danger-outline {
-		color: #191919;
+		background-image: linear-gradient(270deg, #f83c6c 0%, #fc32b4 100%);
 		background: transparent;
 	}
 

+ 4 - 1
main.js

@@ -14,11 +14,14 @@ import auCustom from './components/cm-custom/au-custom.vue'
 import cmCustom from './components/cm-custom/cm-custom.vue'
 import wsCustom from './components/cm-custom/ws-custom.vue'
 import scrollTop from '@/components/cm-module/scrollTop/scrollTop.vue'
+import CityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'//全局注册地址组件
+
 Vue.component('cu-custom', cuCustom)
 Vue.component('au-custom', auCustom)
 Vue.component('cm-custom', cmCustom)
 Vue.component('ws-custom', wsCustom)
 Vue.component('scroll-top', scrollTop)
+Vue.component('city-Picker',CityPicker)
 
 Vue.prototype.$getStorage = function(key) {
 	var userParam = uni.getStorageSync(key)
@@ -60,7 +63,7 @@ Vue.prototype.$util = {
 }
 Vue.prototype.$api = Api
 Vue.prototype.$reg = Regs
-Vue.prototype.$Static = 'https://static.caimei365.com/app/mini-hehe/icon'
+Vue.prototype.$Static = 'https://static.caimei365.com/app/mini-hehe/icon/'
 // Vue.use(uma);
 App.mpType = 'app'
 

+ 2 - 2
manifest.json

@@ -1,7 +1,7 @@
 {
-    "name" : "caimei-applets-weisha",
+    "name" : "caimei-applets-hehe",
     "appid" : "__UNI__1EA8401",
-    "description" : "维沙采购商城",
+    "description" : "呵呵商城",
     "versionName" : "1.0.0",
     "versionCode" : "100",
     "transformPx" : false,

+ 8 - 0
pages.json

@@ -6,6 +6,8 @@
 			"style": {
 				"navigationBarTitleText": "呵呵商城",
 				"enablePullDownRefresh":true,
+				"backgroundColor":"#F952B7",
+				"backgroundTextStyle":"light",
 				"navigationStyle":"custom"
 			}
 		},
@@ -41,6 +43,12 @@
 				"navigationBarTitleText": "立即下单"
 			}
 		},
+		{
+			"path": "pages/goods/search",
+			"style": {
+				"navigationBarTitleText": "搜索"
+			}
+		},
 		{
 			"path":"pages/goods/product",
 			"style":{

+ 71 - 69
pages/authorize/authorize.vue

@@ -1,23 +1,21 @@
 <template>
 	<view class="container login" :style="{ paddingTop: CustomBar + 'px' }">
 		<view class="login-main">
-			<image class="logo" src="../../static/ws/logo.png" mode="widthFix"></image>
+			<image class="logo" :src="StaticUrl+'icon-logo@2x.png'" mode="widthFix"></image>
 		</view>
 		<view class="login-content">
 			<text
-				>您暂未授权维沙采购商城小程序获取你的信息,将无法正常使用小程序的功能。如需正常使用,请点击“授权”按钮,打开头像,昵称等信息的授权</text
+				>您暂未授权呵呵商城小程序获取你的信息,将无法正常使用小程序的功能。如需正常使用,请点击“授权”按钮,打开头像,昵称等信息的授权</text
 			>
 		</view>
 		<view class="login-form">
-			<button
-				class="login-btn use"
-				type="primary"
-				size="small"
-				lang="zh_CN"
-				open-type="getUserInfo"
-				@getuserinfo="getUserInfo"
-			>
-				微信授权
+			<button class="login-btn use" 
+					type="primary" 
+					open-type="getUserInfo" 
+					size="small" 
+					@click="getUserProfile" 
+					lang="zh_CN">
+					微信授权
 			</button>
 			<view class="login-btn back" @tap="undGetuserinfo">取消</view>
 		</view>
@@ -32,6 +30,7 @@ import wxLogin from '@/common/config/wxLogin.js'
 export default {
 	data() {
 		return {
+			StaticUrl:this.$Static,
 			nvabarData: {
 				//顶部自定义导航
 				showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
@@ -56,73 +55,77 @@ export default {
 	},
 	methods: {
 		...mapMutations(['wxLogin']),
-		getUserProfile() {
-			const _that = this
+		getUserProfile(){
+			const self = this
 			// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
 			wx.getUserProfile({
-				desc: '用于完善会员资料',
+				desc: '采美采购商城小程序获取您的信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
 				success(res) {
-					console.log(res)
-					console.log('新API', res)
-					_that.wxLogin(res.userInfo)
-					// _that.$store.commit('wxLogin',e.detail.userInfo)
+					console.log('新API',res)	
+					self.wxLogin(res.userInfo)		
 					uni.login({
 						provider: 'weixin',
 						scopes: 'auth_user',
-						success() {
-							_that.checkedUser()
+						success(res) {
+							self.WxGetUserInfo()
 						},
 						fail(err) {
-							_that.$util.msg(err, 2000)
+							self.$util.msg(err, 2000)
 						}
 					})
 				},
 				fail() {
-					_that.$util.msg('授权失败', 2000)
+					self.$util.msg('授权失败', 2000)
 				}
 			})
 		},
-		getUserInfo(e) {
-			const _that = this
-			if (e.detail.userInfo) {
-				// 缓存用户授权状态
-				this.wxLogin(e.detail.userInfo)
-				uni.login({
-					provider: 'weixin',
-					scopes: 'auth_user',
-					success() {
-						_that.checkedUser()
-					},
-					fail(err) {
-						_that.$util.msg(err, 2000)
-					}
-				})
-			} else {
-				console.log('授权失败!')
-			}
+		Getuserinfo: function (e) {//微信授权(暂时弃用)
+		    if (e.detail.userInfo) {
+				this.WxGetUserInfo()
+		    }else{
+				this.$util.msg('授权失败',2000)
+		    }
+		 },
+		undGetuserinfo(){
+			this.hanldBackFn()
 		},
-		undGetuserinfo() {
-			uni.navigateBack({ delta: 1 })
+		hanldNavigateBack(){
+			this.hanldBackFn()
 		},
-		// 用户验证
-		async checkedUser() {
-			const wechatCode = await authorize.getCode('weixin')
-			// 用户是否填写了邀请码
-			this.UserService.userInfoLogin({ code: wechatCode })
-				.then(res => {
-					console.log('授权登录成功')
-					uni.reLaunch({
-						url: '/pages/index/index'
-					})
-				})
-				.catch(error => {
-					console.log('游客登录')
-					// 缓存游客openid
-					uni.setStorageSync('openid', error.data.openid)
-					uni.reLaunch({
-						url: '/pages/login/login'
-					})
-				})
+		hanldBackFn(){
+			switch(this.authorizeType){
+				case '0':
+					this.$api.switchTabTo('/pages/tabBar/home/index')
+					break;
+				default:
+					uni.navigateBack({delta: 1})
+			}
+		},
+		WxGetUserInfo(){
+			let self = this
+			wx.getUserInfo({
+				success: res => {
+					wxLogin.wxLoginAuthorize()
+					switch(self.authorizeType){
+						case '0':
+							self.$api.switchTabTo('/pages/tabBar/home/index')
+							break;
+						case '1':
+							self.$api.navigateTo('/pages/login/login')
+							break;
+						case '2':
+							self.$api.navigateTo('/pages/login/register')
+							break;
+						case '3':
+							self.$api.navigateTo('/pages/login/logincode')
+							break;
+						default:
+							setTimeout(()=>{
+								uni.navigateBack({delta: 1});
+							},2000)
+					}
+				}
+			})
 		}
 	}
 }
@@ -146,10 +149,9 @@ export default {
 		height: auto;
 		padding: 80rpx 0 0 0;
 		.logo {
-			width: 152rpx;
-			height: 152rpx;
+			width: 200rpx;
+			height: 200rpx;
 			display: block;
-			border-radius: 50%;
 		}
 		.logo-text {
 			font-size: $font-size-40;
@@ -174,7 +176,7 @@ export default {
 		align-items: center;
 		margin: 0 auto;
 		.login-btn {
-			width: 600rpx;
+			width: 550rpx;
 			height: 90rpx;
 			border-radius: 45rpx;
 			font-size: $font-size-32;
@@ -186,10 +188,10 @@ export default {
 			flex-direction: column;
 			align-items: center;
 			&.back {
-				height: 76rpx;
-				background: #ffffff;
-				border: 1px solid #666;
-				color: #666;
+				height: 80rpx;
+				background: #e1e1e1;
+				border: 1px solid #FFFFFF;
+				color: #FFFFFF;
 				margin-top: 30rpx;
 			}
 		}

+ 1576 - 1626
pages/goods/product.vue

@@ -1,1926 +1,1876 @@
 <template>
-	<view class="product" style="padding-bottom: 30rpx;">
-		<view class="product-topnav" v-if="isNavbarFiexd" :class="navbarFiexd">
-			<!-- 导航栏 -->
-			<view class="navbar">
-				<view
-					class="nav-item tui-skeleton-fillet"
-					:class="{ current: tabCurrentIndex === 0 }"
-					@click="tabClick(0)"
-				>
-					<text>商品</text> <text class="line"></text>
-				</view>
-				<view
-					class="nav-item tui-skeleton-fillet"
-					:class="{ current: tabCurrentIndex === 1 }"
-					@click="tabClick(1)"
-				>
-					<text>详情</text> <text class="line"></text>
-				</view>
-				<view
-					class="nav-item tui-skeleton-fillet"
-					v-if="product.productDetail.orderInfo || product.productDetail.serviceInfo"
-					:class="{ current: tabCurrentIndex === 2 }"
-					@click="tabClick(2)"
-				>
-					<text>服务项目</text> <text class="line"></text>
+	<view class="product" :style="{paddingBottom: userIdentity==1 && userIdentity == 3 ? '0rpx' :'188rpx',paddingTop:CustomBar+'px'}">
+		<custom-p   v-if="isHeaderPoduct"
+					:systeminfo='systeminfo' 
+					:navbar-data='nvabarData' 
+					:headerBtnPosi ="headerBtnPosi" 
+					:headerColor="headerColor" 
+					:type="isShareType"
+					:page='backPage'>
+		</custom-p>
+		<view class="product-topnav" v-if='isNavbarFiexd' :class="navbarFiexd" :style="{top:CustomBar +'px'}">
+			<view class="search-input">
+				<view class="gosearch-btn" :class="navbarFiexd" @click="this.$api.navigateTo(clickPath)">
+					<view class="search-icon">
+						<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+					</view>
+					<view class="search-text">搜索商品/项目仪器</view>
 				</view>
 			</view>
+			<view class="navbar">
+				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 0 }" @click="tabClick(0)">
+					<text>详情</text>
+					<text class="line"></text>
+				</view>
+				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 1 }" @click="tabClick(1)">
+					<text>服务项目</text>
+					<text class="line"></text>
+				</view>	
+				<view class="nav-item tui-skeleton-fillet" :class="{ current: tabCurrentIndex === 2 }" @click="tabClick(2)">
+					<text>推荐</text>
+					<text class="line"></text>
+				</view>	
+			</view>	
 		</view>
-		<tui-skeleton
-			v-if="skeletonShow"
-			backgroundColor="#fafafa"
-			borderRadius="10rpx"
-			:isLoading="true"
-			:loadingType="5"
-		></tui-skeleton>
-		<template v-else>
-			<!-- 如果商品下架 -->
+		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
+		<template v-else >
 			<view class="cart-content empty" v-if="isInvalid">
-				<view class="empty-container">
-					<image
-						class="empty-container-image"
-						:src="productNoneImage"
-						mode="aspectFit"
-					></image>
+				<view  class="empty-container">
+					<image class="empty-container-image" :src="productNoneImage" mode="aspectFit"></image>
 					<text class="error-text">商品已失效,去商城逛逛别的吧~</text>
-					<view class="login-btn" @click="goIndex">去商城</view>
+					<view class="login-btn"  @click="goIndex">去商城</view>
 				</view>
 			</view>
 			<view class="container-product tui-skeleton" v-else>
-				<!-- 锚点 1 -->
-				<view class="container-product-main product-details0">
+				<view class="container-product-main">
 					<view class="product-top">
-						<!-- 轮播图 -->
 						<view class="banner-section">
-							<uni-swiper-dot
-								:info="productImage"
-								:current="current"
-								field="content"
-								:mode="mode"
-							>
-								<swiper
-									class="banner tui-banner tui-skeleton-rect"
-									@change="swiperChange"
-									:duration="800"
-									:autoplay="false"
-									:circular="true"
-								>
-									<swiper-item
-										v-for="(item, index) in productImage"
-										:key="index"
-										class="banner-item"
-									>
-										<image
-											:src="item"
-											@click="previewImg(index)"
-											class="product-img"
-										/>
+							<uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode" >
+								<swiper class="banner tui-banner tui-skeleton-rect"  @change="swiperChange" :duration='800' :autoplay="false" :circular="true" >
+									<swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item"> 
+										<image :src="item" @click="previewImg(index)" class="product-img" />
 									</swiper-item>
 								</swiper>
 								<view class="swiper__dots-box">
-									<tui-tag
-										padding="12rpx 24rpx"
-										type="translucent"
-										shape="circleLeft"
-										size="32rpx"
-										:scaleMultiple="0.82"
-										originRight
-										>{{ current + 1 }}/{{ productImage.length }}</tui-tag
-									>
+									<tui-tag padding="12rpx 24rpx" type="translucent" shape="circleLeft" size="32rpx" :scaleMultiple="0.82" originRight>{{ current + 1 }}/{{ productImage.length }}</tui-tag>
 								</view>
 							</uni-swiper-dot>
 						</view>
 						<view class="product-wrap clearfix">
 							<view class="wrap-top" :class="goodsData.isNoneDisabled ? 'none' : ''">
 								<view class="wrap-top-price">
-									<!-- 价格 -->
-									<cm-price
-										v-if="isRequest"
-										:product="product"
-										:userIdentity="userIdentity"
-										:shopID="shopID"
-										:promotion="product.promotion"
-										:ladderPriceList="ladderPriceList"
-									/>
+									<cm-price v-if="isRequest"
+											  :product="product"
+											  :userIdentity="userIdentity"
+											  :shopID= "shopID"
+											  :promotions="product.promotions"
+											  :ladderPriceList="ladderPriceList"/>
 								</view>
 								<view class="p-title tui-skeleton-fillet">
-									<!-- 美博会 -->
-									<view class="mclap-tag" v-if="product.beautyActFlag == '1'"
-										>美博会</view
-									>
-									<view
-										class="p-title-name"
-										:class="product.beautyActFlag == '1' ? 'indent' : ''"
-									>
-										{{
-											product.productName == undefined
-												? ''
-												: product.productName
-										}}
-									</view>
-									<!-- 分享 -->
-									<button
-										open-type="share"
-										class="p-title-share tui-share-position"
-										@tap="onShare"
-									>
-										<view class=""
-											><text class="iconfont icon-fenxiang"></text
-										></view>
+									<view class="mclap-tag" v-if="product.beautyActFlag == '1'">美博会</view>
+									<view class="p-title-name" :class="product.beautyActFlag == '1' ? 'indent' : ''"> {{product.name == undefined ? '' : product.name}} </view>
+									<button open-type="share" class="p-title-share tui-share-position" @tap="onShare">
+										<view class=""><text class="iconfont icon-fenxiang1"></text></view>
 										<view class="">分享</view>
 									</button>
 								</view>
+								<view class="wrap-label" v-if="product.tagsList.length>0">
+									<view class="label-a tui-skeleton-fillet" v-for="(label,index) in  product.tagsList" :key="index">{{label}}</view>
+								</view>
+								<view class="product-seve">
+									<text class="label">采美承诺:</text>
+									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">无忧退货</text></text>
+									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">快速退款</text></text>
+									<text class="iconfont icon-dui tui-skeleton-rect"><text class="text">正品保证</text></text>
+								</view>
+								<view class="productRemarks"  v-if="product.productRemarks!=''&&product.productRemarks!=null">
+									备注:{{product.productRemarks}}
+								</view>
 							</view>
-							<!-- 产品标签 -->
-							<view class="wrap-label" v-if="product.tagsList.length > 0">
-								<view
-									class="label-a tui-skeleton-fillet"
-									v-for="(label, index) in product.tagsList"
-									:key="index"
-									>{{ label }}</view
-								>
-							</view>
-							<!-- 承诺 -->
-							<view class="product-seve">
-								<text class="iconfont icon-duigou tui-skeleton-rect">
-									<text class="text">无忧退货</text>
-								</text>
-								<text class="iconfont icon-duigou tui-skeleton-rect"
-									><text class="text">快速退款</text></text
-								>
-								<text class="iconfont icon-duigou tui-skeleton-rect"
-									><text class="text">正品保证</text></text
-								>
-							</view>
-							<!-- 备注信息 -->
-							<view
-								class="productRemarks"
-								v-if="
-									product.productRemark != '' && product.productRemark != null
-								"
-							>
-								备注:{{ product.productRemark }}
-							</view>
-						</view>
+						</view>			
 					</view>
-					<view class="product-details ">
-						<view class="product-item-none" v-if="goodsData.isNoneDisabled">
-							<image class="none-image" src="/static/ws/product_off.png" mode=""></image>
-							<view class="none-text"
-								>此商品已{{ goodsData.disabledText }}</view
-							>
-						</view>
-						<!-- 选择商品参数按钮 -->
-						<view
-							class="product-parameter"
-							@click="showPopup"
-							v-if="!goodsData.isNoneDisabled"
-						>
-							<text class="title">参数:</text>
-							<text class="name">品牌 起订量 分类...</text>
-							<text class="iconfont icon-chakangengduo"></text>
+					<view class="product-item-none" v-if="goodsData.isNoneDisabled">
+						<image class="none-image" :src="productNoneImage" mode=""></image>
+						<view class="none-text">此商品已{{goodsData.disabledText}},请浏览以下推荐商品~</view>
+					</view>
+					<view class="product-parameter" @click="showPopup" v-if="!goodsData.isNoneDisabled">
+						<text class="title">参数:</text>
+						<text class="name">品牌  起订量  分类...</text>
+						<text class="iconfont icon-xiayibu"></text>
+					</view>
+					<view class="product-supplier" v-if="isNoneSupplier" @click="goSupplier">
+						<view class="logo"><img :src="shop.logo ? shop.logo :'https://static.caimei365.com/app/img/icon/icon-shoplogo.png'" alt=""></view>
+						<view class="main">
+							<view class="name">{{shop.name}}</view>
+							<view class="massgs">
+								<view class="label">满意度:</view>
+								<view class="p-stars">
+									<uni-stars :stars="6" :iconClass="iconClass" :iconColor="iconColor" :fontSize="36" :widthInfo="176"></uni-stars>
+								</view>
+								<view class="acount">
+									<text>{{ shop.normalNum }}</text>件商品
+								</view>
+							</view>
 						</view>
+						<view class="right"><text class="iconfont icon-xiayibu"></text></view>
 					</view>
 				</view>
-				<!-- 锚点 2 -->
-				<view class="product-details1"> </view>
-				<view class="product-details">
+				<view class="product-details product-details0">
 					<!-- 商品详情 -->
-					<view class="title"> <view class="title-tab">商品详情</view> </view>
+					<view class="title">
+						<view class="title-tab">商品详情</view>
+					</view>
 					<view class="content tui-banner product-rich-text tui-skeleton-rect">
-						<parser
-							:html="html"
-							:img-mode="widthFix"
-							v-if="!goodsData.isNoneDisabled"
-						></parser>
+						<parser :html="html" :img-mode="widthFix" v-if="!goodsData.isNoneDisabled"></parser>
 						<view class="product-rich-text-none" v-else>暂无商品信息</view>
 					</view>
-				</view>
-				<!-- 锚点 3 -->
-				<view
-					class="product-details service product-details2"
-					v-if="product.productDetail.orderInfo || product.productDetail.serviceInfo"
-				>
+				</view>	
+				<view class="product-details service product-details1">
 					<!-- 服务项目 -->
-					<view class="title"> <view class="title-tab">服务项目</view> </view>
-					<view class="content service">
+					<view class="title">
+						<view class="title-tab">服务项目</view>
+					</view>
+					<view class="content service" v-if="product.productDetail.orderInfo || product.productDetail.serviceInfo">
 						<cm-service :product="product.productDetail" v-if="isRequest"></cm-service>
 					</view>
-					<!-- <view class="content-none" v-else> <text>暂无服务项目</text> </view> -->
-				</view>
+					<view class="content-none"  v-else>
+						<text>暂无服务项目</text>
+					</view>
+				</view>	
+				<view class="product-details recommend product-details2">
+					<!-- 相关推荐 -->
+					<view class="title">
+						<view class="title-tab">相关推荐</view>
+					</view>
+					<view class="content hot">
+						<recommend :query-productid="product.productID" :query-type="product.recommendType" v-if="isRequest"></recommend>
+					</view>
+				</view>	
 				<!-- 商品参数 -->
 				<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
 					<view class="tui-popup-box clearfix">
 						<view class="title">商品参数</view>
 						<div class="tui-popup-main">
-							<scroll-view class="tui-popup-scroll" scroll-y="true">
+							<scroll-view class="tui-popup-scroll"  scroll-y="true">
 								<view class="content-tr">
 									<view class="content-td">起订量</view>
-									<view class="content-th">{{ product.minBuyNumber }}</view>
+									<view class="content-th">{{product.minBuyNumber}}</view>
 								</view>
 								<view class="content-tr">
 									<view class="content-td">品牌</view>
-									<view class="content-th">{{
-										product.brandName == null ? '其他' : product.brandName
-									}}</view>
+									<view class="content-th">{{product.brandName == null? '其他' : product.brandName}}</view>
 								</view>
 								<view class="content-tr">
 									<view class="content-td">分类</view>
-									<view class="content-th">{{
-										product.typeName == null ? '暂无' : product.typeName
-									}}</view>
+									<view class="content-th">{{product.typeName == null? '暂无' : product.typeName}}</view>
 								</view>
 								<view class="content-tr">
-									<view class="content-td">包装规格</view>
-									<view class="content-th">{{ product.unit }}</view>
+									<view class="content-td">包装规格</view> 
+									<view class="content-th">{{product.unit}}</view>
 								</view>
 								<view class="content-tr">
 									<view class="content-td">商品编码</view>
-									<view class="content-th">{{ product.productCode }}</view>
+									<view class="content-th">{{product.productCode}}</view>
 								</view>
 								<view class="content-tr">
 									<view class="content-td">库存</view>
-									<view class="content-th">{{ product.stock }}</view>
+									<view class="content-th">{{product.stock}}</view>
 								</view>
-								<view
-									class="content-tr"
-									v-if="product.parametersList.length > 0"
-									v-for="(item, index) in product.parametersList"
-									:key="index"
-								>
-									<view class="content-td">{{ item.paramsName }}</view>
-									<view class="content-th">{{ item.paramsContent }}</view>
+								<view class="content-tr" v-if="product.parametersList.length>0" v-for="(item, index) in product.parametersList" :key="index">
+									<view class="content-td">{{item.paramsName}}</view>
+									<view class="content-th">{{item.paramsContent}}</view>
 								</view>
 							</scroll-view>
 						</div>
-						<view
-							class="tui-right-flex tui-popup-btn"
-							:style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }"
-						>
+						<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom :isIphoneX ? '68rpx' : '0rpx' }">
 							<view class="tui-flex-1">
 								<view class="tui-button" @click="hidePopup()">收起</view>
 							</view>
 						</view>
-					</view>
-				</tui-bottom-popup>
+					</view>	
+				</tui-bottom-popup>	
 				<!-- 底部按钮 -->
+				<view class="menu" v-if="isShowButton">
+					<view class="bottom-btn" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
+						<view class="bottom-le">
+							<view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
+								<image src="../../static/icon-home-active@3x.png"></image>
+								<text>首页</text>
+							</view>
+							<view class="item-bt" @click="goSupplier">
+								<image src="../../static/icon-shop@3x.png"></image>
+								<text>店铺</text>
+							</view>
+							<view class="item-bt" @click="buyProductCart()">
+								<image src="https://static.caimei365.com/app/img/icon/icon-cart-active@3x.png"></image>
+								<text>购物车</text>
+								<text  	v-if="hasLogin && goodsData.cartCount>0"
+										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
+										:class="[goodsData.cartCount < 10 ? 'goleft':'']">
+										{{ goodsData.cartCount >= 100 ? '99+': goodsData.cartCount}}
+								</text>
+								<view class="animation-num"  :class="isAnimation ? 'animation' : 'restion'">+1</view>
+							</view>
+						</view>
+						<view class="bottom-ri">
+							<button  
+									:disabled="goodsData.disabled" 
+									class="btn btn-cart" 
+									:class="[goodsData.disabled ? 'disabled':'']"
+									@tap.stop="btnGetConfirm('add')">加入购物车</button>
+							<button  
+									:disabled="goodsData.disabled" 
+									class="btn btn-bay" 
+									:class="[goodsData.disabled ? 'disabled':'']"
+									@tap.stop="btnGetConfirm('buy')">立即购买</button>
+						</view>
+					</view>	
+				</view>
+				<!--底部选择模态层弹窗组件 -->	
+				<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
+					<!-- 遮罩层 -->
+					<view class="mask"></view>
+					<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-352rpx' : '-296rpx'}">
+						<view class="content">
+							<view class="layer-smimg">
+								<image :src="product.mainImage" mode=""></image>
+							</view>
+							<view class="layer-nunbox">
+								<view class="layer-nunbox-t" v-if="product.step === 2">
+									<view class="text">*该商品只能以起订量的整数倍购买</view>
+								</view>
+								<view class="layer-nunbox-t">
+									<view class="layer-nunbox-text">数量:</view>
+									<view class="number-box">
+										<view  class="iconfont icon-jianhao" :class="[isQuantity==true?'disabled':'']" @click="changeCountSub()"></view>
+										<input class="btn-input" type="number" v-model="number" maxlength='4'  @blur="changeNumber($event)">
+										<view  class="iconfont icon-jiahao"  :class="[isStock==true?'disabled':'']" @click="changeCountAdd()"></view>
+									</view>
+								</view>
+								<view class="layer-nunbox-b">
+									<view class="text">单价:
+										<text class="p sm">¥</text>
+										<text class="p bg">{{buyRetailPrice.toFixed(2)}}</text>
+									</view>
+								</view>
+							</view>
+						</view>
+						<view class="btn"><view class="button" @click.stop="btnConfirm">确定</view></view>
+					</view>
+				</view>
 				<!-- 侧边 -->
-				<scroll-top :isScrollTop="isScrollTop" :bottom="200" :hideContact="true"></scroll-top>
+				<scroll-top :isScrollTop="isScrollTop" :bottom="200"></scroll-top>
 			</view>
 		</template>
 	</view>
 </template>
 
 <script>
-import { mapState, mapMutations } from 'vuex'
-import customP from '@/components/cm-module/headerNavbar/header-poduct' //自定义导航
-import cmPrice from '@/components/cm-module/productDetails/cm-price.vue' //价格显示
-import cmAttributes from '@/components/cm-module/productDetails/cm-attributes.vue' //规格信息
-import parser from '@/components/jyf-Parser/index' //富文本处理
-import tuiSkeleton from '@/components/tui-skeleton/tui-skeleton'
-import recommend from '@/components/cm-module/productDetails/recommend' //相关推荐
-import cmParameter from '@/components/cm-module/productDetails/cm-parameter' //相关参数
-import cmService from '@/components/cm-module/productDetails/cm-service' //服务项目
-import authorize from '@/common/config/authorize.js'
-import wxLogin from '@/common/config/wxLogin.js'
-import { debounce } from '@/common/config/common.js'
-var isPreviewImg
-export default {
-	components: {
-		customP,
-		parser,
-		tuiSkeleton,
-		recommend,
-		cmPrice,
-		cmAttributes,
-		cmParameter,
-		cmService,
-	},
-	data() {
-		return {
-			clickPath: '/search/pages/search/search',
-			html: '<div style="text-align: center;color:#333333;">暂无内容</div>',
-			productNoneImage: 'https://static.caimei365.com/app/img/icon/icon-pnone.png',
-			mode: 'round',
-			iconClass: 'icon-aixin',
-			iconColor: '#ff9100',
-			specClass: '', //规格弹窗css类,控制开关动画
-			isBtnType: '',
-			isRequest: false,
-			isScrollTop: false,
-			current: 0,
-			shopId: 0,
-			isShareType: '',
-			isHeaderPoduct: false,
-			isNavbarFiexd: false,
-			navbarFiexd: 'none',
-			ladderPriceFlag: '',
-			ladderPriceList: '',
-			isInvalid: false,
-			isEvaluate: false,
-			isAnimation: false,
-			skeletonShow: true,
-			isQuantity: false,
-			isStock: false,
-			disabled: false,
-			isNoneDisabled: false,
-			tabCurrentIndex: 0,
-			userID: '',
-			shopID: '',
-			productID: 0,
-			userIdentity: 0, //用户类型
-			goodsData: {}, //自定义数据
-			shop: {}, //供应商信息
-			product: {}, //采美
-			productImage: [],
-			retailPrice: 0,
-			buyRetailPrice: 0,
-			buyRetailPriceStep: 1,
-			stock: 0,
-			number: 0,
-			minBuyNumber: 0,
-			productsList: [],
-			goodListData: [],
-			headerBtnPosi: this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
-			systeminfo: this.setSysteminfo(), //获取设备信息
-			isIphoneX: this.$store.state.isIphoneX,
-			windowHeight: '',
-			headerColor: false,
-			backPage: 1,
-			nvabarData: {
-				//顶部自定义导航
-				showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
-				title: '' // 导航栏 中间的标题
-			},
-			linkPath: '',
-			CustomBar: this.CustomBar, // 顶部导航栏高度
-			popupShow: false, //参数弹窗
-			tabSelectFlag: false,
-			sectionPropsArr: [],
-			scrollTopArray: [],
-			sectionTopRangeArr: [],
-			winHeight: '',
-			isShowButton: true
-		}
-	},
-	onLoad(option) {
-		this.productID = option.id //获取商品ID
-		this.isShareType = option.type
-		this.linkPath = option.path
-		this.isHeaderPoduct = true
-		if (option.page == 2) {
-			this.backPage = option.page
-		}
-		if (this.isShareType == 'share') {
-			this.initData()
-			authorize.getSetting().then(wxResponse => {
-				// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
-				if (wxResponse == 1) {
+	import { mapState,mapMutations } from 'vuex'
+	import customP from '@/components/cm-module/headerNavbar/header-poduct' 		 //自定义导航
+	import cmPrice from "@/components/cm-module/productDetails/cm-price.vue" //价格显示
+	import cmAttributes from "@/components/cm-module/productDetails/cm-attributes.vue" //规格信息
+	import parser from "@/components/jyf-Parser/index" //富文本处理
+	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
+	import recommend from "@/components/cm-module/productDetails/recommend" //相关推荐
+	import cmParameter from "@/components/cm-module/productDetails/cm-parameter" //相关参数
+	import cmService from "@/components/cm-module/productDetails/cm-service" //服务项目
+	import authorize from '@/common/config/authorize.js'
+	import wxLogin from "@/common/config/wxLogin.js"
+	import { debounce } from '@/common/config/common.js'
+	var isPreviewImg;
+	export default{
+		components:{
+			customP,
+			parser,
+			tuiSkeleton,
+			recommend,
+			cmPrice,
+			cmAttributes,
+			cmParameter,
+			cmService
+		},
+		data(){
+			return{			
+				clickPath:'/search/pages/search/search',
+				html:'<div style="text-align: center;color:#333333;">暂无内容</div>',
+				productNoneImage:'https://static.caimei365.com/app/img/icon/icon-pnone.png',
+				mode:'round',
+				iconClass:'icon-aixin',
+				iconColor:'#ff9100',
+				specClass: '',//规格弹窗css类,控制开关动画
+				isBtnType:'',
+				isRequest:false,
+				isScrollTop:false,
+				current:0,
+				shopId:0,
+				isShareType:'',
+				isHeaderPoduct:false,
+				isNavbarFiexd:false,
+				navbarFiexd:'none',
+				ladderPriceFlag:'',
+				ladderPriceList:'',
+				isInvalid:false,
+				isEvaluate:false,
+				isAnimation:false,
+				skeletonShow:true,
+				isQuantity:false,
+				isStock:false,
+				disabled:false,
+				isNoneDisabled:false,
+				tabCurrentIndex:0,
+				userID:'',
+				shopID:'',
+				productID:0,
+				userIdentity:0,//用户类型
+				goodsData:{},//自定义数据
+				shop:{},//供应商信息
+				product:{},//采美
+				productImage:[],
+				retailPrice:0,
+				buyRetailPrice:0,
+				buyRetailPriceStep:1,
+				stock:0,
+				number:0,
+				minBuyNumber:0,
+				productsList:[],
+				goodListData:[],
+				headerBtnPosi:	this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
+				systeminfo: this.setSysteminfo(),		 //获取设备信息
+				isIphoneX:this.$store.state.isIphoneX,
+				windowHeight: '',
+				headerColor:false,
+				backPage:1,
+				nvabarData: {							 //顶部自定义导航
+					showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
+					title: ''		// 导航栏 中间的标题
+				},
+				linkPath:'',
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				popupShow:false,//参数弹窗
+				tabSelectFlag:false,
+				sectionPropsArr: [],
+				scrollTopArray:[],
+				sectionTopRangeArr: [],
+				winHeight:'',
+				isShowButton:true,
+				isNoneSupplier:false
+			}
+		},
+		onLoad(option) {
+			this.productID = option.id;//获取商品ID
+			this.isShareType = option.type
+			this.linkPath = option.path
+			this.isHeaderPoduct = true
+			if(option.page == 2){
+				this.backPage = option.page
+			}
+			if(this.isShareType =='share'){
+				authorize.checkLogin()
+				.then(res => {
 					wxLogin.wxLoginAuthorize()
-				} else {
-					console.log(new Date() + '用户未授权微信信息')
-				}
-			})
-		} else {
-			this.$api
-				.getStorage()
-				.then(resolve => {
-					this.userID = resolve.userID ? resolve.userID : ''
-					this.userIdentity = resolve.userIdentity ? resolve.userIdentity : 0
-					this.shopID = resolve.shopID ? resolve.shopID : ''
-					if (
-						this.userIdentity == 0 ||
-						this.userIdentity == 2 ||
-						this.userIdentity == 4
-					) {
-						this.isShowButton = true
-					} else {
-						this.isShowButton = false
-					}
-					if (isPreviewImg) {
-						isPreviewImg = false
-						return
-					} else {
-						this.initData()
-					}
 				})
-				.catch(error => {
-					this.initData()
+				.catch(err => {
+					console.log(new Date +'用户未授权微信信息')
 				})
-		}
-		this.getWinHeight()
-		// this.goodsData.isNoneDisabled = true
-		// console.log(this.goodsData);
-	},
-	computed: {
-		...mapState(['hasLogin', 'isWxAuthorize', 'identity'])
-	},
-	onShareAppMessage() {
-		console.log(this.product)
-		return {
-			title: this.product.productName,
-			path: `/pages/goods/product?type=share&id=${this.product.productId}`,
-			imageUrl: `${this.productImage[0]}`
-		}
-	},
-	methods: {
-		initData() {
-			// 初始化商品详情查询
-			this.ProductService.queryProductDetils({
-				productId: this.productID
-			})
-				.then(response => {
+			}
+			this.getWinHeight()
+		},
+		computed: {
+			...mapState(['hasLogin','isWxAuthorize','identity'])
+		},
+		methods:{
+			initData(){// 初始化商品详情查询
+				this.ProductService.queryProductDetils({userId:this.userID,productID:this.productID,identity:this.identity}).then(response =>{	
 					this.skeletonShow = false
-					this.productImage = []
+					this.productImage=[];
 					this.shop = response.data.shop
 					this.shopId = response.data.shopID
 					this.product = response.data
 					//已删除/已冻结
-					if (this.product.validFlag === '0') {
+					if(this.product.validFlag === '0'){
 						this.isInvalid = true
 					}
-					this.ladderPriceFlag = this.product.ladderPriceFlag
-					this.html =
-						this.product.productDetail == null
-							? this.html
-							: this.$api.adaptRichTextImg(this.product.productDetail.detailInfo)
+					this.ladderPriceFlag = this.product.ladderPriceFlag;
+					this.html = this.product.productDetail == null ? this.html : this.$api.adaptRichTextImg(this.product.productDetail.detailInfo)
 					this.stock = this.product.stock
 					this.buyRetailPriceStep = this.product.step
 					this.number = this.product.minBuyNumber
-					this.minBuyNumber = this.product.minBuyNumber
+					this.minBuyNumber = this.product.minBuyNumber					
 					//处理商品图片列表
-					this.product.imageList.forEach(item => {
-						this.productImage.push(item.image)
+					this.product.imageList.forEach(item =>{
+						this.productImage.push(item.image);
 					})
 					//购物车数量
 					this.goodsData.cartCount = this.product.productCount
 					//处理阶梯价格
-					if (this.product.ladderPriceList != null) {
-						this.ladderPriceList = this.product.ladderPriceList
+					if(this.product.ladderPriceList!=null){
+						this.ladderPriceList = this.product.ladderPriceList;
 					}
 					//拆分金额并转千分位格式显示
-					if (this.product.retailPrice != null) {
-						this.retailPrice = this.product.retailPrice.toFixed(2)
-						this.buyRetailPrice = this.product.retailPrice
+					if(this.product.retailPrice!=null){
+						this.retailPrice = this.product.retailPrice.toFixed(2);
+						this.buyRetailPrice = this.product.retailPrice;
 					}
 					//处理下架商品和售罄商品
-					if (
-						this.product.validFlag == '3' ||
-						this.product.validFlag == '10' ||
-						this.stock == 0||
-						this.product.status == 0
-					) {
+					if(this.product.validFlag =='3' || this.product.validFlag =='10' || this.stock == 0 ){
 						this.disabled = true
 						this.isNoneDisabled = true
-					} else {
+					}else{
 						this.disabled = false
 						this.isNoneDisabled = false
 						this.goodsData.disabledText = ''
 					}
-					if (this.product.price1TextFlag == '1') {
+					if(this.product.price1TextFlag == "1"){
 						this.disabled = true
 					}
-					if (this.product.price1TextFlag == '2') {
-						if (this.userIdentity == 4) {
+					if(this.product.price1TextFlag == "2"){
+						if(this.userIdentity == 4){	
 							this.disabled = true
-						} else {
+						}else{
 							this.disabled = false
 						}
 					}
 					this.goodsData.disabled = this.disabled
 					this.goodsData.isNoneDisabled = this.isNoneDisabled
-					if(this.product.status == 0){
+					if(this.product.validFlag =='3'){
 						this.goodsData.disabledText = '下架'
 					}
-					if (this.product.validFlag == '10') {
+					if(this.product.validFlag =='10'){
 						this.goodsData.disabledText = '停售'
 					}
-					if (this.stock == 0) {
+					if(this.stock == 0){
 						this.goodsData.disabledText = '售罄'
 					}
-					setTimeout(() => {
-						this.getSectionProps()
-					}, 2000)
+					setTimeout(()=>{
+						this.getSectionProps();
+					},2000)
 					this.isRequest = true
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
 				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-					setTimeout(() => {
-						uni.navigateBack({
-							delta: 1
-						})
-					}, 1000)
+			},
+			swiperChange(e) {//顶部商品图片切换
+				const index = e.detail.current;
+				this.current = index;
+			},
+			previewImg (index) {//顶部商品图片预览
+				isPreviewImg = true
+				let previewUrls = this.productImage
+				uni.previewImage({
+					current: index, 	//图片索引
+					urls: previewUrls, //必须是http图片,本地图片无效
+					longPressActions:''
 				})
-		},
-		swiperChange(e) {
-			//顶部商品图片切换
-			const index = e.detail.current
-			this.current = index
-		},
-		previewImg(index) {
-			//顶部商品图片预览
-			isPreviewImg = true
-			let previewUrls = this.productImage
-			uni.previewImage({
-				current: index, //图片索引
-				urls: previewUrls, //必须是http图片,本地图片无效
-				longPressActions: ''
-			})
-		},
-		tabClick(index) {
-			//商品详情&&供应商信息tab切换
-			this.tabSelectFlag = true
-			this.tabCurrentIndex = index
-			let classIndex = '.product-details' + index
-			uni.createSelectorQuery()
-				.select('.container-product')
-				.boundingClientRect(data => {
-					//最外层盒子节点
-					uni.createSelectorQuery()
-						.select(classIndex)
-						.boundingClientRect(res => {
-							//最外层盒子节点
-							uni.pageScrollTo({
-								duration: 300, //过渡时间必须为0,uniapp bug,否则运行到手机会报错
-								scrollTop: res.top - data.top - 40 //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
-							})
-							setTimeout(() => {
-								this.tabSelectFlag = false
-							}, 500)
-						})
-						.exec()
+			},
+			tabClick(index) {//商品详情&&供应商信息tab切换
+				this.tabSelectFlag = true
+				this.tabCurrentIndex = index;
+				let classIndex = '.product-details'+index;
+				uni.createSelectorQuery().select('.container-product-main').boundingClientRect((data)=>{//最外层盒子节点
+				  uni.createSelectorQuery().select(classIndex).boundingClientRect((res)=>{//最外层盒子节点
+				    uni.pageScrollTo({
+				      duration:300,//过渡时间必须为0,uniapp bug,否则运行到手机会报错
+				      scrollTop:res.top - data.top - 150,//滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
+				    })
+						setTimeout(()=>{
+							this.tabSelectFlag = false;
+						},500)
+				  }).exec()
+				}).exec()
+			},
+			handleContact(e){//跳转小程序客服
+
+			},
+			buyProductCart(){//底部购物车按钮点击
+				authorize.checkLogin()
+				.then(res => {
+					if(this.hasLogin){
+						this.$api.navigateTo('/pages/goods/cart')
+					}else{					
+						this.$api.navigateTo('/pages/login/login?type=1')
+					}
 				})
-				.exec()
-		},
-		handleContact(e) {
-			//跳转小程序客服
-		},
-		processActivityPrice() {
-			//单独处理活动价格和阶梯价格
-			if (
-				(this.ladderPriceFlag == '0' && this.product.actStatus == 0) ||
-				this.product.actStatus == 1
-			) {
-				this.buyRetailPrice = this.product.retailPrice
-			} else {
-				this.ladderPriceList.forEach((item, index) => {
-					if (this.number >= item.buyNum) {
-						this.buyRetailPrice = item.buyPrice
+				.catch(err => {
+					this.$api.navigateTo('/pages/authorization/authorization?type=1')
+				})
+			},
+			btnGetConfirm(type){//加入购物车&&立即购买点击
+				authorize.checkLogin()
+				.then(res => {
+					if(this.hasLogin){
+						this.showSpec(type);
+					}else{
+						this.$api.navigateTo('/pages/login/login?type=1')
 					}
 				})
-			}
-		},
-		showSpec(type) {
-			//显示选择数量确认弹窗
-			this.isBtnType = type
-			this.specClass = 'show'
-		},
-		hideSpec() {
-			//关闭选择数量确认弹窗
-			this.specClass = 'hide'
-			setTimeout(() => {
-				this.specClass = 'none'
-			}, 200)
-		},
-		btnConfirm() {
-			//加入购物车&&立即购买跳转订单页并关闭弹窗
-			if (this.isBtnType == 'add') {
-				this.getAddProductCart()
-			} else {
-				this.toConfirmation()
-			}
-		},
-		toConfirmation() {
-			//跳转确认订单页面
-			this.specClass = 'hide'
-			let productStp = {
-				allPrice: this.number * this.buyRetailPrice,
-				allCount: this.number,
-				productID: this.product.productID,
-				productCount: this.number
-			}
-			this.$api.navigateTo(
-				`/pages/user/order/create-order?type=prodcut&data=${JSON.stringify({
-					data: productStp
-				})}`
-			)
-			setTimeout(() => {
-				this.specClass = 'none'
-			}, 200)
-		},
-		getAddProductCart() {
-			//增加购物车成功和toast弹窗提示成功
-			this.ProductService.shoppingAddCart({
-				productID: this.productID,
-				userID: this.userID,
-				productCount: this.number
-			})
-				.then(response => {
-					this.specClass = 'hide'
-					this.$util.msg('加入购物车成功', 1500, true, 'success')
-					this.isAnimation = true
-					setTimeout(() => {
-						this.specClass = 'none'
-					}, 200)
-					setTimeout(() => {
-						this.isAnimation = false
-					}, 2000)
-					this.goodsData.cartCount = response.data
+				.catch(err => {
+					this.$api.navigateTo('/pages/authorization/authorization?type=1')
 				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
+			},	
+			changeCountAdd(){//popup弹窗数量增加按钮
+				if(this.buyRetailPriceStep == 2){
+					this.number+=this.minBuyNumber
+				}else{
+					this.number++
+				}
+				this.processActivityPrice()
+			},
+			changeCountSub(){//popup弹窗数量减按钮
+				if(this.number<=this.minBuyNumber){
+					this.number= this.minBuyNumber
+					this.isQuantity =true
+					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
+					return
+				}else{
+					if(this.buyRetailPriceStep == 2){
+						this.number-=this.minBuyNumber
+					}else{
+						this.number--
+					}
+					this.processActivityPrice()
+					this.isQuantity =false
+				}
+			 },
+			changeNumber(e){
+				let _value = e.detail.value;
+				if(!this.$api.isNumber(_value)){
+					this.number = this.minBuyNumber
+				}else if(_value < this.minBuyNumber){	
+					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
+					this.number = this.minBuyNumber
+				}else if( _value % this.minBuyNumber !=0 ){
+					this.$util.msg(`购买量必须为起订量的整数倍`,2000);
+					this.number = this.minBuyNumber
+				}else{
+					this.number = e.detail.value
+				}
+				this.processActivityPrice()
+			},
+			processActivityPrice(){//单独处理活动价格和阶梯价格
+				if(this.ladderPriceFlag == '0' && this.product.actStatus == 0 || this.product.actStatus == 1){
+					this.buyRetailPrice = this.product.retailPrice
+				}else{
+					this.ladderPriceList.forEach((item,index)=>{
+						if(this.number>=item.buyNum){
+							this.buyRetailPrice = item.buyPrice
+						}
+					})
+				}
+			},
+			showSpec(type) {//显示选择数量确认弹窗
+				this.isBtnType = type
+				this.specClass = 'show';
+			},
+			hideSpec() {//关闭选择数量确认弹窗
+				this.specClass = 'hide';
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			btnConfirm() {//加入购物车&&立即购买跳转订单页并关闭弹窗
+				if(this.isBtnType == 'add'){				
+					this.getAddProductCart()				
+				}else{
+					this.toConfirmation()
+				}
+			},
+			toConfirmation(){//跳转确认订单页面
+				this.specClass = 'hide';
+				let productStp ={
+						allPrice:this.number*this.buyRetailPrice,
+						allCount:this.number,
+						productID:this.product.productID,
+						productCount:this.number
+				}	
+				this.$api.navigateTo(`/pages/user/order/create-order?type=prodcut&data=${JSON.stringify({data:productStp})}`)
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			getAddProductCart(){//增加购物车成功和toast弹窗提示成功	
+				this.ProductService.shoppingAddCart({productID:this.productID,userID:this.userID,productCount:this.number}).then(response => {
+					this.specClass = 'hide';
+					this.$util.msg('加入购物车成功',1500,true,'success')
+					this.isAnimation = true
+					setTimeout(() => {this.specClass = 'none'}, 200)
+					setTimeout(() => {this.isAnimation = false},2000)
+					this.goodsData.cartCount = response.data;
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
 				})
-		},
-		navToLogin() {
-			authorize.getSetting().then(wxResponse => {
-				// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
-				if (wxResponse == 1) {
-					this.$store.commit('setLoginType', 8)
-					this.$store.commit('setLoginProductId', this.productID)
+			},
+			navToLogin(){
+				authorize.checkLogin()
+				.then(res => {
+					this.$store.commit('setLoginType',8)
+					this.$store.commit('setLoginProductId',this.productID)
 					this.$api.navigateTo(`/pages/login/login?id=${this.productID}`)
-				} else {
+				})
+				.catch(err => {
 					this.$api.navigateTo('/pages/authorization/authorization?type=1')
+				})
+			},
+			setHeaderBtnPosi(){
+				// 获得胶囊按钮位置信息
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
+				return headerBtnPosi
+			},
+			setSysteminfo(){
+				let systeminfo;
+				uni.getSystemInfo({ // 获取设备信息
+					success: (res) => {
+						systeminfo = res
+					},
+				})
+				return systeminfo
+			},
+			goIndex(){//商城首页
+				uni.switchTab({
+				    url: '/pages/tabBar/home/index'
+				});
+			},
+			goSupplier(){//跳供应商资料页
+				this.$api.navigateTo('/supplier/pages/user/my-shop?shopId='+this.shopId)
+			},
+			discard(){
+				//丢弃
+			},
+			onShare(res){//分享转发
+				if (res.from === 'button') {
+			      // 来自页面内转发按钮
+			    }
+				return {
+				  title: `${this.product.name}`,
+				  path: `pages/goods/product?type=share&id=${this.productID}`,
+				  imageUrl:`${this.productImage[0]}`
 				}
-			})
-		},
-		setHeaderBtnPosi() {
-			// 获得胶囊按钮位置信息
-			let headerBtnPosi = uni.getMenuButtonBoundingClientRect()
-			return headerBtnPosi
-		},
-		setSysteminfo() {
-			let systeminfo
-			uni.getSystemInfo({
-				// 获取设备信息
-				success: res => {
-					systeminfo = res
-				}
-			})
-			return systeminfo
-		},
-		goIndex() {
-			//商城首页
-			uni.switchTab({
-				url: '/pages/tabBar/home/index'
-			})
-		},
-		goSupplier() {
-			//跳供应商资料页
-			this.$api.navigateTo('/supplier/pages/user/my-shop?shopId=' + this.shopId)
-		},
-		discard() {
-			//丢弃
-		},
-		onShare(res) {
-			//分享转发
-			if (res.from === 'button') {
-				// 来自页面内转发按钮
-			}
-			return {
-				title: this.product.productName,
-				path: `pages/goods/product?type=share&id=${this.productId}`,
-				imageUrl: `${this.productImage[0]}`
-			}
-		},
-		showPopup() {
-			this.popupShow = true
-		},
-		hidePopup() {
-			this.popupShow = false
-		},
-		getSectionProps() {
-			//获取每个tab对应区域的scrollTop值
-			let className = '.product-details',
-				sectionPropsArr = []
-			uni.createSelectorQuery()
-				.select('.container-product-main')
-				.boundingClientRect(data => {
-					//最外层盒子节点
-					uni.createSelectorQuery()
-						.selectAll(className)
-						.boundingClientRect(res => {
-							//最外层盒子节点
-							res.forEach((item, index) => {
-								sectionPropsArr.push({
-									className: `${className}${index}`,
-									scrollTop: item.top - data.top - 150
-								})
+			},
+			showPopup(){
+				this.popupShow = true
+			},
+			hidePopup(){
+				this.popupShow = false
+			},
+			getSectionProps() {//获取每个tab对应区域的scrollTop值
+				let className = '.product-details',
+					sectionPropsArr = [];
+				uni.createSelectorQuery().select('.container-product-main').boundingClientRect((data)=>{//最外层盒子节点
+				  uni.createSelectorQuery().selectAll(className).boundingClientRect((res)=>{//最外层盒子节点
+						res.forEach((item, index) => {
+							sectionPropsArr.push({
+								className: `${className}${index}`,
+								scrollTop: item.top - data.top - 150
 							})
-							this.sectionPropsArr = sectionPropsArr
-							this.sectionTopRangeArr = this.getSectionRange(sectionPropsArr)
 						})
-						.exec()
-				})
-				.exec()
-		},
-		getSectionRange(arr) {
-			// 获取每个tab对应区域的区间
-			let sectionScrollTopList = []
-			for (let i = 0; i < arr.length; i++) {
-				let thisScrollTop = arr[i].scrollTop
-				if (i < arr.length - 1) {
-					let nextScrollTop = arr[i + 1].scrollTop
-					if (i == 0) {
-						sectionScrollTopList.push(`0-${thisScrollTop}`)
-					} else if (i == arr.length - 1) {
-						sectionScrollTopList.push(
-							`${thisScrollTop}-${nextScrollTop - this.winHeight}`
-						)
+						this.sectionPropsArr = sectionPropsArr;
+						this.sectionTopRangeArr = this.getSectionRange(sectionPropsArr);
+				  }).exec()
+				}).exec()
+			},
+			getSectionRange(arr) {// 获取每个tab对应区域的区间
+				let sectionScrollTopList = [];
+				for(let i = 0; i < arr.length; i++) {
+					let thisScrollTop = arr[i].scrollTop;
+					if(i < arr.length - 1) {
+						let nextScrollTop = arr[i+1].scrollTop;
+						if(i == 0) {
+							sectionScrollTopList.push(`0-${thisScrollTop}`);
+						} else if(i == arr.length - 1){
+							sectionScrollTopList.push(`${thisScrollTop}-${nextScrollTop - this.winHeight}`);
+						} else {
+							sectionScrollTopList.push(`${thisScrollTop}-${nextScrollTop}`);
+						}
 					} else {
-						sectionScrollTopList.push(`${thisScrollTop}-${nextScrollTop}`)
+						sectionScrollTopList.push(`${thisScrollTop}-${thisScrollTop+500}`);
 					}
-				} else {
-					sectionScrollTopList.push(`${thisScrollTop}-${thisScrollTop + 500}`)
 				}
-			}
-			return sectionScrollTopList
-		},
-		activeTab: debounce(
-			(top, _this) => {
-				//当滑动时也能同步激活tab
-				const { sectionTopRangeArr } = _this
-				if (sectionTopRangeArr.length > 0) {
+				return sectionScrollTopList;
+			},
+			activeTab: debounce((top, _this)=> {//当滑动时也能同步激活tab
+				const { sectionTopRangeArr } = _this;
+				if(sectionTopRangeArr.length > 0) {
 					sectionTopRangeArr.forEach((item, index) => {
 						let splitItem = item.split('-'),
 							openInterval = Number(splitItem[0]),
-							closedInterval = Number(splitItem[1])
-						if (top >= openInterval && top < closedInterval) {
-							_this.tabCurrentIndex = index
+							closedInterval = Number(splitItem[1]);
+						if(top >= openInterval && top < closedInterval) {
+							_this.tabCurrentIndex = index;
 						}
 					})
 				}
+			},100, true),
+			getWinHeight() {
+				this.winHeight = wx.getSystemInfoSync().windowHeight;
 			},
-			100,
-			true
-		),
-		getWinHeight() {
-			this.winHeight = wx.getSystemInfoSync().windowHeight
-		}
-	},
-	onPageScroll(e) {
-		//实时获取到滚动的值
-		const { scrollTop } = e
-		if (!this.tabSelectFlag) {
-			this.activeTab(scrollTop, this)
-		}
-		if (e.scrollTop > 60) {
-			this.headerColor = true
-			this.navbarFiexd = 'fixed'
-			this.isNavbarFiexd = true
-			this.nvabarData = {
-				showCapsule: 1,
-				title: '商品详情'
+		},
+		onPageScroll(e){//实时获取到滚动的值
+			const { scrollTop } = e;
+			if(!this.tabSelectFlag) {
+				this.activeTab(scrollTop, this);
+			}
+			if(e.scrollTop>60){
+				this.headerColor = true
+				this.navbarFiexd = 'fixed'
+				this.isNavbarFiexd = true
+				this.nvabarData={							
+					showCapsule: 1, 
+					title: '商品详情', 		
+				}
+			}else{
+				this.headerColor = false
+				this.isNavbarFiexd = false
+				this.navbarFiexd = 'none'
+				this.nvabarData={
+					showCapsule: 1, 
+					title: '', 		
+				}
 			}
-		} else {
-			this.headerColor = false
-			this.isNavbarFiexd = false
-			this.navbarFiexd = 'none'
-			this.nvabarData = {
-				showCapsule: 1,
-				title: ''
+			if(e.scrollTop>700){
+				this.isScrollTop = true
+			}else{
+				this.isScrollTop = false
 			}
+		},
+		onShareAppMessage(res){//分享转发
+			if (res.from === 'button') {
+		      // 来自页面内转发按钮
+		    }
+			return {
+			  title: `${this.product.name}`,
+			  path: `pages/goods/product?type=share&id=${this.productID}`,
+			  imageUrl:`${this.productImage[0]}`
+			}
+		},
+		onShow() {
+			this.$api.getStorage().then((resolve) => {
+				this.userID = resolve.userId ? resolve.userId : '';	
+				this.userIdentity = resolve.userIdentity ? resolve.userIdentity : 0
+				this.shopID =  resolve.shopId ? resolve.shopId : '';
+				if(this.userIdentity == 0 || this.userIdentity == 2 || this.userIdentity == 4){
+					this.isShowButton = true
+				}else{
+					this.isShowButton = false
+				}					
+				if (isPreviewImg) {
+					isPreviewImg = false;
+					return;
+				} else {
+					this.initData();
+				}
+			}).catch(error =>{
+				this.initData();
+			})
 		}
-		if (e.scrollTop > 700) {
-			this.isScrollTop = true
-		} else {
-			this.isScrollTop = false
-		}
-	},
-	onShow() {}
-}
+	}
 </script>
 
 <style lang="scss">
-page {
-	background-color: #ffffff;
-}
-.banner-section {
-	width: 100%;
-	height: 750rpx;
-	position: relative;
-	background: #f1f1f1;
-}
-.banner {
-	width: 100%;
-	height: 750rpx;
-	.product-img {
-		width: 750rpx;
+	page{
+		background-color: #FFFFFF;
 	}
-	image {
+	.banner-section{
 		width: 100%;
-		height: 100%;
-	}
-}
-.swiper__dots-box {
-	position: absolute;
-	color: #fff;
-	bottom: 30rpx;
-	right: 0;
-}
-.product-wrap {
-	width: 100%;
-	height: auto;
-	padding: 24rpx 0 0 0;
-	background-color: #ffffff;
-	border-bottom: 20rpx solid #f7f7f7;
-	.productRemarks {
-		height: 48rpx;
+		height: 750rpx;
+		position: relative;
+	}	
+	.banner{
 		width: 100%;
-		float: left;
-		line-height: 48rpx;
-		font-size: 24rpx;
-		color: #999999;
-		text-align: left;
-		padding: 0 24rpx;
-		box-sizing: border-box;
+		height: 750rpx;
+		.product-img{
+			width: 750rpx;
+		}
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
-	.wrap-top {
-		width: 702rpx;
-		padding: 0 24rpx;
+	.swiper__dots-box{
+		position: absolute;
+		color: #fff;
+		bottom: 30rpx;
+		right: 0;
+	}
+	.product-wrap{
+		width: 100%;
 		height: auto;
-		float: left;
-		padding-bottom: 20rpx;
-		&.none {
-			.p-title {
-				color: #999999;
-			}
-		}
-		.p-title {
+		padding: 24rpx 0 0 0;
+		background-color: #FFFFFF;
+		border-bottom: 20rpx solid #F7F7F7;
+		.productRemarks{
+			height: 48rpx;
 			width: 100%;
+			float: left;
+			line-height: 48rpx;
+			font-size: 24rpx;
+			color: #999999;
+			text-align: left;
+		}
+		.wrap-top{
+			width: 702rpx;
+			padding: 0 24rpx;
 			height: auto;
 			float: left;
-			position: relative;
-			.p-title-name {
-				width: 602rpx;
+			padding-bottom:20rpx;
+			border-bottom: 1px solid #F8F8F8;
+			&.none{
+				.p-title{
+					color:#999999
+				}
+			}
+			.p-title{
+				width: 100%;
 				height: auto;
 				float: left;
-				line-height: 48rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				-o-text-overflow: ellipsis;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-				&.indent {
-					text-indent: 95rpx;
+				position: relative;
+				.p-title-name{
+					width:602rpx;
+					height: auto;
+					float: left;
+					line-height:48rpx;
+					font-size: $font-size-28;
+					color: $text-color;
+					-o-text-overflow: ellipsis;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+					&.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: 6rpx;
-			}
-			.p-title-share {
-				width: 96rpx;
-				height: 96rpx;
-				position: absolute;
-				right: 0;
-				text-align: center;
-				color: #999999;
-				font-size: $font-size-24;
-				box-sizing: border-box;
-				display: block;
-				background: transparent;
-				border-radius: 0;
-				border: 0;
-				margin: 0;
-				padding: 8rpx 0;
-				z-index: 990;
-				.icon-fenxiang1 {
-					font-size: $font-size-34;
+				.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: 6rpx;
 				}
-			}
-			.tui-share-btn::after {
-				border: 0;
-			}
-		}
-		.wrap-main-text {
-			line-height: 56rpx;
-			color: #ff2a2a;
-			font-size: $font-size-26;
-			display: block;
-			float: left;
-			font-weight: normal;
-		}
-		.wrap-main-none {
-			display: block;
-			width: 256rpx;
-			height: 44rpx;
-			padding-left: 20rpx;
-			border-radius: 11rpx;
-			background: $btn-confirm;
-			float: right;
-			line-height: 44rpx;
-			color: #ffffff;
-			text-align: center;
-			font-size: $font-size-24;
-		}
-
-		.p-price-none {
-			height: 44rpx;
-			line-height: 44rpx;
-			float: left;
-			font-size: $font-size-24;
-			color: #666;
-			text-decoration: line-through;
-			margin-left: 8rpx;
-		}
-		.p-minBuy {
-			height: 44rpx;
-			line-height: 44rpx;
-			float: right;
-			padding: 0 18rpx;
-			border-radius: 22rpx;
-			background-color: #f7f7f7;
-			color: #7f7f7f;
-			font-size: 24rpx;
-			text-align: center;
-			.min-text {
-				margin: 0 6rpx;
-			}
-		}
-		.p-login {
-			height: 56rpx;
-			line-height: 56rpx;
-			color: $color-system;
-			font-size: $font-size-24;
-			&.grade {
-				.price-left {
-					float: left;
-					.none {
-						display: block;
-						font-size: $font-size-20;
-						line-height: 48rpx;
-						color: #4a4b54;
-						float: left;
-						font-weight: bold;
-						margin-left: 5rpx;
-						text {
-							letter-spacing: 4rpx;
-							font-size: $font-size-32;
-						}
+				.p-title-share{
+					width: 96rpx;
+					height: 96rpx;
+					position: absolute;
+					right: 0;
+					text-align: center;
+					color: #999999;
+					font-size: $font-size-24;
+					box-sizing: border-box;
+					display: block;
+					background: transparent;
+					border-radius: 0;
+					border: 0;
+					margin: 0;
+					padding: 8rpx 0;
+					z-index: 990;
+					.icon-fenxiang1{
+						font-size: $font-size-34;
 					}
 				}
+				.tui-share-btn::after {
+					border: 0;
+				}
 			}
-			.p-no {
+			.wrap-main-text{
+				line-height: 56rpx;
+				color: #FF2A2A;
+				font-size: $font-size-26;
+				display: block;
 				float: left;
-				margin-right: 5rpx;
-				font-size: $font-size-28;
-				color: $text-color;
+				font-weight: normal;
 			}
-			.p-login-btn {
+			.wrap-main-none{
 				display: block;
+				width: 256rpx;
 				height: 44rpx;
-				padding: 0 10rpx 0 20rpx;
+				padding-left: 20rpx;
 				border-radius: 11rpx;
 				background: $btn-confirm;
 				float: right;
 				line-height: 44rpx;
-				color: #ffffff;
+				color: #FFFFFF;
 				text-align: center;
 				font-size: $font-size-24;
 			}
-		}
-	}
-	.wrap-label {
-		float: left;
-		width: 620rpx;
-		padding: 0 24rpx;
-		box-sizing: border-box;
-		.label-a {
-			padding: 0 18rpx;
-			line-height: 32rpx;
-			font-size: $font-size-20;
-			color: rgb(196, 118, 31);
-			text-align: center;
-			border-radius: 6rpx;
-			background: rgb(255, 243, 226);
-			margin: 0 20rpx 15rpx 0;
-			display: inline-block;
-		}
-	}
-	.wrap-top-price {
-		float: left;
-		width: 100%;
-		box-sizing: border-box;
-		.wrap-main-item {
-			width: 100%;
-			height: 56rpx;
-			.p-price {
-				height: 56rpx;
-				line-height: 56rpx;
+			
+			.p-price-none{
+				height: 44rpx;
+				line-height: 44rpx;
 				float: left;
-				color: #ff2a2a;
-				font-weight: bold;
-				&.none {
-					text-decoration: line-through;
-					color: #999999;
-					font-weight: normal;
+				font-size: $font-size-24;
+				color: #666;
+				text-decoration: line-through;
+				margin-left: 8rpx;
+			}
+			.p-minBuy{
+				height: 44rpx;
+				line-height: 44rpx;
+				float: right;
+				padding: 0 18rpx;
+				border-radius: 22rpx;
+				background-color: #f7f7f7;
+				color: #7F7F7F;
+				font-size: 24rpx;
+				text-align: center;
+				.min-text{
+					margin: 0 6rpx;
 				}
-				.txt {
-					margin: 0 2rpx;
+			}
+			.p-login{
+				height: 56rpx;
+				line-height: 56rpx;
+				color: $color-system;
+				font-size: $font-size-24;
+				&.grade{
+					.price-left{
+						float: left;
+						.none{
+							display: block;
+							font-size: $font-size-20;
+							line-height: 48rpx;
+							color: #4A4B54;
+							float: left;
+							font-weight: bold;
+							margin-left: 5rpx;
+							text{
+								letter-spacing: 4rpx;
+								font-size: $font-size-32;
+							}
+						}
+					}
 				}
-				.txt.sm {
-					font-size: $font-size-26;
+				.p-no{
+					float: left;
+					margin-right: 5rpx;
+					font-size: $font-size-28;
+					color: $text-color;
 				}
-				.txt.big {
-					font-size: $font-size-34;
-					font-weight: bold;
+				.p-login-btn{
+					display: block;
+					height: 44rpx;
+					padding: 0 10rpx 0 20rpx;
+					border-radius: 11rpx;
+					background: $btn-confirm;
+					float: right;
+					line-height: 44rpx;
+					color: #FFFFFF;
+					text-align: center;
+					font-size: $font-size-24;
 				}
 			}
 		}
-		.floor-item-act {
-			height: 56rpx;
-			text-align: center;
-			box-sizing: border-box;
+		.wrap-label{
 			float: left;
-			padding: 10rpx 0;
-			margin-left: 10rpx;
-			margin-top: 5rpx;
-			.floor-tags {
-				float: right;
-				height: 28rpx;
-				border-radius: 6rpx;
-				background-color: #ffffff;
-				line-height: 28rpx;
+			width: 100%;
+			box-sizing: border-box;
+			.label-a{
+				padding: 0 18rpx;
+				line-height: 32rpx;
+				font-size: $font-size-20;
+				color:$color-system;
 				text-align: center;
+				border-radius: 6rpx;
+				background:#ffe6dc;
+				margin: 0 20rpx 15rpx 0;
 				display: inline-block;
-				padding:0 5rpx;
-				font-size: $font-size-20;
-				margin-left: 15rpx;
-				color: #ff2a2a;
-				border: 1px solid #ff2a2a;
 			}
 		}
-		.floor-item-btn {
+		.wrap-top-price{
 			float: left;
-			height: 40rpx;
-			margin-top: 8rpx;
-			margin-left: 10rpx;
-			.btn {
-				line-height: 40rpx;
-				padding: 0 20rpx;
+			width: 100%;
+			box-sizing: border-box;
+			.wrap-main-item{
+				width: 100%;
+				height: 56rpx;
+				.p-price{
+					height: 56rpx;
+					line-height: 56rpx;
+					float: left;
+					color: #FF2A2A;
+					font-weight: bold;
+					&.none{
+						text-decoration: line-through;
+						color: #999999;
+						font-weight: normal;
+					}
+					.txt{
+						margin:0 2rpx;
+					}
+					.txt.sm{
+						font-size: $font-size-26;
+					}
+					.txt.big{
+						font-size: $font-size-34;
+					}
+				}
+			}
+			.floor-item-act{
+				height: 56rpx;
+				text-align: center;
+				box-sizing: border-box;
+				float: left;
+				padding:10rpx 0;
+				margin-left: 10rpx;
+				.floor-tags{
+					float: right;
+					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;
+					margin-left: 15rpx;
+					border: 1px solid #E15616;
+				}
+			}
+			.floor-item-btn{
+				float: left;
 				height: 40rpx;
-				background: $btn-confirm;
-				color: #ffffff;
-				font-size: $font-size-20;
-				border-radius: 4rpx;
+				margin-top: 8rpx;
+				margin-left: 10rpx;
+				.btn{
+					line-height: 40rpx;
+					padding: 0 20rpx;
+					height: 40rpx;
+					background: $btn-confirm;
+					color: #FFFFFF;
+					font-size: $font-size-20;
+					border-radius: 4rpx;
+				}
 			}
 		}
-	}
-	.wrap-info {
-		float: left;
-		width: 702rpx;
-		padding: 24rpx 24rpx 0 24rpx;
-		border-bottom: 1px solid #f8f8f8;
-		.info-viewT {
-			width: 100%;
-			min-height: 40rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			line-height: 40rpx;
-			text-align: left;
-			&.none {
-				color: #999999;
+		.wrap-info{
+			float: left;
+			width: 702rpx;
+			padding: 24rpx 24rpx 0 24rpx;
+			border-bottom: 1px solid #F8F8F8;
+			.info-viewT{
+				width: 100%;
+				min-height: 40rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				line-height: 40rpx;
+				text-align: left;
+				&.none{
+					color: #999999;
+				}
+				.info-viewL{
+					min-width: 350rpx;
+					float: left;
+					margin-bottom: 24rpx;
+				}
+				.info-viewR{
+					min-width: 352rpx;
+					float: left;
+					margin-bottom: 24rpx;
+				}
 			}
-			.info-viewL {
-				min-width: 350rpx;
-				float: left;
-				margin-bottom: 24rpx;
+			.info-viewB{
+				width: 100%;
+				height: auto;
 			}
-			.info-viewR {
-				min-width: 352rpx;
+			.info-f{
+				width: 50%;
 				float: left;
+				font-size: $font-size-28;
+				color: $text-color;
+				line-height: 40rpx;
 				margin-bottom: 24rpx;
+				text-align: left;
 			}
 		}
-		.info-viewB {
-			width: 100%;
-			height: auto;
+	}
+	.product-seve{
+		width: 100%;
+		height: 60rpx;
+		background-color: #FFFFFF;
+		position: relative;
+		display: flex;
+		line-height: 60rpx;
+		.label{
+			font-size: $font-size-28;
+			color: #333333;
 		}
-		.info-f {
-			width: 50%;
-			float: left;
+		.iconfont{
+			color: #fea785;
+			margin-right: 20rpx;
+			font-size: $font-size-22;
+		}
+		.text{
+			font-size: $font-size-22;
+			color: #fea785;
+			margin-left: 10rpx;
+		}
+	}
+	.product-item-none{
+		min-height: 348rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		border-bottom: 20rpx solid #F7F7F7;
+		box-sizing: border-box;
+		padding: 40rpx 0;
+		.none-image{
+			width: 284rpx;
+			height: 225rpx;
+		}
+		.none-text{
+			text-align: center;
 			font-size: $font-size-28;
-			color: $text-color;
+			color: #fea785;
 			line-height: 40rpx;
-			margin-bottom: 24rpx;
-			text-align: left;
 		}
 	}
-}
-.product-seve {
-	width: 100%;
-	height: 60rpx;
-	background-color: #ffffff;
-	position: relative;
-	display: flex;
-	line-height: 60rpx;
-	padding: 0 24rpx;
-	box-sizing: border-box;
-	.label {
-		font-size: $font-size-28;
-		color: #333333;
-	}
-	.iconfont {
-		color: #999999;
-		margin-right: 20rpx;
-		font-size: $font-size-22;
-	}
-	.text {
-		font-size: $font-size-22;
-		color: #999999;
-		margin-left: 10rpx;
-	}
-}
-.product-item-none {
-	min-height: 348rpx;
-	display: flex;
-	flex-direction: column;
-	align-items: center;
-	border-bottom: 20rpx solid #f7f7f7;
-	box-sizing: border-box;
-	padding: 40rpx 0;
-	.none-image {
-		width: 284rpx;
-		height: 225rpx;
-	}
-	.none-text {
-		text-align: center;
-		font-size: $font-size-28;
-		color: rgb(254,194,117);
-		line-height: 40rpx;
-	}
-}
-.product-parameter {
-	width: 100%;
-	height: 90rpx;
-	background-color: #ffffff;
-	position: relative;
-	display: flex;
-	border-bottom: 20rpx solid #f7f7f7;
-	.title {
-		line-height: 90rpx;
-		display: inline-block;
-		float: left;
-		font-size: $font-size-28;
-		color: #666666;
-	}
-	.name {
-		float: right;
-		line-height: 90rpx;
-		display: inline-block;
-		float: left;
-		font-size: $font-size-28;
-		color: $text-color;
-		float: right;
-		padding-right: 48rpx;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		white-space: nowrap;
-		text-align: right;
-	}
-	.icon-chakangengduo {
-		line-height: 90rpx;
-		display: inline-block;
-		position: absolute;
-		width: 48rpx;
-		top: 0;
-		right: 0;
-		color: #b2b2b2;
-	}
-}
-.product-supplier {
-	width: 100%;
-	height: 174rpx;
-	padding: 30rpx 24rpx;
-	box-sizing: border-box;
-	background-color: #ffffff;
-	position: relative;
-	box-sizing: border-box;
-	border-bottom: 20rpx solid #f7f7f7;
-	.logo {
-		width: 128rpx;
-		height: 92rpx;
-		float: left;
-		border: 1px solid #efefef;
-		border-radius: 6rpx;
-		image {
-			width: 100%;
-			height: 100%;
-			display: block;
-			border-radius: 6rpx;
+	.product-parameter{
+		width: 702rpx;
+		height: 90rpx;
+		padding: 0 24rpx;
+		background-color: #FFFFFF;
+		position: relative;
+		display: flex;
+		border-bottom: 20rpx solid #F7F7F7;
+		.title{
+			line-height: 90rpx;
+			display: inline-block;
+			float: left;
+			font-size: $font-size-28;
+			color: #666666;
 		}
-	}
-	.main {
-		width: 470rpx;
-		height: 92rpx;
-		float: left;
-		margin-left: 20rpx;
-		.name {
-			width: 100%;
-			line-height: 46rpx;
+		.name{
+			float: right;
+			line-height: 90rpx;
+			display: inline-block;
 			float: left;
 			font-size: $font-size-28;
 			color: $text-color;
 			float: right;
+			padding-right: 48rpx;
 			overflow: hidden;
-			text-overflow: ellipsis;
+			text-overflow:ellipsis;
 			white-space: nowrap;
-			text-align: left;
+			text-align: right;
 		}
-		.massgs {
-			width: 100%;
-			line-height: 46rpx;
+		.icon-xiayibu{
+			line-height: 90rpx;
+			display: inline-block;
+			position: absolute;
+			width: 48rpx;
+			top: 0;
+			right: 0;
+			color: #b2b2b2;
+		}
+	}
+	.product-supplier{
+		width: 100%;
+		height: 174rpx;
+		padding: 30rpx 24rpx;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		position: relative;
+		box-sizing: border-box;
+		border-bottom: 20rpx solid #F7F7F7;
+		.logo{
+			width: 128rpx;
+			height: 92rpx;
 			float: left;
-			font-size: $font-size-24;
-			color: #999999;
-			.label {
-				float: left;
+			border: 1px solid #efefef;
+			border-radius: 6rpx;
+			image{
+				width: 100%;
+				height: 100%;
+				display: block;
+				border-radius: 6rpx;
 			}
-			.p-stars {
+		}
+		.main{
+			width: 470rpx;
+			height: 92rpx;
+			float: left;
+			margin-left: 20rpx;
+			.name{
+				width: 100%;
+				line-height: 46rpx;
 				float: left;
-				margin-left: 20rpx;
-			}
-			.acount {
+				font-size: $font-size-28;
+				color: $text-color;
 				float: right;
-				text {
-					color: $color-system;
+				overflow: hidden;
+				text-overflow:ellipsis;
+				white-space: nowrap;
+				text-align: left;
+			}
+			.massgs{
+				width: 100%;
+				line-height: 46rpx;
+				float: left;
+				font-size: $font-size-24;
+				color: #999999;
+				.label{
+					float: left;
+				}
+				.p-stars{
+					float: left;
+					margin-left: 20rpx;
+				}
+				.acount{
+					float: right;
+					text{
+						color: $color-system;
+					}
 				}
 			}
 		}
-	}
-
-	.icon-chakangengduo {
-		line-height: 154rpx;
-		display: inline-block;
-		position: absolute;
-		width: 48rpx;
-		top: 0;
-		right: 0;
-		color: #b2b2b2;
-	}
-}
-.product-details {
-	width: 100%;
-	background: #ffffff;
-	border-bottom: 20rpx solid #f7f7f7;
-	&.service {
-		border-bottom: none;
-	}
-	&.recommend {
-		background-color: #f7f7f7;
-		border-bottom: none;
-		.title {
-			.title-tab {
-				background-color: #f7f7f7;
-				color: $text-color;
-			}
+		
+		.icon-xiayibu{
+			line-height: 154rpx;
+			display: inline-block;
+			position: absolute;
+			width: 48rpx;
+			top: 0;
+			right: 0;
+			color: #b2b2b2;
 		}
 	}
-	.product-rich-text-none {
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		text-align: left;
-		font-size: 24rpx;
-		color: #999999;
-		line-height: 60rpx;
-	}
-	.content-none {
+	.product-details {
 		width: 100%;
-		height: 80rpx;
-		line-height: 80rpx;
-		text-align: left;
-		font-size: $font-size-26;
-		color: #999999;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-	}
-	.title {
-		// width: 100%;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		.title-tab {
+		background: #FFFFFF;
+		border-bottom: 20rpx solid #F7F7F7;
+		&.service{
+			border-bottom: none;
+		}
+		&.recommend{
+			background-color: #F7F7F7;
+			border-bottom: none;
+			.title{
+				.title-tab{
+					background-color: #F7F7F7;
+					color: $text-color;
+				}
+			}
+		}
+		.product-rich-text-none{
+			box-sizing: border-box;
+			padding: 0 24rpx;
+			text-align: left;
+			font-size: 24rpx;
+			color: #999999;
+			line-height: 60rpx;
+		}
+		.content-none{
 			width: 100%;
-			height: 100rpx;
-			background: #fff;
-			z-index: 10;
-			font-size: $font-size-30;
+			height: 80rpx;
+			line-height: 80rpx;
 			text-align: left;
-			color: $text-color;
-			line-height: 100rpx;
-			font-weight: 600;
+			font-size: $font-size-26;
+			color: #999999;
+			box-sizing: border-box;
+			padding: 0 24rpx;
 		}
-		.title-msg {
+		.title{
 			width: 100%;
-			height: 236rpx;
-			padding: 18rpx;
-			background-color: rgba(225, 86, 22, 0.1);
-			color: $color-system;
 			box-sizing: border-box;
-			margin-bottom: 30rpx;
-			.tit {
-				line-height: 46rpx;
-				font-size: $font-size-24;
+			padding: 0 24rpx;
+			.title-tab{
+				width: 100%;
+				height: 100rpx;
+				background: #fff;
+				z-index: 10;
+				font-size: $font-size-30;
 				text-align: left;
+				color: $text-color;
+				line-height: 100rpx;
+				font-weight: 600;
 			}
-			.txt {
-				line-height: 38rpx;
-				font-size: $font-size-20;
-				text-align: justify;
+			.title-msg{
+				width: 100%;
+				height: 236rpx;
+				padding: 18rpx;
+				background-color: rgba(225,86,22, 0.1);
+				color: $color-system;
+				box-sizing: border-box;
+				margin-bottom: 30rpx;
+				.tit{
+					line-height: 46rpx;
+					font-size: $font-size-24;
+					text-align: left;
+				}
+				.txt{
+					line-height: 38rpx;
+					font-size: $font-size-20;
+					text-align: justify;
+				}
+			}
+		}
+		.content{
+			width: 100%;
+			background-color: #FFFFFF;
+		}
+	}
+	.isLower{
+		width: 100%;
+		height: 116rpx;
+		line-height: 116rpx;
+		text-align: center;
+		color: #000000;
+		font-size: $font-size-32;
+		font-weight: bold;
+	}
+	.bottom-btn{
+		width: 100%;
+		height: 100rpx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		background: #FFFFFF;
+		z-index: 99;
+		.bottom-le{
+			width: 300rpx;
+			height: 100rpx;
+			padding:10rpx 20rpx 10rpx 0;
+			float: left;
+			box-sizing: border-box;
+			.item-bt{
+				width: 80rpx;
+				height: 100%;
+				margin-right:15rpx;
+				display: flex;
+				float: left;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				font-size: $font-size-22;
+				color: $text-color;
+				line-height: 34rpx;
+				position: relative;
+				.animation-num{
+					font-size:$font-size-32 ;
+					color: #FF2A2A;
+					position: absolute;
+					top: -12rpx;
+					right: 4rpx;
+					font-weight: bold;
+				}
+				.animation{
+					animation: showAmnation 2.2s ease-in-out both;
+				}
+				.restion{
+					animation: hideAmnation 1s ease-in-out both;
+				}
+				.icon-num{
+					position: absolute;
+					right:-12rpx;
+					top: -5rpx;
+				}
+				.icon-num.goleft{
+					right: 2rpx;
+				}
+				&:last-child{
+					margin-right: 0;
+				}
+				image {
+					width: 44rpx;
+					height: 44rpx;
+				}
+				button.contact-btn{
+					width: 100%;
+					height: 100%;
+					margin: 0;
+					padding: 0;
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					justify-content: center;
+					box-sizing: border-box;
+					font-size: $font-size-24;
+					text-align: center;
+					text-decoration: none;
+					line-height: 34rpx;
+					border-radius: 0;
+					-webkit-tap-highlight-color: transparent;
+					overflow: hidden;
+					color: $text-color;
+					background-color:#FFFFFF;
+				}
 			}
 		}
-	}
-	.content {
-		width: 100%;
-		background-color: #ffffff;
-	}
-}
-.isLower {
-	width: 100%;
-	height: 116rpx;
-	line-height: 116rpx;
-	text-align: center;
-	color: #000000;
-	font-size: $font-size-32;
-	font-weight: bold;
-}
-.bottom-btn {
-	width: 100%;
-	height: 100rpx;
-	position: fixed;
-	bottom: 0;
-	left: 0;
-	background: #ffffff;
-	z-index: 99;
-	.bottom-le {
-		width: 300rpx;
-		height: 100rpx;
-		padding: 10rpx 20rpx 10rpx 0;
-		float: left;
-		box-sizing: border-box;
-		.item-bt {
-			width: 80rpx;
+		.bottom-ri{
+			width: 450rpx;
 			height: 100%;
-			margin-right: 15rpx;
+			float: right;
 			display: flex;
-			float: left;
-			flex-direction: column;
-			align-items: center;
-			justify-content: center;
-			font-size: $font-size-22;
-			color: $text-color;
-			line-height: 34rpx;
-			position: relative;
-			.animation-num {
-				font-size: $font-size-32;
-				color: #ff2a2a;
-				position: absolute;
-				top: -12rpx;
-				right: 4rpx;
-				font-weight: bold;
-			}
-			.animation {
-				animation: showAmnation 2.2s ease-in-out both;
-			}
-			.restion {
-				animation: hideAmnation 1s ease-in-out both;
-			}
-			.icon-num {
-				position: absolute;
-				right: -12rpx;
-				top: -5rpx;
+			box-sizing: border-box;
+			padding: 13rpx 20rpx 13rpx 0;
+			.btn{
+				flex: 1;
+				width: 200rpx;
+				line-height: 80rpx;
+				text-align: center;
+				font-size: $font-size-24;
+				color: #FFFFFF;
 			}
-			.icon-num.goleft {
-				right: 2rpx;
+			.btn-cart{
+				background-color: #ffe6dc;
+				color: $color-system;
+				border-radius: 42rpx 0 0 42rpx;
 			}
-			&:last-child {
-				margin-right: 0;
+			.btn-cart.disabled{
+				background-color: #E1E1E1;
+				color: #FFFFFF;
 			}
-			image {
-				width: 44rpx;
-				height: 44rpx;
+			.btn-bay{
+				background:linear-gradient(to right, #f28f31 0%, #e15616 100%);
+				border-radius: 0 42rpx 42rpx 0;
 			}
-			button.contact-btn {
-				width: 100%;
-				height: 100%;
-				margin: 0;
-				padding: 0;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				justify-content: center;
-				box-sizing: border-box;
-				font-size: $font-size-24;
-				text-align: center;
-				text-decoration: none;
-				line-height: 34rpx;
-				border-radius: 0;
-				-webkit-tap-highlight-color: transparent;
-				overflow: hidden;
-				color: $text-color;
-				background-color: #ffffff;
+			.btn-bay.disabled{
+				background: linear-gradient(135deg,rgba(242,143,49,0.5) 0%,rgba(225,86,22,0.5) 100%);
 			}
 		}
 	}
-	.bottom-ri {
-		width: 450rpx;
-		height: 100%;
-		float: right;
-		display: flex;
-		box-sizing: border-box;
-		padding: 13rpx 20rpx 13rpx 0;
-		.btn {
-			flex: 1;
-			width: 200rpx;
-			line-height: 80rpx;
-			text-align: center;
-			font-size: $font-size-24;
-			color: #ffffff;
-		}
-		.btn-cart {
-			background-color: #ffe6dc;
-			color: $color-system;
-			border-radius: 42rpx 0 0 42rpx;
-		}
-		.btn-cart.disabled {
-			background-color: #e1e1e1;
-			color: #ffffff;
-		}
-		.btn-bay {
-			background: linear-gradient(to right, #f28f31 0%, #e15616 100%);
-			border-radius: 0 42rpx 42rpx 0;
-		}
-		.btn-bay.disabled {
-			background: linear-gradient(
-				135deg,
-				rgba(242, 143, 49, 0.5) 0%,
-				rgba(225, 86, 22, 0.5) 100%
-			);
-		}
+	.uni-badge--small {
+		-webkit-transform: scale(.8);
+		-ms-transform: scale(.8);
+		transform: scale(.8);
+		-webkit-transform-origin: center center;
+		-ms-transform-origin: center center;
+		transform-origin: center center;
 	}
-}
-.uni-badge--small {
-	-webkit-transform: scale(0.8);
-	-ms-transform: scale(0.8);
-	transform: scale(0.8);
-	-webkit-transform-origin: center center;
-	-ms-transform-origin: center center;
-	transform-origin: center center;
-}
-.uni-badge {
-	font-family: 'Helvetica Neue', Helvetica, sans-serif;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-	font-size: 12px;
-	line-height: 1;
-	display: inline-block;
-	padding: 3px 6px;
-	color: #333;
-	border-radius: 100px;
-	background-color: #f1f1f1;
-}
-.uni-badge-error {
-	color: #fff;
-	background-color: #dd524d;
-}
-.product-topnav {
-	width: 100%;
-	height: 80rpx;
-	box-sizing: border-box;
-	background: #ffffff;
-	z-index: 1000;
-	position: fixed;
-	opacity: 1;
-	left: 0;
-	top: 0;
-	&.fixed {
-		animation: showFixedColor 0.1s ease-in-out both;
+	.uni-badge {
+		font-family: 'Helvetica Neue', Helvetica, sans-serif;
+		-webkit-box-sizing: border-box;
+		box-sizing: border-box;
+		font-size: 12px;
+		line-height: 1;
+		display: inline-block;
+		padding: 3px 6px;
+		color: #333;
+		border-radius: 100px;
+		background-color: #f1f1f1;
 	}
-	&.none {
-		animation: hideFixedColor 0.1s ease-in-out both;
+	.uni-badge-error {
+		color: #fff;
+		background-color: #dd524d;
 	}
-	.navbar {
+	.product-topnav{
 		width: 100%;
-		height: 60rpx;
+		height: 174rpx;
 		box-sizing: border-box;
-		padding: 0 24rpx;
-		display: flex;
-		.nav-item {
-			display: flex;
-			flex: 1;
-			justify-content: center;
-			align-items: center;
+		background: #FFFFFF;
+		z-index: 1000;
+		position: fixed;
+		opacity: 1;
+		left: 0;
+		&.fixed{
+			animation: showFixedColor 0.1s ease-in-out both;
+		}
+		&.none{
+		   animation: hideFixedColor 0.1s ease-in-out both;
+		}
+		.navbar {
+			width: 100%;
 			height: 60rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			position: relative;
-			float: left;
-			position: relative;
-			.line {
-				width: 60rpx;
-				height: 2px;
-				border-radius: 1px;
-				background: #ffffff;
-				position: absolute;
-				bottom: 0;
-				left: 50%;
-				margin-left: -30rpx;
-			}
-			&.current {
-				color: $color-system;
-				.line {
-					background: $color-system;
+			box-sizing: border-box;
+			padding: 0 24rpx;
+			display: flex;
+			.nav-item {
+				display: flex;
+				flex: 1;
+				justify-content: center;
+				align-items: center;
+				height: 60rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				position: relative;
+				float: left;
+				position: relative;
+				.line{
+					width: 60rpx;
+					height: 2px;
+					border-radius: 1px;
+					background: #FFFFFF;
+					position: absolute;
+					bottom: 0;
+					left: 50%;
+					margin-left: -30rpx;
+				}
+				&.current{
+					color:$color-system;
+					.line{
+						background: $color-system;
+					}
 				}
 			}
 		}
-	}
-	.search-input {
-		width: 100%;
-		height: 114rpx;
-		padding: 24rpx;
-		box-sizing: border-box;
-		.gosearch-btn {
+		.search-input{
 			width: 100%;
-			height: 100%;
-			border-radius: 40rpx;
-			margin: 0 auto;
-			font-size: 26rpx;
-			line-height: 66rpx;
-			color: #b2b2b2;
-			position: relative;
+			height: 114rpx;
+			padding:24rpx;
 			box-sizing: border-box;
-			padding-left: 66rpx;
-			&.fixed {
-				background: rgba(70, 70, 70, 0.1);
-			}
-			&.none {
-				background: rgba(70, 70, 70, 0.1);
-			}
-			.search-icon {
-				width: 66rpx;
-				height: 66rpx;
-				position: absolute;
-				left: 0;
-				top: 2rpx;
-				text-align: center;
+			.gosearch-btn{
+				width: 100%;
+				height: 100%;
+				border-radius: 40rpx;
+				margin: 0 auto;
+				font-size: 26rpx;
 				line-height: 66rpx;
-				.icon-sousuo {
-					margin: 0 6rpx;
-					font-size: $font-size-34;
-					color: #b2b2b2;
-					z-index: 10;
+				color: #B2B2B2;
+				position: relative;
+				box-sizing: border-box;
+				padding-left: 66rpx;
+				&.fixed{
+					background: rgba(70,70,70,0.1);
+				}
+				&.none{
+					background: rgba(70,70,70,0.1);
+				}
+				.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: #B2B2B2;
+						z-index: 10;
+					}
+				}
+				.search-text{
+					font-size: $font-size-24;
+					line-height: 66rpx;
+					color: #B2B2B2;
 				}
-			}
-			.search-text {
-				font-size: $font-size-24;
-				line-height: 66rpx;
-				color: #b2b2b2;
 			}
 		}
 	}
-}
-
-@keyframes showFixedColor {
-	0% {
-		background: rgba(255, 255, 255, 0);
-	}
-	50% {
-		background: rgba(255, 255, 255, 0.5);
-	}
-	100% {
-		background: rgba(255, 255, 255, 1);
+	
+	@keyframes showFixedColor {
+		0% {background: rgba(255,255,255,0);}
+		50% {background: rgba(255,255,255,0.5);}
+		100% {background: rgba(255,255,255,1);}
 	}
-}
-@keyframes hideFixedColor {
-	0% {
-		background: rgba(255, 255, 255, 1);
+	@keyframes hideFixedColor {
+		0% {background: rgba(255,255,255,1);}
+		50% {background: rgba(255,255,255,0.5);}
+		100% {background: rgba(255,255,255,0);}
 	}
-	50% {
-		background: rgba(255, 255, 255, 0.5);
-	}
-	100% {
-		background: rgba(255, 255, 255, 0);
-	}
-}
-/* 加入购物模态层*/
-@keyframes showPopup {
-	0% {
-		opacity: 0;
-	}
-	100% {
-		opacity: 1;
-	}
-}
-@keyframes hidePopup {
-	0% {
-		opacity: 1;
-	}
-	100% {
-		opacity: 0;
-	}
-}
-@keyframes showLayer {
-	0% {
-		transform: translateY(0);
-	}
-	100% {
-		transform: translateY(-100%);
-	}
-}
-@keyframes hideLayer {
-	0% {
-		transform: translateY(-100%);
-	}
-	100% {
-		transform: translateY(0);
+	/* 加入购物模态层*/
+	@keyframes showPopup {
+		0% {
+			opacity: 0;
+		}
+		100% {
+			opacity: 1;
+		}
 	}
-}
-@keyframes showAmnation {
-	0% {
-		top: -12rpx;
-		opacity: 0;
+	@keyframes hidePopup {
+		0% {
+			opacity: 1;
+		}
+		100% {
+			opacity: 0;
+		}
 	}
-	50% {
-		top: -60rpx;
-		opacity: 1;
+	@keyframes showLayer {
+		0% {
+			transform: translateY(0);
+		}
+		100% {
+			transform: translateY(-100%);
+		}
 	}
-	100% {
-		top: -100rpx;
-		opacity: 0;
+	@keyframes hideLayer {
+		0% {
+			transform: translateY(-100%);
+		}
+		100% {
+			transform: translateY(0);
+		}
 	}
-}
-@keyframes hideAmnation {
-	0% {
-		top: -100rpx;
-		opacity: 0;
+	@keyframes showAmnation {
+		0% {
+			top: -12rpx;
+			opacity: 0;
+		}
+		50% {
+			top: -60rpx;
+			opacity: 1;
+		}
+		100% {
+			top: -100rpx;
+			opacity: 0;
+		}
 	}
-	100% {
-		top: -12rpx;
-		opacity: 0;
+	@keyframes hideAmnation {
+		0% {
+			top: -100rpx;
+			opacity: 0;
+		}
+		100% {
+			top: -12rpx;
+			opacity: 0;
+		}
 	}
-}
-.popup {
-	position: fixed;
-	top: 0;
-	width: 100%;
-	height: 100%;
-	z-index: 999;
-	display: none;
-	.mask {
+	.popup {
 		position: fixed;
 		top: 0;
 		width: 100%;
 		height: 100%;
-		z-index: 21;
-		background-color: rgba(0, 0, 0, 0.6);
-	}
-	.layer {
-		position: fixed;
-		z-index: 22;
-		bottom: -294rpx;
-		width: 702rpx;
-		padding: 24rpx 24rpx 36rpx 24rpx;
-		height: 260rpx;
-		border-radius: 20rpx 20rpx 0 0;
-		background-color: #fff;
-		display: flex;
-		flex-wrap: wrap;
-		align-content: space-between;
-		.content {
+		z-index: 999;
+		display: none;
+		.mask{
+			position: fixed;
+			top: 0;
 			width: 100%;
+			height: 100%;
+			z-index: 21;
+			background-color: rgba(0, 0, 0, 0.6);
 		}
-		.btn {
-			width: 100%;
-			height: 88rpx;
-			margin-top: 20rpx;
-			.button {
+		.layer {
+			position: fixed;
+			z-index: 22;
+			bottom: -294rpx;
+			width: 702rpx;
+			padding: 24rpx 24rpx 36rpx 24rpx;
+			height: 260rpx;
+			border-radius: 20rpx 20rpx 0 0;
+			background-color: #fff;
+			display: flex;
+			flex-wrap: wrap;
+			align-content: space-between;
+			.content {
+				width: 100%;
+			}
+			.btn {
 				width: 100%;
 				height: 88rpx;
-				color: #fff;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: $btn-confirm;
-				font-size: $font-size-28;
-				border-radius: 44rpx;
+				margin-top: 20rpx;
+				.button {
+					width: 100%;
+					height: 88rpx;
+					color: #fff;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					background: $btn-confirm;
+					font-size: $font-size-28;
+					border-radius: 44rpx;
+				}
 			}
 		}
-	}
-
-	&.show {
-		display: block;
-		.mask {
-			animation: showPopup 0.2s linear both;
-		}
-		.layer {
-			animation: showLayer 0.2s linear both;
+		
+		&.show {
+			display: block;
+			.mask{
+				animation: showPopup 0.2s linear both;
+			}
+			.layer {
+				animation: showLayer 0.2s linear both;
+			}
 		}
-	}
-	&.hide {
-		display: block;
-		.mask {
-			animation: hidePopup 0.2s linear both;
+		&.hide {
+			display: block;
+			.mask{
+				animation: hidePopup 0.2s linear both;
+			}
+			
+			.layer {
+				animation: hideLayer 0.2s linear both;
+			}
 		}
-
-		.layer {
-			animation: hideLayer 0.2s linear both;
+		&.none {
+			display: none;
 		}
-	}
-	&.none {
-		display: none;
-	}
-	&.service {
-		.row {
-			margin: 30upx 0;
-			.title {
-				font-size: 30upx;
-				margin: 10upx 0;
-			}
-			.description {
-				font-size: 28upx;
-				color: #999;
+		&.service {
+			.row {
+				margin: 30upx 0;
+				.title {
+					font-size: 30upx;
+					margin: 10upx 0;
+				}
+				.description {
+					font-size: 28upx;
+					color: #999;
+				}
 			}
 		}
-	}
-	.layer-smimg {
-		width: 114rpx;
-		height: 114rpx;
-		float: left;
-		border-radius: 10rpx;
-		margin-right: 24rpx;
-		image {
+		.layer-smimg{
 			width: 114rpx;
 			height: 114rpx;
+			float: left;
 			border-radius: 10rpx;
-		}
-	}
-	.layer-nunbox {
-		justify-content: space-between;
-		align-items: center;
-		width: 536rpx;
-		height: auto;
-		float: left;
-		.layer-nunbox-t {
-			width: 100%;
-			height: 44rpx;
-			position: relative;
-			display: flex;
-			margin-bottom: 10rpx;
-			.text {
-				font-size: $font-size-24;
-				line-height: 48rpx;
-				color: #999999;
-			}
-			.layer-nunbox-text {
-				line-height: 44rpx;
-				font-size: $font-size-28;
+			margin-right: 24rpx;
+			image{
+				width: 114rpx;
+				height: 114rpx;	
+				border-radius: 10rpx;
 			}
-			.number-box {
+		}
+		.layer-nunbox{
+			justify-content: space-between;
+			align-items: center;
+			width: 536rpx;
+			height: auto;
+			float: left;
+			.layer-nunbox-t{
+				width: 100%;
+				height:44rpx;
+				position:relative;
 				display: flex;
-				justify-content: center;
-				align-items: center;
-				border: 2rpx solid #ffe6dc;
-				border-radius: 30rpx;
-				height: 48rpx;
-				margin-left: 20rpx;
-				.iconfont {
+				margin-bottom: 10rpx;
+				.text{
 					font-size: $font-size-24;
-					padding: 0 18rpx;
-					color: #999999;
-					text-align: center;
 					line-height: 48rpx;
-					font-weight: bold;
-					background: #fef6f3;
-					&.icon-jianhao {
-						border-radius: 30rpx 0 0 30rpx;
+					color: #999999;
+				}
+				.layer-nunbox-text{
+					line-height: 44rpx;
+					font-size: $font-size-28;
+				}
+				.number-box{
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					border:2rpx solid #ffe6dc;
+					border-radius: 30rpx;
+					height: 48rpx;
+					margin-left: 20rpx;
+					.iconfont{
+						font-size: $font-size-24;
+						padding:0 18rpx;
+						color: #999999;
+						text-align: center;
+						line-height: 48rpx;
+						font-weight: bold;
+						background: #fef6f3;
+						&.icon-jianhao{
+							border-radius: 30rpx 0 0 30rpx;
+						}
+						&.icon-jiahao{
+							border-radius: 0 30rpx 30rpx 0;
+						}
 					}
-					&.icon-jiahao {
-						border-radius: 0 30rpx 30rpx 0;
+					.btn-input{
+						width: 62rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #FFFFFF;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-28;
 					}
 				}
-				.btn-input {
-					width: 62rpx;
-					height: 48rpx;
-					line-height: 48rpx;
-					background: #ffffff;
-					border-radius: 4rpx;
-					text-align: center;
-					font-size: $font-size-28;
+				.product-step{
+					position: absolute;
+					left: 45rpx;
+					bottom: 0;
+					height: 44rpx;
+					background: #FFFFFF;
 				}
 			}
-			.product-step {
-				position: absolute;
-				left: 45rpx;
-				bottom: 0;
-				height: 44rpx;
-				background: #ffffff;
-			}
-		}
-		.layer-nunbox-b {
-			width: 100%;
-			height: 44rpx;
-			margin-top: 13rpx;
-		}
-		.text {
-			line-height: 44rpx;
-			font-size: $font-size-28;
-			.p {
-				color: #ff2a2a;
-			}
-			.p:first-child {
-				margin-left: 30rpx;
+			.layer-nunbox-b{
+				width: 100%;
+				height:44rpx;
+				margin-top: 13rpx;
 			}
-			.p.sm {
-				font-size: $font-size-24;
+			.text{
+				line-height: 44rpx;
+				font-size: $font-size-28;
+				.p{
+					color: #FF2A2A;
+				}
+				.p:first-child{
+					margin-left: 30rpx;
+				}
+				.p.sm{
+					font-size: $font-size-24;
+				}
 			}
 		}
 	}
-}
-.tui-popup-box {
-	position: relative;
-	box-sizing: border-box;
-	min-height: 220rpx;
-	padding: 0rpx 24rpx 0 24rpx;
-	.title {
-		font-size: $font-size-34;
-		color: $text-color;
-		line-height: 88rpx;
-		text-align: center;
-		float: left;
-		width: 100%;
-		height: 88rpx;
-	}
-	.tui-popup-main {
-		width: 100%;
-		float: left;
-		.tui-popup-scroll {
+	.tui-popup-box {
+		position: relative;
+		box-sizing: border-box;
+		min-height: 220rpx;
+		padding:0rpx 24rpx 0 24rpx;
+		.title{
+			font-size: $font-size-34;
+			color: $text-color;
+			line-height: 88rpx;
+			text-align: center;
+			float: left;
+			width: 100%;
+			height: 88rpx;
+		}
+		.tui-popup-main{
 			width: 100%;
-			height: 500rpx;
-			.content-tr {
+			float: left;
+			.tui-popup-scroll{
 				width: 100%;
-				min-height: 58rpx;
-				line-height: 58rpx;
-				display: flex;
-				.content-td {
-					display: flex;
-					flex: 3;
-					font-size: $font-size-26;
-					color: #999999;
+				height: 500rpx;
+				.content-tr{
+					width: 100%;
+					min-height: 58rpx;
 					line-height: 58rpx;
-					text-align: left;
-				}
-				.content-th {
 					display: flex;
-					flex: 7;
-					font-size: $font-size-26;
-					color: #333333;
-					line-height: 58rpx;
-					text-align: left;
-					padding-left: 10rpx;
+					.content-td{
+						display: flex;
+						flex: 3;
+						font-size: $font-size-26;
+						color: #999999;
+						line-height: 58rpx;
+						text-align: left;
+					}
+					.content-th{
+						display: flex;
+						flex: 7;
+						font-size: $font-size-26;
+						color: #333333;
+						line-height: 58rpx;
+						text-align: left;
+						padding-left: 10rpx;
+					}
 				}
 			}
 		}
 	}
-}
-.tui-popup-btn {
-	width: 100%;
-	height: auto;
-	float: left;
-	margin-top: 24rpx;
-	.tui-button {
+	.tui-popup-btn {
 		width: 100%;
-		height: 88rpx;
-		background: $btn-confirm;
-		line-height: 88rpx;
-		text-align: center;
-		color: #ffffff;
-		font-size: $font-size-28;
-		border-radius: 44rpx;
-		margin-bottom: 60rpx;
+		height: auto;
+		float: left;
+		margin-top: 24rpx;
+		.tui-button{
+			width: 100%;
+			height: 88rpx;
+			background: $btn-confirm;
+			line-height: 88rpx;
+			text-align: center;
+			color: #FFFFFF;
+			font-size: $font-size-28;
+			border-radius: 44rpx;
+		}
+	}
+	/*富文本样式*/
+	rich-text.p{
+		width: 702rpx !important;
+		padding: 0 24rpx;
+		text-align: justify;
+	}
+	rich-text.img{
+		width: 100%;
+		height: auto;
 	}
-}
-/*富文本样式*/
-rich-text.p {
-	width: 702rpx !important;
-	padding: 0 24rpx;
-	text-align: justify;
-}
-rich-text.img {
-	width: 100%;
-	height: auto;
-}
 </style>

+ 774 - 0
pages/goods/search.vue

@@ -0,0 +1,774 @@
+<template>
+	<view class="search-container">
+		<view class="search-main">
+			<view class="gosearch-btn">
+				<text class="iconfont icon-sousuo"></text>
+				<input class="input" maxlength="20" :focus="isFocus" type="text" value="" confirm-type="search" @focus="onFocus" @input="onShowClose" @confirm="subMitSearch()" placeholder="请输入搜索关键字" v-model.trim="listQuery.keyword"/>
+				<text class="iconfont icon-shanchu1" v-if="isShowClose" @click.stop="delInputText()"></text>
+			</view>
+			<view class="search-btn" @click="SubMitSearch()">搜索</view>
+		</view>
+		<view class="search-container-history clearfix" v-if="!isShowWrapper">
+			<view :class="'s-' + themeClass" v-if="serachRecordList.length>0">
+				<view class="header">搜索历史<text class="iconfont icon-shanchu" @click="confirmDetele"></text></view>
+				<view class="list">
+					<view class="list-main">
+						<view v-for="(item,index) in serachRecordList" :key="index" @click="keywordsClick(item.searchWord)">{{item.searchWord}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-else class="commodity-list-wrapper"  :style="{'overflow':'auto','height':(productList.length>4? windowHeight + 'px' : 'auto')}">
+			<scroll-view :style="{'height':(productList.length>4? scrollHeight+'px' : 'auto')}" @scrolltolower="scrolltolower" scroll-y v-if="!showEmpty">
+				<view v-for="(pro,index) in productList" :key="index" :id="pro.id" class="product-list-type commodity-list" @click.stop="navToDetailPage(pro.productId)">
+					<view class="product-list-image">
+						<image class="product-image" :src="pro.image" mode=""></image>
+					</view>
+					<view class="product-list-msgs">
+						<view class="product-name">{{ pro.name }}</view>
+						<view class="product-unit">规格:10ml/盒</view>
+						<view class="product-tags" v-if="pro.activistatus == 1"><text class="tag">活动价</text></view>
+						<view class="product-pric">
+							<view class="price">¥{{ pro.price | PriceFormat }}</view>
+							<view class="carts" @click.stop="handAddCarts">
+								<view class="carts-add">
+									<text class="iconfont icon-gouwuche"></text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view v-if="showLoading && productList.length > 4">
+					<view class="loading-wrapper loading-wrapper-now" v-if="loadingNow">{{loadingText}}<text v-if="loadingText === '已至底部'">‧ ‧ ‧</text></view>
+					<view class="loading-wrapper loading-wrapper-btm" v-else>———<text class="btm-text">已至底部</text>———</view>
+				</view>
+			</scroll-view>
+			<view class="empty-container" v-if="showEmpty">
+				<image class="empty-container-image" :src="StaticUrl+'icon-empty-search.png'"></image>
+				<text class="error-text">暂无搜索结果~</text>
+			</view>
+		</view>
+		<!-- 操作弹窗 -->
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
+		<!-- 透明模态层 -->
+		<modal-layer v-if='isModallayer'></modal-layer>
+	</view>
+</template>
+
+<script>
+	import { mapState,mapMutations } from 'vuex'
+	import modalLayer from "@/components/modal-layer"
+	import uniGrader from '@/components/uni-grade/uni-grade.vue'
+	import authorize from '@/common/config/authorize.js'
+	import wxLogin from "@/common/config/wxLogin.js"
+	
+	export default {
+		components: {
+			modalLayer,
+			uniGrader
+		},
+		data() {
+			return {
+				StaticUrl:this.$Static,
+				shopId:0,
+				userID:0,
+				themeClass: 'block',
+				show:false,
+				userIdentity:'',	
+				searchKeyType:1,
+				isShowClose:false,	//是否显示清空输入框图标
+				isSearchHistory:false,//是都显示搜索历史
+				serachRecordList:[
+					{searchWord:'奥术大师大所打'},
+					{searchWord:'奥术大师大所打'},
+					{searchWord:'奥术大师大所打'},
+					{searchWord:'奥术大师大所打'},
+					{searchWord:'奥术大师大所打'},
+					{searchWord:'奥术大师大所打'},
+				],//历史搜索记录
+				isShowWrapper:true,
+				isModallayer:false,
+				isFocus:false,
+				priceLoading:true,
+				windowHeight: '',
+				showEmpty: false,
+				scrollHeight: '',
+				productList:[
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					
+				],//商品列表				productIds:'',//查询价格的商品ID
+				showLoading: false,
+				loadingNow: true,
+				loadingText: '上拉加载更多',
+				pullFlag: true,
+				listQuery:{ 
+					identity:0,
+					keyword:'',
+					sortField:'',
+					sortType:'',
+					pageNum: 1,
+					pageSize: 20,
+				},
+				total:0,
+				modal:false,
+				contentModalText:'确定删除历史记录?'
+			}
+		},
+		onLoad(option) {
+			console.log(option)
+			if(option.type =='share'){
+				authorize.checkLogin().then(res => {
+					wxLogin.wxLoginAuthorize()
+				})
+				.catch(err => {
+					console.log(new Date +'用户未授权微信信息')
+				})
+			}
+			// this.$api.getStorage().then((resolve) =>{
+			// 	this.userID = resolve.userId ? resolve.userId : 0;
+			// 	this.shopId = resolve.shopId ? resolve.shopId : 0;
+			// 	this.userIdentity = resolve.userIdentity;
+			// 	this.listQuery.identity = this.identity;
+			// 	if(option.keyWord){
+			// 		this.listQuery.keyword = option.keyWord
+			// 		this.setSearchHistoryAdd()
+			// 		this.getListFromServer()
+			// 		this.isFocus = false
+			// 	}else{
+			// 		this.isFocus = true
+			// 		this.InitGetSerachRecord()
+			// 	}
+			// })	
+		},
+		filters: {
+			PriceFormat:function(text) {//处理金额
+				return Number(text).toFixed(2);
+			},
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','identity'])
+		},
+		methods:{
+			InitGetSerachRecord(){//查询搜索历史记录
+				this.ProductService.GetProductSearchHistory({userId:this.userID}).then(response =>{
+					if(response.code == 0){
+						this.serachRecordList = response.data
+					}
+				})
+			},
+			SubMitSearch() {//搜索
+				if (this.listQuery.keyword == '') {
+					this.$util.msg('请输入搜索关键词',2000);
+				}else{
+					this.productList =[]
+					this.SetSearchHistoryAdd()
+					this.getListFromServer()
+					this.isFocus = false
+				}
+			},
+			scrolltolower() {
+				if(this.total>this.productList.length && this.pullFlag) {
+					this.getListFromServer(true);
+				}
+			},
+			getListFromServer(loadMore) {
+				this.showLoading = true;
+				this.loadingNow = true;
+				this.loadingText = '加载中';
+				this.showEmpty = false;				
+				if(loadMore) {
+					this.listQuery.pageNum += 1;
+				}
+				this.ProductService.GetProductSearchList(this.listQuery).then(response =>{
+					this.isShowWrapper = true
+					const resData = JSON.parse(response.data);
+					const resList = resData.items;
+					if(resList && resList.length > 0){
+						this.total = resData.total;
+						this.showEmpty = false;
+						if(loadMore) {
+							this.productList = [...this.productList,...resList];
+						} else {
+							this.productList = [...resList];
+						}
+						// 防上拉暴滑
+						this.pullFlag = false;
+						setTimeout(()=>{ this.pullFlag = true; },500)
+						// 底部提示文案
+						if(this.totalPage>this.productList.length) {
+							this.loadingText = '上拉加载更多';
+						} else {
+							this.showLoading = true;
+							this.loadingNow = false;
+						}
+					} else {
+						if(!loadMore) {
+							this.showEmpty = true;
+						}
+					}
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			SetSearchHistoryAdd(){//添加搜索记录
+				if (!this.hasLogin) {return false;}
+				this.ProductService.GetAddProductSearchHistory({userId: this.userID,keyword:this.listQuery.keyword}).then(response =>{
+					//此为每次搜索同时添加用户的搜索记录
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			onShowClose () {//输入框输入时触发
+				this.inputEmpty(this.listQuery.keyword)
+			},
+			onFocus () { //输入框获取焦点时触发
+				this.inputEmpty(this.listQuery.keyword)
+				this.InitGetSerachRecord()
+			},
+			delInputText () { //清除输入框内容
+				this.listQuery.keyword = ''
+				this.isShowClose = false
+				this.isShowWrapper = false
+				this.inputEmpty(this.listQuery.keyword)
+				this.InitGetSerachRecord()
+			},
+			keywordsClick (item) {//关键词搜索与历史搜索
+				this.listQuery.keyword = item;
+				this.isShowClose = true;
+				this.isFocus = false
+				this.SubMitSearch();
+			},
+			keywordsClickPath(item){
+				this.$api.FlooryNavigateTo(item)
+			},
+			confirmDetele() {//清空历史记录
+				this.modal = true;
+			},
+			handleClick(e) {//用户操作订单
+				let index = e.index;
+				if(index == 1){
+					this.ProductService.GetDeleteProductSearchHistory({userId:this.userID}).then(response =>{
+						this.$util.msg('删除成功',2000,true,'success')
+						this.serachRecordList=[];
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				}
+				this.modal = false;
+			},
+			hideMobel(){
+				this.modal = false;
+			},
+			inputEmpty(val){
+				this.isShowWrapper = false
+				if(val != ''){
+					this.isShowClose = true
+					this.isFocus = true
+				}else{					
+					this.isShowClose = false
+					this.isFocus = true
+				}
+			},
+			isInterceptHtmlFn(text){
+				let name = this.$reg.interceptHtmlFn(text)
+				return name
+			},
+			navToDetailPage(id) {
+				this.isModallayer = true;
+				this.$api.navigateTo(`/pages/goods/product?id=${id}`);
+				this.isModallayer = false;
+			},
+			setScrollHeight() {
+				const {windowHeight, pixelRatio} = wx.getSystemInfoSync();
+				this.windowHeight = windowHeight - 1;
+				this.scrollHeight = windowHeight - 1;
+			},
+			toLoginPage() {
+				let searchLoginType = 'search'
+				uni.navigateTo({
+					url:`/pages/login/login?type=${searchLoginType}`
+				})
+			},
+			topBubble() {//显隐搜索项
+				this.show = !this.show;
+			},
+		},
+		onShareAppMessage(res){//分享转发
+			if (res.from === 'button') {
+		      // 来自页面内转发按钮
+		    }
+			return {
+			  title: `点击查看“${this.listQuery.keyword}”相关的商品`,
+			  path: `search/pages/search/search?type=share&keyWord=${this.listQuery.keyword}`
+			}
+		},
+		onShow() {
+			this.setScrollHeight();
+		}
+	}
+</script>
+
+<style lang="scss">
+	@import "@/uni.scss";
+	page{
+		background-color: #F7F7F7 !important;
+	}
+	.search-main{
+		width: 100%;
+		height: 88rpx;
+		position: fixed;
+		top: 0;
+		left: 0;
+		background: #FFFFFF;
+		z-index: 1001;
+		box-sizing: border-box;
+		padding: 9rpx 24rpx;
+		.gosearch-btn{
+			width: 604rpx;
+			height: 100%;
+			float: left;
+			border-radius: 40rpx;
+			background: #F0F0F0;
+			margin: 0 auto;
+			padding:0 20rpx;
+			font-size: 28rpx;
+			line-height: 66rpx;
+			padding-left: 66rpx;
+			color: #8A8A8A;
+			background: #F7F7F7;
+			position: relative;
+			box-sizing: border-box;
+			.icon-sousuo{
+				width: 66rpx;
+				height: 66rpx;
+				line-height: 66rpx;
+				text-align: center;
+				display: block;
+				position: absolute;
+				left: 0;
+				top: 0;
+				font-size: 34rpx;
+				color: #8A8A8A;
+				z-index: 10;
+			}
+			.icon-shanchu1{
+				font-size: 36rpx;
+				color: #8A8A8A;
+				position: absolute;
+				right: 10rpx;
+				top: 0;
+				padding: 0 10rpx;
+				z-index: 100;
+			}
+			.input{
+				width: 400rpx;
+				height: 100%;
+				float: left;
+				font-size: $font-size-24;
+				box-sizing: border-box;
+				padding-right: 66rpx;
+			}
+		}
+		.search-btn{
+			width: 90rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			float: right;
+			text-align: center;
+			color: #666666;
+			font-size: $font-size-24;
+		}
+	}
+	.search-container{
+		padding-top: 91rpx;
+	}
+	.search-container-history{
+		width: 100%;
+		height: auto;
+		background-color: #FFFFFF;
+	}
+	.s-block{
+		background: #FFFFFF;
+		&.hot{
+			border-top: 20rpx solid #F7F7F7;
+		}
+		.header{
+			font-size: 32rpx;
+			padding:40rpx 24rpx 22rpx 24rpx;
+			line-height: 42rpx;
+			font-size: 30rpx;
+			font-weight: bold;
+			position: relative;
+			width: 100%;
+			float: left;
+			box-sizing: border-box;
+			.icon-shanchu{
+				font-size: 36rpx;
+				color: #333333;
+				float: right;
+				padding: 0 10rpx;
+				z-index: 10;
+				font-weight: normal;
+			}
+		}
+		.list{
+			width: 100%;
+			height: auot;
+			float: left;
+			padding: 0 24rpx 30rpx 24rpx;
+			box-sizing: border-box;
+			.list-title{
+				width: 100%;
+				height: 40rpx;
+				font-size: $font-size-26;
+				color: #333;
+			}
+			.list-main{
+				width: 100%;
+				float: left;
+				display: flex;
+				flex-wrap: wrap;
+				view{
+					color: #8A8A8A;
+					font-size: 24rpx;
+					box-sizing: border-box;
+					text-align: center;
+					height: 48rpx;
+					line-height: 48rpx;
+					border-radius: 24rpx;
+					margin:12rpx 12rpx 12rpx 0;
+					padding:.0 20rpx;
+					white-space: nowrap;
+					text-overflow: ellipsis;
+					background-color: #F3F3F3;
+					.iconfont{
+						font-size: $font-size-30;
+						color: #e15616;
+						margin-left: 12rpx;
+					}
+					&.list-active{
+						background-color: #fef6f3;
+						color: #e15616;
+					}
+				}
+			}
+		}
+	}
+	.commodity-list-wrapper {
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		background: #FFFFFF;
+		scroll-view {
+			height: 100%;
+			overflow: scroll;
+		}	
+		.empty-container-image {
+			margin-top: -300rpx;
+		}
+		.toIndexPage {
+			bottom: 390rpx;
+		}
+		.show-more-btn {
+			width: 276rpx;
+			height: 52rpx;
+			line-height: 52rpx;
+			border: 2rpx solid #D8D8D8;
+			background: #F7F7F7;
+			font-size: 26rpx;
+			margin: 26rpx 0;
+			position: absolute;
+			left: 50%;
+			margin-left: -138rpx;
+		}
+	}
+	.product-list-type {
+		height: 246rpx;
+		padding: 32rpx 0;
+		box-sizing: border-box;
+		border-bottom: 1px solid #e1e1e1;
+		.product-list-image{
+			width: 182rpx;
+			height: 182rpx;
+			box-sizing: border-box;
+			border-radius: 8rpx;
+			border: 1px solid #e1e1e1;
+			float: left;
+			.product-image{
+				width: 180rpx;
+				height: 180rpx;
+				display: block;
+				border-radius: 8rpx;
+			}
+		}
+		.product-list-msgs{
+			width: 495rpx;
+			height: 100%;
+			float: right;
+			position: relative;
+			.product-name{
+				width: 100%;
+				height: auto;
+				line-height: 36rpx;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 2;
+				line-clamp: 2;
+				-webkit-box-orient: vertical;
+				font-size: $font-size-26;
+				color: #333333;
+				text-align: justify;
+				float: left;
+			}
+			.product-unit{
+				width: 100%;
+				height: 28rpx;
+				float: left;
+				margin-top: 4rpx;
+				text-align: left;
+				line-height: 28rpx;
+				font-size: $font-size-20;
+				color: #999999;
+			}
+			.product-tags{
+				width: 100%;
+				height: 30rpx;
+				margin-top: 8rpx;
+				float: left;
+				.tag{
+					display: inline-block;
+					width: 80rpx;
+					height: 30rpx;
+					background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+					background-size: contain;
+					font-size: 22rpx;
+					line-height: 30rpx;
+					text-align: center;
+					color: #f83c6c;
+					float: left;
+				}
+			}
+			.product-pric{
+				width: 100%;
+				height: 44rpx;
+				float: left;
+				position: absolute;
+				bottom: -10rpx;
+				left: 0;
+				.price{
+					float: left;
+					font-size:$font-size-26;
+					color: #f83c6c;
+					font-weight: bold;
+					line-height: 44rpx;
+				}
+				.carts{
+					float: right;
+					.carts-add{
+						width: 44rpx;
+						height: 44rpx;
+						text-align: center;
+						line-height: 44rpx;
+						background-color: #ff457b;
+						border-radius: 50%;
+						.iconfont{
+							font-size: 32rpx;
+							color: #FFFFFF;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 133 - 64
pages/login/login.vue

@@ -2,27 +2,37 @@
 	<view class="container login">
 		<!-- logo区域 -->
 		<view class="login-main">
-			<image class="logo" src="/static/ws/logo.png" mode="widthFix"></image>
-		</view>
-		<!-- 邀请码标题 -->
-		<view class="login-title">
-			<image src="/static/ws/invitation_code.png" mode="widthFix"></image> <text>邀请码</text>
+			<image class="logo" :src="StaticUrl+'icon-logo@2x.png'" mode="widthFix"></image>
 		</view>
 		<!-- 邀请码 -->
 		<view class="login-input">
-			<vcode-input
-				borderValueColor="#e8e8e8"
-				borderActiveColor="#e8e8e8"
-				ref="vcodeInputRef"
-				@vcodeInput="vcodeInput"
-				@vcodeChange="vcodeChangeHandle"
-				sum="6"
-			></vcode-input>
+			<input class="input" 
+				   type="number" 
+				   v-model="params.mobile" 
+				   @blur="handBlurInput" 
+				   placeholder="请输入手机号" 
+				   maxlength="11"
+			/>
 		</view>
-		<!-- 提示信息 -->
-		<view class="logo-message" v-if="hasError"
-			><text>{{ loginMessage }}</text>
+		<view class="login-input">
+			<input class="input_code" 
+				   type="number" 
+				   v-model="params.msgCode" 
+				   placeholder="请输入短信验证码"
+				   maxlength="6"
+			/>
+			<view class="code-btn" :class="[isMobileDisabled  ? 'disabled' : '']">
+				<button type="button"
+						@click.stop="GetMobileCodeFn"
+						:disabled="isMobileDisabled"
+					    class="button"
+				>
+				{{ mobileCodeText }}
+				</button>
+			</view>
 		</view>
+		<!-- 提示信息 -->
+		<view class="logo-message"><text>{{ loginMessage }}</text></view>
 		<button class="login-btn" @click="goLogin" :disabled="isCodeEmpty">登录</button>
 	</view>
 </template>
@@ -30,14 +40,21 @@
 <script>
 import authorize from '@/common/config/authorize.js'
 import wxLogin from '@/common/config/wxLogin.js'
-import VcodeInput from '@/components/vcode-input/vcode-input'
 import { mapState, mapMutations } from 'vuex'
 export default {
-	components: { VcodeInput },
 	data() {
 		return {
 			invitationCode: '', //获取用户登录的邀请码
-			loginMessage: '' //登录信息反馈
+			loginMessage: '未注册的手机号验证后自动创建呵呵商城账户' ,//登录信息反馈
+			StaticUrl:this.$Static,
+			params:{
+				mobile:'',
+				msgCode:''
+			},
+			count: '',		//倒计时
+			isMobileDisabled:true, //获取手机短信按钮
+			mobileCodeText: '获取验证码',
+			codeTime: null,
 		}
 	},
 	onLoad(option) {},
@@ -106,27 +123,53 @@ export default {
 					}, 2000)
 				})
 		},
-		// 输入框输入介绍
-		vcodeInput(val) {
-			// this.invitationCode = val
-			console.log(val)
-		},
-		// 输入框输入事件
-		vcodeChangeHandle(val) {
-			this.invitationCode = val
-			// console.log(val)
-		},
-		// 控制组件获取焦点
-		setFocus() {
-			this.$refs.VcodeInput.setFocus()
-		},
-		// 控制组件失去焦点
-		setBlur() {
-			this.$refs.VcodeInput.setBlur()
+		GetMobileCodeFn(){//获取手机验证码
+			if( this.params.mobile == ''){
+				this.$util.msg('请输入手机号',2000);
+				return
+			}
+			if(!this.$reg.isMobile(this.params.mobile)){
+				this.$util.msg('请输入正确的手机号',2000);
+				return
+			}
+			let params = {
+					mobile:this.params.mobile,
+					platformType:2,
+					isCheckCaptcha:0,
+			}
+			this.isMobileDisabled = true;
+			this.PublicService.GetBindMobileCode(params)
+				.then(res =>{
+					const TIME_COUNT = 60;
+					this.$util.msg('验证短信已发送',2000)
+			     	if (!this.codeTime) {
+			       		this.count = TIME_COUNT;
+						this.isMobileDisabled = true;
+			       		this.codeTime = setInterval(() => {
+			       			if (this.count > 1 && this.count <= TIME_COUNT) {
+			         			this.count--
+			         			this.mobileCodeText = this.count +'s重新发送'
+			        		} else {
+				         		this.isMobileDisabled = false;
+				         		clearInterval(this.codeTime)
+				         		this.codeTime = null
+								this.mobileCodeText = '获取验证码'
+			        		}
+			       		},1000)
+			      	}
+				})
+				.catch( error =>{
+					this.$util.msg(error.msg,2000)
+					this.isMobileDisabled = false;
+				})
 		},
-		// 清除已输入
-		clearValue() {
-			this.$refs.VcodeInput.clearValue()
+		handBlurInput(e){
+			console.log(e)
+			if(e.detail.value){
+				this.isMobileDisabled = false
+			}else{
+				this.isMobileDisabled = true
+			}
 		}
 	},
 	onShow() {}
@@ -147,10 +190,10 @@ export default {
 		display: flex;
 		justify-content: center;
 		margin: 180rpx 0 60rpx;
-		image {
-			width: 151rpx;
-			height: 151rpx;
-			border-radius: 50%;
+		.logo {
+			width: 200rpx;
+			height: 200rpx;
+			display: block;
 		}
 	}
 	.login-title {
@@ -167,34 +210,60 @@ export default {
 		height: 90rpx;
 		text-align: center;
 		line-height: 90rpx;
-		background-color: #000;
+		background:$btn-confirm ;
 		border-radius: 45rpx;
-		color: #fff;
+		color: #fff !important;
 		margin-top: 40rpx;
 	}
 	.login-input {
-		margin: 30rpx 0;
+		margin: 10rpx 0;
+		width: 600rpx;
+		height: 90rpx;
+		box-sizing: border-box;
+		padding: 25rpx 0;
+		border-bottom: 1px solid #E1E1E1;
+		.input{
+			width: 100%;
+			height: 40rpx;
+			left: 40rpx;
+			font-size: $font-size-28;
+			color: #333333;
+		}
+		.input_code{
+			width: 420rpx;
+			height: 40rpx;
+			left: 40rpx;
+			font-size: $font-size-28;
+			color: #333333;
+			float: left;
+		}
+		.code-btn{
+			width: 180rpx;
+			height: 40rpx;
+			line-height: 40rpx;
+			font-size: $font-size-28;
+			color: #333333;
+			float: right;
+			text-align: center;
+			.button{
+				width: 180rpx;
+				height: 40rpx;
+				line-height: 40rpx;
+				padding: 0;
+				color: $color-system;
+			}
+			&.disabled{
+				.button{
+					color: #b2b2b2;
+				}
+			}
+		}
 	}
 	.logo-message {
-		margin-bottom: 64rpx;
 		font-size: 24rpx;
-		line-height: 33rpx;
-		color: #ff2a2a;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		&::before {
-			content: '!';
-			display: block;
-			width: 22rpx;
-			height: 22rpx;
-			border: 1px solid #ff2a2a;
-			border-radius: 50%;
-			color: #ff2a2a;
-			text-align: center;
-			line-height: 22rpx;
-			margin-right: 6rpx;
-		}
+		line-height: 44rpx;
+		color: #fc464c;
+		text-align: left;
 	}
 }
 </style>

+ 160 - 233
pages/tabBar/cart/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="container cart clearfix" v-if="hasLogin"> 	
+	<view class="container cart clearfix" v-if="!hasLogin"> 	
 		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
 		<view class="container-cart-main tui-skeleton" :style="{paddingTop:isshowDelbtn ? '0rpx':'80rpx'}">
 			<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length>0">
@@ -13,52 +13,33 @@
 							<view class="shoptitle">
 								<!--选择商店的全部商品"-->
 								<view class="checkbox-box" @click.stop="checkShop(item)">
-									<view class="checkbox iconfont" :class="[item.checked ?'icon-yixuanze':'icon-weixuanze']"></view>
-								</view>
-								<view v-if="item.promotions" class="floor-item-act">
-									<view class="floor-tags" @click.stop="clickPopupShow(item,2)">{{item.promotions.name}}</view>	
+									<view class="checkbox iconfont" :class="[item.checked ?'icon-xuanze':'icon-weixuanze']"></view>
 								</view>
 								<view class="text">{{item.name}}</view> 
 							</view>
 							<view class="productlist">
-								<view 	class="goods-pros" v-for="(pros,idx) in item.cartList" :key="idx" >
+								<view 	class="goods-pros" v-for="(pros,idx) in item.productsList" :key="idx" >
 									<view class="goods-pros-t">
 										<!--选择商品-->
 										<view class="checkbox-box" @click.stop="ischeck(item,pros)">
-											<view class="checkbox iconfont" :class="[pros.productsChecked ? 'icon-yixuanze':'icon-weixuanze']"></view>
+											<view class="checkbox iconfont" :class="[pros.productsChecked ? 'icon-xuanze':'icon-weixuanze']"></view>
 										</view>
 										<view class="pros-img" @click.stop="navToListPage(pros.productId)"	><image :src="pros.image ? pros.image:''" alt="" /></view>
 										<view class="pros-product">
 											<view class="producttitle" @click.stop="navToListPage(pros.productId)"	>{{pros.name}}</view>
 											<view class="productspec">规格:{{pros.unit ? pros.unit : ''}}</view>
+											<view class="floor-item-act"><view class="tag" @click.stop="clickPopupShow(pros,2)">活动价</view></view>
 											<view class="productprice">
 												<!--使用过滤器对总价改变-->
-												<view class="price" :class="PromotionsFormat(pros.promotions) ? 'disabled' : ''">
-													<text>¥</text>
-													{{ (PromotionsFormat(pros.promotions) ? pros.originalPrice : pros.price)  | NumFormat }}
-												</view>
+												<view class="price"><text>¥</text>{{ pros.price  | NumFormat }}</view>
 												<view class="count" v-if="pros.validFlag == 2 "  :class="[isshowDelbtn ? 'none':'show']">
-													<text class="count-tips" v-if="pros.number<pros.min">起订量:{{pros.min}}</text>
-													<text class="count-tips step" v-if="pros.isStep">购买量必须为起订量的整数倍</text>
 													<view class="number-box">
 														<view  class="iconfont icon-jianhao" @click="changeCountSub(item,pros)"></view>
-														<input class="btn-input" type="number" maxlength='4' v-model="pros.number" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
+														<input class="btn-input" type="number" maxlength='4' v-model="pros.minBuyNumber" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
 														<view  class="iconfont icon-jiahao"  @click="changeCountAdd(item,pros)"></view>
 													</view>
 												</view>
 											</view>
-											<view v-show="pros.actStatus==1" class="floor-item-act">
-												<view v-if="PromotionsFormat(pros.promotions)"  class="floor-tags" @click.stop="clickPopupShow(pros,1)">
-													{{pros.promotions.name}}
-													<text v-if ="pros.promotions!=null && pros.promotions.type!=3">
-														:¥{{ pros.promotions == null ? '0.00' : pros.promotions.touchPrice | NumFormat}}
-													</text>
-												</view>
-												<view v-else-if="pros.promotions.type!=3" class="floor-tags" @click.stop="clickPopupShow(pros,2)">{{pros.promotions.name}}</view>	
-											</view>
-											<view  v-if="pros.actStatus == null  &&  pros.ladderFlag == 1" class="floor-item-act">
-												<view class="floor-tags" @click.stop="clickPopupShow(pros,2)">阶梯价格</view>	
-											</view>
 										</view>	
 									</view>
 								</view>
@@ -84,7 +65,7 @@
 									<!--选择商品-->
 									<view class="checkbox-box" @click.stop="ischeckFailure(failure)" v-if="isshowDelbtn">
 										<button class="checkbox iconfont" 
-												:class="[ failure.productsChecked ? 'icon-yixuanze':'icon-weixuanze']">
+												:class="[ failure.productsChecked ? 'icon-xuanze':'icon-weixuanze']">
 										</button>
 									</view>
 									<text class="img-tip">失效</text>
@@ -106,7 +87,7 @@
 				<view class="footer">
 					<view class="footer-le">
 						<view class="foot-check checkbox-box" @tap.stop="checkAll()">
-							<button class="checkbox iconfont" :class="[isCheckAll?'icon-yixuanze':'icon-weixuanze']"></button> 
+							<button class="checkbox iconfont" :class="[isCheckAll?'icon-xuanze':'icon-weixuanze']"></button> 
 							<view class="text">全选</view>
 						</view>
 	
@@ -132,12 +113,13 @@
 			</view>
 			<view v-else class="cart-content empty">
 				<view  class="empty-container">
-					<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AWdWzAAGlgAP0das422.png" mode="aspectFit"></image>
-					<text class="error-text">购物车空空如也,快去商城逛逛吧~</text>
-					<view class="login-btn"  @click="goIndex">去商城</view>
+					<image class="empty-container-image" :src="StaticUrl+'icon-empty-cart.png'" mode="aspectFit"></image>
+					<text class="error-text">购物车空空的,快去逛逛吧~</text>
 				</view>
 			</view>
 		</view>
+		<!-- 操作弹窗 -->
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
 		<!-- 促销活动弹窗 -->
 		<activi-popup :product="handlerPros" :popupShow="popupShow"></activi-popup>
 		<!-- 透明模态层 -->
@@ -152,6 +134,7 @@
 	import activiPopup from "@/components/cm-module/productDetails/cm-activipopu"
 	import modalLayer from "@/components/modal-layer"
 	import { mapState,mapMutations } from 'vuex';
+	import { cartList } from '@/common/json/data.json.js' //本地数据
 	
 	export default{
 		components:{
@@ -163,6 +146,7 @@
 		},
 		data(){
 			return{
+				StaticUrl:this.$Static,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				isIphoneX:this.$store.state.isIphoneX,
 				userID:'',
@@ -171,7 +155,7 @@
 				popupShow:false,
 				handlerPros:{},//监听单挑促销商品
 				failureList:[],	//失效商品列表
-				goodsList:[],	//购物车的商品
+				goodsList:cartList,	//购物车的商品
 				promotionsList:[],//促销列表
 				delGoodsList:'',//要删除的商品
 				setGoodData:'', //确认订单的商品
@@ -182,7 +166,7 @@
 				reducedPrice:0,//满减
 				allCount:0,//被选中的产品数量
 				isModallayer:false,
-				skeletonShow:true,
+				skeletonShow:false,
 				isshowDelbtn:false,
 				isDisabled: false, // 供应商/店铺全选是否禁用状态
 				isNoConfim:false,
@@ -195,11 +179,16 @@
 				pullFlag: true,
 				pageSize: 10,
 				pageNum: 1,
-				submitIds:[]
+				submitIds:[],
+				modal:false,
+				contentModalText:'',
+				deleteType:0,
+				
 			}
 		},
 		onLoad(){
 			this.setScrollHeight();
+			console.log(this.goodsList)
 		},
 		computed: {
 			...mapState(['hasLogin','userInfo'])
@@ -215,7 +204,7 @@
 		methods:{
 			initData(){
 				this.isModallayer = false //遮罩层 防止多次点击
-				this.skeletonShow = true //预加载圆圈
+				// this.skeletonShow = true //预加载圆圈
 				this.isCheckAll=false//是否全选
 				this.submitIds = []
 				this.$api.getStorage().then((resolve) => {
@@ -264,19 +253,6 @@
 					}
 					if(data.list && data.list.length > 0 ){
 						this.goodsList = data.list;
-						this.goodsList.forEach((item,index) => {
-							item.cartList.forEach(pros => {
-								pros.shopID = item.shopID;
-								pros.isStep = false
-								if(pros.step === 2){ 
-									if(pros.number % pros.min != 0){
-										pros.number = pros.min
-										this.totalShopPeice()
-										this.updateShoppogNum(pros)
-									}
-								}
-							})
-						})
 						this.totalShopPeice()
 					} else {
 						this.goodsList = [];
@@ -320,7 +296,7 @@
 				
 			},
 			updateProductCheckedAllBtn(item) {// 单独每个供应商的勾选判断
-				let productsList = item.cartList,
+				let productsList = item.productsList,
 					productsCheckedLength = 0,
 					disabledLength = 0;
 				if(this.isshowDelbtn) {
@@ -364,7 +340,7 @@
 				this.updateCheckAllBtn();
 			},
 			setProductChecked(item) {
-				item.cartList.forEach(pros=>{
+				item.productsList.forEach(pros=>{
 					if(item.checked) {
 						pros.productsChecked = true;
 						if(!this.submitIds.includes(pros.productId*1)){
@@ -405,44 +381,26 @@
 				let touchPrice = 0;
 				let reducedPrice = 0;//商铺合计满减价
 				this.goodsList.map((item,index)=>{
-					//计算店铺满减后店铺合计
-					if(item.promotions && item.promotions.mode == 2){
-						let prosPrice=0;
-						let totalOriginalPrice = 0;//商铺合计原价
-						item.cartList.forEach(pros=>{
-							prosPrice += pros.price*pros.number
-							totalOriginalPrice += pros.originalPrice*pros.number
-						})
-						if(prosPrice >= item.promotions.touchPrice){
-							item.totalPrice = prosPrice - item.promotions.reducedPrice  
-							item.reducedPrice = item.promotions.reducedPrice
-							item.totalOriginalPrice = totalOriginalPrice
+					let _totalPrice = 0;
+					let _reducedPrice = 0;
+					let _totalOriginalPrice =0;
+					item.productList.forEach(pros=>{
+						let _price = pros.retailPrice*pros.productCount
+						_totalOriginalPrice += pros.retailPrice*pros.productCount;
+						if(pros.promotion && pros.promotion.type != 2 && pros.promotion.mode == 2){
+							if(_price >= pros.promotion.touchPrice){
+								_price = _price - pros.promotion.reducedPrice
+								_reducedPrice += pros.promotion.reducedPrice
+							}
+							_totalPrice +=  _price
 						}else{
-							item.reducedPrice = 0  //统计合计价格
-							item.totalPrice = prosPrice
+							_reducedPrice = 0;
+							_totalPrice += pros.retailPrice*pros.productCount;
 						}
-					}else{//以下为计算除店铺满减以外的单品满减以及正常商品合计
-						let _totalPrice = 0;
-						let _reducedPrice = 0;
-						let _totalOriginalPrice =0;
-						item.cartList.forEach(pros=>{
-							let _price = pros.price*pros.number
-							_totalOriginalPrice += pros.price*pros.number;
-							if(pros.promotions && pros.promotions.type != 2 && pros.promotions.mode == 2){
-								if(_price >= pros.promotions.touchPrice){
-									_price = _price - pros.promotions.reducedPrice
-									_reducedPrice += pros.promotions.reducedPrice
-								}
-								_totalPrice +=  _price
-							}else{
-								_reducedPrice = 0;
-								_totalPrice += pros.price*pros.number;
-							}
-						})
-						item.reducedPrice = _reducedPrice
-						item.totalOriginalPrice = _totalOriginalPrice
-						item.totalPrice = _totalPrice
-					}
+					})
+					item.reducedPrice = _reducedPrice
+					item.totalOriginalPrice = _totalOriginalPrice
+					item.totalPrice = _totalPrice
 				})
 			},
 			totalPeice(){//计算总价格,每次调用此方法,将初始值为0,遍历价格并累加
@@ -455,27 +413,19 @@
 					item.totalprice = 0;
 					item.reducedprice = 0;
 					item.originalprice = 0;
-					item.cartList.forEach(pros=>{	
+					item.productList.forEach(pros=>{	
 						if(pros.productsChecked){								
-							supplierPrice += pros.price*pros.number;
+							supplierPrice += pros.retailPrice*pros.productCount;
 							// 单品满减
-							if(pros.promotions && pros.promotions.type*1===1 && pros.promotions.mode*1===2){
+							if(pros.promotion && pros.promotion.type*1===1 && pros.promotion.mode*1===2){
 								// 单品满减-重新计算供应商总价/满减金额
-								if(pros.price*pros.number >= pros.promotions.touchPrice){
-									supplierPrice -= pros.promotions.reducedPrice;
-									supplierReducedPrice += pros.promotions.reducedPrice;
+								if(pros.retailPrice*pros.productCount >= pros.promotion.touchPrice){
+									supplierPrice -= pros.promotion.reducedPrice;
+									supplierReducedPrice += pros.promotion.reducedPrice;
 								}
 							}
 						}	
 					})
-					// 店铺满减
-					if(item.promotions && item.promotions.mode*1===2){
-						// 店铺满减-计算供应商总价/满减金额
-						if(supplierPrice >= item.promotions.touchPrice){
-							supplierPrice -= item.promotions.reducedPrice;
-							supplierReducedPrice += item.promotions.reducedPrice;
-						}
-					}
 					item.totalprice = supplierPrice;
 					item.reducedprice = supplierReducedPrice;
 					item.originalprice = (supplierPrice+supplierReducedPrice);
@@ -483,22 +433,6 @@
 					reducedPrice += item.reducedprice;
 					originalPrice += item.originalprice;
 				})
-				 //总促销计算
-				this.promotionsList.forEach(promotions =>{
-					// 凑单满减
-					if(promotions.mode*1===2 && promotions.type*1===2){
-						let total = 0;
-						 promotions.productList.forEach(pros=>{
-							if (this.submitIds.includes(pros.productId*1)){
-								total += pros.number * pros.price;
-							}
-						});
-						if(total>=promotions.touchPrice){
-							totalPrice -= promotions.reducedPrice;
-							reducedPrice += promotions.reducedPrice;
-						}
-					}
-				});
 				//最后统计商品原价
 				this.totalOriginalPrice = originalPrice;
 				//最后满减金额 = 店铺减去金额 + 单品减去金额 + 凑单减去金额
@@ -513,10 +447,10 @@
 				let validList =[];
 				let productsList =[];
 			    this.goodsList.forEach(item=>{
-					productsList = item.cartList
+					productsList = item.productList
 					productsList.forEach(pros=>{
 						if(pros.productsChecked){
-							prosAllCount+=parseInt(pros.number);
+							prosAllCount+=parseInt(pros.productCount);
 							this.allCount = prosAllCount
 						}
 					})
@@ -598,7 +532,7 @@
 			toConfirmation(){//跳转确认订单页面
 				let setGoodsList=[];
 				this.goodsList.forEach(res=>{
-					let products = res.cartList
+					let products = res.productsList
 					products.forEach(pros=>{
 						if(pros.productsChecked){
 						    setGoodsList.push(pros.productId)
@@ -611,7 +545,7 @@
 				}else{
 					this.isNoConfim = false
 					this.goodsList.forEach(el=>{
-						el.cartList.forEach(pros=>{
+						el.productsList.forEach(pros=>{
 							if(pros.productsChecked){
 							   if(pros.number<pros.min){
 								   this.isNoConfim = true
@@ -625,7 +559,7 @@
 					}
 					let productID = '';
 					this.goodsList.forEach(el=>{//获取勾选的商品ID拼接字符串逗号隔开,最后一个逗号去掉
-						el.cartList.forEach(pros=>{
+						el.productsList.forEach(pros=>{
 							if(pros.productsChecked){
 							   productID += pros.productId+','
 							}
@@ -647,7 +581,7 @@
 				} else {
 					this.goodsList.forEach(item => {
 						if(item.checked) {
-							item.cartList.forEach(pros => {
+							item.productsList.forEach(pros => {
 								pros.productsChecked = true;
 							})
 						}
@@ -672,7 +606,7 @@
 						if(item.isDisabled) {
 							item.checked = false;
 						}
-						item.cartList.forEach(pros => {
+						item.productsList.forEach(pros => {
 							if(pros.validFlag == 3) {
 								pros.productsChecked = false;
 							}
@@ -690,51 +624,59 @@
 				})
 				this.failureList = newFailureList;
 			},		
-			deleteList(){//删除购物车商品	
+			deleteList(){//删除购物车商品
 				this.delGoodsList=[];
 				this.goodsList.forEach(delitem=>{
-					let products = delitem.cartList
+					let products = delitem.productsList
 					products.forEach(pros=>{
 						if(pros.productsChecked){
-						    this.delGoodsList += pros.productId+','
+						    this.delGoodsList += pros.cartId+','
 						}
 					})
 				})
-				this.failureList.forEach(failure=>{
-					if(failure.productsChecked){
-						this.delGoodsList += failure.productId+','
-					}
-				})
+				// this.failureList.forEach(failure=>{
+				// 	if(failure.productsChecked){
+				// 		this.delGoodsList += failure.cartId+','
+				// 	}
+				// })
 				if(this.delGoodsList.length == 0){
 					this.$util.msg("请选择要删除的商品~",2000);
 					return
 				}else{			
-					this.$util.modal('','确定删除选中的商品吗?','确定','取消',true,() =>{
-						this.ProductService.ShoppingCartDelete({userID:this.userID,productIDs:this.delGoodsList}).then(response =>{
-							this.$util.msg('删除成功',2000);
-							setTimeout(()=>{
-								this.isshowDelbtn = false;
-								this.initGetCartGoodsList();
-							},2000)
-						}).catch(error =>{
-							this.$util.msg(error.msg,2000)
-						})
-					})
+					this.modal = true;
+					this.contentModalText = '确定删除选中的商品吗?';	
+					this.deleteType = 1
 				}
 			},
 			deletefailureList(){
-				this.failureList.forEach(failure=>{ this.delGoodsList += failure.productId+',' })
-				this.$util.modal('','确定清空全部失效商品吗?','确定','取消',true,() =>{
-					this.ProductService.ShoppingCartDelete({userID:this.userID,productIDs:this.delGoodsList}).then(response =>{
+				this.delGoodsList = ''
+				this.failureList.forEach(failure=>{ this.delGoodsList += failure.cartId+',' })
+				this.modal = true;
+				this.contentModalText = '确定清除所有失效商品吗?';	
+				this.deleteType = 2
+			},
+			handleClick(e) {//用户操作订单
+				let index = e.index;
+				if(index == 1){
+					this.ProductService.ShoppingCartDelete(
+						{
+							cartIds:this.delGoodsList,
+						}
+					)
+					.then(response =>{
 						this.$util.msg('删除成功',2000);
 						setTimeout(()=>{
 							this.isshowDelbtn = false;
 							this.initGetCartGoodsList();
-						},2000)
+						},1000)
 					}).catch(error =>{
 						this.$util.msg(error.msg,2000)
 					})
-				})
+				}
+				this.modal = false;
+			},
+			hideMobel(){
+				this.modal = false;
 			},
 			goIndex(){
 				uni.switchTab({
@@ -819,11 +761,11 @@
 			uni.stopPullDownRefresh()
 		},
 		onShow(){
-			if(this.hasLogin){
-				this.initData()
-			}else{
-				this.initLogin()
-			}
+			// if(this.hasLogin){
+			// 	this.initData()
+			// }else{
+			// 	this.initLogin()
+			// }
 		},
 	}
 </script>
@@ -890,8 +832,8 @@
 			line-height: 50rpx;
 			border-radius: 30rpx;
 			background:#FFFFFF;
-			border: 1px solid #e15616;
-			color: #E15616;
+			border: 1px solid #ff457b;
+			color: #ff457b;
 			float: right;
 			text-align: center;
 			&.none{
@@ -918,7 +860,7 @@
 			background-color:#FFFFFF;
 			font-size: 36rpx;
 			color:#999999;
-			&.icon-yixuanze{
+			&.icon-xuanze{
 				color: $color-system;
 			}
 		}
@@ -962,27 +904,6 @@
 				text-align: left;
 				font-weight: bold;
 			}
-			.floor-item-act{
-				height: 56rpx;
-				text-align: center;
-				box-sizing: border-box;
-				float: left;
-				padding:10rpx 0;
-				margin-left: 20rpx;
-				.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: right;
-				}
-			}
 		}
 		.goods-pros{
 			width: 100%;
@@ -1059,12 +980,12 @@
 				justify-content: flex-end;
 				font-weight: bold;
 				.money{
-					color: #FF2A2A;
+					color: $color-system;
 					font-size: $font-size-26;
 				}
 				.money-sign{
 					font-size: $font-size-24;
-					color: #FF2A2A;
+					color: $color-system;
 				}
 			}
 		}
@@ -1111,7 +1032,7 @@
 					line-height: 48rpx;
 					font-size: $font-size-26;
 					width: 48%;
-					color: #FF2A2A;
+					color: $color-system;
 					float: left;
 					font-weight: bold;
 					&.disabled{
@@ -1120,7 +1041,7 @@
 					}
 					.money-sign{
 						font-size: $font-size-24;
-						color: #FF2A2A;
+						color: $color-system;
 					}
 				}
 				.count{
@@ -1164,35 +1085,38 @@
 							border-color:$color-system transparent transparent transparent;
 						}
 					}
-					.number-box{
+					.number-box {
 						display: flex;
 						justify-content: center;
 						align-items: center;
-						border: 2rpx solid #ffe6dc;
+						border: 2rpx solid #e1e1e1;
 						border-radius: 30rpx;
-						.iconfont{
+						height: 48rpx;
+						margin-left: 20rpx;
+						.iconfont {
 							font-size: $font-size-24;
-							padding:0 18rpx;
-							color: #999999;
+							padding: 0 14rpx;
+							color: #666666;
 							text-align: center;
 							line-height: 48rpx;
 							font-weight: bold;
-							background: #fef6f3;
-							&.icon-jianhao{
+							background: #ffffff;
+							&.icon-jianhao {
 								border-radius: 30rpx 0 0 30rpx;
 							}
-							&.icon-jiahao{
+							&.icon-jiahao {
 								border-radius: 0 30rpx 30rpx 0;
 							}
 						}
-						.btn-input{
-							width: 62rpx;
-							height: 48rpx;
-							line-height: 48rpx;
-							background: #fff;
+						.btn-input {
+							width: 56rpx;
+							height: 44rpx;
+							line-height: 44rpx;
 							border-radius: 4rpx;
 							text-align: center;
 							font-size: $font-size-24;
+							color: #333333;
+							background-color: #f7f7f7;
 						}
 					}
 					.uni-numbox{
@@ -1212,23 +1136,19 @@
 			}
 			.floor-item-act{
 				width: 100%;
-				height: 56rpx;
-				text-align: center;
-				box-sizing: border-box;
+				height: 30rpx;
+				margin-top: 8rpx;
 				float: left;
-				padding:0 0 10rpx 0;
-				margin-left: 10rpx;
-				.floor-tags{
-					height: 28rpx;
-					border-radius: 6rpx;
-					background-color: #FFFFFF;
-					line-height: 28rpx;
-					color: $color-system;
-					text-align: center;
+				.tag{
 					display: inline-block;
-					padding:0 16rpx;
-					font-size: $font-size-20;
-					border: 1px solid #E15616;
+					width: 80rpx;
+					height: 30rpx;
+					background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+					background-size: contain;
+					font-size: 22rpx;
+					line-height: 30rpx;
+					text-align: center;
+					color: #f83c6c;
 					float: left;
 				}
 			}
@@ -1263,9 +1183,9 @@
 					height: 50rpx;
 					line-height: 50rpx;
 					border-radius: 30rpx;
-					background:#FFFFFF;
-					// border: 1px solid #C9C9C9;
-					// color: #999999;
+					background:#fff8fd;
+					border: 1px solid #ff457b;
+					color: #ff457b;
 					margin-top: 15rpx;
 				}
 			}
@@ -1400,20 +1320,20 @@
 	.footer{
 		width: 100%;
 		background-color: #FFFFFF;
-		height: 110rpx;
+		height: 100rpx;
 		position: fixed;
 		bottom: 0rpx;
 		z-index: 100;
 		.footer-le{
 			width: 520rpx;
 			height: 100%;
-			padding:0 24rpx;
+			padding:10rpx 24rpx;
 			float: left;
 			box-sizing: border-box;
 			.foot-check{
 				width: 100rpx;
 				float: left;
-				line-height: 110rpx;
+				line-height: 80rpx;
 				font-size: $font-size-24;
 				.checkbox{
 					width: 40rpx;
@@ -1426,14 +1346,14 @@
 			}
 			.sum{
 				width: 360rpx;
-				height: 110rpx;
+				height: 100%;
 				float: right;
 				box-sizing: border-box;
-				padding: 10rpx;
+				padding:0 10rpx;
 				.sum-none{
 					width: 100%;
-					height: 45rpx;
-					line-height: 45rpx;
+					height: 40rpx;
+					line-height: 40rpx;
 					color: $text-color;
 					float: left;
 					text-align: right;
@@ -1456,22 +1376,22 @@
 				.sum-price{
 					text-align: right;
 					width: 100%;
-					height: 45rpx;
-					line-height: 45rpx;
+					height: 40rpx;
+					line-height: 40rpx;
 					font-size: $font-size-30;
 					color: $text-color;
 					float: left;
 					font-weight: normal;
 					&.none{
-						height: 90rpx;
-						line-height: 90rpx;
+						height: 80rpx;
+						line-height: 80rpx;
 					}
 					.money{
-						color: #FF2A2A;
+						color: $color-system;
 					}
 					.money-sign{
 						font-size: $font-size-24;
-						color: #FF2A2A;
+						color: $color-system;
 					}
 				}
 			}
@@ -1492,25 +1412,28 @@
 			.btn{
 				width: 200rpx;
 				height: 100%;
-				background:linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);
+				background:$btn-confirm;
 				font-size: $font-size-28;
-				line-height: 84rpx;
+				line-height: 80rpx;
 				color: #FFFFFF;
 				display: flex;
-				border-radius: 42rpx;
+				border-radius: 40rpx;
 				justify-content: center;
 				align-items: center;
 			}
 		}
 		.footer-del{
-			width: 400rpx;
-			height: 110rpx;
+			width: 420rpx;
+			height: 100rpx;
 			position: absolute;
 			padding-left: 200rpx;
 			background: #FFFFFF;
 			right: 0;
 			top: 0;
 			z-index: 1000;
+			box-sizing: border-box;
+			padding: 10rpx 0;
+			display: flex;
 			&.show{
 				animation: showDelbtn 0s linear both;
 			}
@@ -1518,19 +1441,23 @@
 				animation: hideDelbtn 0s linear both;
 			}
 			.btn{
-				width: 50%;
+				flex: 1;
+				margin: 0 8rpx;
 				height: 100%;
-				line-height: 110rpx;
+				line-height: 80rpx;
 				font-size: $font-size-28;
 				color: #FFFFFF;
 				text-align: center;
 				float: left;
+				border-radius: 40rpx;
 			}
 			.btn.btn-cancel{
-				background:#EEC1AB;
+				background:#f7f7f7;
+				color: #B2B2B2;
 			}
 			.btn.btn-confirm{
-				background:#FF2A2A;
+				background:$btn-confirm;
+				color: #FFFFFF;
 			}
 			@keyframes showDelbtn {
 				0% {

+ 351 - 94
pages/tabBar/index/index.vue

@@ -9,9 +9,9 @@
 			<view class="search-input">
 				<view class="gosearch-btn" @click="this.$api.navigateTo(clickPath)">
 					<view class="search-icon">
-						<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+						<text class="iconfont icon-sousuo"></text>
 					</view>
-					<view class="search-text">{{hotSearchText}}</view>
+					<view class="search-text">搜索商品</view>
 				</view>
 			</view>
 		</view>
@@ -19,11 +19,28 @@
 		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
 		<view class="container-home tui-skeleton" :style="{paddingTop:CustomBar+'px'}">
 			<!-- 轮播 -->
-			<banner :list="bannerImageList" v-if="isNavRequest"></banner>
+			<banner :list="bannerImageList"></banner>
 		</view>	
-		<!-- 楼层 -->
-		<view class="container-section tui-skeleton">
-			
+		<!-- 商品列表 -->
+		<view class="container-section tui-skeleton clearfix">
+			<view class="product-list" v-for="(pro,index) in productList" :key="index" @click.stop="Details(pro)">
+				<view class="product-list-image">
+					<image class="product-image" :src="pro.image" mode=""></image>
+					<image class="product-icon" :src="StaticUrl+'icon-hot.png'" mode="" v-if="pro.activistatus == 1"></image>
+				</view>
+				<view class="product-list-msg">
+					<view class="product-msg-name">{{ pro.name }}</view>
+					<view class="product-list-tag" v-if="pro.activistatus == 1"><text class="tag">活动价</text></view>
+					<view class="product-list-pri">
+						<view class="price">¥{{ pro.price | PriceFormat}}</view>
+						<view class="carts" @click.stop="handAddCarts">
+							<view class="carts-add">
+								<text class="iconfont icon-gouwuche"></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
 		</view>
 		<!-- 侧边 -->
 		<scroll-top :isScrollTop="isScrollTop" :bottom="50"></scroll-top>
@@ -44,6 +61,7 @@
 		},
 		data() {
 			return {
+				StaticUrl:this.$Static,
 				navbarData: {//顶部自定义导航
 					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
 					showSearch: 0,
@@ -53,8 +71,7 @@
 					textColor:'#FFFFFF'
 				},
 				inputActive:'bgnone',
-				clickPath:'/search/pages/search/search',
-				hotSearchText:'搜索商品',
+				clickPath:'/pages/goods/search',
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				StatusBar: this.StatusBar,
 				fontSizeSetting:this.fontSizeSetting,
@@ -62,69 +79,229 @@
 				capsule:this.capsule,
 				platformClass:this.platformClass,
 				userID:0,
-				clubStatus:'',
-				current:0,
-				mode:'round',
 				modallayer:false,
 				isLogin:false,
 				skeletonShow: false,
 				userIdentity:'',
-				flootData:[],//楼层
-				bannerImageList:[
-					image:'',
+				productList:[
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:2,
+						price:888,
+					},
+					{
+						image:'https://img.caimei365.com/group1/M00/03/E7/Cmis21__-MOABqnlAAJUIFDLc8U188.jpg',
+						name:'小气泡水氧嫩肤仪小气泡水氧嫩肤仪',
+						activistatus:1,
+						price:888,
+					},
 					
+				],//商品列表
+				bannerImageList:[
+					{image:'https://img.caimei365.com/group1/M00/00/0B/rB-lGGBtan-ASLC1AAKrolQyBrM712.jpg'},
+					{image:'https://img.caimei365.com/group1/M00/00/0A/rB-lGGBkNCWAFXZ_AAKFJ77YqsA272.jpg'},
+					{image:'https://img.caimei365.com/group1/M00/00/08/rB-lGGBZuoeAYOYXAAOpsUwvvgg050.jpg'},
+					{image:'https://img.caimei365.com/group1/M00/03/E5/Cmis21_1bFmAeB-wAAOPdEM9o7c219.jpg'},
 				],//轮播
-				navBarsList:[],//导航分类
-				templateData:{},
-				pageList:[],//楼层
 				isScrollTop:false,
 				isRequest:false,
-				isNavRequest:false,
-				isLiveRequest:false,
+			}
+		},
+		filters: {
+			//处理金额
+			PriceFormat: function(text) {
+				return Number(text).toFixed(2)
 			}
 		},
 		onLoad() {
-			
+			console.log(this.$Static)
 		},
 		computed: {
 			...mapState(['hasLogin','userInfo','identity','isActivity'])
 		},
 		methods: {
 			...mapMutations(['login','logout']),
-			GetWxAuthorize(){
-				authorize.getCode('weixin').then(wechatcode =>{// 根据微信的code获取用户登录状态:1已登录过 -1未登录过
-					authorize.getUserInfo('weixin').then(getUserInfo =>{
-						this.UserService.UserLoginAuthApplets({ 
-							code:wechatcode,
-							encryptedData:getUserInfo.encryptedData,
-							iv:getUserInfo.iv ,
-						})
-						.then(response =>{
-							this.isLogin = true;
-							this.userID = response.data.userId;						
-							this.userIdentity = response.data.userIdentity;						
-							this.clubStatus = response.data.clubStatus;						
-							this.$store.commit('updateStatus',response.data)
-							this.login(response.data);
-							uni.setStorageSync('token',response.data.token)
-							uni.setStorageSync('unionId',response.data.unionId)
-							if(response.data.userIdentity ==1){
-								this.$api.redirectTo('/seller/pages/index/index')
-							}else if(response.data.userIdentity === 3){
-								this.$api.redirectTo('/supplier/pages/index/index')
-							}
-							this.getHomeInformation()
-						})
-						.catch(error =>{
-							this.isLogin = false;
-							this.logout()
-							uni.setStorageSync('unionId',error.data.unionId)
-							this.$store.commit('updateStatus',error.data)
-							this.getHomeInformation()
-						})
-					})
-				})						
-			},
 			async getWxAuthorize(){
 				const wechatCode = await authorize.getCode('weixin');// 根据微信的code获取用户登录状态:1已登录过 -1未登录过
 				const getUserInfo = await authorize.getUserInfo('weixin');
@@ -147,57 +324,30 @@
 					}else if(response.data.userIdentity === 3){
 						this.$api.redirectTo('/supplier/pages/index/index')
 					}
-					this.getHomeInformation()
+					this.GetHomeInformation()
 				})
 				.catch(error =>{
 					this.isLogin = false;
 					this.logout()
 					uni.setStorageSync('unionId',error.data.unionId)
 					this.$store.commit('updateStatus',error.data)
-					this.getHomeInformation()
+					this.GetHomeInformation()
 				})
 			},		
-			GetHomeInit(){//金刚区分类
-				this.CommonService.GetHomeInit({source:2}).then(response =>{
-					let data = response.data
-					this.navBarsList = data.topMenuList
-					this.isNavRequest = true
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			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,soure:2}).then(response =>{
-					let data = response.data;
-					this.liveList = data.liveList;
-					this.pageList = data.homePageFloor;
-					this.isRequest = true;
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			getHomeInformation(){//初始化首页数据	
+			GetHomeInformation(){//初始化首页数据	
 				this.CommonService.GetHomeModulesDataInfo({ userId:this.userID }).then(res =>{
 					let data = res.data;
 					this.bannerImageList = data.bannerImageList
 					this.mallPageModules = data.mallPageModules
 					this.$store.commit('updateAllNum',data.shoppingCartCount)
 					this.skeletonShow = false;
-					this.GetHomeInit()
-					this.GetHomeTopDataInfo()
-					this.GetHomeFloorInfo()
 				}).catch(error =>{
 					this.$util.msg(error.msg,2000)
 				})
 			},
+			handAddCarts(pro){
+				this.$util.msg('加入成功',1500,true,'success')
+			},
 			handleClick(data){
 				this.$api.navigateTo(`/h5/pages/activity/meobohui`)
 				this.$store.commit('setActivity',data)
@@ -237,7 +387,7 @@
 			}	
 		},
 		onPullDownRefresh() {//下拉刷新
-			this.getHomeInformation()
+			// this.getHomeInformation()
 			uni.stopPullDownRefresh()
 		},
 		onShareAppMessage(res){//分享转发
@@ -245,9 +395,9 @@
 		      // 来自页面内转发按钮
 		    }
 			return {
-			  title: '生美医美正品采购服务平台',
-			  path: 'pages/tabBar/home/index',
-			  imageUrl:'https://static.caimei365.com/app/img/bg/min-banner.jpg'
+			  title: '国内外知名美容院线护肤品线上商城~',
+			  path: 'pages/tabBar/index/index',
+			  imageUrl:'https://static.caimei365.com/app/mini-hehe/icon/icon-index-share.jpg'
 			}
 		},
 		onShow(){
@@ -274,7 +424,7 @@
 			background: rgba(255,255,255,0);
 		}
 		&.bgclass{
-			background: #f83c6c;
+			background: #fa55bf;
 		}
 	}
 	.navbar-text {
@@ -336,7 +486,7 @@
 				height: 70rpx;
 				position:absolute ;
 				left: 0;
-				top: 2rpx;
+				top: 0;
 				text-align: center;
 				line-height: 70rpx;
 				.icon-iconfonticonfontsousuo1{
@@ -356,11 +506,118 @@
 	.container-home{
 		background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-index-bg.png)top center no-repeat;
 		background-size: contain;
-		min-height: 528rpx;
+		min-height: 485rpx;
 	}
 	.container-section{
 		width: 100%;
 		height: auto;
 		background-color: #F7F7F7;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		.product-list{
+			width: 339rpx;
+			height: 532rpx;
+			float: left;
+			margin-right: 24rpx;
+			margin-bottom: 24rpx;
+			background-color: #FFFFFF;
+			border-radius: 16rpx;
+			&:nth-child(2n){
+				margin-right: 0;
+			}
+			.product-list-image{
+				width: 100%;
+				height: 339rpx;
+				float: left;
+				position: relative;
+				.product-image{
+					width: 100%;
+					height: 100%;
+					display: block;
+					border-radius: 16rpx 16rpx 0 0;
+				}
+				.product-icon{
+					width: 68rpx;
+					height: 55rpx;
+					display: block;
+					position: absolute;
+					top: 0;
+					left: 34rpx;
+				}
+			}
+			.product-list-msg{
+				width: 100%;
+				height: 193rpx;
+				box-sizing: border-box;
+				padding: 16rpx 24rpx;
+				float: left;
+				position: relative;
+				.product-msg-name{
+					width: 100%;
+					height: 72rpx;
+					line-height: 35rpx;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					line-clamp: 2;
+					-webkit-box-orient: vertical;
+					font-size: $font-size-26;
+					color: #333333;
+					text-align: justify;
+					float: left;
+				}
+				.product-list-tag{
+					width: 100%;
+					height: 30rpx;
+					margin-top: 8rpx;
+					float: left;
+					.tag{
+						display: inline-block;
+						width: 80rpx;
+						height: 30rpx;
+						background: url(https://static.caimei365.com/app/mini-hehe/icon/icon-active.png)top center no-repeat;
+						background-size: contain;
+						font-size: 22rpx;
+						line-height: 30rpx;
+						text-align: center;
+						color: #f83c6c;
+						float: left;
+					}
+				}
+				.product-list-pri{
+					width: 100%;
+					height: 44rpx;
+					float: left;
+					position: absolute;
+					bottom: 16rpx;
+					left: 0;
+					box-sizing: border-box;
+					padding: 0 24rpx;
+					.price{
+						float: left;
+						font-size:$font-size-26;
+						color: #f83c6c;
+						font-weight: bold;
+						line-height: 44rpx;
+					}
+					.carts{
+						float: right;
+						.carts-add{
+							width: 44rpx;
+							height: 44rpx;
+							text-align: center;
+							line-height: 44rpx;
+							background-color: #ff457b;
+							border-radius: 50%;
+							.iconfont{
+								font-size: 32rpx;
+								color: #FFFFFF;
+							}
+						}
+					}
+				}
+			}
+		}
 	}
 </style>

+ 134 - 127
pages/tabBar/user/index.vue

@@ -1,24 +1,16 @@
 <template>
-	<view class="container" :style="{ paddingTop: CustomBar + 'px' }">
-		<cm-custom :navbar-data="nvabarData"></cm-custom>
+	<view class="container">
 		<!-- 机构信息区域 -->
 		<template v-if="isRequest">
-			<!-- <view class="ws-title" :style="{lineHeight :CustomBar + 'px' }">维沙采购商城</view> -->
 			<view class="ws-header">
 				<!-- 用户信息 -->
 				<view class="user-info">
-					<image src="@/static/ws/default_avatar.png" mode="widthFix"></image>
-					<view
-						class="ws-login"
-						@click="navigator('/pages/login/login')"
-						v-if="!hasLogin && isRequest"
-					>
-						邀请码登录
-					</view>
+					<image class="user_default" :src="StaticUrl+'icon-default-avatar.png'" mode="widthFix"></image>
+					<view class="user-login" v-if="!hasLogin && isRequest" @click="navigator('/pages/login/login')">登录</view>
 					<view class="user-text" v-else> {{ organizeName }} </view>
 				</view>
 				<!-- 背景图 -->
-				<image class="user-bg" src="@/static/ws/user_bg.png" mode="widthFix"></image>
+				<image class="user-bg" :src="StaticUrl+'icon-user-bg@2x.png'" mode="widthFix"></image>
 			</view>
 			<!-- 机构信息END -->
 			<!-- 订单状态区域 -->
@@ -37,7 +29,7 @@
 						class="order-nav-item"
 						@click="navigator('/pages/user/order/order-list?state=1')"
 					>
-						<image src="@/static/ws/dh_dfk_02.png" mode="widthFix"></image>
+						<image :src="StaticUrl+'icon-order-1@2x.png'" mode="widthFix"></image>
 						<text>待付款</text>
 						<view class="tui-badge tui-badge-box" v-if="paymentCount > 0">
 							<tui-badge :scaleRatio="0.8" type="danger">{{
@@ -49,7 +41,7 @@
 						class="order-nav-item"
 						@click="navigator('/pages/user/order/order-list?state=2')"
 					>
-						<image src="@/static/ws/dh_dfh_03.png" mode="widthFix"></image>
+						<image :src="StaticUrl+'icon-order-2@2x.png'" mode="widthFix"></image>
 						<text>待发货</text>
 						<view class="tui-badge tui-badge-box" v-if="waitShipmentsCount > 0">
 							<tui-badge :scaleRatio="0.8" type="danger">{{
@@ -61,7 +53,7 @@
 						class="order-nav-item"
 						@click="navigator('/pages/user/order/order-list?state=3')"
 					>
-						<image src="@/static/ws/dh_yfh_04.png" mode="widthFix"></image>
+						<image :src="StaticUrl+'icon-order-3@2x.png'" mode="widthFix"></image>
 						<text>已发货</text>
 						<view class="tui-badge tui-badge-box" v-if="shipmentsCount > 0">
 							<tui-badge :scaleRatio="0.8" type="danger">{{
@@ -73,7 +65,7 @@
 						class="order-nav-item"
 						@click="navigator('/pages/user/order/order-list?state=4')"
 					>
-						<image src="@/static/ws/dh_tk_05.png" mode="widthFix"></image>
+						<image :src="StaticUrl+'icon-order-4@2x.png'" mode="widthFix"></image>
 						<text>退货/款</text>
 						<view class="tui-badge tui-badge-box" v-if="salesReturnCount > 0">
 							<tui-badge :scaleRatio="0.8" type="danger">{{
@@ -84,19 +76,31 @@
 				</view>
 			</view>
 			<!-- 订单状态区域END -->
-			<!-- 帮机构下单 -->
-			<view class="place-order" @click="navigator(`/pages/user/club/club-list`)">
-				<view class="place-left">
-					<text class="iconfont icon-bangjigouxiadan"></text>
-					<text class="title">帮机构下单</text>
+			<!-- 菜单导航区域 -->
+			<view class="place-menu-conten clearfix">
+				<view class="place-menu-cell"  @click="navigator('/pages/user/order/order-list?state=4')">
+					<view class="place-left">
+						<image class="place-menu-icon" :src="StaticUrl+'icon-user-h@2x.png'" mode=""></image>
+						<text class="place-menu-title">活动专区</text>
+					</view>
+					<text class="iconfont icon-chakangengduo"></text>
 				</view>
-				<text class="iconfont icon-chakangengduo"></text>
+				<view class="place-menu-cell" @click="navigator('/pages/user/address/address')">
+					<view class="place-left">
+						<image class="place-menu-icon" :src="StaticUrl+'icon-user-d@2x.png'" mode=""></image>
+						<text class="place-menu-title">收货地址</text>
+					</view>
+					<text class="iconfont icon-chakangengduo"></text>
+				</view>
+				<button class="place-menu-cell last" open-type="contact" @bindcontact="handleContact">
+					<view class="place-left">
+						<image class="place-menu-icon" :src="StaticUrl+'icon-user-c@2x.png'" mode=""></image>
+						<text class="place-menu-title">在线客服</text>
+					</view>
+					<text class="iconfont icon-chakangengduo"></text>
+				</button>
 			</view>
-			<!-- 帮机构下单END -->
-			<!-- 客服 -->
-			<button class="ws-service" open-type="contact" @bindcontact="handleContact">
-				<text class="iconfont icon-zaixiankefu"></text> 在线客服
-			</button>
+			<!-- 菜单导航区域END -->
 		</template>
 	</view>
 </template>
@@ -113,52 +117,21 @@ export default {
 	},
 	data() {
 		return {
-			nvabarData: {
-				//顶部自定义导航
-				showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
-				showSearch: 0,
-				title: '维沙采购商城', // 导航栏 中间的标题
-				haveBack: false,
-				textLeft: this.$store.state.isIphone,
-				textColor: '#333333',
-				bgColor: '#ffffff'
-			},
+			StaticUrl:this.$Static,
 			CustomBar: this.CustomBar, // 顶部导航栏高度
 			organizeName: '', //采购员组织名称
-			isRequest: false,
-
-			paymentCount: 0, //待付款角标
-			waitShipmentsCount: 0, //待收货角标
-			shipmentsCount: 0, //已发货角标
+			isRequest: true,
+			paymentCount: 1, //待付款角标
+			waitShipmentsCount: 20, //待收货角标
+			shipmentsCount: 123, //已发货角标
 			salesReturnCount: 0, //退货/款角标
 			organizeId: '',
-			refresh: false
+			refresh: false,
+			userIdentity:1
 		}
 	},
 	onLoad() {
-		// 获取用户是否授权
-		//0:为取消授权 1:为已授权 2:为未操作
-		// if(wx.getUserProfile){
-		// 	this.GetWxAuthorize()
-		// }else{
-		// 	this.isRequest = true
-		// }
-		authorize
-			.checkLogin()
-			.then(res => {
-				this.GetWxAuthorize()
-			})
-			.catch(err => {
-				this.isRequest = true
-			})
-		// authorize.getSetting().then(res => {
-		// 	if (res == 1) {
-		// 		console.log('用户已授权')
-		// 		this.GetWxAuthorize()
-		// 	} else {
-		// 		this.isRequest = true
-		// 	}
-		// })
+		
 	},
 	computed: {
 		...mapState(['hasLogin', 'userInfo', 'isWxAuthorize'])
@@ -178,6 +151,35 @@ export default {
 	},
 	methods: {
 		...mapMutations(['login', 'logout']),
+		GetUserProfile() {
+			const _that = this
+			// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
+			return new Promise((resolve, reject) => {
+				wx.getUserProfile({
+					desc: '用于完善会员资料',
+					success(res) {
+						// 更新用户信息
+						_that.wxLogin(res.userInfo)
+						uni.setStorageSync('profileFlag', true)
+						resolve(res.userInfo)
+					},
+					fail() {
+						_that.$util.msg('授权失败', 2000)
+					}
+				})
+			})
+		},
+		// 登录
+		async goLogin() {
+			const _that = this
+			let wechatUserInfo = uni.getStorageSync('wechatUserInfo')
+			let profileFlag = uni.getStorageSync('profileFlag')
+			console.log(profileFlag);
+			if (!profileFlag) {
+				wechatUserInfo = await this.GetUserProfile()
+			}
+			this.$api.navigateTo(`/pages/login/login`)
+		},
 		// 授权登录验证
 		async GetWxAuthorize() {
 			// 获取微信code
@@ -225,23 +227,17 @@ export default {
 		},
 		// 栏目跳转
 		navigator(url) {
-			const _that = this
-			authorize
-				.checkLogin()
-				.then(res => {
-					if (res === 1) {
-						if (this.hasLogin) {
-							// 已登录
-							_that.$api.navigateTo(url)
-						} else {
-							// 未登录
-							_that.$api.navigateTo(`/pages/login/login`)
-						}
-					}
-				})
-				.catch(err => {
-					_that.$api.navigateTo(`/pages/authorization/authorization`)
-				})
+			authorize.checkLogin()
+			.then(res => {
+				// if(this.hasLogin){
+					this.$api.navigateTo(url)
+				// }else{
+					// this.$api.navigateTo('/pages/login/login?type=0')
+				// }
+			})
+			.catch(err => {
+				this.$api.navigateTo('/pages/authorize/authorize')
+			})
 		},
 
 		onShareAppMessage(res) {
@@ -287,7 +283,7 @@ export default {
 		flex-direction: column;
 		align-items: center;
 		justify-content: center;
-		image {
+		.user_default {
 			display: block;
 			width: 120rpx;
 			height: 120rpx;
@@ -295,16 +291,16 @@ export default {
 		}
 	}
 	// 登录按钮
-	.ws-login {
+	.user-login {
 		width: 184rpx;
 		height: 56rpx;
 		margin-top: 25rpx;
 		border-radius: 28rpx;
-		background: linear-gradient(to right, #fccd90, #b6762f);
+		background: #ffffff;
 		line-height: 56rpx;
 		text-align: center;
-		color: #ffffff;
-		font-size: 28rpx;
+		color: $color-system;
+		font-size: $font-size-28;
 	}
 	// 公司名
 	.user-text {
@@ -347,7 +343,6 @@ export default {
 }
 .order-wrap {
 	background: #fff;
-
 	.line {
 		width: 702rpx;
 		height: 1px;
@@ -365,8 +360,8 @@ export default {
 			align-items: center;
 			flex-direction: column;
 			image {
-				width: 56rpx;
-				height: 56rpx;
+				width: 64rpx;
+				height: 64rpx;
 			}
 			text {
 				font-size: 26rpx;
@@ -376,50 +371,62 @@ export default {
 			.tui-badge {
 				position: absolute;
 				top: -15rpx;
-				right: -20rpx;
+				right: -25rpx;
 				z-index: 999;
 			}
 		}
 	}
 }
-.place-order {
-	width: 750rpx;
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	padding: 23rpx 25rpx;
-	box-sizing: border-box;
-	background: #fff;
+.place-menu-conten{
 	margin-top: 20rpx;
-	.place-left {
-		.title {
-			font-size: 28rpx;
-			line-height: 40rpx;
-			margin-left: 10rpx;
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	background-color: #FFFFFF;
+	.place-menu-cell{
+		width: 100%;
+		height: 110rpx;
+		box-sizing: border-box;
+		padding: 36rpx 0;
+		text-align: left;
+		float: left;
+		border-bottom: 1px solid #E1E1E1;
+		position: relative;
+		&.last{
+			border-bottom: none;
 		}
-		.iconfont {
-			font-size: 36rpx;
-			vertical-align: middle;
+		.place-left{
+			width: 600rpx;
+			height: 100%;
+			.place-menu-icon{
+				width: 36rpx;
+				height: 36rpx;
+				display: block;
+				float: left;
+			}
+			.place-menu-title{
+				width: 540rpx;
+				margin-left: 16rpx;
+				float: left;
+				height: 36rpx;
+				line-height: 36rpx;
+				font-size: $font-size-28;
+				color: #333333;
+			}
+		}
+		.iconfont{
+			width: 36rpx;
+			height: 36rpx;
+			display: block;
+			line-height: 36rpx;
+			text-align: center;
+			font-size: $font-size-30;
+			color: #cccccc;
+			position: absolute;
+			right: 0;
+			top: 36rpx;
 		}
-	}
-	.iconfont {
-		font-size: 20rpx;
-	}
-}
-.ws-service {
-	width: 160rpx;
-	height: 48rpx;
-	margin: 40rpx auto 0;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	font-size: 22rpx;
-	background: linear-gradient(to right, #fccd90, #b6762f);
-	color: #fff;
-	border-radius: 24rpx;
-	.iconfont {
-		font-size: 30rpx;
-		margin-right: 6rpx;
 	}
 }
 </style>

+ 9 - 9
pages/user/address/address.vue

@@ -3,7 +3,7 @@
 		<view v-if="isEmpty" class="empty-container">
 			<image
 				class="empty-container-image"
-				src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AFmO1AAGxLZjSeDg040.png"
+				:src="StaticUrl+'icon-empty-address.png'"
 				mode="aspectFit"
 			></image>
 			<view class="txt">您还没有收货地址</view>
@@ -74,17 +74,20 @@
 
 <script>
 import authorize from '@/common/config/authorize.js'
+import { addressList } from '@/common/json/data.json.js' //本地数据
+
 
 export default {
 	data() {
 		return {
+			StaticUrl:this.$Static,
 			isSelect: false,
 			isEmpty: false,
 			isLoadMore: false,
 			userId: '',
 			pageNum: 1,
 			pageSize: 10,
-			addressList: [],
+			addressList: addressList,
 			hasNextPage: false,
 			allowDataStatus: true,
 			wrapperHeight: '100%',
@@ -102,13 +105,13 @@ export default {
 		}
 		console.log(option && option)
 		this.setScrollHeight()
-		// console.log(this.addressList)
+		console.log(this.addressList)
 		// this.initAddressList()
 	},
 	onShow() {
 		this.pageNum = 1
-		this.addressList = []
-		this.initAddressList()
+		// this.addressList = []
+		// this.initAddressList()
 	}
 	,
 	onReachBottom() {
@@ -136,10 +139,7 @@ export default {
 			this.$api.getComStorage('clubInfo').then(resolve => {
 				// this.userId = resolve.userId
 				// 设置默认地址 测试使用
-				// const clubInfo = uni.getStorageSync('clubInfo')
 				this.userId = resolve.userId
-				// this.userId = '13914'
-				// console.log(this.userId)
 				let params = { pageNum: this.pageNum, pageSize: this.pageSize, userId: this.userId }
 				this.UserService.QueryAddressList(params)
 					.then(response => {
@@ -312,7 +312,7 @@ page,
 			color: #999999;
 			line-height: 40rpx;
 			.icon-xuanze {
-				color: #333333;
+				color: $color-system;
 				font-size: 38rpx;
 				margin-right: 10rpx;
 			}

+ 4 - 7
pages/user/address/addressManage.vue

@@ -51,7 +51,7 @@
 				<text class="tit">设为默认地址</text>
 				<switch
 					:checked="switchDefault"
-					color="#333333"
+					color="#ff457b"
 					@change="switchChange"
 					style="transform:scale(0.6)"
 				/>
@@ -65,24 +65,21 @@
 				{{ buttonText }}
 			</button>
 		</view>
-		<mpvue-city-picker
+		<city-Picker
 			:themeColor="themeColor"
 			ref="mpvueCityPicker"
 			:pickerValueDefault="cityPickerValueDefault"
 			@onCancel="onCancel"
 			@onConfirm="onConfirm"
 		>
-		</mpvue-city-picker>
+		</city-Picker>
 	</view>
 </template>
 
 <script>
-import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'
 import authorize from '@/common/config/authorize.js'
+
 export default {
-	components: {
-		mpvueCityPicker
-	},
 	data() {
 		return {
 			buttonText: '保存',

+ 2 - 2
uni.scss

@@ -12,10 +12,10 @@
  * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
  */
 /* 颜色变量 */
-$color-system:#191919;
+$color-system:#FF457B;
 $border-color:#EBEBEB;
 $text-color:#333333;
-$btn-confirm:#191919;
+$btn-confirm:linear-gradient(270deg, #f83c6c 0%, #fc32b4 100%);
 $btn-cancel:#EEC1AB;
 $bg-color:#ffffff;
 $sub-bg-color: #F7F7F7;

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä