Quellcode durchsuchen

Merge branch 'developerA' of git.caimei365.com:caimei-repository/caimei-applets-caimei into developerA

# Conflicts:
#	common/config/config.js
#	pages/search/search.vue
zhengjinyi vor 5 Jahren
Ursprung
Commit
651468c490

+ 9 - 1
App.vue

@@ -62,7 +62,15 @@
 			refresh(){
 				let TIME = (20*60)*1000;
 				setInterval(()=>{
-					wxLogin.wxLoginAuthorize()
+					authorize.getSetting().then(res =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+						if(res == 1){
+							wxLogin.wxLoginAuthorize()
+						}else{
+							console.log('授权失败============>:'+'用户取消授权或者未操作')
+						}
+					}).catch(error=>{
+						console.log('授权失败============>:'+'用户授权失败,提醒用户重新授权')
+					})
 				},TIME)
 			}
 		},

+ 30 - 1
api/product.js

@@ -99,7 +99,23 @@ export function queryNewSearchProduct(params) {
  */
 export function querySearchProductPrice(params) {
 	return new Promise(function(resolve,reject) {
-		request.get("/search/query/product/price",params, res => {
+		request.get("/product/listPrice",params, res => {
+			if(res.code == 0){
+				resolve(res);
+			}else{
+				reject(res)
+			}
+		})
+	});
+}
+/**
+ * @新商品搜索查询商品阶梯价格
+ * @param:productIds 商品ID
+ * @param:userId	用户ID
+ */
+export function querySearchProductLadderPrice(params) {
+	return new Promise(function(resolve,reject) {
+		request.get("/product/ladderPrice",params, res => {
 			if(res.code == 0){
 				resolve(res);
 			}else{
@@ -119,6 +135,19 @@ export function querySearchHistory(params) {
 		})
 	});
 }
+/**
+ * @添加搜索历史记录
+ * @param:userId 用户ID
+ * @param:keyword 用户ID
+ */
+export function searchHistoryAdd(params) {
+	return new Promise(function(resolve,reject) {
+		request.get("/product/history/add",params, res => {
+			resolve(res);
+		})
+	});
+}
+
 /**
  * @清除历史记录
  * @param:userId 用户ID

+ 4 - 0
common/config/common.js

@@ -40,6 +40,9 @@ const utils = {
 	hidePhone:function(value) {
 		return value.replace(/^(\d{3})\d{4}(\d+)/,"$1****$2")
 	},
+	interceptHtmlFn: function(value){
+		return value.replace(/<[^>]+>/g,"")
+	},
 	desensitizationName:function(value){
 		if(null != value && value != undefined){
 			if(value.length <= 3){
@@ -137,5 +140,6 @@ module.exports = {
 	bankRegex: utils.bankRegex,
 	checkData:utils.checkData,
 	hidePhone:utils.hidePhone,
+	interceptHtmlFn:utils.interceptHtmlFn,
 	desensitizationName:utils.desensitizationName
 }

+ 2 - 2
common/config/config.js

@@ -3,8 +3,8 @@ if(process.env.NODE_ENV === 'development'){
     // 开发环境
 	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
 	// URL_CONFIG = 'http://192.168.1.22:8008'	 //裴裴联调地址
-	URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
-    // URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
+	// URL_CONFIG = 'http://192.168.1.26:8008'	 //超超联调地址
+    URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{
     // 生产环境

+ 1 - 1
components/cm-custom/cm-drag.vue

@@ -129,7 +129,7 @@
 		align-items: center;
 		justify-content: center;
 		cursor: pointer;
-		z-index: 99999;
+		z-index: 20;
 		image {
 			width: 58rpx;
 			height: 58rpx;

+ 5 - 4
components/cm-module/cm-seller/home.vue

@@ -251,6 +251,7 @@
 			navToDetailPage(id) {//跳转商品详情页
 				this.modallayer = true;
 				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+				this.modallayer = false;
 			},
 			handleContact(e){
 				console.log(e.detail.path)
@@ -324,7 +325,7 @@
 	}
 	.swiper-banner-box{
 		width: 100%;
-		height: 340rpx;
+		height: 360rpx;
 		padding-top:100rpx;
 		background:#FFFFFF url(https://admin-b.caimei365.com/userfiles/1/images/photo/2020/05/%E8%83%8C%E6%99%AF2%402x.png)no-repeat;
 		position: relative;
@@ -351,7 +352,7 @@
 	}
 	.swiper__dots-box{
 		position: absolute;
-		bottom: 24rpx;
+		bottom: 30rpx;
 		left: 0;
 		right: 0;
 		/* #ifndef APP-NVUE */
@@ -369,7 +370,7 @@
 			background-color:rgba(255,255,255,.7);
 		}
 		.swiper__dots-long{
-			width: 32rpx;
+			width: 35rpx;
 			height: 8rpx;
 			border-radius: 4rpx;
 			background-color: #ffff;
@@ -509,7 +510,7 @@
 				color: $text-color;
 				background: #FFFFFF;
 				line-height: 36rpx;
-				border-radius: 10rpx;
+				border-radius: 20rpx;
 				margin-bottom: 20rpx;
 				float: left;
 				&:nth-child(2n){

+ 14 - 6
components/cm-module/listTemplate/commodityList.vue

@@ -191,16 +191,24 @@
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.userID,productIds:this.productIds}).then(response =>{
 					if (response.data) {
-						let ids = Object.keys(response.data.prices);
+						let priceList = response.data
 						this.listData.map(item=>{
-							for (let i = 0; i < ids.length; i++) {
-								let id = ids[i];
-								let price = response.data.prices[id];
-								if (item.priceflag != 1 && item.pid == id){
-									item.price = Number(price).toFixed(2);
+							for (let i = 0; i < priceList.length; i++) {
+								let priceObj ={
+										actStatus:priceList[i].actStatus,
+										costCheckFlag:priceList[i].costCheckFlag,
+										costPrice:priceList[i].costPrice,
+										costProportional:priceList[i].costProportional,
+										ladderPriceFlag:priceList[i].ladderPriceFlag,
+										price:Number(priceList[i].price).toFixed(2),
+										minBuyNumber:priceList[i].minBuyNumber
+									}
+								if( item.pid == priceList[i].productId ){
+									Object.assign(item,priceObj)
 								}
 							}
 						});
+						console.log(this.listData)
 					}
 					this.priceLoading = false;
 				}).catch(error =>{

+ 27 - 21
components/cm-module/listTemplate/immediatelyList.vue

@@ -34,7 +34,7 @@
 					<view v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.productID)"  >
 					    <image mode='widthFix' :src="item.image"  class="list-img" alt="list-img"></image>
 						<view class="list-details-info">
-							<text class="list-details-title">{{item.name}}</text>
+							<text class="list-details-title">{{isInterceptHtmlFn(item.name)}}</text>
 							<text class="list-details-specs">规格:{{item.unit?item.unit:''}}</text>
 							<text class="list-details-miniQuantity list-details-specs">起订量:{{item.minBuyNumber}}</text>
 							<view class="list-details-specs" v-if="item.productCode!=''&&item.productCode!=null">
@@ -238,19 +238,6 @@
 							this.setProductPrice()
 							this.showSkeleton = false;
 						}
-						//价格显示处理
-						let isActFlg,newlistData=[];
-						this.listData.map((item, index)=> {
-							if(item.actStatus == 1){
-								isActFlg = true
-							}else if(item.actStatus == 1 && item.ladderPriceFlag == '1'){
-								isActFlg = true
-							}else{
-								isActFlg = false
-							}
-							newlistData.push(Object.assign({},item,{isShowActFlg:isActFlg}))
-						})
-						this.listData = newlistData
 						// 防上拉暴滑
 						this.pullFlag = false;
 						setTimeout(()=>{ this.pullFlag = true; },500)
@@ -280,13 +267,28 @@
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.clubUserId,productIds:this.productIds}).then(response =>{
 					if (response.data) {
-						let ids = Object.keys(response.data.prices);
+						let priceList = response.data,isActFlg;
 						this.listData.map(item=>{
-							for (let i = 0; i < ids.length; i++) {
-								let id = ids[i];
-								let price = response.data.prices[id];
-								if (item.priceflag != 1 && item.pid == id){
-									item.price = Number(price).toFixed(2);
+							for (let i = 0; i < priceList.length; i++) {
+								if(priceList[i].actStatus == 1){
+									isActFlg = true
+								}else if(priceList[i].actStatus == 1 && priceList[i].ladderPriceFlag == '1'){
+									isActFlg = true
+								}else{
+									isActFlg = false
+								}
+								let priceObj ={
+										actStatus:priceList[i].actStatus,
+										costCheckFlag:priceList[i].costCheckFlag,
+										costPrice:priceList[i].costPrice,
+										costProportional:priceList[i].costProportional,
+										ladderPriceFlag:priceList[i].ladderPriceFlag,
+										price:Number(priceList[i].price).toFixed(2),
+										minBuyNumber:priceList[i].minBuyNumber,
+										isShowActFlg:isActFlg
+								}
+								if( item.pid == priceList[i].productId ){
+									Object.assign(item,priceObj)
 								}
 							}
 						});
@@ -483,6 +485,10 @@
 					this.getcombinationProduct();
 				}
 			},
+			isInterceptHtmlFn(text){
+				let name = this.$reg.interceptHtmlFn(text)
+				return name
+			},
 			btnClick() {
 				this.$emit('goCartPage')
 			},
@@ -621,7 +627,7 @@
 		position: fixed;
 		top: 0;
 		left: 0;
-		z-index: 999;
+		z-index: 19;
 		.search-from{
 			width: 420rpx;
 			height: 80rpx;

+ 1 - 1
components/cm-module/productDetails/cm-attributes.vue

@@ -16,7 +16,7 @@
 				<view class="info-viewL tui-skeleton-fillet">品牌:<text>{{product.brandName == null? '其他' : product.brandName}}</text></view>
 				<view class="info-viewR tui-skeleton-fillet">包装规格:<text>{{product.unit}}</text></view>		
 			</view>
-			<view class="info-viewT" v-if="product.productCode!=''&&product.productCode!=null">
+			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''" v-if="product.productCode!=''&&product.productCode!=null">
 				<view class="info-viewL tui-skeleton-fillet">商品编码:<text>{{product.productCode}}</text></view>
 			</view>
 		</view>

+ 3 - 0
components/uni-stars/uni-stars.vue

@@ -42,6 +42,9 @@
 				type: String,
 				default:'#FFBD13'
 			}
+		},
+		created() {
+
 		},
 		methods: {
 			

+ 0 - 11
pages/goods/goods.vue

@@ -26,20 +26,15 @@
 		},
 		methods:{
 			setServerUrl(option) {
-				console.log(option)
 				let self = this;
 				const {type, from: value} = option;
 				this.lastPageType = type;
 				this.lastPageVal = value;
-				console.log(this.lastPageType)
-				console.log(this.lastPageVal)
 				uni.setNavigationBarTitle({title:value});
 				uni.getStorage({
 					key: 'commodity_id',
 					success: function (res) {
-					   
 						const emptyTxt = '正在上架中,敬请期待~';
-						console.log(self.listData);
 						/**
 						 *@商品分类列表传参类型
 						 *@type  首页分类:0,首页商品模块1:1,首页商品模块2:2,首页商品模块3:3,底部导航分类:4
@@ -49,34 +44,28 @@
 								self.typeId = res.data;
 								self.serverUrl = '/search/query/product/classify';
 								self.emptyText = '该分类暂时还没有商品哟,去逛逛别的吧~';
-								console.log(self.serverUrl)
 								break;
 							case '1':	
 								self.typeId = 1;
 								self.serverUrl = '/search/query/product/preferred';
 								self.emptyText = `${self.lastPageVal}商品${emptyTxt}`;
-								console.log(self.serverUrl)
 								break;
 							case '2':
 								self.typeId = 10;
 								self.serverUrl = '/search/query/product/preferred';
 								self.emptyText = `${self.lastPageVal}商品${emptyTxt}`;
-								console.log(self.serverUrl)
 								break;
 							case '3':
 								self.typeId = 100;
 								self.serverUrl = '/search/query/product/preferred';
 								self.emptyText = `${self.lastPageVal}${emptyTxt}`;
-								console.log(self.serverUrl)
 								break;
 							case '4':
 								self.typeId = res.data;
 								self.serverUrl = '/search/query/product/tinyType';
 								self.emptyText = '该分类暂时还没有商品哟,去逛逛别的吧~';
-								console.log(self.serverUrl)
 								break;
 						}
-						console.log(self.serverUrl)
 						self.isRequest = true
 					}
 				})

+ 5 - 2
pages/goods/product.vue

@@ -15,7 +15,7 @@
 					<uni-swiper-dot :info="productImage" :current="current" field="content" :mode="mode" >
 						<swiper class="banner tui-banner tui-skeleton-rect" circular @change="swiperChange" :duration='800' :autoplay="false" :circular="false" >
 							<swiper-item v-for="(item, index) in productImage" :key="index" class="banner-item"> 
-								<image :src="item" @click="previewImg(index)" />
+								<image :src="item" @click="previewImg(index)" class="product-img" />
 							</swiper-item>
 						</swiper>
 						<view class="swiper__dots-box">
@@ -134,7 +134,7 @@
 			<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
 				<!-- 遮罩层 -->
 				<view class="mask"></view>
-				<view class="layer" @tap.stop="discard">
+				<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-332rpx' : '-294rpx'}">
 					<view class="content">
 						<view class="layer-smimg">
 							<image :src="product.mainImage" mode=""></image>
@@ -555,6 +555,9 @@
 	.banner{
 		width: 100%;
 		height: 750rpx;
+		.product-img{
+			width: 750rpx;
+		}
 		image {
 			width: 100%;
 			height: 100%;

+ 2 - 1
pages/login/apply.vue

@@ -190,7 +190,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="register-fiexd clearfix">
+			<view class="register-fiexd clearfix" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx'}">
 				<view class="register-row ">
 					<view class="register-btn sub" @click.stop="organizationUpdateInfo">确认升级并提交审核</view>
 				</view>
@@ -224,6 +224,7 @@ import { mapMutations } from 'vuex';
 					haveBack:true,
 					textLeft:this.$store.state.isIphone
 				},
+				isIphoneX:this.$store.state.isIphoneX,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				errorList:[],
 				tabCurrentIndex:3,	

+ 2 - 1
pages/login/information.vue

@@ -227,7 +227,7 @@
 							:class="isShowInput ? '':''"
 				/>
 			</view>
-			<view class="register-fiexd clearfix">
+			<view class="register-fiexd clearfix" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx'}">
 				<view class="register-row">
 					<view class="register-btn sub" @click.stop="organizationUpdateInfo">确定</view>
 				</view>
@@ -256,6 +256,7 @@
 					haveBack:true,
 					textLeft:this.$store.state.isIphone
 				},
+				isIphoneX:this.$store.state.isIphoneX,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				isPreviewImage:false,   	//预览图片开关
 				userID:'',					//用户ID

+ 4 - 4
pages/search/search-order.vue

@@ -658,10 +658,10 @@
 				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 7rpx;
+				margin-top: 8rpx;
 			}
 			.bage-auto{
 				isplay: inline-block;
@@ -671,10 +671,10 @@
 				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 7rpx;
+				margin-top:8rpx;
 			}
 			.bage-text{
 				font-size: $font-size-28;

+ 41 - 20
pages/search/search.vue

@@ -11,8 +11,7 @@
 		<view class="search-container-history" v-if="!isShowWrapper">
 			<view :class="'s-' + themeClass" v-if="serachRecordList.length>0">
 				<view class="header">
-					搜索历史
-					<text class="iconfont icon-shanchu" @click="confirmDetele"></text>
+					搜索历史<text class="iconfont icon-shanchu" @click="confirmDetele"></text>
 				</view>
 				<view class="list">
 					<view v-for="(item,index) in serachRecordList" :key="index" @click="keywordsClick(item.searchWord)">{{item.searchWord}}</view>
@@ -25,7 +24,7 @@
 				<view v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.pid)">
 					<image mode='widthFix' :src="item.image"  class="list-img" alt="list-img"></image>
 					<view class="list-details-info">
-						<text class="list-details-title">{{item.name}}</text>
+						<view class="list-details-title">{{isInterceptHtmlFn(item.name)}}</view>
 						<text class="list-details-specs">规格:{{item.unit}}</text>
 						<view class="list-details-specs" v-if="item.productcode!=''&&item.productCode!=null">
 							<view>商品编码:{{item.productCode}}</view>
@@ -76,7 +75,6 @@
 		</view>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='isModallayer'></modal-layer>
-	
 	</view>
 </template>
 
@@ -90,6 +88,7 @@
 		queryNewSearchProduct , 
 		querySearchHistory,
 		clearSearchHistory,
+		searchHistoryAdd,
 		querySearchProductPrice
 	} from "@/api/product.js" 
 	
@@ -102,9 +101,10 @@
 		data() {
 			return {
 				userID:'',
-				userIdentity:'',
 				themeClass: 'block',
 				searchInputVal:'',	//搜索关键词
+				userIdentity:'',	
+				identity:2,
 				isShowClose:false,	//是否显示清空输入框图标
 				isSearchHistory:false,//是都显示搜索历史
 				serachRecordList:[],//历史搜索记录
@@ -137,6 +137,11 @@
 				this.$api.getStorage().then((resolve) =>{
 					this.userID = resolve.userID ? resolve.userID : '';
 					this.userIdentity = resolve.userIdentity ? resolve.userIdentity : '';
+					if(this.userIdentity == 1){
+						this.identity = 1
+					}else{
+						this.identity = 2
+					}
 				    querySearchHistory({userId:this.userID}).then(response =>{
 						if(response.code == 0){
 							this.serachRecordList = response.data
@@ -149,6 +154,7 @@
 					this.$util.msg('请输入商品关键词',2000);
 				}else{
 					this.listData =[]
+					this.setSearchHistoryAdd()
 					this.getListFromServer(false)
 				}
 			},
@@ -165,12 +171,12 @@
 				if(loadMore) {
 					this.pageNum += 1;
 				}
-				let params = {keyword:this.searchInputVal,pageNum:this.pageNum,pageSize:this.pageSize,sortField:'',sortType:''}
+				let params = {identity:this.identity,keyword:this.searchInputVal,pageNum:this.pageNum,pageSize:this.pageSize,sortField:'',sortType:''}
 				queryNewSearchProduct(params).then(response =>{
-					console.log(JSON.parse(response.data))
 					this.isShowWrapper = true
 					const resData = JSON.parse(response.data);
 					const resList = resData.items;
+					console.log(resData)
 					if(resList && resList.length > 0){
 						this.totalPage = resData.total;
 						this.showEmpty = false;
@@ -183,9 +189,7 @@
 						}
 						// 防上拉暴滑
 						this.pullFlag = false;
-						setTimeout(()=>{
-							this.pullFlag = true;
-						},500)
+						setTimeout(()=>{ this.pullFlag = true; },500)
 						// 底部提示文案
 						if(this.totalPage>this.pageNum) {
 							this.loadingText = '上拉加载更多';
@@ -202,24 +206,37 @@
 					this.$util.msg(error.msg,2000);
 				})
 			},
+			setSearchHistoryAdd(){//添加搜索记录
+				if (!this.hasLogin) {return false;}
+				searchHistoryAdd({userId: this.userID,keyword:this.searchInputVal}).then(response =>{
+					//此为每次搜索同时添加用户的搜索记录
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
 			setProductPrice(){//获取价格
-				if (!this.userID) {return false;}
+				if (!this.hasLogin) {return false;}
 				let productIdArr = [];
 				this.listData.map(item=>{// 0公开价格 1不公开价格 2仅对会员机构公开
-					if (item.priceflag != 1){
-						productIdArr.push(item.pid)
-					}
+					productIdArr.push(item.pid)
 				})
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.userID,productIds:this.productIds}).then(response =>{
 					if (response.data) {
-						let ids = Object.keys(response.data.prices);
+						let priceList = response.data
 						this.listData.map(item=>{
-							for (let i = 0; i < ids.length; i++) {
-								let id = ids[i];
-								let price = response.data.prices[id];
-								if (item.priceflag != 1 && item.pid == id){
-									item.price = Number(price).toFixed(2);
+							for (let i = 0; i < priceList.length; i++) {
+								let priceObj ={
+										actStatus:priceList[i].actStatus,
+										costCheckFlag:priceList[i].costCheckFlag,
+										costPrice:priceList[i].costPrice,
+										costProportional:priceList[i].costProportional,
+										ladderPriceFlag:priceList[i].ladderPriceFlag,
+										price:Number(priceList[i].price).toFixed(2),
+										minBuyNumber:priceList[i].minBuyNumber
+								}
+								if( item.pid == priceList[i].productId ){
+									Object.assign(item,priceObj)
 								}
 							}
 						});
@@ -266,6 +283,10 @@
 					this.isShowClose = false
 				}
 			},
+			isInterceptHtmlFn(text){
+				let name = this.$reg.interceptHtmlFn(text)
+				return name
+			},
 			navToDetailPage(id) {
 				this.isModallayer = true;
 				this.$api.navigateTo(`/pages/goods/product?id=${id}`);

+ 4 - 4
pages/tabBar/home/home.vue

@@ -374,7 +374,7 @@
 	}
 	.swiper-banner-box{
 		width: 100%;
-		height: 340rpx;
+		height: 360rpx;
 		padding-top:100rpx;
 		background:#FFFFFF url(https://img.caimei365.com/group1/M00/03/B0/Cmis217Z9LCALu9wAAAv45Bdpsk814.png)no-repeat;
 		position: relative;
@@ -400,7 +400,7 @@
 	}
 	.swiper__dots-box{
 		position: absolute;
-		bottom: 24rpx;
+		bottom: 30rpx;
 		left: 0;
 		right: 0;
 		/* #ifndef APP-NVUE */
@@ -418,7 +418,7 @@
 			background-color:rgba(255,255,255,.7);
 		}
 		.swiper__dots-long{
-			width: 32rpx;
+			width: 35rpx;
 			height: 8rpx;
 			border-radius: 4rpx;
 			background-color: #ffff;
@@ -558,7 +558,7 @@
 				color: $text-color;
 				background: #FFFFFF;
 				line-height: 36rpx;
-				border-radius: 10rpx;
+				border-radius: 20rpx;
 				margin-bottom: 20rpx;
 				float: left;
 				&:nth-child(2n){

+ 7 - 5
pages/tabBar/user/user.vue

@@ -5,7 +5,8 @@
 			<view class="header" :style="{height:(CustomBar+90)-StatusBar+'px',paddingTop:CustomBar+'px',background:'url('+ bgImgUrl +')',backgroundSize:'cover'}">
 				<view class="header-main" v-if="hasLogin">
 					<view class="header-text">
-						<view class="user-item"><text class="u-h1">{{name}}</text>
+						<view class="user-item">
+							<text class="u-h1">{{name}}</text>
 							<text class="u-viptips" v-if="userIdentity == 2">{{userType}}</text>
 							<text class="u-tips" v-if="userIdentity == 4">{{userType}}</text>
 						</view>
@@ -311,8 +312,8 @@
 		onPageScroll(e){//实时获取到滚动的值
 			if(e.scrollTop>20){
 				this.isCmcustom = true
-				this.nvabarData.bgColor = '#FFFFFF'
-				this.nvabarData.textColor = '#333333'
+				this.nvabarData.bgColor = '#E37A4B'
+				this.nvabarData.textColor = '#FFFFFF'
 			}else{
 				this.isCmcustom = false
 				this.nvabarData.bgColor = ''
@@ -407,8 +408,9 @@
 					margin-top: 17rpx;
 				}
 				.u-h1{
+					width: 400rpx;
 					float: left;
-					font-size: $font-size-36;
+					font-size: $font-size-34;
 					color: #FFFFFF;
 					text-align: left;
 					-o-text-overflow: ellipsis;
@@ -456,7 +458,7 @@
 				}
 				.u-h1{
 					float: left;
-					font-size: $font-size-36;
+					font-size: $font-size-34;
 					color: #FFFFFF;
 					text-align: left;
 					-o-text-overflow: ellipsis;

+ 2 - 1
pages/user/address/address.vue

@@ -37,7 +37,7 @@
 					</view>
 				</view>
 			</scroll-view>
-			<view class="add-btn" @click="addAddress('add')">添加新地址</view>
+			<view class="add-btn" @click="addAddress('add')" :style="{bottom :isIphoneX ? '68rpx' : '34rpx'}">添加新地址</view>
 		</view>
 		<!-- 删除弹窗 -->
 		<model-alert v-if="isShowDelModal"
@@ -57,6 +57,7 @@
 		},
 		data() {
 			return {
+				isIphoneX:this.$store.state.isIphoneX,
 				isSelect:false,
 				isEmpty:false,
 				isLoadMore:false,

+ 4 - 4
pages/user/order/order-list.vue

@@ -551,10 +551,10 @@
 				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 7rpx;
+				margin-top: 8rpx;
 			}
 			.bage-auto{
 				display: inline-block;
@@ -564,10 +564,10 @@
 				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 7rpx;
+				margin-top: 8rpx;
 			}
 			.bage-text{
 				font-size: $font-size-28;

+ 2 - 1
pages/user/regularPurchase/regularPurchase.vue

@@ -5,7 +5,7 @@
 		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
+			<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-332rpx' : '-294rpx'}">
 				<view class="content">
 					<view class="layer-smimg">
 						<image :src="handleData.mainImage" mode=""></image>
@@ -50,6 +50,7 @@
 				emptyText: '',
 				lastPageType: '',
 				lastPageVal: '',
+				isIphoneX:this.$store.state.isIphoneX,
 				specClass: '',//规格弹窗css类,控制开关动画
 				handleData:{},
 				isQuantity:false,

+ 2 - 1
seller/pages/cart/buyagain.vue

@@ -8,7 +8,7 @@
 		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
+			<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-370rpx' : '-360rpx'}">
 				<view class="content">
 					<view class="layer-smimg">
 						<image :src="handleData.mainImage" mode=""></image>
@@ -48,6 +48,7 @@
 		},
 		data(){
 			return{
+				isIphoneX:this.$store.state.isIphoneX,
 				clubID:'',//机构ID
 				serviceProviderId:'',//协销ID
 				serverUrl: '',

+ 23 - 9
seller/pages/cart/immediately.vue

@@ -11,16 +11,16 @@
 						  >
 		</immediately-list>
 		<!--底部选择模态层弹窗组件 -->
-		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
+		<view class="popup spec"  :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec" >
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
+			<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-370rpx' : '-360rpx'}">
 				<view class="content">
 					<view class="layer-smimg">
-						<image :src="handleData.mainImage" mode=""></image>
+						<image :src="handleData.image" mode=""></image>
 					</view>
 					<view class="layer-nunbox">
-						<view class="layer-nunbox-m" v-if="productCode!=''&&productCode!=null">商品编码:{{productCode}}</view>
+						<view class="layer-nunbox-m" v-if="handleData.productcode!=''&& handleData.productcode!=null">商品编码:{{handleData.productcode}}</view>
 						<view class="layer-nunbox-t">
 							<view class="layer-nunbox-text">数量:</view>
 							<view class="number-box">
@@ -46,7 +46,7 @@
 		<view class="popup spec zuhe" :class="specClasszuhe"  @touchmove.stop.prevent="discard" @tap="hideSpecs">
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
+			<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-290rpx' : '-270rpx'}">
 				<view class="content zuhe-content">
 					<view class="number-left">
 						<text>种类:{{productKind}}</text>
@@ -91,6 +91,7 @@
 <script>
 	import immediatelyList from '@/components/cm-module/listTemplate/immediatelyList'
 	import { getSellerProductNum ,shoppingCartAddCart,getCartAddCart} from "@/api/seller.js" 
+	import { querySearchProductLadderPrice } from "@/api/product.js" 
 	export default{
 		components:{
 			immediatelyList
@@ -103,11 +104,11 @@
 				emptyText: '',
 				lastPageType: '',
 				lastPageVal: '',
+				isIphoneX:this.$store.state.isIphoneX,
 				specClass: '',//规格弹窗css类,控制开关动画
 				specClasszuhe:'',//组合加购物车弹窗
 				specClassjieti:'',//阶梯展示弹窗
 				ladderPriceList:{},
-				productCode:'',
 				handleData:{},
 				isQuantity:false,
 				isStock:false,
@@ -115,6 +116,7 @@
 				number:0,
 				buyRetailPrice:0,
 				hanldChangeTabIndex:0,
+				handleDataLadderPriceList:[],
 				productKind:0,
 				productTotalNum:0,
 				productTotalAmount:0,
@@ -142,6 +144,7 @@
 			},
 			hanldOperationConfim(data){//显示选择数量确认弹窗
 				this.handleData = data
+				console.log(this.handleData)
 				if(this.$refs.productList.tabIndex == 1){
 					if(data.productKind ==0){
 						this.$util.msg(`请至少选购一种商品`,2000);
@@ -152,11 +155,22 @@
 						this.productTotalAmount = data.productTotalAmount;
 					}
 				}else{
-					this.productCode = data.productCode
 					this.number = data.minBuyNumber
 					this.minBuyNumber = data.minBuyNumber
-					this.buyRetailPrice = data.retailPrice;
+					this.buyRetailPrice = Number(data.price);
 					this.specClass = 'show';
+					if(this.handleData.ladderPriceFlag == '1'){
+						querySearchProductLadderPrice({productId:this.handleData.pid}).then(response=>{
+							this.handleDataLadderPriceList = response.data
+							this.handleDataLadderPriceList.forEach((item,index)=>{
+								if(this.number>=item.buyNum){
+									this.buyRetailPrice = item.buyPrice
+								}
+							})
+						}).catch(error =>{
+							console.log('获取阶梯价格异常')
+						})	
+					}
 				}
 			},
 			hideSpec() {//关闭选择数量确认弹窗
@@ -207,7 +221,7 @@
 			},
 			calculatPerice(){//判断是否为阶梯价然后做计算价格处理
 				if(this.handleData.ladderPriceFlag == '1'){
-					this.handleData.ladderPriceList.forEach((item,index)=>{
+					this.handleDataLadderPriceList.forEach((item,index)=>{
 						if(this.number>=item.buyNum){
 							this.buyRetailPrice = item.buyPrice
 						}

+ 2 - 3
seller/pages/index/index.vue

@@ -42,6 +42,7 @@
 				isUserData: false,
 				isCategory: false,
 				isHomeData: false,
+				isIphoneX:this.$store.state.isIphone,
 				tab_nav_list :[//菜单列表
 					{'id':0,'name':'首页',icon:'../../../static/icon-home@3x.png',iconAc:'../../../static/icon-home-active@3x.png'},
 					{'id':1,'name':'分类',icon:'../../../static/icon-sort@3x.png',iconAc:'../../../static/icon-sort-active@3x.png'},
@@ -52,9 +53,7 @@
 		},
 		onLoad() {
 			this.$nextTick(()=>{// 一定要等视图更新完再调用方法
-				setTimeout(()=>{
-					this.isUserData = true
-				},100)
+				setTimeout(()=>{ this.isUserData = true },100)
 			})
 		},
 		methods: {

+ 2 - 1
seller/pages/login/register.vue

@@ -29,7 +29,7 @@
 					<text>展开信息填写<text class="iconfont icon-xiangxiajiantou"></text></text>
 				</view>
 			</view>	
-			<view class="register-fiexd clearfix">
+			<view class="register-fiexd clearfix" :style="{bottom:isIphoneX?'40rpx':''}">
 				<view class="register-bet" @tap.stop="hideUpgrade()" v-if="isUpgrade">
 					<text>收起<text class="iconfont icon-xiangshangjiantou"></text></text>
 				</view>
@@ -253,6 +253,7 @@
 					haveBack:true,
 					textLeft:this.$store.state.isIphone
 				},
+				isIphoneX:this.$store.state.isIphone,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				userID:'',//协销ID
 				isPreviewImage:false,   	//预览图片开关

+ 5 - 4
seller/pages/order/order-historylist.vue

@@ -528,6 +528,7 @@
 			height: 44rpx;
 			float: left;
 			padding-top: 8rpx;
+			line-height: 44rpx;
 			.bage-buss{
 				display: block;
 				float: left;
@@ -536,10 +537,10 @@
 				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top: 8rpx;
 			}
 			.bage-auto{
 				display: block;
@@ -549,10 +550,10 @@
 				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top: 8rpx;
 			}
 			.bage-text{
 				font-size: $font-size-28;

+ 6 - 5
seller/pages/order/order-list.vue

@@ -586,18 +586,19 @@
 			height: 44rpx;
 			float: left;
 			padding-top: 8rpx;
+			line-height: 44rpx;
 			.bage-buss{
-				display: block;
+				display: inline-block;
 				float: left;
 				width: 64rpx;
 				height: 30rpx;
 				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top: 8rpx;
 			}
 			.bage-auto{
 				display: block;
@@ -607,10 +608,10 @@
 				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top: 8rpx;
 			}
 			.bage-text{
 				font-size: $font-size-28;

+ 5 - 4
seller/pages/search/search-order.vue

@@ -638,6 +638,7 @@
 			height: 44rpx;
 			float: left;
 			padding-top: 8rpx;
+			line-height: 44rpx;
 			.bage-buss{
 				display: block;
 				float: left;
@@ -646,10 +647,10 @@
 				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top: 8rpx;
 			}
 			.bage-auto{
 				display: block;
@@ -659,10 +660,10 @@
 				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
 				border-radius: 6rpx;
 				line-height: 30rpx;
-				font-size: $font-size-24;
+				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 10rpx;
+				margin-top:8rpx;
 			}
 			.bage-text{
 				font-size: $font-size-28;