Pārlūkot izejas kodu

Merge branch 'developer' of caimei-repository/caimei-applets-caimei into master

郑超 4 gadi atpakaļ
vecāks
revīzija
c186e87a22
73 mainītis faili ar 4601 papildinājumiem un 338 dzēšanām
  1. 1 0
      App.vue
  2. 39 1
      common/config/common.js
  3. 1 1
      common/config/config.js
  4. BIN
      common/css/HelveticaNeue.ttf
  5. 2 0
      common/css/stylesheet.css
  6. 141 0
      components/cm-module/activity/activity_on_1.vue
  7. 19 1
      components/cm-module/cm-seller/home.vue
  8. 1 1
      components/cm-module/creatOrder/goodsList.vue
  9. 1 1
      components/cm-module/listTemplate/buyagainList.vue
  10. 13 15
      components/cm-module/listTemplate/commodityList.vue
  11. 10 10
      components/cm-module/listTemplate/immediatelyList.vue
  12. 1 1
      components/cm-module/listTemplate/productList.vue
  13. 828 0
      components/cm-module/listTemplate/secondHand.vue
  14. 151 0
      components/cm-module/modelAlert/sellerShareAlert.vue
  15. 1 1
      components/cm-module/orderDetails/goodsList.vue
  16. 32 16
      components/cm-module/orderDetails/orderInformation.vue
  17. 7 1
      components/cm-module/productDetails/cm-price.vue
  18. 2 2
      components/cm-module/productDetails/recommend.vue
  19. 88 0
      components/cm-module/productDetails/second-attributes.vue
  20. 79 0
      components/cm-module/productDetails/second-price.vue
  21. 43 0
      components/cm-module/productDetails/secondBrand.vue
  22. 74 0
      components/cm-module/productDetails/secondDeatail.vue
  23. 373 2
      h5/pages/activity/activity_mid.vue
  24. 1 1
      manifest.json
  25. 19 2
      pages.json
  26. 1 1
      pages/goods/cart.vue
  27. 38 8
      pages/goods/product.vue
  28. 1223 0
      pages/goods/secondProduct.vue
  29. 0 4
      pages/login/apply.vue
  30. 16 1
      pages/login/bindwechat.vue
  31. 2 1
      pages/login/login.vue
  32. 10 1
      pages/login/logincode.vue
  33. 24 17
      pages/search/search-order.vue
  34. 12 13
      pages/search/search.vue
  35. 1 1
      pages/tabBar/cart/cart.vue
  36. 20 2
      pages/tabBar/home/home.vue
  37. 5 5
      pages/tabBar/user/user.vue
  38. 0 1
      pages/user/account/account.vue
  39. 5 2
      pages/user/order/create-order.vue
  40. 1 1
      pages/user/order/myOrder.vue
  41. 1 1
      pages/user/order/order-cashier.vue
  42. 1 1
      pages/user/order/order-details.vue
  43. 23 16
      pages/user/order/order-list.vue
  44. 11 11
      pages/user/order/order-pay.vue
  45. 91 10
      pages/user/order/order-payment.vue
  46. 255 0
      pages/user/order/order-sharelogin.vue
  47. 2 34
      pages/user/order/orderShareLogin.vue
  48. 4 4
      seller/pages/cart/immediately.vue
  49. 504 0
      seller/pages/cart/second.vue
  50. 1 1
      seller/pages/club/allClub-list.vue
  51. 46 15
      seller/pages/club/club-list.vue
  52. 1 1
      seller/pages/club/list.vue
  53. 0 4
      seller/pages/login/apply.vue
  54. 0 4
      seller/pages/login/register.vue
  55. 21 2
      seller/pages/order/create-order.vue
  56. 1 1
      seller/pages/order/myOrder.vue
  57. 3 3
      seller/pages/order/order-details.vue
  58. 24 16
      seller/pages/order/order-historylist.vue
  59. 26 20
      seller/pages/order/order-list.vue
  60. 25 19
      seller/pages/search/search-order.vue
  61. 170 56
      seller/pages/search/search.vue
  62. 13 0
      services/activity.service.js
  63. 2 2
      services/ajax.env.js
  64. 15 1
      services/index.js
  65. 14 0
      services/order.service.js
  66. 34 0
      services/sellse.service.js
  67. BIN
      static/activity/icon-share@2x.png
  68. BIN
      static/activity/icon-tags@2x.png
  69. BIN
      static/activity/icon-top@2x.png
  70. BIN
      static/activity/icon-zhe@2x.png
  71. BIN
      static/temp/icon-new@2x.png
  72. BIN
      static/temp/icon-type@3x.png
  73. 28 2
      store/index.js

+ 1 - 0
App.vue

@@ -58,6 +58,7 @@
 				}
 			})
 			this.refresh()
+			this.$store.dispatch('setActivityFn',true)
 		},
 		methods:{
 			refresh(){

+ 39 - 1
common/config/common.js

@@ -122,6 +122,42 @@ const utils = {
 			return "";
 		}
 	},
+	throttle: function(fn, gapTime) {
+	  if (gapTime == null || gapTime == undefined) {
+	    gapTime = 1500
+	  }
+	
+	  let _lastTime = null
+	
+	  // 返回新的函数
+	  return function () {
+	    let _nowTime = +new Date()
+	    if (_nowTime - _lastTime > gapTime || !_lastTime) {
+	      fn.apply(this, arguments) //将this和参数传给原函数
+	      _lastTime = _nowTime
+	    }
+	  }
+	},
+	
+	debounce: function(fn, delay, isImmediate) {
+	  var timer = null;  //初始化timer,作为计时清除依据
+	  return function() {
+	    var context = this;  //获取函数所在作用域this
+	    var args = arguments;  //取得传入参数
+	    clearTimeout(timer);
+	    if(isImmediate && timer === null) {
+	        //时间间隔外立即执行
+	        fn.apply(context,args);
+	      timer = 0;
+	      return;
+	    }
+	    timer = setTimeout(function() {
+	      fn.apply(context,args);
+	      timer = null;
+	    }, delay);
+	  }
+	}
+
 }
 
 module.exports = {
@@ -141,5 +177,7 @@ module.exports = {
 	checkData:utils.checkData,
 	hidePhone:utils.hidePhone,
 	interceptHtmlFn:utils.interceptHtmlFn,
-	desensitizationName:utils.desensitizationName
+	desensitizationName:utils.desensitizationName,
+	throttle: utils.throttle,
+	debounce: utils.debounce
 }

+ 1 - 1
common/config/config.js

@@ -3,7 +3,7 @@ if(process.env.NODE_ENV === 'development'){
     // 开发环境
 	// URL_CONFIG = 'http://192.168.1.33:8008'	 //俊俊联调地址
 	// URL_CONFIG = 'http://192.168.1.40:8008'	 //裴裴联调地址
-	// URL_CONFIG = 'http://192.168.1.10:8008'	 //本地联调地址
+	// URL_CONFIG = 'http://192.168.1.20:8008'	 //超超联调地址
     URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{

BIN
common/css/HelveticaNeue.ttf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 0
common/css/stylesheet.css


+ 141 - 0
components/cm-module/activity/activity_on_1.vue

@@ -0,0 +1,141 @@
+<template>
+	<view>
+		<view class="tui-alert-class tui-alert-box" :class="[show?'tui-alert-show':'tui-alert-hide']"  @touchmove.stop.prevent="discard">
+			<image src="https://admin-b.caimei365.com/userfiles/1/images/photo/2020/08/icon-alert%402x.png" mode="" @click.stop="handleClick"></image>
+			<text class="iconfont icon-iconfontguanbi" @click.stop="handleClickCancel"></text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"tuiAlert",
+		props: {
+			//控制显示
+			show: {
+				type: Boolean,
+				default: false
+			},
+			//提示信息字体大小
+			size: {
+				type: Number,
+				default: 30
+			},
+			//提示信息字体颜色
+			color: {
+				type: String,
+				default: "#333"
+			},
+			//按钮字体颜色
+			btnColor: {
+				type: String,
+				default: "#EB0909"
+			},
+			btnText:{
+				type: String,
+				default: ""
+			},
+			//点击遮罩 是否可关闭
+			maskClosable: {
+				type: Boolean,
+				default: false
+			}
+		},
+		methods: {
+			handleClick(e) {
+				console.log(e);
+				if (!this.show) return;
+				this.$emit('click',false);
+			},
+			handleClickCancel() {
+				this.$emit('cancel',false);
+			},
+			discard(){
+				//丢弃
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.tui-alert-box {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-direction: column;
+		position: fixed;
+		left: 0;
+		top: 100%;
+		opacity: 0;
+		background: rgba(0,0,0,.5);
+		z-index: 99990;
+		image{
+			width: 560rpx;
+			height: 784rpx;
+			margin-top: 100rpx;
+		}
+	}
+	.tui-alert-show {
+		top: 0;
+		opacity: 1;
+		animation:rundtop 0.5s;
+	}
+	.tui-alert-hide{
+		top: 100%;
+		opacity: 0;
+		animation:rundbottom 0.5s;
+	}
+	.icon-iconfontguanbi{
+		display: block;
+		width: 100rpx;
+		height: 100rpx;
+		line-height: 100rpx;
+		text-align: center;
+		color: #FFFFFF;
+		position: absolute;
+		bottom: 10%;
+		left: 50%;
+		font-size: $font-size-48;
+		font-weight: bold;
+		margin-left: -50rpx;
+	}
+	.tui-alert-mask-show {
+		visibility: visible;
+		opacity: 1;
+	}
+	.tui-alert-btn {
+		width: 100%;
+		height: 90rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		background-color: #fff;
+		box-sizing: border-box;
+		position: relative;
+		font-size: 32rpx;
+		line-height: 32rpx;
+	}
+	.tui-alert-btn-hover {
+		background-color: #f7f7f7;
+	}
+	.tui-alert-btn::before {
+		width: 100%;
+		content: "";
+		position: absolute;
+		border-top: 1rpx solid #E0E0E0;
+		-webkit-transform: scaleY(0.5);
+		transform: scaleY(0.5);
+		left: 0;
+		top: 0;
+	}
+	@keyframes rundtop{
+		0%{top: 100%;opacity: 0;}
+		100%{top:0;opacity: 1;}
+	}
+	@keyframes rundbottom{
+		0%{top: 0;opacity: 1;}
+		100%{top:100%;opacity: 0;}
+	}
+</style>

+ 19 - 1
components/cm-module/cm-seller/home.vue

@@ -6,7 +6,7 @@
 		<view class="container-home tui-skeleton">
 			<view class="swiper-banner-box" >
 				<swiper class="tui-banner-swiper tui-banner tui-skeleton-fillet" :autoplay="true" :interval="5000" :duration="500"  @change="swiperChange" :circular="true">
-					<swiper-item v-for="(item,index) in bannerImageList" :key="index">
+					<swiper-item v-for="(item,index) in bannerImageList" :key="index" @click.stop="handleBannerActivity(item,index)">
 						<image :src="item" class="tui-slide-image" mode="scaleToFill"/>
 					</swiper-item>
 				</swiper>
@@ -119,6 +119,8 @@
 				</view>
 			</view>	
 		</view>
+		<!-- 活动弹窗 -->
+		<activityAlert :show="isActivity" @click="handleClick" @cancel="handleCancelClick"></activityAlert>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='modallayer'></modal-layer>
 	</view>
@@ -129,6 +131,7 @@
 	import authorize from '@/common/config/authorize.js'
 	import modalLayer from "@/components/modal-layer"
 	import cmCustom from '@/components/cm-module/home/cm-custom.vue'
+	import activityAlert from '@/components/cm-module/activity/activity_on_1.vue'
 	import uniStars from '@/components/uni-stars/uni-stars.vue'
 	import { userInfoLogin, queryHomeInfo } from "@/api/use.js"
 	import { queryPreferred } from "@/api/product.js"
@@ -139,6 +142,7 @@
 			modalLayer,
 			cmCustom,
 			uniStars,
+			activityAlert
 		},
 		data() {
 			return {
@@ -237,6 +241,20 @@
 					});
 				});
 			},
+			handleBannerActivity(item,index){
+				switch(index){
+					case 0:
+						this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+						break;
+				}
+			},
+			handleClick(data){
+				this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+				this.$store.commit('setActivity',data)
+			},
+			handleCancelClick(data){
+				this.$store.commit('setActivity',data)
+			},
 			//分类导航跳转
 			navToListPage(nav){
 				let self = this;

+ 1 - 1
components/cm-module/creatOrder/goodsList.vue

@@ -12,7 +12,7 @@
 						<view class="pros-img"><image :src="pros.mainImage" alt="" /></view>
 						<view class="pros-product">
 							<view class="producttitle">{{pros.name}}</view>
-							<view class="productspec">规格:{{pros.unit}}</view>
+							<view class="productspec"  v-if="pros.productCategory!=2">规格:{{pros.unit}}</view>
 							<view class="productspec" v-if="pros.productCode!=''&&pros.productCode!=null">
 								<view >商品编码:{{pros.productCode}}</view>
 							</view>

+ 1 - 1
components/cm-module/listTemplate/buyagainList.vue

@@ -7,7 +7,7 @@
 					<image mode='widthFix' :src="item.mainImage"  class="list-img" alt="list-img"></image>
 					<view class="list-details-info">
 						<text class="list-details-title">{{item.name}}</text>
-						<text class="list-details-specs">规格:{{item.unit}}</text>
+						<text class="list-details-specs">规格:{{item.unit !=null ? item.unit : ''}}</text>
 						<text class="list-details-miniQuantity">起订量:{{item.ladderPriceFlag == '1' ? item.maxBuyNumber : item.minBuyNumber}}</text>
 						<view class="list-details-price">
 							<view class="list-shop">

+ 13 - 15
components/cm-module/listTemplate/commodityList.vue

@@ -2,12 +2,12 @@
 	<view class="container commodity-list-wrapper" :style="{'overflow':(showSkeleton? 'hidden' : 'auto'),'height': (showSkeleton? windowHeight + 'px' : 'auto')}">
 		<list-skeleton v-if="showSkeleton" :listType='0'></list-skeleton>
 		<scroll-view :style="{'height':scrollHeight+'px'}" @scrolltolower="toLower" scroll-y v-if="listData.length > 0">
-			<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 v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.p_id)">
+				<image mode='widthFix' :src="item.p_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-specs">规格:{{item.unit}}</text>
-					<view class="list-details-specs" v-if="item.productCode!=''&&item.productCode!=null">商品编码:{{item.productCode}}</view>
+					<text class="list-details-title">{{item.p_name}}</text>
+					<text class="list-details-specs">规格:{{item.p_unit}}</text>
+					<view class="list-details-specs" v-if="item.p_code!=''&&item.p_code!=null">商品编码:{{item.p_code}}</view>
 					<view class="list-details-price">
 						<view v-if="hasLogin" class="list-price">
 							<view v-if="userIdentity == 1">
@@ -15,20 +15,20 @@
 								<text v-else>¥<text class="price-larger">{{item.price?item.price :'0.00'}}</text></text>
 							</view>	
 							<view v-if="userIdentity == 4">
-								<view class="price-larger" v-if="item.priceflag == '1'">
+								<view class="price-larger" v-if="item.p_price_flag == '1'">
 									<text class="txt">未公开价格</text>
 								</view>
 								<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
 								<view v-else>
-									<view class="price-larger" v-if="item.priceflag == '2'">
+									<view class="price-larger" v-if="item.p_price_flag == '2'">
 										<text class="txt">价格仅会员可见</text>
 										<text class="btn" @click.stop="this.$api.navigateTo(`/pages/login/apply?clubStatus=${clubStatus}`)">去升级</text>
 									</view>
-									<text v-else>¥<text class="price-larger">{{item.price ?item.price :'0.00'}}</text></text>
+									<text v-else>¥<text class="price-larger">{{item.price ? item.price :'0.00'}}</text></text>
 								</view>
 							</view>
 							<view v-if="userIdentity == 2">
-								<view class="price-larger" v-if="item.priceflag == '1'">
+								<view class="price-larger" v-if="item.p_price_flag == '1'">
 									<text class="txt">未公开价格</text>
 								</view>
 								<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
@@ -37,7 +37,7 @@
 						</view>	
 						<view  v-else class="list-login-now">
 							<text class="p-no">价格:</text>
-							<uni-stars :stars="parseInt(item.pricegrade)" :font-size='36' :width-info="180"></uni-stars>
+							<uni-stars :stars="parseInt(item.p_price_grade)" :font-size='36' :width-info="180"></uni-stars>
 						</view>
 					</view>
 				</view>
@@ -104,7 +104,7 @@
 			}
 		},
 		created() {		
-			console.log(this.typeId)
+			// console.log(this.typeId)
 			this.setScrollHeight();		
 			this.$api.getComStorage('userInfo').then((resolve) =>{
 				this.clubStatus = resolve.clubStatus
@@ -165,7 +165,6 @@
 							this.setProductPrice()
 							this.showSkeleton = false
 						}
-						console.log(this.listData)
 						// 防上拉暴滑
 						this.pullFlag = false;
 						setTimeout(()=>{ this.pullFlag = true; },500)
@@ -188,7 +187,7 @@
 				if (!this.userID) {return false;}
 				let productIdArr = [];
 				this.listData.map(item=>{// 0公开价格 1不公开价格 2仅对会员机构公开
-					productIdArr.push(item.pid)
+					productIdArr.push(item.p_id)
 				})
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.userID,productIds:this.productIds}).then(response =>{
@@ -205,12 +204,11 @@
 										price:Number(priceList[i].price).toFixed(2),
 										minBuyNumber:priceList[i].minBuyNumber
 									}
-								if( item.pid == priceList[i].productId ){
+								if( item.p_id == priceList[i].productId ){
 									Object.assign(item,priceObj)
 								}
 							}
 						});
-						console.log(this.listData)
 					}
 					this.priceLoading = false;
 				}).catch(error =>{

+ 10 - 10
components/cm-module/listTemplate/immediatelyList.vue

@@ -31,20 +31,20 @@
 		<view class="product-container" v-else >
 			<view :class="tabIndex" v-if="tabIndex === 0"  :style="{paddingTop:searchStatus?'128rpx':''}">
 				<scroll-view :style="{'height':scrollHeight+'px'}" @scrolltolower="scrolltolower(tabIndex)" scroll-y v-if="listData.length > 0">
-					<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 v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.p_id)"  >
+					    <image mode='widthFix' :src="item.p_image"  class="list-img" alt="list-img"></image>
 						<view class="list-details-info">
-							<text class="list-details-title">{{isInterceptHtmlFn(item.name)}}</text>
-							<text class="list-details-specs">规格:{{item.unit?item.unit:''}}</text>
+							<text class="list-details-title">{{isInterceptHtmlFn(item.p_name)}}</text>
+							<text class="list-details-specs">规格:{{item.p_unit?item.p_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">
-								<view>商品编码:{{item.productCode}}</view>
+							<view class="list-details-specs" v-if="item.p_code!=''&&item.p_code!=null">
+								<view>商品编码:{{item.p_code}}</view>
 							</view>
 							<view class="list-details-price">
 								<view v-if="priceLoading" class="list-price-loding">正在获取价格...</view>
 								<view v-else class="list-shop">
 									<view class="list-price">
-										<text class="price-larger">¥{{item.price}}</text>
+										<text class="price-larger">¥{{item.price ? item.price :'0.00'}}</text>
 										<text class="price-view activity" v-if="item.isShowActFlg">活</text>
 										<text class="price-view ladder" v-if="item.ladderPriceFlag == '1'" @click.stop="alertjieti(item)">阶</text>
 									</view>
@@ -271,7 +271,7 @@
 			setProductPrice(){//获取价格
 				let productIdArr = [];
 				this.listData.map(item=>{
-					productIdArr.push(item.pid) 
+					productIdArr.push(item.p_id) 
 				})
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.clubUserId,productIds:this.productIds}).then(response =>{
@@ -297,7 +297,7 @@
 										minBuyNumber:priceList[i].minBuyNumber,
 										isShowActFlg:isActFlg
 								}
-								if( item.pid == priceList[i].productId ){
+								if( item.p_id == priceList[i].productId ){
 									Object.assign(item,priceObj)
 								}
 							}
@@ -647,7 +647,7 @@
 			width: 420rpx;
 			height: 80rpx;
 			background: #F7F7F7;
-			border-radius: 14rpx;
+			border-radius: 40rpx;
 			float: left;
 			position: relative;
 			.input{

+ 1 - 1
components/cm-module/listTemplate/productList.vue

@@ -7,7 +7,7 @@
 					<image mode='widthFix' :src="item.mainImage"  class="list-img" alt="list-img"></image>
 					<view class="list-details-info">
 						<text class="list-details-title">{{item.name}}</text>
-						<text class="list-details-specs">规格:{{item.unit}}</text>
+						<text class="list-details-specs">规格:{{item.unit !=null ? item.unit : ''}}</text>
 						<text class="list-details-miniQuantity">起订量:{{ item.ladderPriceFlag == '1' ? item.maxBuyNumber : item.minBuyNumber}}</text>
 						<view class="list-details-price" v-if="item.price1TextFlag == 1">
 							<view class="list-none">

+ 828 - 0
components/cm-module/listTemplate/secondHand.vue

@@ -0,0 +1,828 @@
+<template>
+	<view class="container commodity-list-wrapper" :style="{'overflow':(showSkeleton? 'hidden' : 'auto'),'height': (showSkeleton? windowHeight + 'px' : 'auto')}">
+		<view class="good-search clearfix" v-if="searchStatus">
+			<view class="good-search-top">
+				<view class="search-from name">
+					<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+						<input class="input"  
+							   type="text" 
+							   :focus="isFocus"
+							   confirm-type="search" 
+							   v-model="searchKeyword" 
+							   placeholder="请输入商品关键词" 
+							   @input="onShowClose" 
+							   @confirm="searchOpertor"
+							   maxlength="20"/>
+					<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText"></text>
+				</view>
+				<view class="search-btn">
+					<button class="search-btn" type="default" @click.stop="searchOpertor">搜索</button>
+				</view>
+			</view>
+			<view class="good-search-tabs">
+				<view class="good-search-tabs-t">
+					<view class="tabs-item" 
+						  :class="{ active: tabIndex === 1 }" 
+						  @click="changeTabsFirst(1)">{{tabIndexSelectText}}
+						  <text class="iconfont icon-xiangxia1" :class="isTabIndexSelect ? 'reto': '' "></text>
+					</view>
+					<view class="tabs-item" :class="{ active: tabIndex === 2 }" @click="changeTabs(2)">临期产品</view>
+					<view class="tabs-item" :class="{ active: tabIndex === 3 }" @click="changeTabs(3)">其他</view>
+				</view>
+				<view class="tabs-item-first clearfix" v-if="isTabIndexSelect">
+					<view class="tabs-item" 
+						  v-for="(item,index) in screenTabs" 
+						  :key="index" 
+						  :class="{ active: screenTab === index }" 
+						  @click="changeScreenTabs(item,index)"
+					>
+						  {{item}}
+						  <text class="iconfont icon-gou" v-if="screenTab === index"></text>
+					</view>
+				</view>	
+			</view>
+		</view>
+		<!-- 顶部tab遮罩层 -->
+		<view class="popup-tabs" v-if="isTabIndexSelect" @touchmove.stop.prevent="discard" @tap="hideTabIndexSelect">
+			<view class="mask"></view>
+		</view>
+		<list-skeleton v-if="showSkeleton"></list-skeleton>
+		<view class="empty-container" v-if="isShowEmpty" >
+			<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AY2ZjAABpmnBICH4247.png"></image>
+			<text class="error-text">{{isShowEmptyText}}</text>
+		</view>
+		<!-- 二手商品 -->
+		<view class="product-container" v-else >
+			<view :class="tabIndex"  :style="{paddingTop:searchStatus?'160rpx':''}">
+				<scroll-view :style="{'height':scrollHeight+'px'}" @scrolltolower="scrolltolower" scroll-y v-if="listData.length > 0">
+					<view v-for="(item,index) in listData" :key="index" :id="item.id" :productid="item.productID" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.productID)"  >
+					    <image mode='widthFix' :src="item.mainImage"  class="list-img" alt="list-img"></image>
+						<view class="list-details-info">
+							<view class="list-details-title"> 
+								<view class="tabs" v-if="item.newAdded == 1">
+									<image mode='widthFix' src="../../../static/temp/icon-new@2x.png"  class="list-tags"></image>
+								</view>
+								<view class="name" :style="{paddingLeft:item.newAdded == 1 ? '38rpx' :'0rpx'}">{{isInterceptHtmlFn(item.name)}}</text></view>
+							</view>	
+							<view class="list-details-price">
+								<view class="list-shop">
+									<view class="list-price">
+										<text class="price-larger">¥{{toFixedFn(item.price1)}}</text>
+									</view>
+								</view>
+								<button class="add-cart-btn" @click.stop="operationHanld(item)">数量</button>
+							</view>
+						</view>
+					</view>
+					<view v-if="showLoading && listData.length > 4 && !showRegularBtn">
+						<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>
+		</view>
+		<!-- 可拖动悬浮按钮,点击跳转购物车 ,暂时隐藏 ,后面需要的话放开即可 -->
+<!-- 		<cm-drag :cartNum="cartQuantity" 
+				 :isDock="true"
+				 :existTabBar="true" 
+				 @btnClick="btnClick" 
+				 @btnTouchstart="btnTouchstart" 
+				 @btnTouchend="btnTouchend">
+		</cm-drag>	 -->	
+		<!-- 透明模态层 -->
+		<modal-layer v-if='isModallayer'></modal-layer>
+	</view>
+</template>
+
+<script>
+	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 { mapState,mapMutations } from 'vuex';
+	export default{
+		name:'productList',
+		components:{
+			listSkeleton,
+			modalLayer,
+			uniStars,
+			cmDrag
+		},
+		props: {
+			searchStatus:{
+				type:Boolean,
+				default:false
+			}
+		},
+		data(){
+			return{
+				isShowClose:false,
+				isModallayer:false,
+				windowHeight: '',
+				showSkeleton: false,
+				isShowEmpty: false,
+				isShowEmptyText: '搜索相关商品',
+				clubUserId: '',
+				searchKeyword:'',//搜索关键字
+				secondHandType:1,//二手商品分类
+				instrumentType:'',//二手仪器分类
+				isFocus:false,
+				scrollHeight: '',
+				listData: [],
+				showLoading: false,
+				loadingNow: true,
+				loadingText: '上拉加载更多',
+				pageSize: 10,
+				pageNum: 1,
+				totalPage:1,
+				hasNextPage: false,
+				pullFlag: true,
+				cartQuantity: 0,
+				showRegularBtn: false,
+				isPrecedence:false,
+				ladderPriceList:[],//是否 阶梯,
+				goodsList:[],
+				isShow: false,
+				screenTabs:['二手仪器','轻光电','重光电','耗材配件'],
+				tabIndex:1,
+				screenTab:0,
+				isTabIndexSelect:false,
+				tabIndexSelectText:'二手仪器'
+			}
+		},
+		created() {
+			this.setScrollHeight();		
+			this.$api.getComStorage('userInfo').then((resolve) =>{
+				if(resolve.userIdentity == 1){
+					this.identity = 1
+				}
+			}).catch(error =>{
+				console.log(error)
+			})
+			this.$api.getComStorage('orderUserInfo').then((resolve) =>{
+				this.clubUserId = resolve.userID
+			})
+			this.getProductAgainInfo()
+			this.isFocus = true
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo'])
+		},
+		methods:{
+			scrolltolower() {
+				if(this.hasNextPage && this.pullFlag) {
+					this.getProductAgainInfo(true);
+				}
+			},
+			setScrollHeight() {
+				const {windowHeight, pixelRatio} = wx.getSystemInfoSync();
+				this.windowHeight = windowHeight - 1;
+				this.scrollHeight = windowHeight - 1;
+			},
+			getProductAgainInfo(loadMore) {//搜索商品
+				this.showLoading = true;
+				this.loadingNow = true;
+				this.loadingText = '加载中';
+				this.isShowEmpty = false;				
+				if(loadMore) {this.pageNum += 1;}
+				let params = {
+						secondHandType:this.secondHandType,
+						instrumentType:this.instrumentType,
+						searchKeyword:this.searchKeyword,
+						pageNum:this.pageNum,
+						pageSize:this.pageSize
+				}
+				this.SellerService.GetOrderSecondHandProductList(params).then(response =>{
+					this.isShowWrapper = true
+					const resData = response.data
+					const results = resData.results
+					if(results && results.length > 0){
+						this.hasNextPage = resData.hasNextPage;
+						this.showEmpty = false;
+						if(loadMore) {
+							this.listData = [...this.listData,...results];
+						} else {
+							this.listData = [...results];
+							this.showSkeleton = false;
+						}
+						// 防上拉暴滑
+						this.pullFlag = false;
+						setTimeout(()=>{ this.pullFlag = true; },500)
+						// 底部提示文案
+						if(this.hasNextPage) {
+							this.loadingText = '上拉加载更多';
+						} else {
+							this.showLoading = true;
+							this.loadingNow = false;
+						}
+					} else {
+						if(!loadMore) {
+							this.isShowEmpty = true;
+							this.isShowEmptyText ='暂无相关商品'
+						}
+					}
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			searchOpertor(){//搜索商品
+				if(this.searchKeyword == ''){
+					// this.$util.msg('请输入商品关键词',2000)
+					this.secondHandType = 1
+					this.instrumentType=''
+					this.getProductAgainInfo();
+				}else{
+					this.pageNum = 1
+					this.showSkeleton = true;
+					this.getProductAgainInfo();
+					this.isFocus = false
+				}
+			},
+			operationHanld(prop){
+				this.$emit('operationConfim',prop);
+			},
+			navToDetailPage(id) {
+				this.isModallayer = true;
+				this.$api.navigateTo(`/pages/goods/secondProduct?id=${id}`);
+				this.isModallayer = false;
+			},
+			onShowClose () {//输入框失去焦点时触发
+				if(this.searchKeyword != ''){
+					this.isShowClose = true
+				}else{					
+					this.isShowClose = false
+				}
+			},
+			delInputText(){//清除输入框内容
+				this.searchKeyword = '';
+				this.listData =[];
+				this.isFocus = true
+				this.isShowClose = false;
+				this.loadingNow = false;
+				this.isShowEmpty = true;
+				this.isShowEmptyText ='暂无相关商品'
+				this.secondHandType = 1;
+				this.instrumentType='';
+				this.getProductAgainInfo();
+			},
+			isInterceptHtmlFn(text){
+				let name = this.$reg.interceptHtmlFn(text)
+				return name
+			},
+			changeTabs(index){
+				this.tabIndex = index
+				this.secondHandType = index
+				this.isTabIndexSelect = false
+				if(this.tabIndex == 2 || this.tabIndex ==3){
+					this.instrumentType = ''
+					this.getProductAgainInfo()
+				}
+			},
+			changeTabsFirst(index){
+				this.tabIndex = index
+				this.secondHandType = index
+				this.isTabIndexSelect = !this.isTabIndexSelect
+			},
+			changeScreenTabs(item,index){
+				this.screenTab = index
+				this.isTabIndexSelect = false
+				this.tabIndexSelectText = item
+				this.instrumentType = index
+				if(index==0){
+					this.instrumentType=''
+				}
+				this.getProductAgainInfo();
+			},
+			toFixedFn(text){//处理小数点后两位数
+				return Number(text).toFixed(2);
+			},
+			hideTabIndexSelect(){
+				this.isTabIndexSelect = false
+			},
+			discard(){
+				//丢弃
+			},
+			btnClick() {
+				this.$emit('goCartPage')
+			},
+			btnTouchstart() {
+				// console.log('btnTouchstart');
+			},
+			btnTouchend() {
+				// console.log('btnTouchend');
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	
+	.all-zuhe-list{
+		background: #FFFFFF;
+	}
+	.foot_conten{
+		width: 655rpx;
+		background: #fff;
+		font-size: 28rpx;
+		height: 80rpx;
+		// line-height: 80rpx;
+		display: inherit;
+		padding: 10px;
+		overflow: hidden;
+		margin: 20rpx auto;
+	}
+	.zuhe_foot-box{
+		float: left;
+		overflow: hidden;
+		white-space: nowrap;
+		// text-overflow: ellipsis;
+		width: 490rpx;
+	}
+	.zuhe_foot-box text{
+		margin-right: 36rpx;
+	}
+	.foot_text{
+		color: #FF2A2A;
+	}
+	.foot_conten .buycart{
+		width: 162rpx;
+		height: 64rpx;
+		background: #EFAF00 !important;
+		color: #fff;
+		font-size: 28rpx;
+		border-radius: 36rpx;
+		text-align: center;
+		line-height: 64rpx;
+		float: right;
+	}
+	.price-none{
+		font-size: 24rpx;
+		color: #666666;
+		}
+	.zuhe_title{
+		background:#FFFFFF;
+		height: 76rpx;
+		font-size: 28rpx;
+		color: #1675E1;
+		border-bottom: 4rpx solid #1675E1 ;
+		line-height: 76rpx;
+		padding-left: 30rpx;
+		&.active{
+			color: #E15616;
+			border-bottom: 4rpx solid #E15616;
+		}
+	}
+	.tabstyle{
+		width: 128rpx;
+		height: 76rpx;
+		font-size: 26rpx;
+		display: inline-block;
+		border-radius: 10rpx;
+		text-align: center;
+		line-height: 76rpx;
+		border: 2rpx solid #EEEEEE;
+		position: relative;
+		margin-right: 12rpx;
+		&.addstyle{
+			background: $btn-confirm;
+			color: #FFFFFF;
+			&::before{
+				content: "";
+				width: 0;
+				height: 0;
+				border-top: 20rpx solid transparent;
+				border-right: 20rpx solid #FFFFFF;
+				border-left: 20rpx solid transparent;
+				border-bottom: 20rpx solid #FFFFFF;
+				position: absolute;
+				right: 0;
+				bottom: 0;
+			}
+		}
+		.icon-gou{
+			width: 36rpx;
+			height: 36rpx;
+			line-height: 36rpx;
+			text-align: center;
+			color: #E15616;	
+			position: absolute;
+			bottom: -5rpx;
+			right: -5rpx;
+			font-weight: bold;
+			font-size: $font-size-28;
+		}
+	}
+	.commodity-list-wrapper {
+		scroll-view {
+			height: 100%;
+		}
+		.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;
+		}
+	}
+	.good-search{
+		height: auto;
+		width: 702rpx;
+		padding: 10rpx 24rpx;
+		background: #FFFFFF;
+		display: flex;
+		align-items: center;
+		margin-bottom: 20rpx;
+		position: fixed;
+		flex-direction: column;
+		top: 0;
+		left: 0;
+		z-index: 999;
+		.good-search-top{
+			width: 702rpx;
+			height: 70rpx;
+			flex: 1;
+			.search-from{
+				width: 582rpx;
+				height: 70rpx;
+				background: #F7F7F7;
+				border-radius: 40rpx;
+				float: left;
+				position: relative;
+				.input{
+					width: 340rpx;
+					height: 70rpx;
+					float: left;
+					line-height: 70rpx;
+					color: $text-color;
+					font-size: $font-size-24;
+				}
+				.icon-iconfonticonfontsousuo1{
+					width: 64rpx;
+					height: 70rpx;
+					line-height: 70rpx;
+					text-align: center;
+					display: block;
+					font-size: $font-size-38;
+					float: left;
+					color: #999999;
+				}
+				.icon-shanchu1{
+					font-size: $font-size-32;
+					color: #999999;
+					position: absolute;
+					width: 120rpx;
+					height: 70rpx;
+					line-height: 70rpx;
+					top: 0;
+					right: 0;
+					text-align: center;
+					z-index: 10;
+				}
+			}
+			.search-btn{
+				// width: 120rpx;
+				line-height: 70rpx;
+				text-align: center;
+				font-size: $font-size-28;
+				color: $color-system;
+				float: left;
+				background: #FFFFFF;
+				margin-left: 10rpx;
+			}
+		}
+		.good-search-tabs{
+			width: 702rpx;
+			height: auto;
+			flex: 1;
+			position: relative;
+			.good-search-tabs-t{
+				height: 64rpx;
+				width: 702rpx;
+				padding: 10rpx 0;
+				display: flex;
+				justify-content: center;
+				justify-items: center;
+				.tabs-item{
+					flex: 1;
+					height: 64rpx;
+					border-radius: 10rpx;
+					background: #F7F7F7;
+					margin-right: 22rpx;
+					line-height: 64rpx;
+					font-size: $font-size-28;
+					color: #333333;
+					text-align: center;
+					position: relative;
+					.icon-xiangxia1{
+						width: 64rpx;
+						height: 64rpx;
+						line-height: 64rpx;
+						text-align: center;
+						color: #333333;
+						font-size: $font-size-24;
+						transform:rotate(0deg);
+						&.reto{
+							transform:rotate(180deg);
+						}
+					}
+					&.active{
+						color: $color-system;
+						.icon-xiangxia1{
+							color: $color-system;
+						}
+					}
+					&:last-child{
+						margin-right: 0;
+					}
+				}
+			}
+			.tabs-item-first{
+				position: absolute;
+				bottom: -308rpx;
+				left: -24rpx;
+				height: auto;
+				width: 702rpx;
+				background-color: #FFF;
+				z-index: 999;
+				padding: 0 24rpx 10rpx 24rpx;
+				border-top: 1px solid #F7F7F7;
+				.tabs-item{
+					width: 100%;
+					height: 70rpx;
+					line-height: 70rpx;
+					font-size: $font-size-28;
+					color: #333333;
+					text-align: left;
+					float: left;
+					position: relative;
+					border-bottom: 1px solid #F7F7F7;
+					&:last-child{
+						border-bottom: none;
+					}
+					.icon-gou{
+						display: block;
+						width: 70rpx;
+						height: 70rpx;
+						line-height: 70rpx;
+						text-align: center;
+						color: #333333;
+						font-size: $font-size-40;
+						position: absolute;
+						right: 0;
+						top: 0;
+					}
+					&.active{
+						color: $color-system;
+						.icon-gou{
+							color: $color-system;
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	.all-type-list-content {
+		// height: 240rpx;
+		padding: 24rpx;
+		background: #fff;
+		margin-bottom: 2rpx;
+		display: flex;
+		flex-direction: row;
+		box-sizing: content-box;
+		.list-img {
+			width: 312rpx;
+			height: 207rpx !important;
+			margin-right: 26rpx;
+			border-radius: 10rpx;
+			border: 2rpx solid #f3f3f3;
+		}
+	}		
+	.list-details-info {
+		width: 100%;
+		flex-direction: column;
+		font-size: 26rpx;
+		position: relative;
+		.list-details-title {
+			position: relative;
+			.tabs{
+				width: 38rpx;
+				height: 38rpx;
+				position: absolute;
+				top: 0;
+				left: 0;
+				image{
+					width: 38rpx;
+					height: 38rpx;
+					display: block;
+				}
+			}
+			.name{
+				width: 100%;
+				line-height: 38rpx;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 2;
+				line-clamp: 2;
+				-webkit-box-orient: vertical;
+			}
+		}
+		.list-details-specs {
+			width: 100%;
+			display: inline-block;
+			margin-top: 8rpx;
+			color: #666666;
+		}
+		.list-details-miniQuantity {
+			width: 100%; 
+			display: inline-block;
+			margin-top: 7rpx;
+		}
+	}
+	.list-details-price {
+		width: 100%;
+		display: flex;
+		flex-direction: row;
+		justify-content: space-between;		
+		margin-top: 80rpx;
+		.price-icon {
+			width: 22rpx;
+			height: 28rpx;
+			vertical-align: middle;
+			margin-right: 10rpx;
+		}
+		.price-icon + text {
+			font-size: 25rpx;
+			vertical-align: middle;
+		}
+		.list-login-now {
+			width: 375rpx;
+			color: #F8C499;
+			position: absolute;
+			bottom: 0;
+			.p-no{
+				float: left;
+				font-size: $font-size-24;
+				color: $color-system;
+				margin-right: 10rpx;
+			}
+		}
+		.login-now {
+			padding: 10rpx 10rpx 10rpx 0;
+		}
+		.list-none{
+			margin-top: 15rpx;
+			.price-small{
+				font-size:$font-size-24;
+				line-height: 40rpx;
+				color: #FF2A2A;
+			}
+		}
+		.list-price-loding{
+			flex: 6;
+			font-size:$font-size-24;
+			line-height: 64rpx;
+			color: #FF2A2A;
+		}
+		.list-shop{
+			width: 100%;
+			height: auto;
+			flex: 6;
+			overflow: hidden;
+			.list-price {
+				// width: 100%;
+				color: #FF2A2A;
+				float: left;
+				line-height:36rpx ;
+				align-items: center;
+				justify-content: center;
+				.price-larger {
+					margin-top: 20rpx;
+					font-size: $font-size-30;
+					display: inline-block;
+					margin-right: 20rpx;
+				}
+				.zuhe_price-larger{
+					color: #666666;
+					// float: left;
+					// margin-right: 85rpx;
+				}
+				.price-two{
+					color: #666666;
+					float: left;
+					
+				}
+				.zuhe_list_zj{
+					color: #FF2A2A;
+				}
+				.price-view{
+					display: inline-block;
+					width: 40rpx;
+					border-radius: 10rpx;
+					font-size: $font-size-22;
+					text-align: center;
+					color: #FFFFFF;
+					height: 36rpx;
+					line-height: 36rpx;
+					margin-right: 8rpx;
+					&.ladder{
+						background: linear-gradient(135deg,rgba(255,0,0,1) 0%,rgba(242,143,49,1) 100%);
+					}
+					&.activity{
+						background: linear-gradient(135deg,rgba(128,0,255,1) 0%,rgba(242,49,153,1) 100%);
+					}
+				}
+			}
+			.zuhe_list_price .price-view{
+				margin-left:20rpx;
+				float: left;
+				margin-top: 5rpx;
+			}
+			.zuhe_list_price{
+				width: 400rpx;
+				overflow: hidden;
+				margin-top: 10rpx;
+			}
+			.count{
+				margin-top: 50rpx;
+				float: right;
+				border: 1px solid #EEEEEE;
+				border-radius: 10rpx;
+				.number-box{
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					.iconfont{
+						font-size: $font-size-24;
+						padding:0 16rpx;
+						color: $text-color;
+						text-align: center;
+						line-height: 48rpx;
+						font-weight: bold;
+					}
+					.btn-input{
+						width: 100rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #F8F8F8;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-24;
+						border-right: 1px solid #EEEEEE;
+						border-left: 1px solid #EEEEEE;
+					}
+				}
+			}
+			.list-price-none{
+				width: 100%;
+				.price-none{
+					text-decoration: line-through;
+					color: #999999;
+					display: inline-block;
+				}
+				.icon-wenhao{
+					font-size: $font-size-32;
+					color: #0091FF;
+					margin-left: 6rpx;
+				}
+			}
+		}
+		.add-cart-btn {
+			flex: 4;
+			width: 156rpx;
+			height: 64rpx;
+			line-height: 64rpx;
+			border-radius: 32rpx;
+			color: #333333;
+			font-size: 26rpx;
+			margin-right: 0;
+			// background:linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);
+			background: #FFFFFF;
+			border: 2rpx solid #C9C9C9;
+		}
+		.zuhe_btn{
+			float: right;
+		}
+	}
+	.popup-tabs{
+		position: fixed;
+		top: 0;
+		width: 100%;
+		height: 100%;
+		z-index: 888;
+		.mask{
+			position: fixed;
+			top: 0;
+			width: 100%;
+			height: 100%;
+			z-index: 21;
+			background-color: rgba(0, 0, 0, 0.6);
+		}
+	}
+</style>

+ 151 - 0
components/cm-module/modelAlert/sellerShareAlert.vue

@@ -0,0 +1,151 @@
+<template name="sharealert">
+	<view class="alert spec" :class="specClass">
+		<view class="model-warp">
+			<view class="content">
+				<view class="text-content">
+					<view class="title">分享订单</view>
+					<view class="share">您的分享码:<text class="txt">{{shareCode}}</text></view>
+					<view class="text">
+						<text>有效期为24小时。订单分享后若对方无法直接登录小程序查看订单,请提供该分享码给对方,通过输入分享码查看</text>
+					</view>
+				</view>				
+				<view class="alert-btn">
+					<view class="btn btn-cancel" @click="hideConfirm">取消</view>
+					<!-- #ifdef MP-WEIXIN -->
+					<button class="btn btn-confirm" open-type="share" @click="btnConfirm(shareCode)">去分享</button>
+					<!-- #endif -->
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { queryOrderShareCode } from "@/api/order.js" 
+	export default{
+		name:'sharealert',
+		props:{
+			orderID:{
+				type:Number
+			}
+		},
+		data() {
+			return{
+				shareCode:'',
+			}
+		},
+		created() {
+			this.getShareCode(this.orderID)
+		},
+		methods:{
+			getShareCode(res){
+				queryOrderShareCode({orderID:res}).then(response =>{
+					this.shareCode = response.data
+					this.$parent.shareCode = this.shareCode;
+				}).catch(error =>{
+					this.$parent.isShareModal = false;
+					this.$util.modal('提示',error.msg,'确定','',false,() =>{})
+				})
+			},
+			hideConfirm(){
+				this.$parent.isShareModal = false
+			},
+			btnConfirm(code){//点击事件
+				this.$emit('btnConfirm')
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	/*弹窗*/
+	 .model-warp.none{
+		 display: none;
+	 }
+	 .model-warp.show{
+		 display: block;
+	 }
+	 .model-warp{
+		width: 100%;
+		height: 100%;
+		background: rgba(0,0,0,0.3);
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 10000;
+		transition: all 0.4s;
+		&.none{
+			display: none;			
+		}
+		&.show{
+			display: block;
+		}
+		.content{
+			width: 518rpx;
+			height: 418rpx;
+			position: absolute;
+			background: $bg-color;
+			left: 0;
+			right: 0;
+			bottom: 0;
+			top: 0;
+			margin: auto;
+			border-radius: 24rpx;
+			.text-content{
+				width: 448rpx;
+				height: 264rpx;
+				padding: 20rpx 35rpx;
+				float: left;
+				.title{
+					line-height: 40rpx;
+					font-size: $font-size-28;
+					color: $text-color;
+					text-align: center;
+					font-weight: bold;
+					margin-bottom: 36rpx;
+				}
+				.share{
+					line-height: 36rpx;
+					font-size: $font-size-26;
+					color: $text-color;
+					text-align: justify;
+					margin-top: 22rpx;
+					font-weight: normal;
+					.txt{
+						margin-left: 10rpx;
+						color: #FF2A2A;
+					}
+				}
+				.text{
+					line-height: 36rpx;
+					font-size: $font-size-26;
+					color: $text-color;
+					text-align: justify;
+					margin-top: 22rpx;
+				}
+			}
+			.alert-btn{
+				width: 80%;
+				height: 70rpx;
+				display: flex;
+				margin: 0 auto;
+				.btn{
+					flex: 1;
+					line-height: 70rpx;
+					font-size: $font-size-28;
+					text-align: center;
+					color: #FFFFFF;
+					border-radius: 14rpx;
+					padding: 0;
+					margin: 0 15rpx;
+					&.btn-cancel{
+						background: $btn-cancel;
+					}
+					&.btn-confirm{
+						background: $btn-confirm;
+					}
+				}
+			}
+		}	
+	}
+</style>

+ 1 - 1
components/cm-module/orderDetails/goodsList.vue

@@ -14,7 +14,7 @@
 						</view>
 						<view class="pros-product">
 							<view class="producttitle">{{pros.name}}</view>
-							<view class="productspec">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+							<view class="productspec" v-if="pros.productCategory != 2">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
 							<view class="product-view">
 								<view class="view-num">单价:¥{{pros.price.toFixed(2)}}</view>
 								<view class="view-num">数量(赠品):{{pros.num}}({{pros.presentNum}})</view>

+ 32 - 16
components/cm-module/orderDetails/orderInformation.vue

@@ -2,11 +2,12 @@
 	<view class="information-template">
 		 <!-- 订单信息 -->
 		 <view class="information-content">
-			<view class="information-view num">
-				<view class="view-num">
+			<view class="information-view title">
+				<view class="view-num title">
 					<text class="bage-buss" v-if="orderData.orderSubmitType == 3 || orderData.orderSubmitType == 4">协销</text>
 					<text class="bage-auto" v-if="orderData.orderSubmitType == 0 || orderData.orderSubmitType == 1 ||orderData.orderSubmitType == 2">自主</text>
 					<text class="bage-text">订单编号:{{orderData.orderNo =='undefined' ? '' : orderData.orderNo}}</text>
+					<image class="bage-icon" src="../../../static/temp/icon-type@3x.png" mode="widthFix" v-if="orderData.secondHandOrderFlag == 1"></image>
 				</view>
 			</view>
 			<view class="information-view">
@@ -146,7 +147,7 @@
 		margin-top: 24rpx;
 		.information-content{
 			width: 702rpx;
-			padding: 20rpx 24rpx;
+			padding: 0  24rpx 20rpx 24rpx;
 			.information-view{
 				height: 50rpx;
 				line-height: 50rpx;
@@ -154,19 +155,34 @@
 				color: $text-color;
 				margin: 4rpx 0;
 				display: flex;
+				&.title{
+					height: 68rpx;
+					line-height: 68rpx;
+					margin-bottom: 5rpx;
+				}
 				view{
 					flex: 1;
 					color: $text-color;
 					text-align: left;
 				}
-				.view-num{
-					.bage-buss{
+				.view-num.title{
+					height: 68rpx;
+					line-height: 68rpx;
+					position: relative;
+					.bage-icon{
+						width: 50rpx;
+						height: 50rpx;
 						display: block;
-						float: left;
-						width: 64rpx;
+						position: absolute;
+						right: 0;
+						top: 9rpx;
+					}
+					.bage-buss{
+						display: inline-block;
+						width: 72rpx;
 						height: 30rpx;
-						background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-						border-radius: 6rpx;
+						background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+						border-radius: 15rpx;
 						line-height: 30rpx;
 						font-size: $font-size-24;
 						text-align: center;
@@ -174,12 +190,11 @@
 						margin-top: 10rpx;
 					}
 					.bage-auto{
-						display: block;
-						float: left;
-						width: 64rpx;
+						display: inline-block;
+						width: 72rpx;
 						height: 30rpx;
-						background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-						border-radius: 6rpx;
+						background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+						border-radius: 15rpx;
 						line-height: 30rpx;
 						font-size: $font-size-24;
 						text-align: center;
@@ -187,11 +202,12 @@
 						margin-top: 10rpx;
 					}
 					.bage-text{
+						display: inline-block;
 						font-size: $font-size-28;
-						line-height: 40rpx;
+						line-height: 68rpx;
 						text-align: left;
 						color: $color-system;
-						margin-left: 15rpx;
+						margin-left: 10rpx;
 					}
 				}
 				.view-num.ord{

+ 7 - 1
components/cm-module/productDetails/cm-price.vue

@@ -12,6 +12,7 @@
 						<text class="txt big">{{retailPrice}}</text>
 						<text class="txt big">{{smallMoney== '0'?'.00':smallMoney}}</text>
 					</view>
+					<view class="p-price-none" v-if="product.actStatus == 1">¥{{product.price1.toFixed(2)}}</view>
 					<view class="p-minBuy">起订量:<text class="min-text">{{minBuyNumber}}</text></view>
 				</view>
 				<view class="wrap-ladder" v-else>
@@ -48,6 +49,7 @@
 						<text class="txt big">{{retailPrice}}</text>
 						<text class="txt big">{{smallMoney== '0'?'.00':smallMoney}}</text>
 					</view>
+					<view class="p-price-none" v-if="product.actStatus == 1">¥{{product.price1.toFixed(2)}}</view>
 					<view class="p-minBuy">起订量:<text class="min-text">{{minBuyNumber}}</text></view>
 				</view>
 				<view class="wrap-ladder" v-else>
@@ -80,6 +82,7 @@
 						<text class="txt big">{{retailPrice}}</text>
 						<text class="txt big">{{smallMoney== '0'?'.00':smallMoney}}</text>
 					</view>
+					<view class="p-price-none" v-if="product.actStatus == 1">¥{{product.price1.toFixed(2)}}</view>
 					<view class="p-minBuy">起订量:<text class="min-text">{{minBuyNumber}}</text></view>
 				</view>
 				<view class="wrap-ladder" v-else>
@@ -138,7 +141,10 @@
 		methods:{
 			goUpgradeApply(){
 				this.$api.navigateTo('/pages/login/apply')
-			}
+			},
+			toFixedFn(text){//处理小数点后两位数
+				return Number(text).toFixed(2);
+			},
 		},
 		
 	}

+ 2 - 2
components/cm-module/productDetails/recommend.vue

@@ -56,8 +56,8 @@
 		},
 		methods:{
 			infoRecommend(id){
-				queryRelevant({productID:id}).then(response =>{
-					// console.log(response)
+				this.SellerService.ProductRecommend({productId:id}).then(response =>{
+					console.log(response)
 					if( response.data && response.data.length > 0){
 						this.isEmpty = false
 						for (var i = 0, j = response.data.length; i < j; i += this.pageSize) {

+ 88 - 0
components/cm-module/productDetails/second-attributes.vue

@@ -0,0 +1,88 @@
+<template name="cm-attributes">
+	<!-- 二手商品详情-->
+	<view class="cm-attributes">
+		<view class="wrap-info">
+			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''">
+				<view class="info-viewL tui-skeleton-fillet">品牌:<text>{{product.brandName}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet">分类:<text>{{product.typeStr}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet">商品成色:<text>{{product.productQuality}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet" v-if="product.fixedYears!=''">出厂日期:<text>{{product.fixedYears}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet" v-if="product.showContactFlag==2">联系人:<text>{{product.contactName}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet" v-if="product.showContactFlag==2">联系方式:<text>{{product.contactMobile}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet" v-if="product.productType!=null||product.productType!=''">商品类型:<text v-if="product.productType==1">医美</text><text v-else>非医美</text></view>
+			</view>
+			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''" v-if="product.secondHandType==2">
+				<view class="info-viewL tui-skeleton-fillet">市场价:<text>{{product.normalPriceStr}}</text></view>	
+			    <view class="info-viewL tui-skeleton-fillet">采购价/原价:<text>{{product.originalPriceStr}}</text></view>
+				<view class="info-viewL tui-skeleton-fillet">产品到期日:<text>{{product.maturityYears}}</text></view>	
+				<view class="info-viewL tui-skeleton-fillet">库存:<text>{{product.stock}}</text></view>	
+			</view>
+			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''">
+				<view class="info-viewL tui-skeleton-fillet">所在地:<text>{{product.provinceCityDistrict}}</text></view>
+		   </view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'cm-attributes',
+		props:{
+			product:{
+				type:Object,
+				default: {}
+			},
+			goodsData:{
+				type:Object,
+				default: {}
+			},
+		},
+		data() {
+			return{
+				
+			}
+		},
+		created() {
+			
+		},
+		methods:{
+		},
+		
+	}
+</script>
+
+<style lang="scss">	
+	.bmCode{
+	float: left;
+	width: 702rpx;
+	padding: 20rpx 24rpx 0 24rpx;
+	border-bottom: 1px solid #F8F8F8	
+	}
+	.tui-skeleton-fillet{
+	color:#999999 ;
+	}
+	.tui-skeleton-fillet text{
+	color: #333333;
+	}
+</style>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 79 - 0
components/cm-module/productDetails/second-price.vue

@@ -0,0 +1,79 @@
+<template name="cm-price">
+	<!-- 商品详情价格判断 -->
+	<view class="wrap-main">
+		<view class="" v-if="userIdentity == 1">
+			<view class="wrap-main-price">
+				<view class="p-price tui-skeleton-fillet">
+					<text class="txt sm">¥</text>
+					<text class="txt big">{{product.price1Str}}</text>
+					<text class="txt big">{{smallMoney== '0'?'.00':smallMoney}}</text>
+				</view>
+			</view>	
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'cm-price',
+		props:{
+			product:{
+				type:Object,
+			},
+			userIdentity: {
+				type: Number,
+				default: 2
+			},
+			ladderPriceList:{
+				type: Array,
+			},
+			retailPrice:{
+				type:String,
+			},
+			smallMoney:{
+				type:String,
+			},
+			minBuyNumber:{
+				type: Number,
+				default: 1
+			}
+		},
+		data() {
+			return{
+				
+			}
+		},
+		created() {
+			
+		},
+		methods:{
+
+		},
+		
+	}
+</script>
+
+<style lang="scss">	
+
+</style>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 43 - 0
components/cm-module/productDetails/secondBrand.vue

@@ -0,0 +1,43 @@
+<template name="secondBrand">
+	<view class="secondBrand">
+		<view class="secondBrand-empty" v-if="product.brandInfo==''||product.brandInfo==null">暂无品牌信息</view>
+		<p v-else>{{product.brandInfo}}</p>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'secondBrand',
+		data(){
+			return{
+			 }
+			},
+			props:{
+				product:{
+					type:Object,
+				},
+			}
+		}
+</script>
+
+<style>
+	.secondBrand{
+		width: 702rpx;
+		margin: auto;
+	}
+	.secondBrand p{
+		padding: 20rpx;
+		font-size: 28rpx;
+		color: #666666;
+		line-height: 48rpx
+	}
+	.secondBrand-empty{
+		width: 702rpx;
+		height: 100rpx;
+		line-height: 100rpx;
+		padding: 0 24rpx;
+		font-size: 28rpx;
+		color: #999999;
+		text-align: center;
+	}
+</style>

+ 74 - 0
components/cm-module/productDetails/secondDeatail.vue

@@ -0,0 +1,74 @@
+<template name="secondDeatail">
+	<view class="secondDeatail clearfix">
+		<view class="Disclaimer">
+			<h3>免责声明:</h3>
+			<p>
+				鉴于本网站提供的二手版块信息包括但不限于公司名称,商品的简介、性能、描述与说明,相关图片、视频等均由卖家自行提供,由卖家对其提供的信息承担相应法律责任。买家应自行甄别商品信息并查验商品性状。本网站对二手版块中买卖双方的交易不提供任何形式的担保与保证,特此声明!
+			</p>
+	    </view>
+		<view class="contentHtml">
+			<view class="detailsText" v-if="product.productDetails!=''||product.productDetails!=null"  >{{product.productDetails}}</view>
+			   <view class="imgList" v-for="(item, index) in product.imageList" :key="index" :data-src="item">
+				   <img :src="item"/>
+			   </view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	import authorize from '@/common/config/authorize.js'
+	import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
+	import tuiNomore from "@/components/tui-components/nomore/nomore"
+	import { queryRelevant } from "@/api/product.js" 
+	
+	export default{
+		name:'secondDeatail',
+		props:{
+			product:{
+				type:Object,
+			  }
+			},
+		data() {
+			return{
+			}
+		},
+		}
+</script>
+
+<style>
+	.Disclaimer{
+		width: 702rpx;
+		background: #F7F7F7;
+		color:#333333 ;
+		line-height: 48rpx;
+		margin:20rpx auto;
+		border-radius: 4rpx;
+		}
+		.Disclaimer h3{
+		color: 28rpx;
+		padding: 20rpx 15rpx 0rpx 15rpx
+		}
+		.Disclaimer ._p{
+		font-size: 24rpx;
+		color: #666666;
+		padding: 10rpx 15rpx;
+		}
+		.imgList{
+			width: 702rpx; 
+			margin: auto;
+			height: 710rpx;
+			margin-bottom: 20rpx;
+		}
+		.imgList img{
+			width: 100%;
+			height: 100%;
+			
+		}
+		.detailsText{
+			padding: 0 30rpx 30rpx 30rpx;
+			color: #333333;
+			font-size: 24rpx;
+			text-align: left;
+		}
+</style>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 373 - 2
h5/pages/activity/activity_mid.vue


+ 1 - 1
manifest.json

@@ -60,7 +60,7 @@
         "setting" : {
             "urlCheck" : true,
             "minified" : true,
-            "es6" : false,
+            "es6" : true,
             "postcss" : true
         },
         "usingComponents" : true,

+ 19 - 2
pages.json

@@ -71,6 +71,12 @@
 				"navigationBarTitleText": "商品详情",
 				"navigationStyle":"custom"
 			}
+		},{
+			"path": "pages/goods/secondProduct",
+			"style": {
+				"navigationBarTitleText": "商品详情",
+				"navigationStyle":"custom"
+			}
 		},{
 			"path": "pages/goods/supplier",
 			"style": {
@@ -155,7 +161,12 @@
 		},{
 			"path": "pages/user/order/orderShareLogin",
 			"style": {
-				"navigationBarTitleText": "订单详情"
+				"navigationBarTitleText": "输入分享码"
+			}
+		},{
+			"path": "pages/user/order/order-sharelogin",
+			"style": {
+				"navigationBarTitleText": "查看订单"
 			}
 		},{
 			"path": "pages/user/order/myOrder",
@@ -310,6 +321,11 @@
 					"style": {
 						"navigationBarTitleText": "立即下单"
 					}
+				},{
+					"path": "pages/cart/second",
+					"style": {
+						"navigationBarTitleText": "二手下单"
+					}
 				},
 				{
 					"path": "pages/order/create-order",
@@ -433,7 +449,8 @@
 				{
 					"path": "pages/activity/activity_mid",
 					"style": {
-						"navigationBarTitleText": "采美商城年中促销"
+						"navigationBarTitleText": "年中大促",
+						"enablePullDownRefresh":true
 					}
 				}
 			]	

+ 1 - 1
pages/goods/cart.vue

@@ -100,7 +100,7 @@
 						<view class="sum">总价:<text class="money-sign">¥</text><text class="money">{{allPrice.toFixed(2)}}</text></view>
 					</view>
 					<view v-if="!isshowDelbtn" class="footer-ri" >
-						<view class="btn" @tap="toConfirmation">去结算({{allCount}})</view>
+						<view class="btn hanld-btn" @tap="toConfirmation">去结算({{allCount}})</view>
 					</view>
 					<view v-else class="footer-del">
 						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>

+ 38 - 8
pages/goods/product.vue

@@ -38,11 +38,13 @@
 						<view class="wrap-top-price" v-if="!goodsData.isNoneDisabled">
 							<view v-if="!hasLogin" class="p-login grade  tui-skeleton-fillet">
 								<text class="p-no">价格:</text>
-								<uni-stars :stars="parseInt(product.price1Grade)" :font-size='36' :width-info="180"></uni-stars>
-								<view class="p-minBuy">起订量:<text class="min-text">{{minBuyNumber}}</text></view>
-							</view>
-							<view v-if="!hasLogin" class="p-login tui-skeleton-fillet">
-								<text class="p-login-btn" @click.stop="navToLogin">登录查看价格<text class="iconfont icon-xiayibu" style="font-size: 22rpx;margin: 0 6rpx;"></text></text>
+								<view class="price-left" v-if="linkPath === 'activity'">
+									<text class="none">¥<text>???</text></text>
+								</view>
+								<uni-stars v-else  :stars="parseInt(product.price1Grade)" :font-size='36' :width-info="180"></uni-stars>
+								<view class="p-login tui-skeleton-fillet">
+									<text class="p-login-btn" @click.stop="navToLogin">登录查看价格<text class="iconfont icon-xiayibu" style="font-size: 22rpx;margin: 0 6rpx;"></text></text>
+								</view>
 							</view>
 							<view class="cm-price" v-else>
 								<cm-price v-if="isRequest"
@@ -264,12 +266,14 @@
 				nvabarData: {							 //顶部自定义导航
 					showCapsule: 1, // 是否显示左上角图标   1表示显示    0表示不显示
 					title: ''		// 导航栏 中间的标题
-				}
+				},
+				linkPath:''
 			}
 		},
 		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
@@ -504,7 +508,9 @@
 			navToLogin(){
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 					if(wxResponse == 1){
-						this.$api.navigateTo(`/pages/login/login?type=detilType&id=${this.productID}`)
+						this.$store.commit('setLoginType',8)
+						this.$store.commit('setLoginProductId',this.productID)
+						this.$api.navigateTo(`/pages/login/login?id=${this.productID}`)
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization?type=1')
 					}
@@ -711,7 +717,6 @@
 				height: 44rpx;
 				line-height: 44rpx;
 				float: left;
-				
 				.txt{
 					color: #FF2A2A;
 					margin:0 2rpx;
@@ -723,6 +728,15 @@
 					font-size: $font-size-32;
 				}
 			}
+			.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;
@@ -744,6 +758,22 @@
 				font-size: $font-size-24;
 				&.grade{
 					margin-bottom: 20rpx;
+					.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-no{
 					float: left;

+ 1223 - 0
pages/goods/secondProduct.vue

@@ -0,0 +1,1223 @@
+<template>
+	<view class="product" :style="{paddingBottom: userIdentity==1 ? '0rpx' :'188rpx'}">
+		<custom-p   v-if="isHeaderPoduct"
+					:systeminfo='systeminfo' 
+					:navbar-data='nvabarData' 
+					:headerBtnPosi ="headerBtnPosi" 
+					:headerColor="headerColor" 
+					:type="isShareType"
+					:page='backPage'>
+		</custom-p>
+		<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="true" :loadingType="5"></tui-skeleton>
+		<view class="container-product tui-skeleton">
+			<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" 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)" class="product-img" />
+							</swiper-item>
+						</swiper>
+						<view class="swiper__dots-box">
+							<view v-for="(item,idx) in productImage" 
+								  :key="idx" 
+								  :class="[idx===current?'swiper__dots-long':'none']" 
+								  :data-index="current" class="swiper__dots-item">
+							</view>	  
+						</view>
+					</uni-swiper-dot>
+				</view>
+				<view class="product-wrap clearfix">
+					<view class="wrap-top" :class="goodsData.isNoneDisabled ? 'none' : ''">
+						<view class="p-title tui-skeleton-fillet">
+							{{product.name == undefined ? '' : product.name}}
+						</view>
+						<view class="wrap-top-price" v-if="!goodsData.isNoneDisabled">
+							<view class="cm-price">
+								<second-price v-if="isRequest"
+											  :product="product"
+											  :userIdentity="userIdentity"
+											  :ladderPriceList="ladderPriceList"
+											  :retailPrice="retailPrice"
+											  :smallMoney="smallMoney"
+											  :minBuyNumber="minBuyNumber"/>
+							</view>
+						</view>
+					</view>
+					<view class="attributes">
+						<second-attributes v-if="isRequest" :product="product" :goodsData="goodsData" />
+					</view>
+				</view>			
+			</view>
+			<view class="product-details">
+				<!-- 头部 -->
+				<view class="navbar" 
+					  :class="navbarFiexd" 
+					  :style="{top:headerBtnPosi.bottom + (headerBtnPosi.bottom - headerBtnPosi.height - systeminfo.statusBarHeight) +'px'}"
+				>
+					<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 class="content tui-banner tui-skeleton-rect" v-if="tabCurrentIndex === 0">
+					<secondDeatail :product="product"></secondDeatail>
+				</view>
+				<view class="content band" v-if="tabCurrentIndex === 1">
+					<secondBrand :product="product"></secondBrand>
+					<!-- <recommend :query-productid="product.productID" v-if="isRecommend"></recommend> -->
+				</view>
+				<view class="content hot" v-if="tabCurrentIndex === 2">
+					<recommend :query-productid="product.productID" v-if="isRecommend"></recommend>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState,mapMutations } from 'vuex'
+	import customP from '@/components/cm-module/headerNavbar/header-poduct' 		 //自定义导航
+	import secondPrice from "@/components/cm-module/productDetails/second-price.vue" //价格显示
+	import secondAttributes from "@/components/cm-module/productDetails/second-attributes.vue" //规格信息
+	import authorize from '@/common/config/authorize.js'
+	import parser from "@/components/jyf-Parser/index" //富文本处理
+	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
+	import recommend from "@/components/cm-module/productDetails/recommend" //相关推荐
+	import secondDeatail from "@/components/cm-module/productDetails/secondDeatail" // 商品信息
+	import secondBrand from "@/components/cm-module/productDetails/secondBrand" // 品牌信息
+	import wxLogin from "@/common/config/wxLogin.js"
+	import { queryProductDetils } from "@/api/product.js" 
+	import { shoppingAddCart } from "@/api/cart.js" 
+	var isPreviewImg;
+	export default{
+		components:{
+			customP,
+			parser,
+			tuiSkeleton,
+			recommend,
+			secondPrice,
+			secondAttributes,
+			secondDeatail,
+			secondBrand
+		},
+		data(){
+			return{			
+				html:'<div style="text-align: center;color:#333333;">暂无内容</div>',
+				disabledTabNavList:[{name:'相关推荐'}],
+				mode:'round',
+				specClass: '',//规格弹窗css类,控制开关动画
+				isBtnType:'',
+				isRequest:false,
+				current:0,
+				isShareType:'',
+				isHeaderPoduct:false,
+				navbarFiexd:'none',
+				ladderPriceFlag:'',
+				ladderPriceList:'',
+				isRecommend:false,
+				isRarameter:true,
+				isService:false,
+				isEvaluate:false,
+				isAnimation:false,
+				skeletonShow:true,
+				isQuantity:false,
+				isStock:false,
+				disabled:false,
+				isNoneDisabled:false,
+				tabCurrentIndex:0,
+				userID:'',
+				productID:0,
+				userIdentity:'',//用户类型
+				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: ''		// 导航栏 中间的标题
+				}
+			}
+		},
+		onLoad(option) {
+			this.productID = option.id;//获取商品ID
+			this.isShareType = option.type
+			this.isHeaderPoduct = true
+			if(option.page == 2){
+				this.backPage = option.page
+			}
+			if(this.isShareType =='share'){
+				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+					console.log(wxResponse)
+					if(wxResponse == 1){
+						wxLogin.wxLoginAuthorize()
+					}else{
+						console.log(new Date +'用户未授权微信信息')
+					}
+				})	
+			}
+		},
+		computed: {
+			...mapState(['hasLogin','isWxAuthorize'])
+		},
+		methods:{
+			initData(){// 初始化商品详情查询
+			this.SellerService.ProductDetail({productId:this.productID}).then(response =>{	
+					console.log(response)
+					this.skeletonShow = false
+					this.productImage = response.data.imageList
+					this.shop = response.data
+					this.product = response.data
+					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.goodsData.cartCount = this.product.productCount
+					//处理阶梯价格
+					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.validFlag =='3' || this.stock == 0 ){
+						this.disabled = true
+						this.isNoneDisabled = true
+						this.tabCurrentIndex = 2;// 页面显示是默认选中第一
+						this.isRecommend = true
+						this.goodsData.disabledText = '下架'
+					}else{
+						this.disabled = false
+						this.isNoneDisabled = false
+						this.tabCurrentIndex = 0;// 页面显示是默认选中第三
+						this.goodsData.disabledText = ''
+					}
+					if(this.product.price1TextFlag == "1"){
+						this.disabled = true
+					}
+					if(this.product.price1TextFlag == "2"){
+						if(this.userIdentity == 4){	
+							this.disabled = true
+						}else{
+							this.disabled = false
+						}
+					}
+					this.goodsData.disabled = this.disabled
+					this.goodsData.isNoneDisabled = this.isNoneDisabled
+					if(this.product.validFlag =='3'){
+						this.goodsData.disabledText = '下架'
+					}
+					if(this.stock == 0){
+						this.goodsData.disabledText = '售罄'
+					}
+					this.isRequest = true
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			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.tabCurrentIndex = index;
+				switch(this.tabCurrentIndex){
+					case 0:
+						this.isRarameter = true
+						break;
+					case 1:
+						this.isService = true
+						break;
+					case 2:
+						this.isRecommend = true
+						break;
+				}
+			},
+			handleContact(e){//跳转小程序客服
+
+			},
+			buyProductCart(){//底部购物车按钮点击
+				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+					if(wxResponse == 1){
+						if(this.hasLogin){
+							this.$api.navigateTo('/pages/goods/cart')
+						}else{					
+							this.$api.navigateTo('/pages/login/login?type=1')
+						}
+					}else{
+						this.$api.navigateTo('/pages/authorization/authorization?type=1')
+					}
+				})	
+			},
+			btnGetConfirm(type){//加入购物车&&立即购买点击
+				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+					if(wxResponse == 1){
+						if(this.hasLogin){
+							this.showSpec(type);
+						}else{
+							this.$api.navigateTo('/pages/login/login?type=1')
+						}
+					}else{
+						this.$api.navigateTo('/pages/authorization/authorization?type=1')
+					}	
+				})
+			},	
+			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.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弹窗提示成功	
+				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.$api.navigateTo(`/pages/login/login?type=detilType&id=${this.productID}`)
+					}else{
+						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
+			},
+			getOptionFn(e){
+				this.isShareType = e.type
+			},
+			goSupplier(){
+				this.$api.setStorage('supplierInfo',this.shop)
+				this.$api.navigateTo('/pages/goods/supplier')
+			},
+			discard(){
+				//丢弃
+			}
+		},
+		onPageScroll(e){//实时获取到滚动的值
+			if(e.scrollTop>50){
+				this.headerColor = true
+				this.nvabarData={							
+					showCapsule: 1, 
+					title: '商品详情', 		
+				}
+			}else{
+				this.headerColor = false
+				this.nvabarData={
+					showCapsule: 1, 
+					title: '', 		
+				}
+			}
+			if(e.scrollTop>700){
+				this.navbarFiexd = 'fixed'
+			}else{
+				this.navbarFiexd = 'none'
+			}
+		},
+		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 : 3
+				if (isPreviewImg) {
+					isPreviewImg = false;
+					return;
+				} else {
+					this.initData();
+				}
+			}).catch(error =>{
+				this.initData();
+			})
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F7F7F7;
+	}
+	.productRemarks{
+		color: #FF2A2A;
+		font-size: 24rpx;
+		margin-bottom: 16rp
+	}
+	.banner-section{
+		width: 100%;
+		height: 750rpx;
+		position: relative;
+		border-bottom: 1px solid #EBEBEB;
+	}	
+	.banner{
+		width: 100%;
+		height: 750rpx;
+		.product-img{
+			width: 750rpx;
+		}
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.swiper__dots-box{
+		position: absolute;
+		bottom: 24px;
+		right: 24rpx;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		height: 12rpx;
+		padding: 10rpx;
+		background: rgba(174,174,174,0.6);
+		border-radius:16rpx;
+		.swiper__dots-item{
+			width: 12rpx;
+			height: 12rpx;
+			border-radius: 100%;
+			margin: 6rpx;
+			background: rgba(62,62,62,1);
+		}
+		.none{
+			background:#FFFFFF;
+		}
+		.swiper__dots-long{
+			background: rgba(62,62,62,1);
+			transition: all 0.1s;
+		}
+	}
+	.product-wrap{
+		width: 100%;
+		height: auto;
+		padding: 24rpx 0 0 0;
+		background-color: #FFFFFF;
+		border-bottom: 20rpx solid #F7F7F7;
+		.wrap-top{
+			width: 702rpx;
+			padding: 0 24rpx;
+			height: auto;
+			float: left;
+			padding-bottom: 24rpx;
+			border-bottom: 1px solid #F8F8F8;
+			&.none{
+				.p-title{
+					color:#999999
+				}
+			}
+			.p-title{
+				line-height: 40rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				font-weight: Bold;
+				-o-text-overflow: ellipsis;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-bottom: 16rpx;
+			}
+			.wrap-main-pricenone{
+				line-height: 44rpx;
+				color: #FF2A2A;
+				font-size: $font-size-28;
+				font-weight: 600;
+			}
+			.wrap-main-text{
+				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-active{
+				width: 130rpx;
+				height: 44rpx;
+				display: flex;
+				align-items: center;
+				flex-direction: row;
+				float: left;
+				.icon-active{
+					width: 124rpx;
+					height: 30rpx;
+					display: block;
+				}
+			}
+			.p-price{
+				height: 44rpx;
+				line-height: 44rpx;
+				float: left;
+				
+				.txt{
+					color: #FF2A2A;
+					margin:0 2rpx;
+				}
+				.txt.sm{
+					font-size: $font-size-24;
+				}
+				.txt.big{
+					font-size: $font-size-32;
+				}
+			}
+			.p-minBuy{
+				height: 44rpx;
+				line-height: 44rpx;
+				float: right;
+				padding: 0 18rpx;
+				border-radius: 22rpx;
+				background-color: #EBEBEB;
+				color: #7F7F7F;
+				font-size: 24rpx;
+				text-align: center;
+				.min-text{
+					margin: 0 6rpx;
+				}
+			}
+			.p-login{
+				height: 44rpx;
+				line-height: 44rpx;
+				color: $color-system;
+				font-size: $font-size-24;
+				&.grade{
+					margin-bottom: 20rpx;
+				}
+				.p-no{
+					float: left;
+					margin-right: 5rpx;
+					font-size: $font-size-28;
+				}
+				.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;
+				}
+			}
+		}
+		.wrap-active{
+			width: 100%;
+			float: left;
+			height: 80rpx;
+			background: linear-gradient(225deg,rgba(255,143,101,1) 0%,rgba(248,79,57,1) 100%);
+			line-height: 80rpx;
+			font-size: $font-size-26;
+			color: #FFFFFF;
+			text-align: center;
+		}
+		.wrap-ladder{
+			float: left;
+			width: 702rpx;
+			border-bottom: 1px solid #F8F8F8;
+			.ladder-text{
+				height: 34rpx;
+				line-height: 34rpx;
+				margin-bottom: 24rpx;
+				font-size: 24rpx;
+				color: #999999;
+				.ladder-p{
+					font-size: 20rpx;
+				}
+			}
+			.ladder-main{
+				width: 654rpx;
+				height: 102rpx;
+				padding: 24rpx;
+				background: url(https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_WASybTAAI2gyWbunM918.png);
+				background-size: cover;
+				border-radius: 20rpx;
+				display: flex;
+				.ladder-left{
+					flex: 1.5;
+					line-height: 51rpx;
+					font-size: 24rpx;
+					.ladder-b{
+						text-align-last: justify;
+					}
+				}
+				.ladder-right{
+					height: 100%;
+					display: flex;
+					align-items: center;
+					flex: 8.5;
+					.ladder-li{
+						height: 100%;
+						flex: 1;
+						display:flex;
+						flex-flow: column;
+						align-items: center;
+						.ladder-a{
+							flex: 1;
+							height: 51rpx;
+							line-height: 51rpx;
+							font-size: 26rpx;
+							text-align: justify;
+							color: #FA6400;	
+							font-weight: bold;
+						}
+					}
+				}
+			}
+		}
+		.wrap-label{
+			float: left;
+			width: 702rpx;
+			padding: 24rpx 24rpx 0 24rpx;
+			border-bottom: 1px solid #F8F8F8;
+			.label-a{
+				padding: 0 18rpx;
+				line-height: 40rpx;
+				font-size: $font-size-24;
+				color: #FFFFFF;
+				text-align: center;
+				border-radius: 20rpx;
+				background:#A69DFE;
+				margin: 0 22rpx 22rpx 0;
+				display: inline-block;
+			}
+		}
+		.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-viewB{
+				width: 100%;
+				height: auto;
+			}
+			.info-f{
+				width: 50%;
+				float: left;
+				font-size: $font-size-28;
+				color: $text-color;
+				line-height: 40rpx;
+				margin-bottom: 24rpx;
+				text-align: left;
+			}
+	
+		}
+		.wrap-seve{
+			float: left;
+			width: 702rpx;
+			padding: 0 24rpx;
+			height: 72rpx;
+			line-height: 72rpx;
+			font-size: $font-size-28;
+			color: $text-color;
+			border-bottom: 1px solid #F8F8F8;
+			&.none{
+				color: #999999;
+				.text{
+					color: #999999;
+				}
+			}
+			.iconfont{
+				color: $color-system;
+				margin-left: 20rpx;
+				font-size: $font-size-24;
+			}
+			.text{
+				font-size: $font-size-24;
+				color: $text-color;
+				margin-left: 10rpx;
+			}
+		}
+	}
+	.product-details {
+		height: 100%;
+		background: #FFFFFF;
+		.navbar {
+			width: 702rpx;
+			height: 96rpx;
+			padding: 0 24rpx;
+			background: #fff;
+			z-index: 10;
+			display: flex;
+			border-bottom: 1px solid #F8F8F8;
+			&.fixed{
+				position: fixed;
+				left: 0;
+			}
+			.nav-item {
+				display: flex;
+				flex: 1;
+				justify-content: center;
+				align-items: center;
+				height: 96rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				position: relative;
+				float: left;
+				position: relative;
+				.line{
+					width: 60%;
+					height: 2px;
+					border-radius: 1px;
+					background: #FFFFFF;
+					position: absolute;
+					bottom: 0;
+					left: 50%;
+					margin-left: -30%;
+				}
+				&.current{
+					color:$color-system;
+					.line{
+						background: $color-system;
+					}
+				}
+			}
+		}
+		.content{
+			width: 100%;
+			min-height: 750rpx;
+		}
+	}
+	.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: 110rpx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		background: #FFFFFF;
+		z-index: 99;
+		.bottom-le{
+			width: 302rpx;
+			height: 86rpx;
+			padding:12rpx 24rpx;
+			float: left;
+			.item-bt{
+				width: 86rpx;
+				height: 100%;
+				margin-right:22rpx;
+				display: flex;
+				float: left;
+				flex-direction: column;
+				align-items: center;
+				font-size: $font-size-24;
+				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: -9rpx;
+				}
+				.icon-num.goleft{
+					right: 4rpx;
+				}
+				&:last-child{
+					margin-right: 0;
+				}
+				image {
+					width: 40rpx;
+					height: 40rpx;
+					margin-bottom: 8rpx;
+				}
+				button.contact-btn{
+					width: 100%;
+					height: 100%;
+					margin: 0;
+					padding: 0;
+					display: flex;
+					flex-direction: column;
+					align-items: 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;
+				}
+			}
+		}
+		.bottom-ri{
+			width: 400rpx;
+			height: 100%;
+			float: right;
+			display: flex;
+			.btn{
+				flex: 1;
+				width: 200rpx;
+				line-height: 110rpx;
+				text-align: center;
+				font-size: $font-size-28;
+				color: #FFFFFF;
+			}
+			.btn-cart{
+				background-color: #EFAF00;
+			}
+			.btn-cart.disabled{
+				background-color: rgba(239, 175, 0, 0.5);
+			}
+			.btn-bay{
+				background:linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);
+			}
+			.btn-bay.disabled{
+				background-color: 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 {
+		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;
+	}
+	/* 加入购物模态层*/
+	@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 showAmnation {
+		0% {
+			top: -12rpx;
+			opacity: 0;
+		}
+		50% {
+			top: -60rpx;
+			opacity: 1;
+		}
+		100% {
+			top: -100rpx;
+			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{
+			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 {
+				width: 100%;
+			}
+			.btn {
+				width: 100%;
+				height: 88rpx;
+				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: 14rpx;
+				}
+			}
+		}
+		
+		&.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;
+			}
+			
+			.layer {
+				animation: hideLayer 0.2s linear both;
+			}
+		}
+		&.none {
+			display: none;
+		}
+		&.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{
+				width: 114rpx;
+				height: 114rpx;	
+				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;
+				}
+				.number-box{
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					.iconfont{
+						font-size: $font-size-32;
+						padding:0 20rpx;
+						font-size: $text-color;
+					}
+					.btn-input{
+						width: 62rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #F8F8F8;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-28;
+					}
+				}
+				.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;
+				}
+				.p.sm{
+					font-size: $font-size-24;
+				}
+			}
+		}
+	}
+	/*富文本样式*/
+	rich-text.p{
+		width: 702rpx !important;
+		padding: 0 24rpx;
+		text-align: justify;
+	}
+	rich-text.img{
+		width: 100%;
+		height: auto;
+	}
+</style>

+ 0 - 4
pages/login/apply.vue

@@ -394,10 +394,6 @@ import { mapMutations } from 'vuex';
 					this.$util.msg('请填写机构详细地址',2000);
 					return
 				}
-				if( this.socialCreditCode == ''){
-					this.$util.msg('请填写社会统一社会信用代码',2000);
-					return
-				}
 				if( this.uploadBusinessImage == ''){
 					this.$util.msg('请上传您的营业执照',2000);
 					return

+ 16 - 1
pages/login/bindwechat.vue

@@ -92,6 +92,9 @@
 		onLoad(option) {
 			this.getVerificationCode()
 		},
+		computed: {
+			...mapState(['isWxAuthorize','isLoginType','isLoginProductId','isLoginOrderId'])
+		},
 		methods:{
 			...mapMutations(['login']),
 			bindWechatInfo(){
@@ -182,7 +185,19 @@
 						}
 						// console.log(params)
 						bindingWechat(params).then(response =>{
-							this.$api.switchTabTo('/pages/tabBar/user/user')
+							switch(this.isLoginType){
+								case 9:
+									this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+									break;
+								case 8:
+									this.$api.navigateTo(`/pages/goods/product?id=${this.isLoginProductId}`)
+									break;
+								case 7:
+									this.$api.navigateTo(`/pages/user/order/order-details?type=share&orderID=${this.isLoginOrderId}`)
+									break;
+								default:
+									this.$api.switchTabTo('/pages/tabBar/user/user')
+							}
 						}).catch(error =>{
 							this.$util.msg(error.msg,2000)
 						})							

+ 2 - 1
pages/login/login.vue

@@ -57,7 +57,7 @@
 			this.getOption = JSON.stringify(option)
 		},
 		computed: {
-			...mapState(['hasLogin','userInfo','isWxAuthorize'])
+			...mapState(['hasLogin','isWxAuthorize','isLoginType'])
 		},
 		methods:{
 			...mapMutations(['login']),
@@ -99,6 +99,7 @@
 			authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 				if(wxResponse == 1){
 					wxLogin.wxLoginQuick()
+					console.log(this.isLoginType)
 				}else{
 					this.$api.navigateTo('/pages/authorization/authorization?type=0')
 				}	

+ 10 - 1
pages/login/logincode.vue

@@ -50,7 +50,16 @@
 						}							
 						invitationCodeLogin(params).then(response =>{
 							this.login(response.data)
-							this.$api.switchTabTo('/pages/tabBar/home/home')
+							switch(this.isLoginType){
+								case 9:
+									this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+									break;
+								case 8:
+									this.$api.navigateTo(`/pages/goods/product?id=${this.isLoginProductId}`)
+									break;
+								default:
+									this.$api.switchTabTo('/pages/tabBar/user/user')
+							}
 						}).catch(error =>{
 							this.$util.msg(error.msg,2000)
 							this.isUserInfo = false

+ 24 - 17
pages/search/search-order.vue

@@ -35,6 +35,7 @@
 									<text class="bage-buss tui-skeleton-fillet" v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4">协销</text>
 									<text class="bage-auto tui-skeleton-fillet" v-if="order.orderSubmitType == 0 || order.orderSubmitType == 1 || order.orderSubmitType == 2">自主</text>
 									<text class="bage-text tui-skeleton-fillet">订单号:{{order.orderNo}}</text>
+									<image class="bage-icon" src="../../static/temp/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
 								</view>
 								<view class="order-title-b">
 									<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
@@ -51,7 +52,7 @@
 										<view class="pros-img tui-skeleton-fillet"><image :src="pros.productImage" alt="" /></view>
 										<view class="pros-product">
 											<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
-											<view class="productspec tui-skeleton-fillet">规格:{{pros.productUnit}}</view>
+											<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory!=2">规格:{{pros.productUnit}}</view>
 											<view class="productprice">
 												<view class="price tui-skeleton-fillet">
 													<text>¥{{pros.price.toFixed(2)}}</text>
@@ -375,7 +376,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/8C/Cmis215XHXSAWWkhAAXDP4-6m_c397.png'
 				}
 			},
@@ -648,41 +649,47 @@
 		height: auto;
 		.order-title-t{
 			width: 100%;
-			height: 40rpx;
+			height: 68rpx;
 			float: left;
-			line-height: 40rpx;
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
+				display: block;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
 			.bage-buss{
 				display: inline-block;
-				float: left;
-				width: 64rpx;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-auto{
-				isplay: inline-block;
-				float: left;
-				width: 64rpx;
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top:8rpx;
 			}
 			.bage-text{
+				display: inline-block;
 				font-size: $font-size-28;
-				line-height: 40rpx;
+				line-height: 68rpx;
 				text-align: left;
 				color: $color-system;
-				margin-left: 15rpx;
+				margin-left: 10rpx;
 			}
 		}
 		.order-title-b{

+ 12 - 13
pages/search/search.vue

@@ -21,13 +21,13 @@
 		<!-- <go-search :theme="themeClass" @subMitSearch="subMitSearch"></go-search> -->
 		<view v-else class="commodity-list-wrapper"  :style="{'overflow':'auto','height':(listData.length>4? windowHeight + 'px' : 'auto')}">
 			<scroll-view :style="{'height':(listData.length>4? scrollHeight+'px' : 'auto')}" @scrolltolower="scrolltolower" scroll-y v-if="!showEmpty">
-				<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 v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.p_id)">
+					<image mode='widthFix' :src="item.p_image"  class="list-img" alt="list-img"></image>
 					<view class="list-details-info">
-						<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>
+						<view class="list-details-title">{{isInterceptHtmlFn(item.p_name)}}</view>
+						<text class="list-details-specs">规格:{{item.p_unit}}</text>
+						<view class="list-details-specs" v-if="item.p_code!=''&&item.p_code!=null">
+							<view>商品编码:{{item.p_code}}</view>
 						</view>
 						<view class="list-details-price">
 							<view v-if="hasLogin"class="list-price">
@@ -36,12 +36,12 @@
 									<text v-else>¥<text class="price-larger">{{item.price?item.price :'0.00'}}</text></text>
 								</view>	
 								<view v-if="userIdentity == 4">
-									<view class="price-larger" v-if="item.priceflag == '1'">
+									<view class="price-larger" v-if="item.p_price_flag == '1'">
 										<text class="txt">未公开价格</text>
 									</view>
 									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
 									<view v-else>
-										<view class="price-larger" v-if="item.priceflag == '2'">
+										<view class="price-larger" v-if="item.p_price_flag == '2'">
 											<text class="txt">价格仅会员可见</text>
 											<text class="btn" @click.stop="this.$api.navigateTo(`/pages/login/apply?clubStatus=${clubStatus}`)">去升级</text>
 										</view>
@@ -49,7 +49,7 @@
 									</view>
 								</view>
 								<view v-if="userIdentity == 2">
-									<view class="price-larger" v-if="item.priceflag == '1'">
+									<view class="price-larger" v-if="item.p_price_flag == '1'">
 										<text class="txt">未公开价格</text>
 									</view>
 									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
@@ -58,7 +58,7 @@
 							</view>	
 							<view  v-else class="list-login-now">
 								<text class="p-no">价格:</text>
-								<uni-stars :stars="parseInt(item.pricegrade)" :font-size='36' :width-info="180"></uni-stars>
+								<uni-stars :stars="parseInt(item.p_price_grade)" :font-size='36' :width-info="180"></uni-stars>
 							</view>
 						</view>
 					</view>
@@ -202,7 +202,6 @@
 						setTimeout(()=>{ this.pullFlag = true; },500)
 						// 底部提示文案
 						if(this.totalPage>this.listData.length) {
-							console.log('1111111111')
 							this.loadingText = '上拉加载更多';
 						} else {
 							this.showLoading = true;
@@ -229,7 +228,7 @@
 				if (!this.hasLogin) {return false;}
 				let productIdArr = [];
 				this.listData.map(item=>{// 0公开价格 1不公开价格 2仅对会员机构公开
-					productIdArr.push(item.pid)
+					productIdArr.push(item.p_id)
 				})
 				this.productIds = productIdArr.join(",");
 				querySearchProductPrice({userId: this.userID,productIds:this.productIds}).then(response =>{
@@ -246,7 +245,7 @@
 										price:Number(priceList[i].price).toFixed(2),
 										minBuyNumber:priceList[i].minBuyNumber
 								}
-								if( item.pid == priceList[i].productId ){
+								if( item.p_id == priceList[i].productId ){
 									Object.assign(item,priceObj)
 								}
 							}

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

@@ -99,7 +99,7 @@
 						<view class="sum">总价:<text class="money-sign">¥</text><text class="money">{{allPrice.toFixed(2)}}</text></view>
 					</view>
 					<view v-if="!isshowDelbtn" class="footer-ri" >
-						<view class="btn" @tap="toConfirmation">去结算({{allCount}})</view>
+						<view class="btn hanld-btn" @tap="toConfirmation">去结算({{allCount}})</view>
 					</view>
 					<view v-else class="footer-del">
 						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>

+ 20 - 2
pages/tabBar/home/home.vue

@@ -6,7 +6,7 @@
 		<view class="container-home tui-skeleton">
 			<view class="swiper-banner-box" >
 				<swiper class="tui-banner-swiper tui-banner tui-skeleton-fillet" :autoplay="true" :interval="5000" :duration="500"  @change="swiperChange" :circular="true">
-					<swiper-item v-for="(item,index) in bannerImageList" :key="index">
+					<swiper-item v-for="(item,index) in bannerImageList" :key="index" @click.stop="handleBannerActivity(item,index)">
 						<image :src="item" class="tui-slide-image" mode="scaleToFill"/>
 					</swiper-item>
 				</swiper>
@@ -137,6 +137,8 @@
 				</view>
 			</view>	
 		</view>
+		<!-- 活动弹窗 -->
+		<activityAlert :show="isActivity" @click="handleClick" @cancel="handleCancelClick"></activityAlert>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='modallayer'></modal-layer>
 	</view>
@@ -147,6 +149,7 @@
 	import authorize from '@/common/config/authorize.js'
 	import modalLayer from "@/components/modal-layer"
 	import cmCustom from '@/components/cm-module/home/cm-custom.vue'
+	import activityAlert from '@/components/cm-module/activity/activity_on_1.vue'
 	import uniStars from '@/components/uni-stars/uni-stars.vue'
 	import { userInfoLogin, queryHomeInfo } from "@/api/use.js"
 	import { queryPreferred } from "@/api/product.js"
@@ -157,6 +160,7 @@
 			modalLayer,
 			cmCustom,
 			uniStars,
+			activityAlert
 		},
 		data() {
 			return {
@@ -212,7 +216,7 @@
 			
 		},
 		computed: {
-			...mapState(['hasLogin','userInfo','isWxAuthorize'])
+			...mapState(['hasLogin','userInfo','isActivity'])
 		},
 		methods: {
 			...mapMutations(['login','logout']),
@@ -280,6 +284,20 @@
 					});
 				});
 			},
+			handleBannerActivity(item,index){
+				switch(index){
+					case 0:
+						this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+						break;
+				}
+			},
+			handleClick(data){
+				this.$api.navigateTo(`/h5/pages/activity/activity_mid`)
+				this.$store.commit('setActivity',data)
+			},
+			handleCancelClick(data){
+				this.$store.commit('setActivity',data)
+			},
 			//分类导航跳转
 			navToListPage(nav){
 				let self = this;

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

@@ -42,7 +42,7 @@
 						<view class="order-item" @click="navigator('/pages/user/order/order-list?state=1')" hover-class="common-hover"  :hover-stay-time="50">
 							<view class="order-icon">
 								<image src="../../../static/temp/order5@3x.png" mode=""></image>
-								<text 	v-if="confirmedCount>0" 
+								<text 	v-if="confirmedCount>0 && hasLogin" 
 										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num" 
 										:class="[confirmedCount < 10 ? 'goleft':'']">
 										{{confirmedCount == 99? '99+' : confirmedCount}}
@@ -53,7 +53,7 @@
 						<view class="order-item" @click="navigator('/pages/user/order/order-list?state=2')"  hover-class="common-hover" :hover-stay-time="50">
 							<view class="order-icon">
 								<image src="../../../static/temp/order1@3x.png" mode=""></image>
-								<text  v-if="paymentCount >0" 
+								<text  v-if="paymentCount >0 && hasLogin" 
 									   class="uni-badge uni-badge-error uni-small uni-badge--small icon-num " 
 									   :class="[paymentCount < 10 ? 'goleft':'']">
 									   {{paymentCount == 99? '99+' : paymentCount}}
@@ -64,7 +64,7 @@
 						<view class="order-item" @click="navigator('/pages/user/order/order-list?state=3')" hover-class="common-hover"  :hover-stay-time="50">
 							<view class="order-icon">
 								<image src="../../../static/temp/order2@3x.png" mode=""></image>
-								<text   v-if="waitShipmentsCount >0" 
+								<text   v-if="waitShipmentsCount >0 && hasLogin" 
 										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num" 
 										:class="[waitShipmentsCount < 10 ? 'goleft':'']">
 										{{waitShipmentsCount == 99? '99+' : waitShipmentsCount}}
@@ -75,7 +75,7 @@
 						<view class="order-item" @click="navigator('/pages/user/order/order-list?state=4')" hover-class="common-hover"  :hover-stay-time="50">
 							<view class="order-icon">
 								<image src="../../../static/temp/order3@3x.png" mode=""></image>
-								<text 	v-if="shipmentsCount>0" 
+								<text 	v-if="shipmentsCount>0 && hasLogin" 
 										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num" 
 										:class="[shipmentsCount < 10 ? 'goleft':'']">
 										{{shipmentsCount == 99? '99+' : shipmentsCount}}
@@ -86,7 +86,7 @@
 						<view class="order-item" @click="navigator('/pages/user/order/order-list?state=5')" hover-class="common-hover"  :hover-stay-time="50">
 							<view class="order-icon">
 								<image src="../../../static/temp/order4@3x.png" mode=""></image>
-								<text 	v-if="salesReturnCount >0"
+								<text 	v-if="salesReturnCount >0 && hasLogin"
 										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num" 
 										:class="[salesReturnCount < 10 ? 'goleft':'']">
 										{{salesReturnCount == 99? '99+' : salesReturnCount}}

+ 0 - 1
pages/user/account/account.vue

@@ -486,7 +486,6 @@ page, .container{
 	display: none;
 	background: rgba(0,0,0,.5);
 	z-index: 999;
-	
 	image{
 		width: 750rpx;
 		height: 1052rpx;

+ 5 - 2
pages/user/order/create-order.vue

@@ -306,9 +306,12 @@
 						this.$api.navigateTo(`/pages/user/order/success?data=${JSON.stringify({data:data})}`)
 					}else if(response.code === 2){
 						this.submitState ='confirm'
-						this.$api.redirectTo(`/pages/user/order/order-payment?type=${this.submitState}&orderID=${response.data.orderID}`)
+						this.$util.msg('订单提交成功',3000,true,'success')
+						setTimeout(()=>{
+							this.$api.redirectTo(`/pages/user/order/order-payment?type=${this.submitState}&orderID=${response.data.orderID}`)
+						},3000)
 					}else{
-						this.$util.msg(response.msg,2000);
+						this.$util.msg(response.msg,3000);
 					}
 				}).catch(error =>{})
 			},

+ 1 - 1
pages/user/order/myOrder.vue

@@ -322,7 +322,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/8C/Cmis215XHXSAWWkhAAXDP4-6m_c397.png'
 				}
 			},

+ 1 - 1
pages/user/order/order-cashier.vue

@@ -156,7 +156,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.shareOrderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.shareOrderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},

+ 1 - 1
pages/user/order/order-details.vue

@@ -208,7 +208,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.orderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.orderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},

+ 23 - 16
pages/user/order/order-list.vue

@@ -25,6 +25,7 @@
 										<text class="bage-buss tui-skeleton-fillet" v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4">协销</text>
 										<text class="bage-auto tui-skeleton-fillet" v-if="order.orderSubmitType == 0 || order.orderSubmitType == 1 || order.orderSubmitType == 2">自主</text>
 										<text class="bage-text tui-skeleton-fillet">订单号:{{order.orderNo}}</text>
+										<image class="bage-icon" src="../../../static/temp/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
 									</view>
 									<view class="order-title-b">
 										<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
@@ -41,7 +42,7 @@
 											<view class="pros-img tui-skeleton-fillet"><image :src="pros.productImage" alt="" /></view>
 											<view class="pros-product">
 												<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
-												<view class="productspec tui-skeleton-fillet">规格:{{pros.productUnit}}</view>
+												<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory!=2">规格:{{pros.productUnit}}</view>
 												<view class="productprice">
 													<view class="price tui-skeleton-fillet">
 														<text>¥{{pros.price.toFixed(2)}}</text>
@@ -374,7 +375,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},
@@ -544,41 +545,47 @@
 		height: auto;
 		.order-title-t{
 			width: 100%;
-			height: 40rpx;
-			line-height: 40rpx;
+			height: 68rpx;
 			float: left;
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
+				display: block;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
 			.bage-buss{
 				display: inline-block;
-				float: left;
-				width: 64rpx;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-auto{
 				display: inline-block;
-				float: left;
-				width: 64rpx;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-text{
+				display: inline-block;
 				font-size: $font-size-28;
-				line-height: 40rpx;
+				line-height: 68rpx;
 				text-align: left;
 				color: $color-system;
-				margin-left: 15rpx;
+				margin-left: 10rpx;
 			}
 		}
 		.order-title-b{

+ 11 - 11
pages/user/order/order-pay.vue

@@ -30,9 +30,9 @@
 							</view> -->
 							<input  class="input"
 									type="digit"
-									v-model="payAmount" 
-									@focus="focusInput" 
-									@blur="blurInput" 
+									v-model="payAmount"
+									@focus="focusInput"
+									@blur="blurInput"
 									placeholder="输入金额不能大于待付金额"
 									placeholder-class="placeholder"/>
 						</view>
@@ -77,10 +77,10 @@
 			</view>
 		</view>
 		<!-- 数字键盘 -->
-<!-- 	<keyboard v-if="showDigitKeyboard"  
-				  @confirmEvent="confirmEvent" 
-				  :money.sync="payAmount" 
-				  btn-color='linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%)' 
+<!-- 	<keyboard v-if="showDigitKeyboard"
+				  @confirmEvent="confirmEvent"
+				  :money.sync="payAmount"
+				  btn-color='linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%)'
 				  title="完成">
 		</keyboard> -->
 	</view>
@@ -248,7 +248,7 @@
 						self.$util.msg('用户取消支付~')
 					},
 					'complete':function(res){
-						
+
 					}
 				})
 			},
@@ -326,7 +326,7 @@
 			}
 		},
 		onShow() {
-			
+
 		}
 	}
 </script>
@@ -541,7 +541,7 @@
 		z-index: 8888;
 		transition: all 0.4s;
 		&.none{
-			display: none;			
+			display: none;
 		}
 		&.show{
 			display: block;
@@ -621,4 +621,4 @@
 			}
 		}
 	}
-</style>
+</style>

+ 91 - 10
pages/user/order/order-payment.vue

@@ -1,9 +1,31 @@
 <template>
 	<view class="container cashier" :style="{paddingTop:CustomBar+'px'}">
 		<cu-custom :navbar-data='nvabarData' @navigateBack="hanldNavigateBack"></cu-custom>
-		<view class="container-cash clearfix">
+		<view class="container-cash clearfix" v-if="invoiceStatus">
+			<view class="pay-bring-title">本次交易暂不支持线上支付,请使用线下转账方式付款</view>
+			<view class="container-wrapper">
+				<view class="pay-content">
+					<view class="pay-p"><text>待付金额</text></view>
+					<view class="pay-money">
+						<text class="pay-sm">¥</text>
+						<text class="pay-bg">{{payableAmount | NumFormat}}</text>
+					</view>
+				</view>
+			</view>
+			<view class="pay-bring-wrapper clearfix">
+				<view class="pay-bring-content">
+					<view class="text-v title">转账信息</view>
+					<view class="text-v">开户行:中信银行(深圳泰然支行)</view>
+					<view class="text-v">银行卡号:{{bankNumber}}</view>
+					<view class="text-v">户名:周仁声</view>
+					<view class="text-v">订单标识:{{payOrderId}} <text class="clipboard" @click.stop="clipboard(payOrderId)">复制</text></view>
+					<view class="text-v title">特别注意</view>
+					<view class="text-v bg-color">请在转账备注中填写上述订单标识,方便财务快速审核,提高发货速度</view>
+				</view>
+			</view>
+		</view>		
+		<view class="container-cash clearfix" v-else>
 			<view class="container-wrapper">
-				<view class="pay-title" v-show="isConfirm"><text>订单提交成功,请支付订单</text></view>
 				<view class="pay-content">
 					<view class="pay-p"><text>待付金额</text></view>
 					<view class="pay-money">
@@ -94,7 +116,6 @@
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				tabCurrentIndex:0,
 				isShowTip:false,
-				isConfirm:false,
 				isReceiptStatus:false,
 				buttonText:'使用微信支付',
 				btnColor:'#09BB07',
@@ -119,7 +140,7 @@
 				//=2表示数据有小数位
 				if(value2Array.length == 2) {
 					floatPart = value2Array[1].toString(); //拿到小数部分
-			
+
 					if(floatPart.length == 1) { //补0,实际上用不着
 						return intPartFormat + "." + floatPart + '0';
 					} else {
@@ -134,14 +155,14 @@
 			initData(e){
 				switch(e.type){
 					case 'confirm':
-						this.isConfirm = true
 						this.nvabarData.haveBack = false
 						this.nvabarData.haveHome = true
+						this.nvabarData.title = '支付'
 						break;
 					case 'payfirm':
-						this.isConfirm = false
 						this.nvabarData.haveBack = true
 						this.nvabarData.haveHome = false
+						this.nvabarData.title = '选择支付方式'
 						break;
 				}
 				this.orderID = e.orderID
@@ -211,7 +232,7 @@
 			},
 		},
 		onShow() {
-			
+
 		}
 	}
 </script>
@@ -219,10 +240,21 @@
 <style lang="scss">
 	page{
 		height: auto !important;
-		background-color: #F7F7F7;
+		background-color: #FFFFFF;
 	}
 	.container-cash{
 		width: 100%;
+		.pay-bring-title{
+			box-sizing: border-box;
+			width: 100%;
+			height: 96rpx;
+			padding: 0 24rpx;
+			line-height: 96rpx;
+			text-align: left;
+			font-size: $font-size-24;
+			background:rgba(255,234,221,1);
+			color: $color-system;
+		}
 		.container-wrapper{
 			width:662rpx;
 			margin: 0 auto;
@@ -469,6 +501,55 @@
 				}
 			}
 		}
+		.pay-bring-wrapper{
+			width: 100%;
+			padding: 24rpx 0;
+			background-color: #FFFFFF;
+			display: flex;
+			align-items: center;
+			flex-direction: column;
+			.pay-bring-content{
+				width: 654rpx;
+				height: auto;
+				padding: 0 24rpx;
+				.text{
+					font-size: $font-size-24;
+					color: #666;
+					line-height: 44rpx;
+					text-align: center;
+					&.bg-color{
+						color: $color-system;
+						line-height: 88rpx;
+					}
+				}
+				.text-v{
+					font-size: $font-size-28;
+					color: #999;
+					line-height: 70rpx;
+					text-align: left;
+					&.title{
+						font-size: $font-size-28;
+						color: #666666;
+					}
+					&.bg-color{
+						line-height: 44rpx;
+						color: $color-system;
+					}
+					.clipboard{
+						width: 84rpx;
+						height: 36rpx;
+						background:linear-gradient(34deg,rgba(255,41,41,1) 0%,rgba(255,109,27,1) 100%);
+						text-align: center;
+						font-size: $font-size-24;
+						color: #FFFFFF;
+						border-radius: 4rpx;
+						line-height: 36rpx;
+						display: inline-block;
+						margin-left: 10rpx;
+					}
+				}
+			}
+		}
 	}
 	.freight-alert{
 		width: 100%;
@@ -480,7 +561,7 @@
 		z-index: 8888;
 		transition: all 0.4s;
 		&.none{
-			display: none;			
+			display: none;
 		}
 		&.show{
 			display: block;
@@ -536,4 +617,4 @@
 			}
 		}
 	}
-</style>
+</style>

+ 255 - 0
pages/user/order/order-sharelogin.vue

@@ -0,0 +1,255 @@
+<template>
+	<view class="container login" v-if="isShareStatus">
+		<view class="container-main clearfix">
+			<view class="main-title">此订单包含如下商品:</view>
+			<view class="main-list clearfix">
+				<view class="main-list-item" v-for="(item, index) in productList" :key="index">
+					<view class="item-image">
+						<image :src="item.productImage" mode="widthFix"></image>
+					</view>
+					<view class="item-mesage">
+						<view class="item-name">{{item.name}}</view>
+						<view class="item-num"><text>X</text>{{item.num}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="container-footer">
+			<view class="login-btn" @click.stop="goLogin(1)">账号登录查看</view>
+			<view class="login-btn" @click.stop="goLogin(2)">使用分享码查看</view>
+			<view class="pay-statustext">
+				<view class="pay-statustext-inner">
+					<view class="pay-icon">
+						<text class="iconfont icon-gantanhao-yuankuang"></text>
+					</view>
+					<view class="pay-text">
+						<text>使用账号登录支持确认订单和直接付款,使用分享码只支持查看订单,不能操作</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	import authorize from '@/common/config/authorize.js' 
+	import { orderShareCode } from "@/api/order.js" 
+	export default{
+		data() {
+			return{
+				imagePath:'https://img.caimei365.com/group1/M00/03/83/Cmis214FbbCAQhKoAAKWfqqSIds292.png',
+				shareCode:'',  		//获取用户登录的邀请码
+				isUserInfo:false,	//控制显示授权弹窗
+				nickName:'',		//存储用户名
+				userInfo:'',		//存储微信用户授权信息
+				orderID:0,			//订单ID
+				userID:0,			//分享人的用户ID
+				isShareStatus:false,
+				serviceProviderId:'',
+				productList:[]
+			}
+		},
+		onLoad(e) {
+			console.log(e)
+			this.orderID = e.orderID
+			this.userID = e.userID
+			if(e.serviceProviderId){
+				this.serviceProviderId = e.serviceProviderId
+			}
+		},
+		methods:{
+			initQueryUser(){
+				authorize.getCode('weixin').then(wechatcode =>{
+					let params ={
+							code:wechatcode,
+							orderID:this.orderID,
+							userID:this.userID,
+							shareCode:this.shareCode,
+							serviceProviderId:this.serviceProviderId
+						}
+					orderShareCode(params).then(response =>{
+						console.log(response.code)
+						if(response.code === 2){
+							this.$api.navigateTo(`/seller/pages/order/order-details?type=share&orderID=${this.orderID}`)
+						}else if(response.code === 0) {
+							console.log(response.data)
+							if(response.data == true){//同为会所运营人员查看订单详情
+								this.$api.navigateTo(`/pages/user/order/order-details?type=share&orderID=${this.orderID}`)
+							}else{//游客第二次查看订单详情
+								this.$api.redirectTo(`/pages/user/order/order-sharedetails?orderID=${this.orderID}`)
+							}
+						}else if(response.code === -2){
+							this.$util.modal('提示',response.msg,'确定','',false,() =>{})
+						}else{
+							this.getOrderCommodityData()
+						}
+					})
+				})
+			},
+			getOrderCommodityData(){
+				this.OrderService.OrderCommodityData({orderId:this.orderID}).then(response =>{
+					this.productList = response.data
+					this.isShareStatus = true
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			goLogin(index){
+				switch(index){
+					case 1:
+						this.$store.commit('setLoginType',7)
+						this.$store.commit('setLoginOrderId',this.orderID)
+						this.$api.navigateTo('/pages/login/login')
+						break;
+					case 2:
+						this.$api.navigateTo(`/pages/user/order/orderShareLogin?orderID=${this.orderID}&userID=${this.userID}`)
+						break;
+				}
+			}
+		},
+		onShow() {
+			this.initQueryUser()
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login{
+		width: 100%;
+		height:100%;
+		background: #F7F7F7;
+		.model-warp.none{
+			display: none;			
+		}
+		.model-warp.show{
+			display: block;
+		}
+		.container-main{
+			width: 100%;
+			height: auto;
+			padding-top:80rpx ;
+			padding-bottom: 352rpx;
+			.main-title{
+				width: 100%;
+				height: 80rpx;
+				padding: 0 20rpx;
+				background-color: #F7F7F7;
+				line-height: 80rpx;
+				text-align: left;
+				font-size: $font-size-30;
+				color: #333;
+				box-sizing: border-box;
+				position: fixed;
+				top: 0;
+				left: 0;
+			}
+			.main-list{
+				box-sizing: border-box;
+				width: 100%;
+				height: auto;
+				background-color: #FFFFFF;
+				.main-list-item{
+					box-sizing: border-box;
+					width: 100%;
+					height: 200rpx;
+					padding: 20rpx;
+					border-bottom: 1px solid #F7F7F7;
+					.item-image{
+						width: 160rpx;
+						height: 160rpx;
+						float: left;
+						image{
+							width: 160rpx;
+							height: 160rpx;
+							display: block;
+						}
+					}
+					.item-mesage{
+						width: 530rpx;
+						height: 160rpx;
+						float: left;
+						margin-left: 20rpx;
+						.item-name{
+							width: 100%;
+							height:84rpx;
+							line-height: 42rpx;
+							font-size: $font-size-28;
+							color: #333333;
+							text-align: justify;
+							text-overflow:ellipsis;
+							display: -webkit-box;
+							word-break: break-all;
+							-webkit-box-orient: vertical;
+							-webkit-line-clamp: 2;
+							overflow: hidden;
+						}
+						.item-num{
+							width: 100%;
+							height:46rpx;
+							line-height: 46rpx;
+							margin-top: 30rpx;
+							font-size: $font-size-28;
+							color: #333333;
+							text-align: left;
+							text{
+								font-size: $font-size-20;
+							}
+						}
+					}
+				}
+			}
+		}
+		.login-btn{
+			width: 702rpx;
+			height: 88rpx;
+			font-size: $font-size-28;
+			line-height: 88rpx;
+			color: #FFFFFF;
+			margin: 0 auto;
+			margin-bottom: 24rpx;
+			text-align: center;
+			background: $btn-confirm;
+			border-radius: 14rpx;
+		}
+		.container-footer{
+			box-sizing: border-box;
+			width: 100%;
+			height: 352rpx;
+			padding: 0 24rpx;
+			padding-top: 24rpx;
+			padding-bottom: 24rpx;
+			background-color: #FFFFFF;
+			position: fixed;
+			bottom: 0;
+			left: 0;
+		}
+		.pay-statustext{
+			width: 100%;
+			height: auto;
+			float: left;
+			.pay-statustext-inner{
+				width: 100%;
+				margin: 0 auto;
+				.pay-icon{
+					width: 62rpx;
+					height: 100%;
+					float: left;
+					text-align: center;
+					.iconfont{
+						color: $color-system;
+						font-size:$font-size-36;
+						line-height: 20rpx;
+					}
+				}
+				.pay-text{
+					width: 635rpx;
+					height: 100%;
+					float: left;
+					line-height: 40rpx;
+					font-size: $font-size-26;
+					color: $color-system;
+					text-align: justify;
+				}
+			}
+		}
+	}
+</style>

+ 2 - 34
pages/user/order/orderShareLogin.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="container login" v-if="isShareStatus">
+	<view class="container login">
 		<view class="login-main">
 			<image class="logo" :src="imagePath" mode=""></image>
 		</view>
@@ -28,46 +28,14 @@
 				orderID:0,			//订单ID
 				userID:0			,//分享人的用户ID
 				isShareStatus:false,
-				serviceProviderId:''
 			}
 		},
 		onLoad(e) {
 			console.log(e)
 			this.orderID = e.orderID
 			this.userID = e.userID
-			if(e.serviceProviderId){
-				this.serviceProviderId = e.serviceProviderId
-			}
 		},
 		methods:{
-			initQueryUser(){
-				authorize.getCode('weixin').then(wechatcode =>{
-					let params ={
-							code:wechatcode,
-							orderID:this.orderID,
-							userID:this.userID,
-							shareCode:this.shareCode,
-							serviceProviderId:this.serviceProviderId
-						}
-					orderShareCode(params).then(response =>{
-						console.log(response.code)
-						if(response.code === 2){
-							this.$api.navigateTo(`/seller/pages/order/order-details?type=share&orderID=${this.orderID}`)
-						}else if(response.code === 0) {
-							console.log(response.data)
-							if(response.data == true){//同为会所运营人员查看订单详情
-								this.$api.navigateTo(`/pages/user/order/order-details?type=share&orderID=${this.orderID}`)
-							}else{//游客第二次查看订单详情
-								this.$api.redirectTo(`/pages/user/order/order-sharedetails?orderID=${this.orderID}`)
-							}
-						}else if(response.code === -2){
-							this.$util.modal('提示',response.msg,'确定','',false,() =>{})
-						}else{
-							this.isShareStatus = true
-						}
-					})
-				})
-			},
 			goLogin() {
 				if(this.shareCode == ''){
 					this.$util.msg('请联系分享人获取分享码',2000);
@@ -95,7 +63,7 @@
 			},
 		},
 		onShow() {
-			this.initQueryUser()
+			
 		}
 	}
 </script>

+ 4 - 4
seller/pages/cart/immediately.vue

@@ -17,10 +17,10 @@
 			<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.image" mode=""></image>
+						<image :src="handleData.p_image" mode=""></image>
 					</view>
 					<view class="layer-nunbox">
-						<view class="layer-nunbox-m" v-if="handleData.productcode!=''&& handleData.productcode!=null">商品编码:{{handleData.productcode}}</view>
+						<view class="layer-nunbox-m" v-if="handleData.p_code!=''&& handleData.p_code!=null">商品编码:{{handleData.p_code}}</view>
 						<view class="layer-nunbox-t">
 							<view class="layer-nunbox-text">数量:</view>
 							<view class="number-box">
@@ -160,7 +160,7 @@
 					this.buyRetailPriceStep = data.step
 					this.specClass = 'show';
 					if(this.handleData.ladderPriceFlag == '1'){
-						querySearchProductLadderPrice({productId:this.handleData.pid}).then(response=>{
+						querySearchProductLadderPrice({productId:this.handleData.p_id}).then(response=>{
 							this.handleDataLadderPriceList = response.data
 							this.handleDataLadderPriceList.forEach((item,index)=>{
 								if(this.number>=item.buyNum){
@@ -278,7 +278,7 @@
 			},
 			getAddProductCart(){//增加购物车成功和toast弹窗提示成功
 				let params ={
-						productId:this.handleData.pid,
+						productId:this.handleData.p_id,
 						clubId:this.clubID,
 						serviceProviderId:this.serviceProviderId,
 						num:this.number

+ 504 - 0
seller/pages/cart/second.vue

@@ -0,0 +1,504 @@
+<template>
+	<view class="container all-type-list-wrapper">
+		<second-hand ref="productList"
+						  :search-status="true"
+						  @operationConfim="hanldOperationConfim"
+						  >
+		</second-hand>
+		<!--底部选择模态层弹窗组件 -->
+		<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 ?'-370rpx' : '-360rpx'}">
+				<view class="content">
+					<view class="layer-smimg">
+						<image :src="handleData.mainImage" mode=""></image>
+					</view>
+					<view class="layer-nunbox">
+						<view class="layer-nunbox-t">
+							<view class="layer-nunbox-text">数量:</view>
+							<view class="number-box">
+								<view  class="iconfont icon-jianhao" :class="[isQuantity?'disabled':'']" @click="changeCountSub()"></view>
+								<input class="btn-input" type="number" v-model="number" maxlength='6'  @blur="changeNumber($event)">
+								<view  class="iconfont icon-jiahao"  :class="[isStock?'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 add" @click="toConfirmation">立即购买</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import secondHand from '@/components/cm-module/listTemplate/secondHand'
+	import { getSellerProductNum ,shoppingCartAddCart,getCartAddCart} from "@/api/seller.js"
+	import { querySearchProductLadderPrice } from "@/api/product.js"
+	export default{
+		components:{
+			secondHand
+		},
+		data(){
+			return{
+				clubID:'',	//机构ID
+				serviceProviderId:'',//协销ID
+				serverUrl: '',
+				emptyText: '',
+				lastPageType: '',
+				lastPageVal: '',
+				isIphoneX:this.$store.state.isIphoneX,
+				specClass: '',//规格弹窗css类,控制开关动画
+				specClasszuhe:'',//组合加购物车弹窗
+				specClassjieti:'',//阶梯展示弹窗
+				ladderPriceList:{},
+				handleData:{},
+				isQuantity:false,
+				isStock:false,
+				number:1,
+				buyRetailPrice:0,
+				productKind:0,
+				productTotalNum:0,
+				productTotalAmount:0,
+				buyNumRangeShow:'',//起订量范围
+				buyPrice:'',//起订量范围价格
+				buyRetailPriceStep:1,
+				secondProductType:'',
+			}
+		},
+		onLoad() {
+
+		},
+		methods:{
+			getClubProductNum(){
+				getSellerProductNum({clubId:this.clubID,serviceProviderId:this.serviceProviderId}).then(response =>{
+					this.$refs.productList.cartQuantity = response.data
+				})
+			},
+			hanldOperationConfim(data){//显示选择数量确认弹窗
+				console.log(this.handleData)
+				this.handleData = data
+					this.number = 1
+					this.buyRetailPrice = Number(data.price1);
+					this.secondProductType = data.secondProductType
+					this.specClass = 'show';
+			},
+			hideSpec() {//关闭选择数量确认弹窗
+				this.specClass = 'hide';
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			changeCountAdd(){//popup弹窗数量增加按钮
+				if(this.handleData.secondHandType == 2||this.handleData.secondHandType == 3){
+					// if(this.number >= this.handleData.stock){
+					// 	this.number= this.handleData.stock
+					// 	this.isStock =true
+					// 	this.$util.msg(`购买数量最高为${this.handleData.stock}`,2000);
+					// 	return
+					// }else{
+						this.number++
+						this.isQuantity =false
+					// }
+					this.buyRetailPrice = this.number*this.handleData.price1
+				}else{
+					this.isStock =true
+					this.$util.msg(`该商品购买数量只能为1`,2000);
+				}
+			},
+			changeCountSub(){//popup弹窗数量减按钮
+				if(this.handleData.secondHandType == 2||this.handleData.secondHandType == 3){
+					// if(this.number <= 1){
+					// 	this.number= 1
+					// 	this.isQuantity =true
+					// 	this.$util.msg(`购买数量最低为1`,2000);
+					// 	return
+					// }else{
+						this.number--
+						this.isQuantity =false
+					// }
+					this.buyRetailPrice = this.number*this.handleData.price1
+				}else{
+					this.isQuantity =true
+					this.$util.msg(`该商品购买数量只能为1`,2000);
+				}
+			 },
+			// 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
+			// 	}
+			// },
+			changeNumber(e){
+				let _value = e.detail.value;
+				if(!this.$api.isNumber(_value)){
+					this.number = 1
+				}else if(_value <= 1){
+					this.$util.msg(`该商品最小起订量为1`,2000);
+					this.number = 1
+				}else{
+					this.number = e.detail.value
+				}
+				this.buyRetailPrice = this.number*this.handleData.price1
+			},
+			clearProduct(){//成功加入购物车后清空所选值
+				this.handleData.productKind= 0;
+				this.handleData.productTotalNum = 0;
+				this.handleData.productTotalAmount = 0;
+				this.handleData.combinationProductList.forEach(item =>{
+					item.initProductNum = 0;
+				})
+			},
+			toConfirmation(){//跳转确认订单页面
+				this.specClass = 'hide';
+				let cartPramsData={
+						clubId:this.clubID,
+						allPrice:this.buyRetailPrice,
+						allCount:this.number,
+						productID:this.handleData.productID,
+						productCount:this.number
+				}
+				this.$api.navigateTo(`/seller/pages/order/create-order?type=prodcut&data=${JSON.stringify({data:cartPramsData})}`)
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			hanldToCartPage(){
+				this.$api.navigateTo('/seller/pages/cart/cart')
+			},
+			discard(){
+				//丢弃
+			}
+		},
+		onShow() {
+			this.$api.getComStorage('orderUserInfo').then((resolve) =>{
+				this.clubID = resolve.clubID
+			})
+			this.$api.getStorage().then((resolve) =>{
+				this.serviceProviderId = resolve.serviceProviderID
+				this.getClubProductNum()
+			})
+		},
+	}
+</script>
+
+<style lang="scss">
+	// 阶梯价格弹窗
+	.jieti_box{
+		width: 596rpx;
+		// height: 496rpx;
+		top: 10%;
+		right: 50%;
+		transform: translate(50%,50%);
+		position: absolute;
+		background:#FFFFFF;
+		color: #000;
+		font-size: 28rpx;
+		border-radius: 10rpx;
+		text-align: center;
+		line-height: 84rpx;
+		padding: 20rpx;
+		z-index: 99999;
+	}
+	.jieti_box_one{
+		// width: 548rpx;
+		overflow: hidden;
+		border: 2rpx solid #F5F5F5;
+		border-bottom: 0;
+		margin: auto;
+	}
+	.jieti_left{
+		width: 298rpx;
+		float: left;
+		}
+	.jieti_left view{
+		height: 84rpx;
+		border-bottom:2rpx solid #F5F5F5 ;
+		border-right:2rpx solid #F5F5F5  ;
+	}
+	.ladder-a{
+		letter-spacing: 4rpx;
+	}
+	.jieti_right{
+			width: 294rpx;
+			float: right;
+		}
+	.jieti_right view{
+			height: 84rpx;
+			border-bottom:2rpx solid #F5F5F5;
+		}
+	.addbtn{
+			height: 84rpx;
+			background: linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);
+			text-align: center;
+			font-size: 28rpx;
+			color: #fff;
+			line-height: 84rpx;
+			border-radius: 10rpx;
+			margin: 20rpx auto
+		}
+	.zuhe-content{
+		display: inline-block;
+	}
+	.number-left{
+		float: left;
+	}
+	.number-right{
+		margin-left: 30rpx;
+		float: left;
+	}
+	.number-left text{
+		margin-left: 30rpx;
+	}
+	.number-right-text{
+		color: #FF2A2A;
+	}
+	page {
+		background: $sub-bg-color;
+		.all-type-list-wrapper {
+			display: flex;
+			flex-direction: column;
+		}
+	}
+	/* 加入购物模态层*/
+	@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 showAmnation {
+		0% {
+			top: -12rpx;
+			opacity: 0;
+		}
+		50% {
+			top: -60rpx;
+			opacity: 1;
+		}
+		100% {
+			top: -100rpx;
+			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{
+			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: -360rpx;
+			width: 702rpx;
+			padding: 24rpx 24rpx 36rpx 24rpx;
+			// height: 236rpx;
+			border-radius: 20rpx 20rpx 0 0;
+			background-color: #fff;
+			display: flex;
+			flex-wrap: wrap;
+			align-content: space-between;
+			.content {
+				width: 100%;
+				margin-top: 20rpx;
+			}
+			.btn {
+				width: 100%;
+				// height: 88rpx;
+				display: flex;
+				.button {
+					width: 702rpx;
+					height: 88rpx;
+					color: #fff;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					font-size: $font-size-28;
+					border-radius: 14rpx;
+					background: $btn-confirm;
+					margin-top: 20rpx;
+				}
+			}
+		}
+		.layer-nunbox-m{
+			font-size: 28rpx;
+		}
+		&.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;
+			}
+
+			.layer {
+				animation: hideLayer 0.2s linear both;
+			}
+		}
+		&.none {
+			display: none;
+		}
+		&.service {
+			.row {
+				margin: 30upx 0;
+				.title {
+					font-size: 30upx;
+					margin: 10upx 0;
+				}
+				.description {
+					font-size: 28upx;
+					color: #999;
+				}
+			}
+		}
+		.layer-smimg{
+			width: 158rpx;
+			height: 158rpx;
+			float: left;
+			border-radius: 10rpx;
+			margin-right: 24rpx;
+			image{
+				width: 158rpx;
+				height: 158rpx;
+				border-radius: 10rpx;
+			}
+		}
+		.layer-nunbox{
+			justify-content: space-between;
+			align-items: center;
+			width: 510rpx;
+			height: 88rpx;
+			padding: 10rpx 0 0 0;
+			float: left;
+			.layer-nunbox-t{
+				width: 100%;
+				height:44rpx;
+				position:relative;
+				display: flex;
+				margin-top: 10rpx;
+				.layer-nunbox-text{
+					line-height: 44rpx;
+					font-size: $font-size-28;
+				}
+				.number-box{
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					.iconfont{
+						font-size: $font-size-32;
+						padding:0 20rpx;
+						font-size: $text-color;
+					}
+					.btn-input{
+						width: 100rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #F8F8F8;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-28;
+					}
+				}
+				.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;
+				}
+				.p.sm{
+					font-size: $font-size-24;
+				}
+			}
+		}
+	}
+
+	.zuhe .layer{
+		bottom: -270rpx;
+		height: 200rpx;
+	}
+</style>

+ 1 - 1
seller/pages/club/allClub-list.vue

@@ -242,7 +242,7 @@
 			width: 582rpx;
 			height: 64rpx;
 			background: #F7F7F7;
-			border-radius: 14rpx;
+			border-radius: 32rpx;
 			float: left;
 			position: relative;
 			.input{

+ 46 - 15
seller/pages/club/club-list.vue

@@ -30,17 +30,18 @@
 						</view>
 						<view class="list-item">
 							<view class="list-title">
-								<text>{{item.name}}</text>
+								<text class="list-name">{{item.name}}</text>
+								<text class="list-hist" @click.stop="_goHistory(item)"><text class="iconfont icon-dingdanxuanzhong"></text>订单列表</text>
 							</view>
 							<view class="list-opea">
 								<view class="btn org" @click.stop="_goImmediately(item)">
 									<text>立即下单</text>
 								</view>
-								<view class="btn gre" @click.stop="_goBuyagain(item)">
-									<text>再次购买</text>
+								<view class="btn gre" @click.stop="_goSecond(item)">
+									<text>二手下单</text>
 								</view>
-								<view class="btn yel" @click.stop="_goHistory(item)">
-									<text>订单列表</text>
+								<view class="btn yel" @click.stop="_goBuyagain(item)">
+									<text>再次购买</text>
 								</view>
 							</view>
 						</view>
@@ -174,6 +175,10 @@
 				this.$api.setStorage('orderUserInfo',item)
 				this.$api.navigateTo('/seller/pages/cart/buyagain')
 			},
+			_goSecond(item ){
+				this.$api.setStorage('orderUserInfo',item)
+				this.$api.navigateTo('/seller/pages/cart/second')
+			},
 			_goHistory(item){
 				this.$api.setStorage('orderUserInfo',item)
 				this.$api.navigateTo(`/seller/pages/order/order-historylist?clubID=${item.clubID}&listType=0`)
@@ -222,7 +227,7 @@
 			width: 582rpx;
 			height: 64rpx;
 			background: #F7F7F7;
-			border-radius: 14rpx;
+			border-radius: 32rpx;
 			float: left;
 			position: relative;
 			.icon-iconfonticonfontsousuo1{
@@ -299,12 +304,38 @@
 				flex-direction:column ;
 				.list-title{
 					flex: 2;
-					line-height: 40rpx;
+					line-height: 80rpx;
 					width: 100%;
 					font-size: $font-size-28;
 					color: $text-color;
-					text-align: left;
 					padding-left: 11rpx;
+					flex-direction: row;
+					justify-content: flex-start;
+					.list-name{
+						width: 400rpx;
+						display: block;
+						float: left;
+						text-align: left;
+						-o-text-overflow: ellipsis;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					.list-hist{
+						display: block;
+						float: right;
+						color: #E19B30;
+						font-size: $font-size-24;
+						text-align: right;
+						padding-right: 30rpx;
+						.icon-dingdanxuanzhong{
+							font-size: $font-size-34;
+							color: #E19B30;
+						}
+					}
 				}
 				.list-opea{
 					width: 100%;
@@ -321,18 +352,18 @@
 						font-size: $font-size-24;
 						color: $text-color;
 						text-align: center;
-						margin: 0 12rpx;
+						margin: 0 17rpx;
 						&.org{
-							background:$btn-confirm;
-							color: #FFFFFF;
+							background:rgba(22,225,77,.1);
+							color: #16E14D;
 						}
 						&.gre{
-							background:$btn-confirm;
-							color: #FFFFFF;
+							background:rgba(22,123,225,.1);
+							color: #167BE1;
 						}
 						&.yel{
-							background:#FFFFFF ;
-							border: 1px solid #999999;
+							background:rgba(225,86,22,.1);
+							color: #E15616;
 						}
 					}
 				}

+ 1 - 1
seller/pages/club/list.vue

@@ -302,7 +302,7 @@
 				width: 582rpx;
 				height: 64rpx;
 				background: #F7F7F7;
-				border-radius: 14rpx;
+				border-radius: 32rpx;
 				float: left;
 				position: relative;
 				.input{

+ 0 - 4
seller/pages/login/apply.vue

@@ -495,10 +495,6 @@ import { mapMutations } from 'vuex';
 					this.$util.msg('请填写机构详细地址',2000);
 					return
 				}
-				if( this.socialCreditCode == ''){
-					this.$util.msg('请填写社会统一社会信用代码',2000);
-					return
-				}
 				if( this.uploadBusinessImage == ''){
 					this.$util.msg('请上传您的营业执照',2000);
 					return

+ 0 - 4
seller/pages/login/register.vue

@@ -359,10 +359,6 @@
 						this.$util.msg('请填写机构详细地址',2000);
 						return
 					}
-					if( this.socialCreditCode == ''){
-						this.$util.msg('请填写社会统一社会信用代码',2000);
-						return
-					}
 					if( this.uploadBusinessImage == ''){
 						this.$util.msg('请上传您的营业执照',2000);
 						return

+ 21 - 2
seller/pages/order/create-order.vue

@@ -122,13 +122,32 @@
 			this.clubId = data.data.clubId
 			this.productCount = data.data.productCount
 			this.productIds = data.data.productID
-			this.getInitCrearOrder();
+			if(option.type =='prodcut'){
+				this.getInitProdcutCrearOrder();
+			}else{
+				this.getInitCrearOrder();
+			}
+			
 			this.$api.getComStorage('orderUserInfo').then((resolve) =>{
 				this.clubUserId = resolve.userID
 			})
 		},
 		methods: {
-			getInitCrearOrder(option){//获取订单商品信息
+			getInitProdcutCrearOrder(option){//二手下单初始化查询
+				this.$api.getStorage().then((resolve) =>{
+					this.serviceProviderId = resolve.serviceProviderID
+					let params ={clubId:this.clubId,serviceProviderId:this.serviceProviderId,productCount:this.productCount,productId:this.productIds}
+					this.SellerService.GetSettlementBySencondProduct(params).then(response =>{
+						let resData = response.data
+						this.isRequest = true
+						this.goodsData = resData.shopList
+						this.userMoney = resData.userMoney
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				})
+			},
+			getInitCrearOrder(option){//协销购物车获取订单商品信息
 				this.$api.getStorage().then((resolve) =>{
 					this.serviceProviderId = resolve.serviceProviderID
 					let params ={clubId:this.clubId,serviceProviderId:this.serviceProviderId,count:this.productCount,productIds:this.productIds}

+ 1 - 1
seller/pages/order/myOrder.vue

@@ -322,7 +322,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/8C/Cmis215XHXSAWWkhAAXDP4-6m_c397.png'
 				}
 			},

+ 3 - 3
seller/pages/order/order-details.vue

@@ -42,7 +42,7 @@
 	import paymentRecord from '@/components/cm-module/orderDetails/paymentRecord'		 //支付记录
 	import refundRecord from '@/components/cm-module/orderDetails/refundRecord'		 //退款记录
 	import orderButton from '@/components/cm-module/orderDetails/sellerDetaileButton'	 //底部按钮
-	import shareAlert from '@/components/cm-module/modelAlert/shareAlert.vue'			 //分享弹窗
+	import shareAlert from '@/components/cm-module/modelAlert/sellerShareAlert.vue'			 //分享弹窗
 	import { queryOrderDetails,cancelOrder,deleteOrder,affirmOrder } from "@/api/order.js" 
 	export default {
 		components:{
@@ -186,8 +186,8 @@
 					// 来自页面内转发按钮
 			    }
 				return {
-					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.orderID}&userID=${this.userID}&serviceProviderId=${this.serviceProviderId}`,
+					title: '您有新的订单,请点击查看~',
+					path: `/pages/user/order/order-sharelogin?orderID=${this.orderID}&userID=${this.userID}&serviceProviderId=${this.serviceProviderId}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},

+ 24 - 16
seller/pages/order/order-historylist.vue

@@ -28,6 +28,7 @@
 										<text class="bage-buss tui-skeleton-fillet" v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4">协销</text>
 										<text class="bage-auto tui-skeleton-fillet" v-if="order.orderSubmitType == 0 || order.orderSubmitType == 1 || order.orderSubmitType == 2">自主</text>
 										<text class="bage-text tui-skeleton-fillet">订单号:{{order.orderNo}}({{order.orderID}})</text>
+										<image class="bage-icon" src="../../../static/temp/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
 									</view>
 									<view class="order-title-b">
 										<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
@@ -44,7 +45,7 @@
 											<view class="pros-img tui-skeleton-fillet"><image :src="pros.productImage" alt="" /></view>
 											<view class="pros-product">
 												<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
-												<view class="productspec tui-skeleton-fillet">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+												<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory != 2">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
 												<view class="productprice">
 													<view class="price tui-skeleton-fillet">
 														<text>¥{{pros.price.toFixed(2)}}</text>
@@ -355,7 +356,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},
@@ -525,17 +526,24 @@
 		}
 		.order-title-t{
 			width: 100%;
-			height: 44rpx;
+			height: 68rpx;
 			float: left;
-			padding-top: 8rpx;
-			line-height: 44rpx;
-			.bage-buss{
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
 				display: block;
-				float: left;
-				width: 64rpx;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
+			.bage-buss{
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
@@ -543,12 +551,11 @@
 				margin-top: 8rpx;
 			}
 			.bage-auto{
-				display: block;
-				float: left;
-				width: 64rpx;
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
@@ -556,8 +563,9 @@
 				margin-top: 8rpx;
 			}
 			.bage-text{
+				display: inline-block;
 				font-size: $font-size-28;
-				line-height: 44rpx;
+				line-height: 68rpx;
 				text-align: left;
 				color: $color-system;
 				margin-left: 15rpx;

+ 26 - 20
seller/pages/order/order-list.vue

@@ -36,6 +36,7 @@
 										<text class="bage-buss tui-skeleton-fillet" v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4">协销</text>
 										<text class="bage-auto tui-skeleton-fillet" v-if="order.orderSubmitType == 0 || order.orderSubmitType == 1 || order.orderSubmitType == 2">自主</text>
 										<text class="bage-text tui-skeleton-fillet">订单号:{{order.orderNo}}({{order.orderID}})</text>
+										<image class="bage-icon" src="../../../static/temp/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
 									</view>
 									<view class="order-title-b">
 										<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
@@ -52,7 +53,7 @@
 											<view class="pros-img tui-skeleton-fillet"><image :src="pros.productImage" alt="" /></view>
 											<view class="pros-product">
 												<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
-												<view class="productspec tui-skeleton-fillet">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+												<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory!=2" >规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
 												<view class="productprice">
 													<view class="price tui-skeleton-fillet">
 														<text>¥{{pros.price.toFixed(2)}}</text>
@@ -109,7 +110,7 @@
 	import orderButton from '@/components/cm-module/orderDetails/sellerOrderButton' //操作按钮
 	import modalLayer from "@/components/modal-layer"
 	import empty from "@/components/empty";
-	import shareAlert from '@/components/cm-module/modelAlert/shareAlert'			 //分享弹窗
+	import shareAlert from '@/components/cm-module/modelAlert/sellerShareAlert'			 //分享弹窗
 	import { cancelOrder,deleteOrder, affirmOrder } from "@/api/order.js"
 	import { getSellerOrderList } from "@/api/seller.js" 
 	
@@ -383,8 +384,8 @@
 					// console.log(res.target)
 			    }
 				return {
-					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
+					title: '您有新的订单,请点击查看~',
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},
@@ -583,42 +584,47 @@
 		}
 		.order-title-t{
 			width: 100%;
-			height: 44rpx;
+			height: 68rpx;
 			float: left;
-			padding-top: 8rpx;
-			line-height: 44rpx;
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
+				display: block;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
 			.bage-buss{
 				display: inline-block;
-				float: left;
-				width: 64rpx;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-auto{
-				display: block;
-				float: left;
-				width: 64rpx;
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-text{
+				display: inline-block;
 				font-size: $font-size-28;
-				line-height: 44rpx;
+				line-height: 68rpx;
 				text-align: left;
 				color: $color-system;
-				margin-left: 15rpx;
+				margin-left: 10rpx;
 			}
 		}
 		.order-title-b{

+ 25 - 19
seller/pages/search/search-order.vue

@@ -35,6 +35,7 @@
 									<text class="bage-buss tui-skeleton-fillet" v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4">协销</text>
 									<text class="bage-auto tui-skeleton-fillet" v-if="order.orderSubmitType == 0 || order.orderSubmitType == 1 || order.orderSubmitType == 2">自主</text>
 									<text class="bage-text tui-skeleton-fillet">订单号:{{order.orderNo}}({{order.orderID}})</text>
+									<image class="bage-icon" src="../../../static/temp/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
 								</view>
 								<view class="order-title-b">
 									<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
@@ -51,7 +52,7 @@
 										<view class="pros-img tui-skeleton-fillet"><image :src="pros.productImage" alt="" /></view>
 										<view class="pros-product">
 											<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
-											<view class="productspec tui-skeleton-fillet">规格:{{pros.productUnit}}</view>
+											<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory != 2">规格:{{pros.productUnit}}</view>
 											<view class="productprice">
 												<view class="price tui-skeleton-fillet">
 													<text>¥{{pros.price.toFixed(2)}}</text>
@@ -352,7 +353,7 @@
 			    }
 				return {
 					title: '您有新的分享订单,快来查看吧~',
-					path: `/pages/user/order/orderShareLogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
+					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.btnClubUserID}&serviceProviderId=${this.serviceProviderId}`,
 					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
 				}
 			},
@@ -635,42 +636,47 @@
 		}
 		.order-title-t{
 			width: 100%;
-			height: 44rpx;
+			height: 68rpx;
 			float: left;
-			padding-top: 8rpx;
-			line-height: 44rpx;
-			.bage-buss{
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
 				display: block;
-				float: left;
-				width: 64rpx;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
+			.bage-buss{
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(132deg,rgba(255,177,0,1) 0%,rgba(255,127,0,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,39,180,1) 0%,rgba(193,77,245,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top: 8rpx;
 			}
 			.bage-auto{
-				display: block;
-				float: left;
-				width: 64rpx;
+				display: inline-block;
+				width: 72rpx;
 				height: 30rpx;
-				background:linear-gradient(135deg,rgba(0,216,255,1) 0%,rgba(22,139,225,1) 100%);
-				border-radius: 6rpx;
+				background:radial-gradient(circle,rgba(255,180,39,1) 0%,rgba(245,142,77,1) 100%);
+				border-radius: 15rpx;
 				line-height: 30rpx;
 				font-size: $font-size-22;
 				text-align: center;
 				color: #FFFFFF;
-				margin-top:8rpx;
 			}
 			.bage-text{
+				display: inline-block;
 				font-size: $font-size-28;
-				line-height: 44rpx;
+				line-height: 68rpx;
 				text-align: left;
 				color: $color-system;
-				margin-left: 15rpx;
+				margin-left: 10rpx;
 			}
 		}
 		.order-title-b{

+ 170 - 56
seller/pages/search/search.vue

@@ -3,57 +3,78 @@
 		<view class="search-main">
 			<view class="search-input">
 				<text class="iconfont icon-iconfonticonfontsousuo1"></text>
-				<input maxlength="20" focus type="text" value="" confirm-type="search" @focus="onFocus" @input="onShowClose" @confirm="subMitSearch()" placeholder="请输入商品关键词" v-model.trim="searchInputVal"/>
-				<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
+				<input maxlength="20" :focus="isFocus" type="text" value="" confirm-type="search" @focus="onFocus" @input="onShowClose" @confirm="subMitSearch()" placeholder="请输入商品关键词" v-model.trim="searchInputVal"/>
+				<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" 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>
 				</view>
 			</view>
 		</view>
-		<view v-else class="commodity-list-wrapper"  :style="{'overflow':'auto','height':(commodityList.length>4? windowHeight + 'px' : 'auto')}">
-			<scroll-view :style="{'height':(commodityList.length>4? scrollHeight+'px' : 'auto')}" @scrolltolower="scrolltolower" scroll-y v-if="!showEmpty">
-				<view v-for="(item,index) in commodityList" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.productID)">
-					<image mode='widthFix' :src="item.mainImage"  class="list-img" alt="list-img"></image>
+		<!-- <go-search :theme="themeClass" @subMitSearch="subMitSearch"></go-search> -->
+		<view v-else class="commodity-list-wrapper"  :style="{'overflow':'auto','height':(listData.length>4? windowHeight + 'px' : 'auto')}">
+			<scroll-view :style="{'height':(listData.length>4? scrollHeight+'px' : 'auto')}" @scrolltolower="scrolltolower" scroll-y v-if="!showEmpty">
+				<view v-for="(item,index) in listData" :key="index" :id="item.id" class="all-type-list-content commodity-list" @click.stop="navToDetailPage(item.p_id)">
+					<image mode='widthFix' :src="item.p_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-specs">规格:{{item.unit}}</text>
-						<text class="list-details-miniQuantity" v-if="fromRegularPurchasePage">起订量:{{item.minBuyNumber}}</text>
+						<view class="list-details-title">{{isInterceptHtmlFn(item.p_name)}}</view>
+						<text class="list-details-specs">规格:{{item.p_unit}}</text>
+						<view class="list-details-specs" v-if="item.p_code!=''&&item.p_code!=null">
+							<view>商品编码:{{item.p_code}}</view>
+						</view>
 						<view class="list-details-price">
-							<view v-if="!hasLogin" class="list-login-now">
-								<text class="p-no">价格:</text>
-								<uni-stars :stars="parseInt(item.price1Grade)" :font-size='36' :width-info="180"></uni-stars>
-							</view>
-							<view class="list-price" v-else>
-								<view class="price-larger" v-if="item.price1TextFlag == '1'">
-									<text class="txt">未公开价格</text>
+							<view v-if="hasLogin"class="list-price">
+								<view v-if="userIdentity == 1">
+									<text v-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<text v-else>¥<text class="price-larger">{{item.price?item.price :'0.00'}}</text></text>
+								</view>	
+								<view v-if="userIdentity == 4">
+									<view class="price-larger" v-if="item.p_price_flag == '1'">
+										<text class="txt">未公开价格</text>
+									</view>
+									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<view v-else>
+										<view class="price-larger" v-if="item.p_price_flag == '2'">
+											<text class="txt">价格仅会员可见</text>
+											<text class="btn" @click.stop="this.$api.navigateTo(`/pages/login/apply?clubStatus=${clubStatus}`)">去升级</text>
+										</view>
+										<text v-else>¥<text class="price-larger">{{item.price ?item.price :'0.00'}}</text></text>
+									</view>
+								</view>
+								<view v-if="userIdentity == 2">
+									<view class="price-larger" v-if="item.p_price_flag == '1'">
+										<text class="txt">未公开价格</text>
+									</view>
+									<text v-else-if="priceLoading" class="price-larger small">正在获取价格...</text>
+									<text v-else>¥<text class="price-larger">{{item.price ? item.price :'0.00'}}</text></text>
 								</view>
-								<text v-else>¥<text class="price-larger">{{item.retailPrice.toFixed(2)}}</text></text>
+							</view>	
+							<view  v-else class="list-login-now">
+								<text class="p-no">价格:</text>
+								<uni-stars :stars="parseInt(item.p_price_grade)" :font-size='36' :width-info="180"></uni-stars>
 							</view>
 						</view>
 					</view>
 				</view>
-				<view v-if="showLoading && commodityList.length > 4">
+				<view v-if="showLoading && listData.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="https://img.caimei365.com/group1/M00/03/94/Cmis216Sk_SAMs28AAELHadZ9Xg226.png"></image>
+				<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/8D/Cmis215XHXWAHCoqAAELHadZ9Xg365.png"></image>
 				<text class="error-text">抱歉,没有相关商品!</text>
 			</view>
 		</view>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='isModallayer'></modal-layer>
-	
 	</view>
 </template>
 
@@ -63,7 +84,13 @@
 	import modalLayer from "@/components/modal-layer"
 	import uniStars from '@/components/uni-stars/uni-stars.vue'
 	import authorize from '@/common/config/authorize.js'
-	import { querySearchProduct , querySearchHistory,clearSearchHistory } from "@/api/product.js" 
+	import { 
+		queryNewSearchProduct , 
+		querySearchHistory,
+		clearSearchHistory,
+		searchHistoryAdd,
+		querySearchProductPrice
+	} from "@/api/product.js" 
 	
 	export default {
 		components: {
@@ -75,20 +102,25 @@
 			return {
 				userID:'',
 				themeClass: 'block',
-				searchInputVal:'',							//搜索关键词
-				isShowClose:false,							//是否显示清空输入框图标
-				isSearchHistory:false,						//是都显示搜索历史
-				serachRecordList:[],						//历史搜索记录
+				searchInputVal:'',	//搜索关键词
+				userIdentity:'',	
+				identity:2,
+				isShowClose:false,	//是否显示清空输入框图标
+				isSearchHistory:false,//是都显示搜索历史
+				serachRecordList:[],//历史搜索记录
 				isShowWrapper:false,
 				isModallayer:false,
+				isFocus:false,
+				priceLoading:true,
 				windowHeight: '',
 				showEmpty: false,
 				scrollHeight: '',
-				commodityList: [],
+				listData: [],
+				productIds:'',//查询价格的商品ID
 				showLoading: false,
 				loadingNow: true,
 				loadingText: '上拉加载更多',
-				pageSize: 10,
+				pageSize: 20,
 				pageNum: 1,
 				hasNextPage: false,
 				totalPage: 1,
@@ -96,6 +128,7 @@
 			}
 		},
 		onLoad() {
+			this.isFocus = true
 			this.initGetSerachRecord()			
 		},
 		computed: {
@@ -105,6 +138,12 @@
 			initGetSerachRecord(){
 				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
@@ -116,12 +155,14 @@
 				if (this.searchInputVal == '') {
 					this.$util.msg('请输入商品关键词',2000);
 				}else{
-					this.commodityList =[]
-					this.getListFromServer(false)
+					this.listData =[]
+					this.setSearchHistoryAdd()
+					this.getListFromServer()
+					this.isFocus = false
 				}
 			},
 			scrolltolower() {
-				if(this.hasNextPage && this.pullFlag) {
+				if(this.totalPage>this.listData.length && this.pullFlag) {
 					this.getListFromServer(true);
 				}
 			},
@@ -133,27 +174,34 @@
 				if(loadMore) {
 					this.pageNum += 1;
 				}
-				let params = {userId:this.userID,searchWord:this.searchInputVal,pageNum:this.pageNum,pageSize:this.pageSize}
-				querySearchProduct(params).then(response =>{
+				let params = {
+						identity:this.identity,
+						keyword:this.searchInputVal,
+						pageNum:this.pageNum,
+						pageSize:this.pageSize,
+						sortField:'',
+						sortType:'',
+					}
+				queryNewSearchProduct(params).then(response =>{
 					this.isShowWrapper = true
-					const resData = response.data;
-					const resList = resData.results;
+					const resData = JSON.parse(response.data);
+					const resList = resData.items;
+					// console.log(resData)
 					if(resList && resList.length > 0){
-						this.hasNextPage = resData.hasNextPage;
-						this.totalPage = resData.totalPage;
+						this.totalPage = resData.total;
 						this.showEmpty = false;
 						if(loadMore) {
-							this.commodityList = [...this.commodityList,...resList];
+							this.listData = [...this.listData,...resList];
+							this.setProductPrice()
 						} else {
-							this.commodityList = [...resList];
+							this.listData = [...resList];
+							this.setProductPrice()
 						}
 						// 防上拉暴滑
 						this.pullFlag = false;
-						setTimeout(()=>{
-							this.pullFlag = true;
-						},500)
+						setTimeout(()=>{ this.pullFlag = true; },500)
 						// 底部提示文案
-						if(this.hasNextPage) {
+						if(this.totalPage>this.listData.length) {
 							this.loadingText = '上拉加载更多';
 						} else {
 							this.showLoading = true;
@@ -164,11 +212,51 @@
 							this.showEmpty = true;
 						}
 					}
-				}).catch(response =>{
-					this.$util.msg(response.msg,2000);
+				}).catch(error =>{
+					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);
 				})
 			},
-			onShowClose () {//输入框失去焦点时触发
+			setProductPrice(){//获取价格
+				if (!this.hasLogin) {return false;}
+				let productIdArr = [];
+				this.listData.map(item=>{// 0公开价格 1不公开价格 2仅对会员机构公开
+					productIdArr.push(item.p_id)
+				})
+				this.productIds = productIdArr.join(",");
+				querySearchProductPrice({userId: this.userID,productIds:this.productIds}).then(response =>{
+					if (response.data) {
+						let priceList = response.data
+						this.listData.map(item=>{
+							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.p_id == priceList[i].productId ){
+									Object.assign(item,priceObj)
+								}
+							}
+						});
+					}
+					this.priceLoading = false;
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			onShowClose () {//输入框输入时触发
 				this.inputEmpty(this.searchInputVal)
 			},
 			onFocus () { //输入框获取焦点时触发
@@ -192,8 +280,8 @@
 					clearSearchHistory({userId:this.userID}).then(response =>{
 						this.$util.msg('删除成功',2000,true,'success')
 						this.serachRecordList=[];
-					}).catch(response =>{
-						this.$util.msg(response.msg,2000)
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
 					})
 				})
 			},
@@ -201,10 +289,16 @@
 				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}`);
@@ -253,6 +347,8 @@
 			background: #F0F0F0;
 			float: left;
 			.icon-iconfonticonfontsousuo1{
+				display: block;
+				width: 68rpx;
 				font-size: 36rpx;
 				color: #8A8A8A;
 				position: absolute;
@@ -260,13 +356,15 @@
 				z-index: 10;
 			}
 			.icon-shanchu1{
+				display: block;
+				width: 68rpx;
 				font-size: 36rpx;
-				color: #8A8A8A;
+				text-align: center;
+				color: #999;
 				position: absolute;
-				right: 24rpx;
+				right: 0;
 				top: 0;
-				padding: 0 10rpx;
-				z-index: 10;
+				z-index: 60;
 			}
 			input{
 				width: 448rpx;
@@ -473,7 +571,7 @@
 		}
 		.list-details-specs {
 			margin-top: 8rpx;
-			color: #999999;
+			color: #666666;
 		}
 		.list-details-miniQuantity {
 			margin-top: 7rpx;
@@ -481,7 +579,6 @@
 	}
 	.list-details-price {
 		width: 100%;
-		display: flex;
 		flex-direction: row;
 		justify-content: space-between;
 		position: absolute;
@@ -515,12 +612,29 @@
 		.list-price {
 			color: #FF2A2A;
 			.price-larger {
+				width: 100%;
 				font-size: 32rpx;
+				&.small{
+					font-size: $font-size-24;
+				}
 				.txt{
 					font-size: $font-size-24;
 					display: inline-block;
-					line-height: 30rpx;
+					line-height: 44rpx;
 					text-align: left;
+					float: left;
+				}
+				.btn{
+					width: 112rpx;
+					height: 44rpx;
+					display: inline-block;
+					float: right;
+					background: $btn-confirm;
+					line-height: 44rpx;
+					text-align: center;
+					color: #FFFFFF;
+					font-size: $font-size-24;
+					border-radius: 22rpx;
 				}
 			}
 		}

+ 13 - 0
services/activity.service.js

@@ -0,0 +1,13 @@
+/**
+ * 这是活动页相关的业务逻辑的服务
+ */
+export default class ActivityService {
+	constructor(AjaxService) {
+		Object.assign(this, { AjaxService })
+		this.name = 'ActivityService'
+	}
+	/* 小程序支付-活动接口 */
+	GetRepeatActivityBrandList (data = {}) {
+		return this.AjaxService.get({ url:'/repeat/activityProduct', data, isLoading: true })
+	}
+}

+ 2 - 2
services/ajax.env.js

@@ -1,9 +1,9 @@
 let URL_CONFIG = ""
 if(process.env.NODE_ENV === 'development'){
     // 开发环境
-	// URL_CONFIG = 'http://192.168.1.24:8008'	 //俊俊联调地址
+	// URL_CONFIG = 'http://192.168.1.33:8008'	 //俊俊联调地址
 	// URL_CONFIG = 'http://192.168.1.40:8008'	 //裴裴联调地址
-	// URL_CONFIG = 'http://192.168.1.10:8008'	 //本地联调地址
+	// URL_CONFIG = 'http://192.168.1.20:8008'	 //超超联调地址
     URL_CONFIG = 'https://spi-b.caimei365.com'	 //采美测试地址
 	// URL_CONFIG = 'https://spi.caimei365.com'
 }else{

+ 15 - 1
services/index.js

@@ -1,3 +1,5 @@
+import Vue from 'vue'
+
 import ajaxService from './ajax.service.js'
 import CommonService from './common.service'
 import LocateService from './locate.service'
@@ -5,13 +7,22 @@ import UserService from './user.service'
 import ShopService from './shop.service'
 import PayService from './pay.service'
 import PhotoService from './photo.service'
-import Vue from 'vue'
+import SellerService from './sellse.service'
+import ActivityService from './activity.service'
+import OrderService from './order.service'
+
+
 let commonService = new CommonService(ajaxService)
 let locateService = new LocateService(ajaxService)
 let userService = new UserService(ajaxService)
 let shopService = new ShopService(ajaxService)
 let payService = new PayService(ajaxService)
 let photoService = new PhotoService(ajaxService)
+let sellerService = new SellerService(ajaxService)
+let activityService = new ActivityService(ajaxService)
+let orderService = new OrderService(ajaxService)
+
+
 Vue.prototype.AjaxService = ajaxService
 Vue.prototype.CommonService = commonService
 Vue.prototype.LocateService = locateService
@@ -19,3 +30,6 @@ Vue.prototype.UserService = userService
 Vue.prototype.ShopService = shopService
 Vue.prototype.PayService = payService
 Vue.prototype.PhotoService = photoService
+Vue.prototype.SellerService = sellerService
+Vue.prototype.ActivityService = activityService
+Vue.prototype.OrderService = orderService

+ 14 - 0
services/order.service.js

@@ -0,0 +1,14 @@
+/**
+ * 这是与购物有关的业务逻辑的服务
+ */
+export default class OrderService {
+	constructor(AjaxService) {
+		Object.assign(this, { AjaxService })
+		this.name = 'OrderService'
+	}
+	/* 分享订单初始化查询 orderId 订单ID */
+	OrderCommodityData (data = {}) {
+		return this.AjaxService.get({ url:'/order/commodityData', data, isLoading: true })
+	}
+
+}

+ 34 - 0
services/sellse.service.js

@@ -0,0 +1,34 @@
+/**
+ * 这是协销用户业务的服务
+ */
+export default class SellerService {
+	constructor(AjaxService) {
+		Object.assign(this, { AjaxService })
+		this.name = 'SellerService'
+	}
+	/**
+	 *@协销-二手下单商品列表
+	 *@param 二手商品分类 secondHandType	1二手仪器,2临期产品,3其他  【必传】
+	 *@param 二手仪器分类的类型 instrumentType	1轻光电、2重光电、3耗材配件【不传默认全部】
+	 *@param 搜索关键词 searchKeyword	【选传】 
+	 */
+	GetOrderSecondHandProductList (data = {}) {
+		return this.AjaxService.get({ url:'/product/getOrderSecondHandProductList', data, isLoading: true })
+	}
+	/**
+	 *@协销-二手去结算接口
+	 *@param productId:商品ID(数字类型,必传)
+	 *@param clubId:机构会所ID(同之前)
+	 *@param serviceProviderId:协销ID(同之前)
+	 *@param productCount:二手购买数量 
+	 */
+	GetSettlementBySencondProduct (data = {}) {
+		return this.AjaxService.post({ url:'/seller/settlementBySencondProduct', data, isLoading: true })
+	}
+	ProductDetail (data={}){//商品详情
+		return this.AjaxService.get({ url:'/product/getSecondHandProductDetail', data, isLoading: true })
+	}
+	ProductRecommend (data={}){//相关推荐
+		return this.AjaxService.get({ url:'/product/getSecondHandProductRecommend', data, isLoading: true })
+	}
+}

BIN
static/activity/icon-share@2x.png


BIN
static/activity/icon-tags@2x.png


BIN
static/activity/icon-top@2x.png


BIN
static/activity/icon-zhe@2x.png


BIN
static/temp/icon-new@2x.png


BIN
static/temp/icon-type@3x.png


+ 28 - 2
store/index.js

@@ -11,7 +11,10 @@ const store = new Vuex.Store({
 		userInfo: {},
 		wechatUserInfo:{},
 		cartNumber:0,
-		isIphoneX:false
+		isIphoneX:false,
+		isActivity:false,
+		isLoginType:0,
+		isLoginProductId:0
 	},
 	mutations: {
 		login(state, provider) {
@@ -67,14 +70,31 @@ const store = new Vuex.Store({
 				})
 			}
 		},
+		setActivity(state,variable){
+			state.isActivity = variable;
+		},
 		setChangeVar(state,variable){
 			//获取设备信息是否为IphoneX
 			state.isIphoneX = variable;
-			console.log(state.isIphoneX);
 		},
 		setIsIphone(state,variable){
 			//获取设备信息是否为IphoneX
 			state.isIphone = variable;
+		},
+		setLoginType(state,variable){
+			//获取设备信息是否为IphoneX
+			state.isLoginType = variable;
+			console.log(state.isLoginType);
+		},
+		setLoginProductId(state,variable){
+			//获取设备信息是否为IphoneX
+			state.isLoginProductId = variable;
+			console.log(state.isLoginProductId);
+		},
+		setLoginOrderId(state,variable){
+			//获取设备信息是否为IphoneX
+			state.isLoginOrderId = variable;
+			console.log(state.isLoginOrderId);
 		}
 	},
 	actions:{
@@ -84,6 +104,12 @@ const store = new Vuex.Store({
 		setIsIphoneFun:function(context,vData){
 			context.commit('setIsIphone',vData)
 		},
+		setActivityFn:function(context,vData){
+			context.commit('setActivity',vData)
+		},
+		// setLoginTypeFn:function(context,vData){
+		// 	context.commit('setLoginType',vData)
+		// }
 	}
 })
 

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels