zhengjinyi 2 lat temu
rodzic
commit
37eddf689d
64 zmienionych plików z 7125 dodań i 4530 usunięć
  1. 0 140
      components/cm-module/modelAlert/freightAlert.vue
  2. 0 197
      components/cm-module/orderDetails/invoiceTent.vue
  3. 0 181
      components/cm-module/orderDetails/logisticsRecord.vue
  4. 6 5
      pages.json
  5. 2 1
      pages/seller/order/components/cm-address-temp.vue
  6. 0 0
      pages/seller/order/components/cm-club-visible.vue
  7. 0 0
      pages/seller/order/components/cm-coupon-chang.vue
  8. 0 0
      pages/seller/order/components/cm-coupon-popup.vue
  9. 199 0
      pages/seller/order/components/cm-coupon-tips.vue
  10. 1 28
      pages/seller/order/components/cm-details-button.vue
  11. 0 0
      pages/seller/order/components/cm-freight-popup.vue
  12. 7 6
      pages/seller/order/components/cm-goods-temp.vue
  13. 452 0
      pages/seller/order/components/cm-invice-popup.vue
  14. 0 0
      pages/seller/order/components/cm-list-button.vue
  15. 0 0
      pages/seller/order/components/cm-orderpay-popup.vue
  16. 0 0
      pages/seller/order/components/cm-regula-popup.vue
  17. 0 0
      pages/seller/order/components/cm-share-popup.vue
  18. 175 0
      pages/seller/order/components/details/cm-address-temp.vue
  19. 0 0
      pages/seller/order/components/details/cm-goods-temp.vue
  20. 151 0
      pages/seller/order/components/details/cm-invice-temp.vue
  21. 0 0
      pages/seller/order/components/details/cm-order-temp.vue
  22. 0 0
      pages/seller/order/components/details/cm-payment-temp.vue
  23. 0 0
      pages/seller/order/components/details/cm-promote-popup.vue
  24. 0 0
      pages/seller/order/components/details/cm-refund-temp.vue
  25. 0 0
      pages/seller/order/components/details/cm-voucher-temp.vue
  26. 0 695
      pages/seller/order/components/sellerInvoice.vue
  27. 957 920
      pages/seller/order/create-order.vue
  28. 36 78
      pages/seller/order/order-club-details.vue
  29. 37 65
      pages/seller/order/order-details.vue
  30. 7 12
      pages/seller/order/order-historylist.vue
  31. 9 22
      pages/seller/order/order-list.vue
  32. 7 13
      pages/seller/order/search-order.vue
  33. 523 0
      pages/supplier/order/components/details/goodsList.vue
  34. 3 2
      pages/supplier/order/components/details/orderAddress.vue
  35. 0 0
      pages/supplier/order/components/details/orderButton.vue
  36. 0 0
      pages/supplier/order/components/details/orderListButton.vue
  37. 579 542
      pages/supplier/order/order-details.vue
  38. 521 468
      pages/supplier/order/order-service-details.vue
  39. 2 1
      pages/user/order/components/cm-address-temp.vue
  40. 0 0
      pages/user/order/components/cm-coupon-chang.vue
  41. 6 16
      pages/user/order/components/cm-coupon-popup.vue
  42. 199 0
      pages/user/order/components/cm-coupon-tips.vue
  43. 234 0
      pages/user/order/components/cm-details-button.vue
  44. 1 4
      pages/user/order/components/cm-freight-popup.vue
  45. 0 0
      pages/user/order/components/cm-goods-temp.vue
  46. 452 0
      pages/user/order/components/cm-invice-popup.vue
  47. 244 0
      pages/user/order/components/cm-list-button.vue
  48. 148 0
      pages/user/order/components/cm-orderpay-popup.vue
  49. 0 0
      pages/user/order/components/cm-return-popup.vue
  50. 1 1
      pages/user/order/components/cm-share-popup.vue
  51. 175 0
      pages/user/order/components/details/cm-address-temp.vue
  52. 523 0
      pages/user/order/components/details/cm-goods-temp.vue
  53. 151 0
      pages/user/order/components/details/cm-invice-temp.vue
  54. 329 0
      pages/user/order/components/details/cm-order-temp.vue
  55. 159 0
      pages/user/order/components/details/cm-payment-temp.vue
  56. 235 0
      pages/user/order/components/details/cm-promote-popup.vue
  57. 120 0
      pages/user/order/components/details/cm-refund-temp.vue
  58. 150 0
      pages/user/order/components/details/cm-voucher-temp.vue
  59. 0 683
      pages/user/order/components/invoiceTent.vue
  60. 79 283
      pages/user/order/create-order.vue
  61. 90 89
      pages/user/order/order-details.vue
  62. 15 20
      pages/user/order/order-list.vue
  63. 23 36
      pages/user/order/order-sharedetails.vue
  64. 117 22
      pages/user/order/search-order.vue

+ 0 - 140
components/cm-module/modelAlert/freightAlert.vue

@@ -1,140 +0,0 @@
-<template name="alert">
-	<view class="alert spec" :class="specClass">
-		<!-- 运费弹窗说明 -->
-		<view class="freight-alert"  @tap="hideFreight">
-			<view class="content">
-				<view class="title">
-					<text>运费规则</text>
-					<text class="iconfont icon-iconfontguanbi" @click.stop="hideFreight"></text>
-				</view>
-				<view class="text-content">
-					<view class="text-h1">一、除含有仪器类、家具类等指定商品的订单,运费规则如下:</view>
-					<view class="text">
-						<text>1、首单,全国包邮(注:如果首单中含有不包邮的指定商品,则首单只能"到付");</text>
-						<text>2、订单商品总额满1000元,全国包邮;</text>
-						<text>3、订单商品总额不足1000元,深圳市内运费10元,广东省内深圳市外运费15元,其它地方运费到付;</text>
-						<text>4、地推送货上门无需运费(注:下单可选择运费是否到付)。</text>
-					</view>
-					<view class="text-h1">二、含有仪器类、家具类等指定商品的订单,运费到付。</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'alert',
-		props:{},
-		data() {
-			return{
-				
-			}
-		},
-		created() {
-			
-		},
-		onLoad(){
-			
-		},
-		methods:{
-			hideFreight(){
-				this.$parent.isfreightTip = false
-			},
-		},
-		onShow(){
-	
-		}
-	}
-</script>
-
-<style lang="scss">
-	/*弹窗*/
-	.model-warp.none{
-		display: none;
-	}
-	.model-warp.show{
-		display: block;
-	}
-	.freight-alert{
-		width: 100%;
-		height: 100%;
-		background: rgba(0,0,0,.5);
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 8888;
-		transition: all 0.4s;
-		&.none{
-			display: none;			
-		}
-		&.show{
-			display: block;
-		}
-		.content{
-			width: 530rpx;
-			height: 710rpx;
-			position: absolute;
-			background: $bg-color;
-			left: 0;
-			right: 0;
-			bottom: 0;
-			top: 0;
-			margin: auto;
-			padding: 20rpx 25rpx;
-			border-radius: 12rpx;
-			.title{
-				width: 100%;
-				height: 68rpx;
-				line-height: 68rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				text-align: center;
-				margin-bottom: 32rpx;
-				position: relative;
-				.icon-iconfontguanbi{
-					width: 68rpx;
-					height: 68rpx;
-					text-align: center;
-					line-height: 68rpx;
-					position: absolute;
-					right: 0;
-					top: 0;
-					font-size: $font-size-36;
-					color: #999999;
-				}
-			}
-			.text-content{
-				width: 100%;
-				height: auto;
-				.text{
-					padding: 40rpx 0;
-					line-height: 44rpx;
-					font-size: $font-size-26;
-					color:#666666;
-					text-align: justify;
-				}
-				.text-h1{
-					line-height: 44rpx;
-					font-size: $font-size-28;
-					color: $text-color;
-					text-align: justify;
-				}
-			}
-			.btn{
-				width: 100%;
-				height: 88rpx;
-				float: left;
-				background: $btn-confirm;
-				line-height: 88rpx;
-				font-size: $font-size-28;
-				text-align: center;
-				color: #FFFFFF;
-				border-radius: 0;
-				padding: 0;
-				margin-top: 2rpx;
-			}
-		}
-	}
-	
-</style>

+ 0 - 197
components/cm-module/orderDetails/invoiceTent.vue

@@ -1,197 +0,0 @@
-<template name="invoice">
-	<view class="invoice-template">
-		 <!-- 发票信息 -->
-		 <view class="invoice-content">
-		 	<view class="invoice-title">发票信息</view>
-			<view class="invoice-empty" v-if="isEmpty">
-			 	<text>不要发票</text></text>
-			</view>
-			<view class="invoice-text" v-else>
-				<view class="invoice-top" @click="showInvoice">
-					<view class="name">{{orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : ''}}</view>
-					<text class="iconfont icon-web_xiangxiazhankai" :class="{'icon-web_xiangxiazhankai-active':isOpen}"></text>
-				</view>
-				<view :class="{'invoice-warp--hide':!isOpen}" class="invoice-warp">
-					<view  class="invoice-warp__wrapper invoice-animation" 
-						   :style="{'transform':isOpen?'translateY(0)':'translateY(-50%)','-webkit-transform':isOpen?'translateY(0)':'translateY(-50%)'}">
-						<view class="table">
-							<text class="label-name">单位名称:</text>
-							<text>{{orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : ''}}</text>
-						</view>
-						<view class="table long">
-							<text class="label-name">纳锐人识别号:</text>
-							<text>{{orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum :''}}</text> 
-						</view>
-						<view class="table">
-							<text class="label-name">注册地址:</text>
-							<text>{{orderInvoice.registeredAddress ? orderInvoice.registeredAddress : ''}}</text> 
-						</view>
-						<view class="table">
-							<text class="label-name">注册电话:</text>
-							<text>{{orderInvoice.registeredPhone ? orderInvoice.registeredPhone : ''}}</text>
-						</view>
-						<view class="table">
-							<text class="label-name">开户银行:</text>
-							<text>{{orderInvoice.openBank ? orderInvoice.openBank : ''}}</text>
-						</view>
-						<view class="table">
-							<text class="label-name">银行账号:</text>
-							<text>{{bankAccountNo ? bankAccountNo : ''}}</text>
-						</view>
-					</view>
-				</view>
-			</view>
-		 </view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:"invoice",
-		props:{
-			orderInvoice:{
-				type:Object
-			}
-		},
-		data() {
-			return{
-				isEmpty:false,
-				title:'发票信息',
-				isOpen:false,
-				bankAccountNo:''
-			}
-		},
-		created(){
-			this.initData(this.orderInvoice)
-		},
-		computed: {
-
-		},
-		methods:{
-			initData(res) {
-				if(res == null || res.type == 0){
-					this.isEmpty = true
-				}else{
-					this.isEmpty = false
-					this.bankAccountNo = this.$reg.bankRegex(res.bankAccountNo)
-				}
-			},
-			onMessage(pros){
-			},
-			showInvoice(){
-				this.isOpen = !this.isOpen
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.invoice-template{
-		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		.invoice-content{
-			width: 702rpx;
-			padding: 20rpx 24rpx;
-		}
-		.invoice-title{
-			font-size: $font-size-28;
-			color: $text-color;
-			text-align: left;
-			line-height: 40rpx;
-			font-weight: bold;
-			margin-bottom: 30rpx;
-		}
-		.invoice-empty{
-			font-size: $font-size-28;
-			color: $text-color;
-			text-align: left;
-			line-height: 40rpx;
-			.txt{
-				font-size: $font-size-24;
-				color: #999999;
-			}
-		}
-		.invoice-animation {
-			/* transition: transform 0.3s ease;*/
-			transition-property: transform;
-			transition-duration: 0.3s;
-			transition-timing-function: ease;
-		}
-		.invoice-text{
-			width: 100%;
-			height: auto;
-			.invoice-top{
-				width: 100%;
-				height: 40rpx;
-				line-height: 40rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				text-align: left;
-				.name{
-					width: 400rpx;
-					float: 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;
-				}
-				.icon-web_xiangxiazhankai{
-					transform: rotate(0deg);
-					transform-origin: center center;
-					float: right;
-					font-size: $font-size-32;
-					color: #000000;
-					/* transition: transform 0.3s ease;*/
-					transition-property: transform;
-					transition-duration: 0.3s;
-					transition-timing-function: ease;
-				}
-				.icon-web_xiangxiazhankai-active{
-					transform: rotate(180deg);
-				}
-			}
-			.invoice-warp{
-				width: 100%;
-				padding: 24rpx 0 0 0;
-				overflow: hidden;
-				.table{
-					padding-left: 130rpx;
-					height: auto;
-					line-height: 64rpx;
-					font-size: $font-size-26;
-					color: $text-color;
-					text-align: left;
-					position: relative;
-					.label-name{
-						display: inline-block;
-						line-height: 64rpx;
-						position: absolute;
-						left: 0;
-						top: 0;
-					}
-					&.long{
-						padding-left: 180rpx;
-					}
-				}
-			}	
-			.invoice-warp__wrapper{
-				/* #ifndef APP-NVUE */
-				display: flex;
-				/* #endif */
-				flex-direction: column;
-				padding-top: 20rpx;
-			}
-			.invoice-warp--hide {
-				padding: 0 0;
-				height: 0px;
-				line-height: 0px;
-			}		
-		}
-	}
-</style>

+ 0 - 181
components/cm-module/orderDetails/logisticsRecord.vue

@@ -1,181 +0,0 @@
-<template name="logistics">
-	<view class="logistics-template">
-		<!-- 物流信息 -->
-		<view class="logistics-content" v-if="logisticsData.length > 0" v-for="(item,index) in logisticsData" :key="index">
-			<view class="logistics-top">
-				<text class="name">物流信息</text>
-			</view>
-			<view class="logistics-warp">
-				<view  class="logistics-warp__wrapper">
-					<view class="logistics-main">
-					 	<view class="logistics-main-top">
-					 		<view class="main-top" @click="showlogistics(index)">
-								{{item.expressname}}:{{item.expressNumber}}
-								<text class="clipboard" @click="clipboard(item.expressNumber)">复制</text>
-								<text class="arrow-showMore iconfont icon-web_xiangxiazhankai" :style="{'transform':item.isOpen?'rotate(180deg)':'rotate(0)'}"></text>
-							</view>
-					 		<view class="main-bot">
-								发货时间:{{item.expressNewtime}}
-							</view>
-					 	</view>
-						<view v-if="item.expressRecord.length > 0" v-for="(infoItem,infoIndex) in item.expressRecord" :key="infoIndex" :class="{'logistics-warp--hide':!item.isOpen}" class="logistics-main-bot logistics-animation" :style="{'transform':item.isOpen?'translateY(0)':'translateY(-50%)','-webkit-transform':item.isOpen?'translateY(0)':'translateY(-50%)'}" >
-							{{infoItem.time}}  {{infoItem.desc}}
-						</view>
-						<view v-if="item.expressRecord" :class="{'logistics-warp--hide':!item.isOpen}" class="logistics-main-bot logistics-animation" :style="{'transform':item.isOpen?'translateY(0)':'translateY(-50%)','-webkit-transform':item.isOpen?'translateY(0)':'translateY(-50%)'}">
-							暂无物流信息
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="logistics-content" v-else>
-			暂无物流信息
-		 </view>
-	</view>
-</template>
-
-<script>
-	const thorui = require("@/components/clipboard/clipboard.thorui.js")
-	export default{
-		name:"logistics",
-		data() {
-			return{
-				title:'发票信息',
-				logisticsData:''
-			}
-		},
-		created(){
-			
-		},
-		computed: {
-
-		},
-		methods:{
-			initData(res) {
-				this.logisticsData = res;
-			},
-			showlogistics(index){
-				let isOpen = this.logisticsData[index]['isOpen'];
-				this.logisticsData[index]['isOpen'] = !isOpen;
-			},
-			clipboard(data) {
-				thorui.getClipboardData(data, (res) => {
-					if (res) {
-						this.$util.msg("复制成功",2000,true,'success');
-					} else {
-						this.$util.msg("复制失败",2000,true,'none');
-					}
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.logistics-template{
-		width: 100%;
-		height: 100%;
-		background: #FFFFFF;
-		float: left;
-		.logistics-content{
-			width: 702rpx;
-			padding: 20rpx 24rpx;
-			height: auto;
-			.arrow-showMore {
-				position: absolute;
-				right: 24rpx;
-				z-index: 99;
-			}
-			.logistics-top{
-				width: 100%;
-				height: 40rpx;
-				line-height: 40rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				text-align: left;
-				padding-bottom: 24rpx;
-				border-bottom: 1px solid #F8F8F8;
-				.name{
-					float: left;
-					font-weight: bold;
-				}
-				.icon-web_xiangxiazhankai{
-					transform: rotate(0deg);
-					transform-origin: center center;
-					float: right;
-					font-size: $font-size-32;
-					color: #000000;
-					/* transition: transform 0.3s ease;*/
-					transition-property: transform;
-					transition-duration: 0.3s;
-					transition-timing-function: ease;
-				}
-				.icon-web_xiangxiazhankai-active{
-					transform: rotate(180deg);
-				}
-			}
-			.logistics-warp{
-				width: 100%;
-				overflow: hidden;
-				.table{
-					height: 76rpx;
-					line-height: 76rpx;
-					font-size: $font-size-26;
-					color: $text-color;
-					text-align: left;
-				}
-			}	
-			.logistics-main-top{
-				width: 100%;
-				height: auto;
-				float: left;
-				padding-top: 24rpx;
-				margin-bottom: 14rpx;
-				.main-top,.main-bot{
-					font-size: $font-size-28;
-					color: $text-color;
-					line-height: 40rpx;
-					margin: 4rpx 0;
-				}
-			}
-			.logistics-main-bot{
-				width: 100%;
-				height: auto;
-				font-size: $font-size-24;
-				color: $text-color;
-				line-height: 56rpx;
-				text-align: justify;
-			}
-			.logistics-animation {
-				/* transition: transform 0.3s ease;*/
-				transition-property: transform;
-				transition-duration: 0.3s;
-				transition-timing-function: ease;
-			}
-			.logistics-warp__wrapper{
-				/* #ifndef APP-NVUE */
-				display: flex;
-				/* #endif */
-				flex-direction: column;
-			}
-			.logistics-warp--hide {
-				// padding: 0 0;
-				// height: 0px;
-				// line-height: 0px;
-				display: none;
-			}	
-			.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: 6rpx;
-				line-height: 36rpx;
-				display: inline-block;
-				margin-left: 42rpx;
-			}
-		}
-	}
-</style>

+ 6 - 5
pages.json

@@ -387,6 +387,12 @@
 						"navigationStyle": "custom"
 					}
 				},
+				{
+					"path": "order/search-order",
+					"style": {
+						"navigationBarTitleText": "订单搜索"
+					}
+				},
 				{
 					"path": "order/order-details",
 					"style": {
@@ -1015,11 +1021,6 @@
 				"style": {
 					"navigationBarTitleText": "搜索仪器"
 				}
-			}, {
-				"path": "search-order",
-				"style": {
-					"navigationBarTitleText": "订单搜索"
-				}
 			}, {
 				"path": "search-second",
 				"style": {

+ 2 - 1
pages/seller/order/components/sellerAddress.vue → pages/seller/order/components/cm-address-temp.vue

@@ -27,7 +27,7 @@
 		 		</view>
 		 	</view>
 		 </navigator>
-		 <image  src="../../../static/temp/line@3x.png" mode=""></image>
+		<image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
 	</view>
 </template>
 
@@ -43,6 +43,7 @@
 			return{
 				isEmpty:false,
 				addressSrc:'',
+				StaticUrl: this.$Static,
 			}
 		},
 		created(){

+ 0 - 0
pages/seller/order/components/sellerClubVisible.vue → pages/seller/order/components/cm-club-visible.vue


+ 0 - 0
pages/seller/order/components/sellerExchangeCoupon.vue → pages/seller/order/components/cm-coupon-chang.vue


+ 0 - 0
pages/seller/order/components/sellerCoupon.vue → pages/seller/order/components/cm-coupon-popup.vue


+ 199 - 0
pages/seller/order/components/cm-coupon-tips.vue

@@ -0,0 +1,199 @@
+<template name="alert">
+	<view class="coupon-content-model">
+		<view class="coupon-alert-content">
+			<view class="coupon">
+				<view class="coupon-list">
+					<view class="list-cell-tags"
+						><text>{{ coupon.couponType | TypeFormat }}</text></view
+					>
+					<view class="list-cell-le">
+						<view class="coupon-maxMoney"> <text class="small">¥</text> {{ coupon.couponAmount }} </view>
+						<view class="coupon-minMoney">
+							<text class="txt">满{{ coupon.touchPrice }}可用</text>
+						</view>
+					</view>
+					<view class="list-cell-ri">
+						<view class="list-cell-top">
+							<text v-if="coupon.couponType == 0">
+								{{
+									coupon.productType && coupon.productType == 1
+										? '全商城商品通用'
+										: '仅可购买指定商品'
+								}}
+							</text>
+							<text v-if="coupon.couponType == 1">
+								{{ coupon.categoryType == 1 ? '仅限购买产品类商品' : '仅限购买仪器类商品' }}
+							</text>
+							<text v-if="coupon.couponType == 3">仅限购买店铺【{{ coupon.shopName }}】的商品</text>
+							<text v-if="coupon.couponType == 4 || coupon.couponType == 2">全商城商品通用</text>
+						</view>
+						<view class="list-cell-time">{{ coupon.startDate }} - {{ coupon.endDate }}</view>
+					</view>
+				</view>
+				<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'alert',
+	props: {
+		coupon: {
+			type: Object
+		}
+	},
+	filters: {
+		TypeFormat(value) {
+			const map = {
+				0:'活动券',
+				1:'品类券',
+				2:'用户专享券',
+				3:'店铺券',
+				4:'新用户券',
+			}
+		}
+	},
+	data() {
+		return {}
+	},
+	created() {},
+	onLoad() {},
+	methods: {},
+	onShow() {}
+}
+</script>
+
+<style lang="scss">
+.coupon-content-model {
+	width: 100%;
+	height: 100%;
+	background: rgba(0, 0, 0, 0.5);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 8888;
+	transition: all 0.4s;
+	.coupon-alert-content {
+		width: 600rpx;
+		height: 612rpx;
+		position: absolute;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		margin: auto;
+		box-sizing: border-box;
+		padding-top: 92rpx;
+		.coupon {
+			width: 600rpx;
+			height: 522rpx;
+			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
+			background-size: cover;
+			box-sizing: border-box;
+			padding: 230rpx 40rpx 0 40rpx;
+			.coupon-list {
+				width: 100%;
+				height: 147rpx;
+				margin-bottom: 32rpx;
+				box-sizing: border-box;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
+				background-size: cover;
+				position: relative;
+				.list-cell-tags {
+					display: inline-block;
+					padding: 0 10rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					background-color: #f94b4b;
+					color: #ffffff;
+					font-size: 18rpx;
+					border-radius: 16rpx 0 16rpx 0;
+					text-align: center;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				.list-cell-le {
+					width: 154rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 0;
+					float: left;
+					.coupon-maxMoney {
+						width: 100%;
+						height: 54rpx;
+						line-height: 54rpx;
+						font-size: 42rpx;
+						color: #f94b4b;
+						text-align: center;
+						margin-top: 10rpx;
+						.small {
+							font-size: $font-size-20;
+						}
+					}
+					.coupon-minMoney {
+						width: 100%;
+						height: 28rpx;
+						float: left;
+						box-sizing: border-box;
+						padding-left: 24rpx;
+						.txt {
+							display: block;
+							height: 28rpx;
+							line-height: 28rpx;
+							font-size: 16rpx;
+							color: #f94b4b;
+							text-align: center;
+							padding: 0 5rpx;
+							background-color: #fff1eb;
+							border-radius: 4rpx;
+							float: left;
+						}
+					}
+				}
+				.list-cell-ri {
+					width: 366rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 20rpx;
+					float: left;
+					.list-cell-top {
+						width: 100%;
+						height: 64rpx;
+						line-height: 64rpx;
+						font-size: $font-size-26;
+						color: #333333;
+						float: left;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					.list-cell-time {
+						width: 100%;
+						height: 28rpx;
+						line-height: 28rpx;
+						text-align: left;
+						font-size: $font-size-20;
+						color: #999999;
+					}
+				}
+			}
+			.coupon-btn {
+				width: 100%;
+				height: 78rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
+				background-size: cover;
+				line-height: 78rpx;
+				text-align: center;
+				color: #ffffff;
+				font-size: $font-size-36;
+			}
+		}
+	}
+}
+</style>

+ 1 - 28
pages/seller/order/components/sellerDetaileButton.vue → pages/seller/order/components/cm-details-button.vue

@@ -171,34 +171,7 @@
 				float: right;
 			}
 			.btn-color{
-				background: #f94b4b;
-				// margin: 20rpx 0 20rpx 20rpx;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 24rpx;
-					top: -45rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
+				background: $btn-confirm;
 			}
 			.btn-cancel{
 				background:#FFFFFF;

+ 0 - 0
pages/seller/order/components/sellerFreight.vue → pages/seller/order/components/cm-freight-popup.vue


+ 7 - 6
pages/seller/order/components/sellerGoodsList.vue → pages/seller/order/components/cm-goods-temp.vue

@@ -2,7 +2,7 @@
 	<view class="goods-template">
 		<!-- 商品列表 -->
 		<view class="goods-list">
-			<view v-for="(item, index) in goodsData" :key="index" class="goods-item">
+			<view v-for="(item, index) in list" :key="index" class="goods-item">
 				<view class="shoptitle">
 					<view v-if="item.promotions" class="floor-item-act">
 						<view class="floor-tags">{{ item.promotions.name }}</view>
@@ -89,7 +89,7 @@
 export default {
 	name: 'goods',
 	props: {
-		goodsData: {
+		list: {
 			type: Array
 		},
 		secondflag: {
@@ -102,23 +102,24 @@ export default {
 			remark: []
 		}
 	},
-	created() {},
 	filters: {
 		NumFormat(value) {
 			//处理金额
 			return Number(value).toFixed(2)
 		}
 	},
+	created() {
+		console.log('list',this.list)
+	},
 	watch: {
-		goodsData: {
+		list: {
 			handler: function(el) {
 				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-				this.goodsData = el
+				this.list = el
 			},
 			deep: true
 		}
 	},
-	computed: {},
 	methods: {
 		PromotionsFormat(promo) {
 			//促销活动类型数据处理

+ 452 - 0
pages/seller/order/components/cm-invice-popup.vue

@@ -0,0 +1,452 @@
+<template name="cm-parameter">
+	<view class="invoice-template">
+		<!-- 发票信息 -->
+		<view class="invoice-title" @tap.stop="handleShowPopup">
+			<text class="text">发票信息:</text> <text class="invoice-text">{{ invoiceText }}</text>
+			<text class="iconfont icon-xiangyou"></text>
+		</view>
+		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
+			<view class="tui-popup-box clearfix">
+				<view class="title">发票信息</view>
+				<view class="tui-popup-close" @click="hidePopup">
+					<text class="iconfont icon-iconfontguanbi"></text>
+				</view>
+				<view class="tui-popup-main">
+					<view class="popup-form">
+						<text
+							class="radio"
+							v-for="(invoice, index) in invoiceType"
+							:key="index"
+							@click="handleTnvoiceType(invoice.type, index)"
+							:class="invoiceTypeIndex === index ? 'active' : ''"
+						>
+							{{ invoice.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex === 1">
+						<view class="label">抬头类型:</view>
+						<text
+							class="radio"
+							v-for="(title, index) in titleType"
+							:key="index"
+							@click="handleTitleType(title.type, index)"
+							:class="titleIndex === index ? 'active' : ''"
+						>
+							{{ title.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex > 0">
+						<view class="label">发票抬头:</view>
+						<input
+							class="input"
+							type="text"
+							v-model="invoiceData.invoiceTitle"
+							placeholder="请输入发票抬头"
+							maxlength="50"
+							cursor-spacing="40"
+						/>
+					</view>
+					<template v-if="invoiceTypeIndex === 2 || titleIndex === 1">
+						<view class="popup-form">
+							<view class="label">单位税号:</view>
+							<input
+								class="input"
+								type="text"
+								v-model="invoiceData.corporationTaxNum"
+								placeholder="请输入单位税号"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册地址:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.registeredAddress"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册地址' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册电话:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.registeredPhone"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册电话' : '选填'"
+								maxlength="11"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">开户银行:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.openBank"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入开户银行' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">银行账号:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.bankAccountNo"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入银行账号' : '选填'"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+					</template>
+				</view>
+				<view class="tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="tui-modal-flex">
+						<button
+							class="tui-modal-button"
+							:disabled="disabled"
+							@click="handleConfirm"
+						>
+							确定
+						</button>
+					</view>
+				</view>
+			</view>
+		</tui-bottom-popup>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'cm-prams-popup',
+	props: {},
+	data() {
+		return {
+			popupShow: false,
+			isIphoneX: this.$store.state.isIphoneX,
+			userId:0,
+			invoiceTypeIndex: 0,
+			titleIndex: 0,
+			invoiceType: [
+				{
+					name: '不开发票',
+					type: 0
+				},
+				{
+					name: '普通发票',
+					type: 1
+				},
+				{
+					name: '增值税专用发票',
+					type: 2
+				}
+			],
+			titleType: [
+				{
+					name: '个人',
+					type: 0
+				},
+				{
+					name: '单位',
+					type: 1
+				}
+			],
+			invoiceText: '不开发票',
+			invoiceData: {
+				type: 0, 		//发票类型 0 不开发票 1 普通发票 2 增值税发票
+				headingType: 0, 		//抬头类型 0 个人 1 单位
+				invoiceTitle: '', 		//发票抬头
+				corporationTaxNum: '',  //单位税号
+				registeredAddress: '',  //单位地址
+				registeredPhone: '',    //注册电话
+				openBank: '', 		    //开户银行
+				bankAccountNo: ''       //银行账号
+			}
+		}
+	},
+	created() {
+		
+	},
+	computed: {
+		
+	},
+	methods: {
+		// 切换发票类型
+		handleTnvoiceType(type, index) {
+			this.invoiceTypeIndex = index
+			this.invoiceData.type = type
+			if(this.invoiceTypeIndex === 1){
+				this.titleIndex = 0
+				this.invoiceData.headingType = 0
+			}
+		},
+		// 切换抬头类型
+		handleTitleType(type, index) {
+			this.titleIndex = index
+			this.invoiceData.headingType = type
+		},
+		// 显示发票弹窗 查询发票信息
+		handleShowPopup(){
+			this.getUseFindInvoice()
+		},
+		// 确认保存发票
+		handleConfirm(){
+			if(this.invoiceTypeIndex === 0){
+				this.invoiceData = {...this.invoiceData , ...{ type : 0 }}
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.hidePopup()
+			}else{
+				this.checkedInput()
+			}
+		},
+		// 校验必填项
+		checkedInput(){
+			/**
+			 *  普通发票 个人 仅校验发票抬头
+			 * 	普通发票 单位 校验发票抬头 校验单位税号
+			 *  增值税发票 校验全部
+			 * */ 
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 0){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 1){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 2){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredAddress) {
+					this.$util.msg('请输入注册地址', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredPhone) {
+					this.$util.msg('请输入注册电话', 2000)
+					return
+				}
+				if (!this.invoiceData.openBank) {
+					this.$util.msg('请输入开户银行', 2000)
+					return
+				}
+				if (!this.invoiceData.bankAccountNo) {
+					this.$util.msg('请输入银行账号', 2000)
+					return
+				}
+			}
+			this.updateInvoiceFn()
+		},
+		//获取发票信息
+		async getUseFindInvoice() {
+			try {
+				this.popupShow = true
+				const resolve = await this.$api.getComStorage('orderUserInfo')
+				this.userId = resolve.userId
+				const res = await this.OrderService.GetFindInvoice({ userId: resolve.userId })
+				this.invoiceData = {...this.invoiceData, ...res.data}
+				console.log('invoiceData',this.invoiceData)
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		//保存发票信息
+		async updateInvoiceFn() {
+			try {
+				const resolve = await this.$api.getComStorage('orderUserInfo')
+				const res = await this.OrderService.updateOrganize({ ...this.invoiceData,...{userId: resolve.userId }})
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.$emit('handleChoiceaInvoice', this.invoiceData)
+				this.popupShow = false
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		// 设置发票文案
+		setInvoiceText(data){
+			const map = {
+				0:'个人',
+				1:'单位'
+			}
+			switch (data.type){
+				case 0:
+					return `不开发票`
+					break;
+				case 1:
+					return `普票-${map[data.headingType]}(${this.nameFilters(data.invoiceTitle)})`
+					break;
+				case 2:
+					return `专票(${this.nameFilters(data.invoiceTitle)})`
+					break;
+			}
+		},
+		nameFilters(value) {
+			if(value && value.length>10){
+				return value.substring(0,10)+"..." 
+			}else{
+				return value
+			}
+		},
+		hidePopup() {
+			this.popupShow = false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	.invoice-title {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		position: relative;
+		border-bottom: 1px solid #ebebeb;
+		.text {
+			font-size: $font-size-28;
+			color: $text-color;
+		}
+		.invoice-text {
+			font-size: $font-size-28;
+			color: #F85050;
+			line-height: 90rpx;
+			display: inline-block;
+			float: right;
+			box-sizing: border-box;
+			padding-right: 30rpx;
+		}
+		.iconfont {
+			width: 50rpx;
+			height: 88rpx;
+			line-height: 88rpx;
+			color: #999999;
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 220rpx;
+	padding: 24rpx 24rpx 0 24rpx;
+	.title {
+		font-size: $font-size-34;
+		color: $text-color;
+		line-height: 88rpx;
+		text-align: center;
+		float: left;
+		width: 100%;
+		height: 88rpx;
+		font-weight: bold;
+	}
+	.tui-popup-close {
+		width: 90rpx;
+		height: 90rpx;
+		position: absolute;
+		right: 0;
+		top: 24rpx;
+		line-height: 90rpx;
+		text-align: center;
+		color: #b2b2b2;
+		.icon-iconfontguanbi {
+			font-size: $font-size-40;
+		}
+	}
+	.tui-popup-main {
+		width: 100%;
+		float: left;
+		min-height: 400rpx;
+		.popup-form {
+			width: 100%;
+			height: 112rpx;
+			box-sizing: border-box;
+			padding: 23rpx 0;
+			border-bottom: 1px solid #e1e1e1;
+			&.none{
+				border-bottom: none;
+			}
+			.label {
+				width: 140rpx;
+				float: left;
+				font-size: $font-size-28;
+				line-height: 64rpx;
+				color: #666666;
+			}
+			.radio {
+				height: 64rpx;
+				padding: 0 28rpx;
+				line-height: 64rpx;
+				color: #666666;
+				text-align: center;
+				border-radius: 32rpx;
+				margin: 0 8rpx;
+				display: inline-block;
+				background: #f5f5f5;
+				font-size: $font-size-28;
+				&.active {
+					background: #fff4e6;
+					color: #f3b574;
+				}
+			}
+			.input {
+				line-height: 64rpx;
+				height: 64rpx;
+				color: #333333;
+				font-size: $font-size-28;
+			}
+		}
+	}
+	.tui-popup-btn {
+		width: 100%;
+		height: auto;
+		float: left;
+	}
+	.tui-modal-flex {
+		width: 100%;
+		height: 84rpx;
+		margin-top: 40rpx;
+		display: flex;
+		.tui-modal-button {
+			flex: 1;
+			line-height: 84rpx;
+			font-size: $font-size-28;
+			text-align: center;
+			border-radius: 42rpx;
+			padding: 0;
+			margin: 0 15rpx;
+			box-sizing: border-box;
+			background: $btn-confirm;
+			color: #ffffff;
+			&.disabled {
+				background: #e1e1e1;
+				border-radius: 42rpx;
+			}
+		}
+	}
+}
+</style>

+ 0 - 0
pages/seller/order/components/sellerOrderButton.vue → pages/seller/order/components/cm-list-button.vue


+ 0 - 0
components/cm-module/modelAlert/order-alert.vue → pages/seller/order/components/cm-orderpay-popup.vue


+ 0 - 0
pages/seller/order/components/sellerRegulations.vue → pages/seller/order/components/cm-regula-popup.vue


+ 0 - 0
pages/seller/order/components/sellerShareAlert.vue → pages/seller/order/components/cm-share-popup.vue


+ 175 - 0
pages/seller/order/components/details/cm-address-temp.vue

@@ -0,0 +1,175 @@
+<template name="address">
+	<view class="address-template">
+		 <!-- 地址信息 -->
+		 <view class="address-section">
+		 	<view class="address-content">
+				<view class="address-cen">
+					<view class="top">
+						<view class="name">{{addressData.receiver ? addressData.receiver : ''}}</view>
+						<view class="mobile">{{addressData.mobile ? addressData.mobile : ''}}</view>
+					</view>
+					<view class="address">
+						<view class="address-icon">
+							<text class="iconfont icon-shouhuodizhi"></text>
+						</view>
+						<view class="address-text">
+							{{addressData.province ? addressData.province : ''}}
+							{{addressData.city ? addressData.city : ''}}
+							{{addressData.town ? addressData.town : ''}}
+							{{addressData.address ? addressData.address : ''}}
+						</view>
+					</view>
+				</view>
+		 	</view>
+		 </view>
+		 <image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
+	</view>
+</template>
+
+<script>
+	import { mapState, mapMutations } from 'vuex'	
+	export default{
+		name:'address',
+		props:{
+			addressData:{
+				type:Object
+			}
+		},
+		data() {
+			return{
+				initData:'',
+				StaticUrl: this.$Static,
+			}
+		},
+		created(){
+			this.initData = this.addressData
+		},
+		computed: {
+			...mapState(['isManage'])
+		},
+		methods:{
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	.address-template{
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+        
+        &::after{
+            content: "";
+            display: block;
+            clear: both;
+        }
+		// border-top: 1px solid #F8F8F8;
+		image{
+			float: left;
+			width: 100%;
+			height: 6rpx;
+		}
+	}
+	.address-section {
+		width: 100%;
+		height: auto;
+		float: left;
+		position: relative;
+		
+		.address-empty{
+			width: 100%;
+			height: 84rpx;
+			line-height: 84rpx;
+			color: $color-system;
+			text-align: center;
+			font-size: $font-size-26;
+			font-weight: bold;
+			background: #fff;
+			float: left;
+			.icon-tianjiadizhi{
+				font-size: 30rpx;
+				margin: 0 8rpx;
+			}
+		}
+		.address-content {
+			display: flex;
+			align-items: center;
+			padding:20rpx 24rpx;
+			background: #fff;
+		}
+		
+		.icon-shouhuodizhi {
+			flex-shrink: 0;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 40rpx;
+			color: $color-system;
+			font-size: 46rpx;
+			margin-right: 10rpx;
+		}	
+		.address-cen {
+			width: 100%;
+			height: auto;
+			position: relative;
+			.top{
+				padding-left: 50rpx;
+				height: 42rpx;
+				line-height: 42rpx;
+				text-align: left;
+				font-size: $font-size-30;
+				color: $text-color;
+				padding-bottom: 8rpx;
+				display: flex;
+				float: left;
+				.name{
+					margin-right: 48rpx;
+				}
+				.mobile{
+					margin-right: 40rpx;
+				}
+			}
+			.address {
+				width: 100%;
+				height: auto;
+				float: left;
+				.address-icon{
+					width: 40rpx;
+					height: auto;
+					float: left;
+					line-height: 40rpx;
+				}
+				.address-text{
+					width: 650rpx;
+					padding-left: 10rpx;
+					float: left;
+					line-height: 40rpx;
+					font-size: $font-size-28;
+					color: #666666;
+					text-align: left;
+					-o-text-overflow: ellipsis;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+				}
+			}
+		}
+		.icon-xiayibu {
+			font-size: 32rpx;
+			color: $text-color;
+			margin-right: 30rpx;
+		}
+		.a-bg {
+			position: absolute;
+			left: 0;
+			bottom: 0;
+			display: block;
+			width: 100%;
+			height: 5rpx;
+		}
+	}
+</style>

+ 0 - 0
components/cm-module/orderDetails/goodsList.vue → pages/seller/order/components/details/cm-goods-temp.vue


+ 151 - 0
pages/seller/order/components/details/cm-invice-temp.vue

@@ -0,0 +1,151 @@
+<template name="invoice">
+	<view class="invoice-template">
+		<!-- 发票信息 -->
+		<view class="invoice-content">
+			<view class="invoice-title">发票信息</view>
+			<view class="invoice-empty">
+				<text>{{ invoiceText }}</text>
+			</view>
+			<view class="invoice-text" v-if="orderInvoice.type > 0">
+				<view class="table">
+					<text class="label-name">发票抬头:</text>
+					<text class="label-text">{{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : '无' }}</text>
+				</view>
+				<template v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">
+					<view class="table">
+						<text class="label-name">单位税号:</text>
+						<text class="label-text">{{
+							orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">注册地址:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredAddress ? orderInvoice.registeredAddress : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">注册电话:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredPhone ? orderInvoice.registeredPhone : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">开户银行:</text>
+						<text class="label-text">{{ orderInvoice.openBank ? orderInvoice.openBank : '无' }}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">银行账号:</text>
+						<text class="label-text">{{ bankAccountNo ? bankAccountNo : '无' }}</text>
+					</view>
+				</template>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'invoice',
+	props: {
+		orderInvoice: {
+			type: Object
+		}
+	},
+	filters: {},
+	data() {
+		return {
+			invoiceText: '不开发票',
+			title: '发票信息',
+			isOpen: false,
+			bankAccountNo: ''
+		}
+	},
+	created() {
+		this.initData(this.orderInvoice)
+	},
+	computed: {},
+	methods: {
+		initData(data) {
+			if (data) {
+				this.bankAccountNo = this.$reg.bankRegex(data.bankAccountNo)
+				this.invoiceText = this.setInvoiceText(data)
+			}
+		},
+		// 设置发票文案
+		setInvoiceText(data) {
+			const map = {
+				0: '个人',
+				1: '单位'
+			}
+			switch (data.type) {
+				case 0:
+					return `不开发票`
+					break
+				case 1:
+					return `普票-${map[data.headingType]}`
+					break
+				case 2:
+					return `专票`
+					break
+			}
+		},
+		onMessage(pros) {},
+		showInvoice() {
+			this.isOpen = !this.isOpen
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-content {
+		width: 702rpx;
+		padding: 20rpx 24rpx;
+	}
+	.invoice-title {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 40rpx;
+		font-weight: bold;
+		margin-bottom: 30rpx;
+	}
+	.invoice-empty {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 64rpx;
+		.txt {
+			font-size: $font-size-24;
+			color: #999999;
+		}
+	}
+	.invoice-text {
+		width: 100%;
+		height: auto;
+		.table {
+			height: auto;
+			line-height: 64rpx;
+			font-size: $font-size-26;
+			color: $text-color;
+			text-align: left;
+			position: relative;
+			.label-name {
+				display: inline-block;
+				line-height: 64rpx;
+				color: #999999;
+			}
+			.label-text {
+				color: #333333;
+			}
+		}
+	}
+}
+</style>

+ 0 - 0
components/cm-module/orderDetails/orderInformation.vue → pages/seller/order/components/details/cm-order-temp.vue


+ 0 - 0
components/cm-module/orderDetails/paymentRecord.vue → pages/seller/order/components/details/cm-payment-temp.vue


+ 0 - 0
components/cm-module/orderDetails/activipopu.vue → pages/seller/order/components/details/cm-promote-popup.vue


+ 0 - 0
components/cm-module/orderDetails/refundRecord.vue → pages/seller/order/components/details/cm-refund-temp.vue


+ 0 - 0
components/cm-module/orderDetails/voucherRecord.vue → pages/seller/order/components/details/cm-voucher-temp.vue


+ 0 - 695
pages/seller/order/components/sellerInvoice.vue

@@ -1,695 +0,0 @@
-<template name="invoice">
-	<view class="invoice-template">
-		 <!-- 发票信息 -->
-		<view class="invoice-title" @tap.stop="hanldOperationConfim">
-			<text class="text">发票信息</text>
-			<view class="invoice-right">
-				<text class="text-l">{{invoiceText}}</text>
-				<text class="iconfont icon-xiayibu"></text>
-			</view>
-		</view>
-		<!-- <view class="invoice-text">
-			<text>{{invoiceText}}</text>
-		</view> -->
-		<!--底部选择模态层弹窗组件 -->
-		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="choiceaInvoiceConfim">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
-				<view class="content clearfix">
-					<view class="invoice-ltitle">发票类型</view>
-					<view class="invoice-radio">
-						<radio-group class="row-group" @change="radioChange">
-							<label class="row-input" v-for="(item, index) in invoiceTypeList" :key="item.value">
-								<radio class="row-radio" :value="item.value" :checked="index === current" color="#FF5B00"/>
-								<view class="row-text">{{item.name}}</view>
-							</label>
-						</radio-group>
-					</view>
-					<view class="invoice-main from" v-if="invoiceType == '2'">
-						<view class="invoice-from">
-							<view class="label">单位名称:</view>
-							<input class="form-input" type="text" v-model="invoiceData.invoiceTitle" placeholder="请填写单位信息(必填)" placeholder-class="placeholder" maxlength="24">
-						</view>
-						<view class="invoice-from">
-							<view class="label">纳税人识别号:</view>
-							<input class="form-input" type="text" v-model="invoiceData.corporationTaxNum" placeholder="请填写纳税人识别号(必填)" placeholder-class="placeholder" maxlength="24">
-						</view>
-						<view class="invoice-from">
-							<view class="label">注册地址:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredAddress" placeholder="请填写单位注册地址(必填)" placeholder-class="placeholder" maxlength="100">
-						</view>
-						<view class="invoice-from">
-							<view class="label">注册电话:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredPhone" placeholder="请填写注册电话(必填)" placeholder-class="placeholder" maxlength="15">
-						</view>
-						<view class="invoice-from">
-							<view class="label">开户银行:</view>
-							<input class="form-input" type="text" v-model="invoiceData.openBank"   placeholder="请填写开户银行(必填)" placeholder-class="placeholder" maxlength="30">
-						</view>
-						<view class="invoice-from">
-							<view class="label">银行账号:</view>
-							<input class="form-input" 
-								   type="text" 
-								   v-model="invoiceData.bankAccountNo" 
-								   placeholder="请填写银行账号(必填)" 
-								   maxlength="30"
-								   placeholder-class="placeholder">
-						</view>
-					</view>
-					<view class="invoice-main" v-if="invoiceType == '3'">
-						<view class="invoice-ltitle">发票内容</view>
-						<view class="invoice-group tit">
-							<checkbox-group class="row-group" @change="checkboxChange">
-								<view class="text">商品明细</view>
-								<checkbox class="row-radio" value="明细"  :checked="inventoryChecked" color="#FF5B00"></checkbox>
-							</checkbox-group>
-						</view>
-						<view class="invoice-ltitle">发票抬头</view>
-						<view class="invoice-group tit">
-							<radio-group class="row-group radio" @change="radioChangeTitle">
-								<label class="row-input" v-for="(item, index) in invoiceTitleList" :key="item.value">
-									<radio class="row-radio" :value="item.value" :checked="index === titleCurrent" color="#FF5B00"/>
-									<view class="row-text">{{item.name}}</view>
-								</label>
-							</radio-group>
-						</view>
-						<view class="invoice-group from">
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '0'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写个人抬头" placeholder-class="placeholder" maxlength="20">
-							</view>
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写公司抬头" placeholder-class="placeholder" maxlength="20">
-							</view>
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.corporationTaxNum"   placeholder="请填写纳税人识别号" placeholder-class="placeholder" maxlength="20">
-							</view>
-						</view>
-					</view>
-					<view class="invoice-main" v-if="invoiceType == '1'">
-						<view class="invoice-none">不开具发票信息</view>
-					</view>
-				</view>
-				<view class="btn">
-					<view class="button add" @click="choiceaInvoiceConfim">完成</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'invoice',
-		data() {
-			return{
-				invoiceText:'不要发票',
-				specClass: '',//规格弹窗css类,控制开关动画
-				invoiceType:'1',//发票类型
-				current:0,
-				titleCurrent:0,
-				inventoryChecked:false,
-				invoiceTypeList:[
-					{value:'1',name:'不要发票'},
-					{value:'2',name:'增值税发票'},
-				],
-				invoiceTitleList:[
-					{value:'0',name:'个人'},
-					{value:'1',name:'公司'},
-				],
-				peopleInvoiceData:{
-					invoiceTitle:'',
-					invoiceContent:'',
-					corporationTaxNum:'',
-					invoiceTitleType:'0'//发票抬头类型 1企业 0个人
-				},
-				invoiceData:{
-					invoiceTitle:'',	 //单位名称
-					corporationTaxNum:'',//纳税人识别号
-					registeredAddress: '',//单位地址
-					registeredPhone:'',	 //注册电话
-					openBank:'',		//开户银行
-					bankAccountNo: ''  ,//银行账号
-				},
-			}
-		},
-		created(){
-			// this.initData(this.invoiceDatas)
-		},
-		computed: {
-
-		},
-		methods:{
-			getUseFindInvoice(){//获取发票信息
-				this.$api.getComStorage('orderUserInfo').then((resolve) =>{
-					this.OrderService.GetFindInvoice({userId:resolve.userId}).then(response =>{
-						if(response.data == null){
-							this.invoiceData = Object.assign(this.invoiceData,'',{type:0})
-						}else{
-							this.invoiceData = response.data
-						} 
-					})
-				})
-			},
-			updateInvoiceFn(){//保存发票信息
-				this.$api.getComStorage('orderUserInfo').then((resolve) =>{
-					let params =Object.assign(this.invoiceData,'',{userId:resolve.userId})
-					this.OrderService.UpdateInvoice(params).then(response =>{})
-				})
-			},
-			choiceaInvoiceConfim(){
-				switch(this.invoiceType){
-					case '1':
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-						break
-					// case '2':
-					// 	this.choiceaInvoiceTwo()
-					// 	this.invoiceText = this.peopleInvoiceData.invoiceTitle
-					// 	break;
-					case '2':
-						this.choiceaInvoiceFirst()
-						this.invoiceText = this.invoiceData.invoiceTitle
-						break
-						default:
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-				}
-			},
-			choiceaInvoiceFirst(){//增值税发票
-				if(this.invoiceData.invoiceTitle == ''){
-					this.$util.msg('请输入单位名称',2000)
-					return
-				}
-				if(this.invoiceData.corporationTaxNum == ''){
-					this.$util.msg('请输入纳税人识别号',2000)
-					return
-				}
-				if(this.invoiceData.registeredAddress == ''){
-					this.$util.msg('请输入单位地址',2000)
-					return
-				}
-				if(this.invoiceData.registeredPhone == ''){
-					this.$util.msg('请输入注册电话',2000)
-					return
-				}
-				if(this.invoiceData.openBank == ''){
-					this.$util.msg('请输入开户银行',2000)
-					return
-				}
-				if(this.invoiceData.bankAccountNo == ''){
-					this.$util.msg('请输入银行账号',2000)
-					return
-				}
-				this.updateInvoiceFn()
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:2}))
-				this.hideSpec()
-			},
-			choiceaInvoiceTwo(){//普通发票			
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '0':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入个人抬头',2000)
-							return
-						}
-						break
-					case '1':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入公司抬头',2000)
-							return
-						}
-						if(this.peopleInvoiceData.corporationTaxNum == ''){
-							this.$util.msg('请输入纳税人识别号',2000)
-							return
-						}
-						break
-				}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.peopleInvoiceData,'',{type:1}))
-				this.hideSpec()
-			},
-			choiceaInvoiceThree(){//不要发票
-				this.invoiceData = {}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:0}))
-				this.hideSpec()
-			},
-			hideSpec() {//关闭弹窗
-				this.specClass = 'hide'
-				setTimeout(() => {
-					this.specClass = 'none'
-				}, 200)
-			},
-			hanldOperationConfim(){//显示发票弹窗
-				this.specClass = 'show'
-			},
-			radioChange(e) {
-				this.invoiceType = e.target.value
-				for (let i = 0; i < this.invoiceTypeList.length; i++) {
-					if (this.invoiceTypeList[i].value === this.invoiceType) {
-						this.current = i
-						break
-					}
-				}
-				switch(this.invoiceType){
-					case '2':
-						this.getUseFindInvoice()
-						break
-				}		
-			},
-			radioChangeTitle(e) {
-				this.peopleInvoiceData.invoiceTitleType = e.target.value
-				for (let i = 0; i < this.invoiceTitleList.length; i++) {
-					if (this.invoiceTitleList[i].value === this.peopleInvoiceData.invoiceTitleType) {
-						this.titleCurrent = i
-						break
-					}
-				}
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '1':
-						this.inventoryChecked = false
-						this.peopleInvoiceData.invoiceTitle = ''
-						this.peopleInvoiceData.invoiceContent = ''
-						break
-				}		
-			},
-			checkboxChange(e){
-				this.inventoryChecked = !this.inventoryChecked
-				this.peopleInvoiceData.invoiceContent = e.detail.value[0]
-			},
-			inputBankNum(val) {
-				if (/\S{5}/.test(val)) {
-					this.invoiceData.bankAccountNo = val.replace(/\s/g, '').replace(/(.{4})/g, '$1 ')
-				}
-			},
-			discard(){
-				//丢弃
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.invoice-template{
-		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-		float: left;
-		.invoice-title{
-			width: 702rpx;
-			padding: 0 24rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			position: relative;
-			font-size: $font-size-28;
-			font-weight: bold;
-			border-bottom: 1px solid #EBEBEB;
-			.text{
-				font-size: $font-size-28;
-				color: $text-color;
-				font-weight: bold;
-			}
-			.invoice-right{
-				float: right;
-				color: #2A81FF;
-				.text-l{
-					margin-right: 40rpx;
-				}
-				.iconfont{
-					width: 50rpx;
-					height: 88rpx;
-					line-height: 88rpx;
-					color: #999999;
-					display: block;
-					position: absolute;
-					right: 0;
-					top: 0;
-				}
-			}
-		}
-		.invoice-text{
-			width: 702rpx;
-			padding: 0 24rpx;
-			font-size: $font-size-24;
-			color: #666666;
-			line-height: 60rpx;
-		}
-		.invoice-ltitle{
-			width: 100%;
-			line-height: 60rpx;
-			height: 60rpx;
-			font-size: $font-size-28;
-			color: #333333;
-		}
-		.invoice-radio{
-			width: 100%;
-			height: 88rpx;
-			line-height: 88rpx;
-			display: flex;
-			border-bottom: 1px solid #EBEBEB;
-			.row-group{
-				flex:1;
-				display: flex;
-			}
-			.row-input{
-				flex: 1;
-				height: 88rpx;
-				line-height: 88rpx;
-			}
-			.row-radio{
-				float: left;
-				transform: scale(0.6);
-			}
-			.row-text{
-				font-size: $font-size-24;
-				color: $text-color;
-			}
-		}
-		.invoice-main{
-			width: 100%;
-			height: auto;
-			margin-top: 30rpx;
-			&.from{
-				padding-bottom: 40rpx;
-			}
-			.invoice-none{
-				line-height: 60rpx;
-				height: 60rpx;
-				font-size: $font-size-24;
-				color: #666666;
-				text-align: center;
-			}
-			.invoice-from{
-				width: 662rpx;
-				height: 40rpx;
-				padding: 20rpx;
-				line-height: 40rpx;
-				align-items: flex-start;
-				font-size: $font-size-28;
-				color: $text-color;
-				// background: #F7F7F7;
-				// border-radius: 14rpx;
-				margin-bottom: 20rpx;
-				border-bottom: 2rpx solid #e1e1e1;
-				.label{
-					height: 40rpx;
-					line-height: 40rpx;
-					float: left;
-				}
-				.form-input{
-					height: 40rpx;
-					line-height: 40rpx;
-					flex-grow: 1;
-					padding-left: 20rpx;
-				}
-			}
-			.invoice-group{
-				width: 100%;
-				height: 88rpx;
-				display: flex;
-				border-bottom: 1px solid #EBEBEB;
-				&.tit{
-					margin-bottom: 30rpx;
-				}
-				&.from{
-					margin-bottom: 30rpx;
-					border-bottom: 1px solid #FFFFFF;
-					flex-direction: row;
-					display: block;
-					.group-from{
-						flex: 1;
-						height: 40rpx;
-						padding: 20rpx;
-						line-height: 40rpx;
-						align-items: flex-start;
-						font-size: $font-size-24;
-						color: $text-color;
-						background: #F7F7F7;
-						border-radius: 14rpx;
-						margin-bottom: 20rpx;
-						.form-input{
-							height: 40rpx;
-							line-height: 40rpx;
-							flex-grow: 1;
-						}
-					}
-				}
-				.row-group{
-					line-height: 88rpx;
-					flex: 1;
-					.text{
-						font-size: $font-size-24;
-						color: $text-color;
-						line-height: 88rpx;
-						float: left;
-					}
-					.row-radio{
-						float: right;
-						transform: scale(0.8);
-						border-radius: 50%;
-					}
-					&.radio{
-						display: flex;
-						.row-input{
-							flex: 1;
-							height: 88rpx;
-							line-height: 88rpx;
-						}
-						.row-radio{
-							float: left;
-							transform: scale(0.6);
-						}
-						.row-text{
-							font-size: $font-size-24;
-							color: $text-color;
-						}
-					}
-				}
-			}
-		}
-	}
-	/* 加入购物模态层*/
-	@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: absolute;
-			z-index: 22;
-			bottom: -1010rpx;
-			width: 702rpx;
-			padding: 24rpx 24rpx 65rpx 24rpx;
-			height: 920rpx;
-			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;
-				display: flex;
-				.button {
-					width: 702rpx;
-					height: 88rpx;
-					color: #fff;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					font-size: $font-size-28;
-					border-radius: 44rpx;
-					background: $btn-confirm;
-				}
-			}
-		}
-		
-		&.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: 88rpx;
-			padding: 13rpx 0 0 0;
-			float: left;
-			.layer-nunbox-t{
-				width: 100%;
-				height:44rpx;
-				position:relative;
-				display: flex;
-				.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 18rpx;
-						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;
-				}
-			}
-		}
-	}	
-	.placeholder{
-		color: #b2b2b2;
-	}
-</style>

+ 957 - 920
pages/seller/order/create-order.vue

@@ -1,97 +1,110 @@
 <template>
-	<view class="container order clearfix" :style="{paddingBottom :isIphoneX ? '190rpx' : '134rpx'}">
+	<view class="container order clearfix" :style="{ paddingBottom: isIphoneX ? '190rpx' : '134rpx' }">
 		<!-- 地址选择 -->
-		<choice-address ref="choiceAddress" v-if="isAddress" :addressData="addressData"></choice-address>
+		<cm-address-temp ref="choiceAddress" v-if="isAddress" :addressData="addressData" />
 		<!-- 商品 -->
-		<seller-goodsList ref='goods' v-if="isRequest" :secondflag="secondflag" :goodsData="goodsData" @handleGoodList="handChangeInputGoodsList"></seller-goodsList>
+		<cm-goods-temp
+			ref="goods"
+			v-if="isRequest"
+			:secondflag="secondflag"
+			:list="goodsData"
+			@handleGoodList="handChangeInputGoodsList"
+		/>
 		<!-- 返佣订单 -->
-		<view class="order-return" v-if="goodsData.length==1 && secondflag">
+		<view class="order-return" v-if="goodsData.length == 1 && secondflag">
 			<view class="order-return-main" @click="handleRebateFlag">
 				<view class="label">是否返佣</view>
 				<view class="label-right">
-					<text class="text-l">{{ rebateFeeText }}</text>
-					<text class="iconfont icon-xiayibu"></text>
+					<text class="text-l">{{ rebateFeeText }}</text> <text class="iconfont icon-xiayibu"></text>
 				</view>
 			</view>
 			<view class="order-return-input" v-if="confirmParam.payInfo.rebateFlag === 2">
-				<input class="input" v-model="rebateFee" type="number" placeholder="请输入返佣服务费" maxlength="20">
+				<input class="input" v-model="rebateFee" type="number" placeholder="请输入返佣服务费" maxlength="20" />
 			</view>
 		</view>
 		<!-- 返佣订单 -->
 		<view class="Rebate" @click="handleSecondFlag" v-if="!secondflag">
 			<text class="rebate-title">二手返佣订单</text>
-			<text class="iconfont" :class="rebatecheck?'icon-yixuanze':'icon-weixuanze'" ></text>
+			<text class="iconfont" :class="rebatecheck ? 'icon-yixuanze' : 'icon-weixuanze'"></text>
 		</view>
 		<!-- 发票信息 -->
-		<seller-invoice ref="invoice" 
-						v-if="isRequest" 
-						:invoiceDatas="invoiceData" 
-						@handleChoiceaInvoice="handleChoiceaInvoiceData">
-		</seller-invoice>
+		<cm-invice-popup
+			ref="invoice"
+			v-if="isRequest"
+			:invoiceDatas="invoiceData"
+			@handleChoiceaInvoice="handleChoiceaInvoiceData"
+		/>
 		<!-- 优惠券选择弹窗 -->
-		<sellerCoupon ref="coupon" 
-				v-if="isCouponShow"
-				:couponList="couponList" 
-				@handleChoiceaCoupon="handleChoiceaCouponData">
-		</sellerCoupon>
+		<cm-coupon-popup
+			ref="coupon"
+			v-if="isCouponShow"
+			:couponList="couponList"
+			@handleChoiceaCoupon="handleChoiceaCouponData"
+		/>
 		<!-- 兑换优惠券弹窗 -->
-		<sellerExchangeCoupon v-if="isExchangePopup"></sellerExchangeCoupon>
+		<cm-coupon-chang v-if="isExchangePopup" />
 		<!-- 运费 -->
-		<seller-freight ref="freight" 
-						v-if="isFreight" 
-						:freightDatas="freightData" 
-						@handleChoiceaFreight="handleChoiceaFreightData" 
-						@showFreightAlert="handFreightAlertShow">
-		</seller-freight>
-		<freight-alert v-if="isfreightTip" ref="csPhone"></freight-alert>
+		<cm-freight-popup
+			ref="freight"
+			v-if="isFreight"
+			:freightDatas="freightData"
+			@handleChoiceaFreight="handleChoiceaFreightData"
+			@showFreightAlert="handFreightAlertShow"
+		/>
 		<!-- 余额抵扣 -->
 		<view class="invoice-balance" v-if="!rechargeGoods">
 			<view class="balabce-t">
 				<view class="balabce-t-le">余额抵扣</view>
 				<view class="balabce-t-ri">
 					<view class="money">
-						<text>可用余额:</text>
-						<text>¥{{ userMoney | NumFormat }}</text>
+						<text>可用余额:</text> <text>¥{{ userMoney | NumFormat }}</text>
 					</view>
 					<view class="checkbox-box">
-						<button class="checkbox iconfont" 
-								hover-class="btn-hover"
-								v-if="userMoney!=0"
-								@click.stop="checkedBalabce"
-								:class="[ischecked ?'icon-yixuanze':'icon-weixuanze']"
-						>
-						</button>
+						<button
+							class="checkbox iconfont"
+							hover-class="btn-hover"
+							v-if="userMoney != 0"
+							@click.stop="checkedBalabce"
+							:class="[ischecked ? 'icon-yixuanze' : 'icon-weixuanze']"
+						></button>
 					</view>
 				</view>
 			</view>
-			<view class="balabce-b" :class="{'balabce-b--hide':!ischecked}">	
-				<view class="balabce-b-text animation" 
-					  :style="{'transform':ischecked?'translateY(0)':'translateY(-50%)','-webkit-transform':ischecked?'translateY(0)':'translateY(-50%)'}">
-					<text>当前使用:¥{{deductMoney | NumFormat}},剩余:¥{{ surplusMoney | NumFormat }}</text>
+			<view class="balabce-b" :class="{ 'balabce-b--hide': !ischecked }">
+				<view
+					class="balabce-b-text animation"
+					:style="{
+						transform: ischecked ? 'translateY(0)' : 'translateY(-50%)',
+						'-webkit-transform': ischecked ? 'translateY(0)' : 'translateY(-50%)'
+					}"
+				>
+					<text>当前使用:¥{{ deductMoney | NumFormat }},剩余:¥{{ surplusMoney | NumFormat }}</text>
 				</view>
 			</view>
 		</view>
 		<!-- 选择对机构是否可见 -->
-		<sellerClubVisible ref="clubVisible"  v-if="isRequest" @handleClubVisible="handleClubVisibleData"></sellerClubVisible>
+		<cm-club-visible ref="clubVisible" v-if="isRequest" @handleClubVisible="handleClubVisibleData" />
 		<!-- 售后条例 -->
-		<seller-regulations  ref="regulations"
-							 v-if="isRequest && seconDepositFlg" 
-							:regulaDatas="clauseList" 
-							@handleData="handleClauseData">
-		</seller-regulations>
-		<regula-alert v-if="isregulaTip" ref="csPhone"></regula-alert>
+		<cm-regula-popup
+			ref="regulations"
+			v-if="isRequest && seconDepositFlg"
+			:regulaDatas="clauseList"
+			@handleData="handleClauseData"
+		/>
 		<!-- 底部 -->
-		<view class="footer" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
+		<view class="footer" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
 			<view class="footer-le">
 				<view class="footer-count">
 					<text>共{{ totalCount }}件商品</text>
 				</view>
 				<view class="footer-price">
 					<view class="sum" :class="totalDiscountAmount == 0 ? 'none' : ''">
-						总价:<text class="price">¥{{orderShouldPayFee | NumFormat}}</text>
+						总价:<text class="price">¥{{ orderShouldPayFee | NumFormat }}</text>
 					</view>
 					<view class="sum-none" v-if="totalDiscountAmount > 0">
-						<text class="money-reduced">共减<text>¥{{ totalDiscountAmount  | NumFormat}}</text></text>
+						<text class="money-reduced"
+							>共减<text>¥{{ totalDiscountAmount | NumFormat }}</text></text
+						>
 					</view>
 				</view>
 			</view>
@@ -99,39 +112,6 @@
 				<view class="btn" :class="isSubLoading ? 'disabled' : ''">提交订单</view>
 			</view>
 		</view>
-		<!-- 优惠券 -->
-		<view class="coupon-content-model" v-if="isCouponModel">
-			<view class="coupon-alert-content">
-				<view class="coupon">
-					<view class="coupon-list">
-						<view class="list-cell-tags">{{ ExchangeCouponData.couponType | TypeFormat }}</text></view>
-						<view class="list-cell-le">
-							<view class="coupon-maxMoney">
-								<text class="small">¥</text>
-								{{ ExchangeCouponData.couponAmount }}
-							</view>
-							<view class="coupon-minMoney">
-								<text class="txt">满{{ ExchangeCouponData.touchPrice }}可用</text>
-							</view>
-						</view>
-						<view class="list-cell-ri">
-							<view class="list-cell-top">
-								<text v-if="ExchangeCouponData.couponType == 0">
-									{{ ExchangeCouponData.productType && ExchangeCouponData.productType == 1 ? '全商城商品通用' : '仅可购买指定商品'  }}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 1">
-									{{ ExchangeCouponData.categoryType == 1 ? '仅限购买产品类商品' : '仅限购买仪器类商品' }}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 3">仅限购买店铺【{{ ExchangeCouponData.shopName }}】的商品</text>
-								<text v-if="ExchangeCouponData.couponType == 4 || ExchangeCouponData.couponType == 2">全商城商品通用</text>
-							</view>
-							<view class="list-cell-time">{{ ExchangeCouponData.startDate  }} - {{ ExchangeCouponData.endDate }}</view>
-						</view>
-					</view>
-					<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
-				</view>
-			</view>
-		</view>
 		<!-- 弹窗提示 -->
 		<tui-modal
 			:show="modal"
@@ -149,946 +129,1003 @@
 </template>
 
 <script>
-	import freightAlert from '@/components/cm-module/modelAlert/freightAlert.vue'
-	import choiceAddress from './components/sellerAddress'  
-	import sellerGoodsList from './components/sellerGoodsList'
-	import sellerInvoice from './components/sellerInvoice'
-	import sellerFreight from './components/sellerFreight'
-	import sellerCoupon from './components/sellerCoupon'
-	import sellerExchangeCoupon from './components/sellerExchangeCoupon'
-	import sellerClubVisible from './components/sellerClubVisible'
-	import sellerRegulations from './components/sellerRegulations.vue'
-	
-	export default {
-		components:{
-			choiceAddress,
-			sellerGoodsList,
-			sellerInvoice,
-			sellerFreight,
-			sellerCoupon,
-			sellerExchangeCoupon,
-			sellerClubVisible,
-			freightAlert,
-			sellerRegulations
-		},
-		data() {
-			return {
-				isSubLoading:false,
-				modalButton: [
-					{
-						text: '再想一想',
-						type: 'gray',
-						plain: true //是否空心
-					},
-					{
-						text: '继续提交',
-						customStyle: {
-							color: '#fff',
-							bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
-						},
-						plain: false
-					}
-				],
-				contentModalText: '', //操作文字提示语句
-				modal: false,
-				showModalstauts:1,
-				isIphoneX:this.$store.state.isIphoneX,
-				cartParam: {// 购物车立即结算确认订单参数
-					skuIds:0,		// 商品Id(逗号隔开)
-					serviceProviderId:0,// 协销Id
-					clubId:0			// 机构Id
-				}, 		
-				productParam: {// 商品立即购买确认订单参数
-					productCount:0, 	// 商品数量
-					productId:0,		// 商品Id
-					serviceProviderId:0,// 协销Id
-					clubId:0			// 机构Id
-				}, 	
-				postageParam: {// 邮费计算参数
-					skuIds:0,			// 商品Id(逗号隔开)
-					userId:0,			// 用户Id
-					townId:0			// 地区Id
-				},	
-				confirmParam: {// 提交订单参数
-					cartType:3, 		// 购买类型:(1自主下单, 3协销下单)
-					orderMiniType:0,    // 订单提交状态 0初始提交 1 继续提交
-					orderSource:6,		// 订单来源 1WWW 6小程序[采美,星范]
-					addressId:0,		// 收货地址Id
-					clubCouponId:0,		// 关联优惠券Id
-					clubId:0,			// 机构Id
-					orderInfo:[],		// 订单商品数据
-					orderInvoice:{type:0},	// 订单发票信息
-					orderSeen:1,		// 订单对机构可见度 1可见  2不可见
-					payInfo:{			// 订单金额数据
-						isColdChina:0, 		//是否勾选冷链费
-						orderShouldPayFee: 0,	// 订单最终支付金额
-						balancePayFlag: 0,		// 勾选余额的状态(1使用,0不使用)
-						clauseId:0,				// 条款Id
-						postage: 0,				// 运费金额
-						postageFlag: 0,			// 运费类型
-						userBeans: 0,			// 抵扣采美豆数量
-						rebateFee:0, 			// 返佣服务费
-						rebateFlag:0			// 是否返佣订单
+import cmAddressTemp from './components/cm-address-temp'
+import cmGoodsTemp from './components/cm-goods-temp'
+import cmInvicePopup from './components/cm-invice-popup'
+import cmFreightPopup from './components/cm-freight-popup'
+import cmCouponPopup from './components/cm-coupon-popup'
+import cmCouponChang from './components/cm-coupon-chang'
+import cmClubVisible from './components/cm-club-visible'
+import cmRegulaPopup from './components/cm-regula-popup'
+import cmCouponTips from './components/cm-coupon-tips'
+
+export default {
+	components: {
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmInvicePopup,
+		cmFreightPopup,
+		cmCouponPopup,
+		cmCouponChang,
+		cmClubVisible,
+		cmRegulaPopup,
+		cmCouponTips
+	},
+	data() {
+		return {
+			isSubLoading: false,
+			modalButton: [
+				{
+					text: '再想一想',
+					type: 'gray',
+					plain: true //是否空心
+				},
+				{
+					text: '继续提交',
+					customStyle: {
+						color: '#fff',
+						bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
 					},
-					unionId:uni.getStorageSync('unionId'),// 用户unionId
-				}, 	
-				rebateFee:'',
-				rebateFeeText:'否',
-				confirmType:1,			  
-				submitState:'',  		  // 提交状态
-				totalCount:0,			  // 订单提交总数量
-				reducedPrice:0,			  // 满减金额
-				couponAmount:0,	  		  // 优惠券金额
-				totalDiscountAmount:0,	  // 共减金额
-				orderShouldPayFee:0.00,	  // 订单提交总金额
-				allPrice:0.00,			  // 订单总金额
-				surplusMoney:0.00,		  // 显示勾选后的剩余抵扣
-				userMoney:0.00,			  // 显示可使用余额
-				deductMoney:0.00,		  // 显示已使用的余额
-				isRequest:false,		  // 是否加载完成渲染子组件
-				isFreight:false,		  // 是否加载完成渲染子组件
-				isAddress:false,		  // 是否加载完成地址
-				isExchangePopup:false, 	  // 控制兑换优惠券弹窗
-				isfreightTip:false,		  // 控制邮费弹窗
-				ischecked:false,	      // 是否勾选余额
-				addressData:{},			  // 初始化地址信息
-				goodsData:[],			  // 初始化商品信息
-				couponList:[],		  	  // 初始化优惠券信息
-				invoiceData:{type:0},	  // 初始化发票信息
-				freightData:{},			  // 邮费数据
-				handleFreightData:{},	  // 监听邮费数据
-				orderInfo:[],			  // 提交的商品信息
-				payInfo:{},				  // 订单信息
-				rechargeGoods:false,
-				clauseList:[],
-				seconDepositFlg:true,
-				rebatecheck:false,
-				isCouponShow:false,		  // 是否显示可选优惠券
-				secondflag:true,
-				isCouponModel:false,	  // 兑换优惠券成功提示
-				ExchangeCouponData:{},	  // 兑换优惠券信息
-			}
-		},
-		onLoad(option){//商品数据
-			this.initStorage(option)
-		},
-		filters:{
-			NumFormat(value) {//处理金额
-				return Number(value).toFixed(2)
-			},
-		},
-		methods: {
-			async initStorage(option){
-					const data = JSON.parse(option.data)
-					const clubInfo = await this.$api.getComStorage('orderUserInfo')
-					const userInfo = await this.$api.getStorage()
-					this.productParam.clubId = this.cartParam.clubId = this.confirmParam.clubId = clubInfo.clubId ? clubInfo.clubId : 0
-					this.postageParam.userId = clubInfo.userId ? clubInfo.userId : 0
-					this.productParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					this.cartParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					this.confirmParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					if(option.type =='prodcut'){
-						this.confirmType = 1
-						this.productParam.productCount = data.data.productCount
-						this.productParam.productId = data.data.productIds
-						this.getInitProdcutCrearOrder()
-					}else{
-						this.confirmType = 2
-						this.cartParam.skuIds = data.data.skuIds
-						this.getInitCrearOrder()
-					}
-			},
-			getInitCrearOrder(){//协销购物车跳转确认订单初始化信息
-				this.SellerService.SellerSettlement(this.cartParam).then(response =>{
-					let data = response.data
-					this.isRequest = true
-					this.goodsData = data.list
-					this.userMoney = data.userMoney
-					this.couponList = data.couponList
-					this.reducedPrice = data.reducedPrice
-					this.totalCount = data.totalCount
-					this.allPrice = data.totalPrice
-					this.rechargeGoods = data.includeRecharge
-					this.clauseList = data.clauseList
-					this.postageParam.skuIds  = this.getProductIds(data.list)
-					this.isCouponShow = true
-					if(this.couponList.length>0){
-						this.couponAmount = data.couponList[0].couponAmount
-						this.confirmParam.clubCouponId = data.couponList[0].clubCouponId 
-					}
-					this.orderShouldPayFee = this.allPrice - this.couponAmount
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-					this.getAddressData()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
+					plain: false
+				}
+			],
+			contentModalText: '', //操作文字提示语句
+			modal: false,
+			showModalstauts: 1,
+			isIphoneX: this.$store.state.isIphoneX,
+			cartParam: {
+				// 购物车立即结算确认订单参数
+				skuIds: 0, // 商品Id(逗号隔开)
+				serviceProviderId: 0, // 协销Id
+				clubId: 0 // 机构Id
 			},
-			getInitProdcutCrearOrder(){//二手下单初始化查询
-				this.seconDepositFlg = false
-				this.SellerService.GetSettlementBySencondProduct(this.productParam).then(response =>{
-					const data = response.data
-					this.isRequest = true
-					this.goodsData = data.list
-					this.userMoney = data.userMoney
-					this.totalCount = data.totalCount
-					this.allPrice = data.totalPrice
-					this.orderShouldPayFee = this.allPrice
-					this.isCouponShow = false
-					this.secondflag = false
-					this.getAddressData()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
+			productParam: {
+				// 商品立即购买确认订单参数
+				productCount: 0, // 商品数量
+				productId: 0, // 商品Id
+				serviceProviderId: 0, // 协销Id
+				clubId: 0 // 机构Id
 			},
-			getProductIds(list){// 获取订单商品id列表
-				let skuId = []
-				list.forEach(function(supplier){
-					supplier.cartList.forEach(function(product){
-						skuId.push(product.skuId)
-					})
-				})
-				return skuId.join(',')
+			postageParam: {
+				// 邮费计算参数
+				skuIds: 0, // 商品Id(逗号隔开)
+				userId: 0, // 用户Id
+				townId: 0 // 地区Id
 			},
-			getFreightData(){//获取邮费信息
-				this.OrderService.GetOrderPostage(this.postageParam).then(response =>{
-					let data = response.data
-					this.freightData  = data
-					this.handleFreightData = data
-					this.isFreight = true
-					if(data.postageFlag== 1){
-						this.orderShouldPayFee = this.allPrice + data.postage
-						this.attributePallPrice()
-					}else{
-						this.orderShouldPayFee = this.allPrice
-						this.attributePallPrice()
-					}
-				})
+			confirmParam: {
+				// 提交订单参数
+				cartType: 3, // 购买类型:(1自主下单, 3协销下单)
+				orderMiniType: 0, // 订单提交状态 0初始提交 1 继续提交
+				orderSource: 6, // 订单来源 1WWW 6小程序[采美,星范]
+				addressId: 0, // 收货地址Id
+				clubCouponId: 0, // 关联优惠券Id
+				clubId: 0, // 机构Id
+				orderInfo: [], // 订单商品数据
+				orderInvoice: { type: 0 }, // 订单发票信息
+				orderSeen: 1, // 订单对机构可见度 1可见  2不可见
+				payInfo: {
+					// 订单金额数据
+					isColdChina: 0, //是否勾选冷链费
+					orderShouldPayFee: 0, // 订单最终支付金额
+					balancePayFlag: 0, // 勾选余额的状态(1使用,0不使用)
+					clauseId: 0, // 条款Id
+					postage: 0, // 运费金额
+					postageFlag: 0, // 运费类型
+					userBeans: 0, // 抵扣采美豆数量
+					rebateFee: 0, // 返佣服务费
+					rebateFlag: 0 // 是否返佣订单
+				},
+				unionId: uni.getStorageSync('unionId') // 用户unionId
 			},
-			async getAddressData(){//获取地址信息
-				const clubInfo = await this.$api.getComStorage('orderUserInfo')
-				this.UserService.QueryAddressList(
-					{
-						pageNum:1,
-						pageSize:1,
-						userId:clubInfo.userId,
-					}
-				).then(response =>{
-					let data = response.data
-					this.isAddress = true
-					this.addressData = {}
-					if(response.data.results != ''){
-						this.confirmParam.addressId = data.list[0].addressId
-						this.postageParam.townId = data.list[0].townId
-						this.addressData = data.list[0]
-						this.getFreightData()
-					}else{
-						this.addressData = this.addressData
-					}
+			rebateFee: '',
+			rebateFeeText: '否',
+			confirmType: 1,
+			submitState: '', // 提交状态
+			totalCount: 0, // 订单提交总数量
+			reducedPrice: 0, // 满减金额
+			couponAmount: 0, // 优惠券金额
+			totalDiscountAmount: 0, // 共减金额
+			orderShouldPayFee: 0.0, // 订单提交总金额
+			allPrice: 0.0, // 订单总金额
+			surplusMoney: 0.0, // 显示勾选后的剩余抵扣
+			userMoney: 0.0, // 显示可使用余额
+			deductMoney: 0.0, // 显示已使用的余额
+			isRequest: false, // 是否加载完成渲染子组件
+			isFreight: false, // 是否加载完成渲染子组件
+			isAddress: false, // 是否加载完成地址
+			isExchangePopup: false, // 控制兑换优惠券弹窗
+			isfreightTip: false, // 控制邮费弹窗
+			ischecked: false, // 是否勾选余额
+			addressData: {}, // 初始化地址信息
+			goodsData: [], // 初始化商品信息
+			couponList: [], // 初始化优惠券信息
+			invoiceData: { type: 0 }, // 初始化发票信息
+			freightData: {}, // 邮费数据
+			handleFreightData: {}, // 监听邮费数据
+			orderInfo: [], // 提交的商品信息
+			payInfo: {}, // 订单信息
+			rechargeGoods: false,
+			clauseList: [],
+			seconDepositFlg: true,
+			rebatecheck: false,
+			isCouponShow: false, // 是否显示可选优惠券
+			secondflag: true,
+			isCouponModel: false, // 兑换优惠券成功提示
+			ExchangeCouponData: {} // 兑换优惠券信息
+		}
+	},
+	onLoad(option) {
+		//商品数据
+		this.initStorage(option)
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		}
+	},
+	methods: {
+		async initStorage(option) {
+			const data = JSON.parse(option.data)
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			const userInfo = await this.$api.getStorage()
+			this.productParam.clubId = this.cartParam.clubId = this.confirmParam.clubId = clubInfo.clubId
+			this.postageParam.userId = clubInfo.userId 
+			this.productParam.serviceProviderId = userInfo.serviceProviderId 
+			this.cartParam.serviceProviderId = userInfo.serviceProviderId 
+			this.confirmParam.serviceProviderId = userInfo.serviceProviderId 
+			if (option.type == 'prodcut') {
+				this.confirmType = 1
+				this.productParam.productCount = data.data.productCount
+				this.productParam.productId = data.data.productIds
+				this.getInitProdcutCrearOrder()
+			} else {
+				this.confirmType = 2
+				this.cartParam.skuIds = data.data.skuIds
+				this.getInitCrearOrder()
+			}
+		},
+		//协销购物车跳转确认订单初始化信息
+		async getInitCrearOrder() {
+			try{
+				const res = await this.SellerService.SellerSettlement(this.cartParam)
+				const data = res.data
+				this.goodsData = data.list
+				this.userMoney = data.userMoney
+				this.couponList = data.couponList
+				this.reducedPrice = data.reducedPrice
+				this.totalCount = data.totalCount
+				this.allPrice = data.totalPrice
+				this.rechargeGoods = data.includeRecharge
+				this.clauseList = data.clauseList
+				this.postageParam.skuIds = this.getProductIds(data.list)
+				this.isCouponShow = true
+				if (this.couponList.length > 0) {
+					this.couponAmount = data.couponList[0].couponAmount
+					this.confirmParam.clubCouponId = data.couponList[0].clubCouponId
+				}
+				this.orderShouldPayFee = this.allPrice - this.couponAmount
+				this.totalDiscountAmount = this.reducedPrice + this.couponAmount
+				this.isRequest = true
+				this.getAddressData()
+			}catch(error){
+				console.log('获取订单信息异常')
+			}
+		},
+		//二手下单初始化查询
+		async getInitProdcutCrearOrder() {
+			try{
+				this.seconDepositFlg = false
+				const res = await this.SellerService.GetSettlementBySencondProduct(this.productParam)
+				const data = res.data
+				this.goodsData = data.list
+				this.userMoney = data.userMoney
+				this.totalCount = data.totalCount
+				this.allPrice = data.totalPrice
+				this.orderShouldPayFee = this.allPrice
+				this.isCouponShow = false
+				this.secondflag = false
+				this.isRequest = true
+				this.getAddressData()
+			}catch(error){
+				console.log('获取订单信息异常')
+			}
+		},
+		// 获取订单商品id列表
+		getProductIds(list) {
+			let skuId = []
+			list.forEach(function(supplier) {
+				supplier.cartList.forEach(function(product) {
+					skuId.push(product.skuId)
 				})
-			},
-			handChangeInputGoodsList(data){//对应供应商的留言信息
-				this.goodsData = data
-			},
-			handleChoiceaInvoiceData(data){//获取发票信息
-				this.confirmParam.orderInvoice = data
-			},
-			handleChoiceaFreightData(data){//获取运费信息
-				console.log('编辑运费信息',data)
-				if(data.postageFlag == 1){
-					this.handleFreightData = data
-					this.orderShouldPayFee = this.allPrice + parseInt(data.postage)
+			})
+			return skuId.join(',')
+		},
+		//获取邮费信息
+		async getFreightData() {
+			try{
+				const res = await this.OrderService.GetOrderPostage(this.postageParam)
+				const data = res.data
+				this.freightData = data
+				this.handleFreightData = data
+				this.isFreight = true
+				if (data.postageFlag == 1) {
+					this.orderShouldPayFee = this.allPrice + data.postage
 					this.attributePallPrice()
-				}else{
-					this.handleFreightData = data
+				} else {
 					this.orderShouldPayFee = this.allPrice
 					this.attributePallPrice()
 				}
-			},
-			handleClauseData(clauseId){// 条款Id
-				this.confirmParam.payInfo.clauseId = parseInt(clauseId)
-			},
-			handleChoiceaCouponData(data){// 勾选使用优惠券
-				console.log('优惠券信息',data)
-				this.couponAmount = data.couponAmount
-				this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-				this.confirmParam.clubCouponId = data.clubCouponId
+			}catch(error){
+				console.log('获取运费信息异常')
+			}
+		},
+		async getAddressData() {
+			//获取地址信息
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			this.UserService.QueryAddressList({
+				pageNum: 1,
+				pageSize: 1,
+				userId: clubInfo.userId
+			}).then(response => {
+				let data = response.data
+				this.isAddress = true
+				this.addressData = {}
+				if (response.data.results != '') {
+					this.confirmParam.addressId = data.list[0].addressId
+					this.postageParam.townId = data.list[0].townId
+					this.addressData = data.list[0]
+					this.getFreightData()
+				} else {
+					this.addressData = this.addressData
+				}
+			})
+		},
+		handChangeInputGoodsList(data) {
+			//对应供应商的留言信息
+			this.goodsData = data
+		},
+		handleChoiceaInvoiceData(data) {
+			//获取发票信息
+			this.confirmParam.orderInvoice = data
+		},
+		handleChoiceaFreightData(data) {
+			//获取运费信息
+			console.log('编辑运费信息', data)
+			if (data.postageFlag == 1) {
+				this.handleFreightData = data
+				this.orderShouldPayFee = this.allPrice + parseInt(data.postage)
 				this.attributePallPrice()
-			},
-			handleClubVisibleData(data){// 订单对机构是否可见
-				console.log('对机构是否可见',data)
-				this.confirmParam.orderSeen = Number(data) 
-			},
-			checkedBalabce(){//勾选使用余额
-				if(this.rebatecheck){
-					this.$util.msg('返佣订单不能使用余额抵扣',2000)
-				}else{
-					if(this.userMoney > 0){
-						this.ischecked = !this.ischecked
-						if(this.ischecked){
-							this.confirmParam.payInfo.balancePayFlag = 1
-							this.attributePallPrice()
-						}else{
-							this.confirmParam.payInfo.balancePayFlag = 0
-							if( this.handleFreightData.postageFlag == 1 ){
-								this.orderShouldPayFee = this.allPrice + parseInt(this.handleFreightData.postage) - this.couponAmount
-							}else{
-								this.orderShouldPayFee = this.allPrice - this.couponAmount
-							}
+			} else {
+				this.handleFreightData = data
+				this.orderShouldPayFee = this.allPrice
+				this.attributePallPrice()
+			}
+		},
+		handleClauseData(clauseId) {
+			// 条款Id
+			this.confirmParam.payInfo.clauseId = parseInt(clauseId)
+		},
+		handleChoiceaCouponData(data) {
+			// 勾选使用优惠券
+			console.log('优惠券信息', data)
+			this.couponAmount = data.couponAmount
+			this.totalDiscountAmount = this.reducedPrice + this.couponAmount
+			this.confirmParam.clubCouponId = data.clubCouponId
+			this.attributePallPrice()
+		},
+		handleClubVisibleData(data) {
+			// 订单对机构是否可见
+			console.log('对机构是否可见', data)
+			this.confirmParam.orderSeen = Number(data)
+		},
+		checkedBalabce() {
+			//勾选使用余额
+			if (this.rebatecheck) {
+				this.$util.msg('返佣订单不能使用余额抵扣', 2000)
+			} else {
+				if (this.userMoney > 0) {
+					this.ischecked = !this.ischecked
+					if (this.ischecked) {
+						this.confirmParam.payInfo.balancePayFlag = 1
+						this.attributePallPrice()
+					} else {
+						this.confirmParam.payInfo.balancePayFlag = 0
+						if (this.handleFreightData.postageFlag == 1) {
+							this.orderShouldPayFee =
+								this.allPrice + parseInt(this.handleFreightData.postage) - this.couponAmount
+						} else {
+							this.orderShouldPayFee = this.allPrice - this.couponAmount
 						}
-						console.log('最终订单支付金额',this.orderShouldPayFee)
-						console.log('优惠券金额',this.couponAmount)
-					}else{
-						return
 					}
+					console.log('最终订单支付金额', this.orderShouldPayFee)
+					console.log('优惠券金额', this.couponAmount)
+				} else {
+					return
 				}
-			},	
-			attributePallPrice(){//计算价格
-				if( this.handleFreightData.postageFlag == 1){
-					this.attributeHashfreight(this.handleFreightData.postage)
-				}else{
-					this.attributeNofreight()
-				}
-			},
-			attributeNofreight(){//计算没有邮费的支付价格
-				if(this.ischecked){
-					let totalAmount = this.allPrice - this.couponAmount//计算不包邮的价格 总价等于商品价格+邮费
-					if(this.userMoney > totalAmount){
-						this.orderShouldPayFee = 0.00
-						this.deductMoney = this.allPrice - this.couponAmount		// 勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    // 勾选后的剩余抵扣
-					}else{
-						this.orderShouldPayFee = this.allPrice - this.userMoney -	this.couponAmount //勾选后的总价
-						this.deductMoney = this.userMoney				            // 勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    // 勾选后的剩余抵扣
-					}
-				}else{
-					this.orderShouldPayFee = this.allPrice  - this.couponAmount
-					this.deductMoney = 0.00
-					this.surplusMoney = this.userMoney
+			}
+		},
+		attributePallPrice() {
+			//计算价格
+			if (this.handleFreightData.postageFlag == 1) {
+				this.attributeHashfreight(this.handleFreightData.postage)
+			} else {
+				this.attributeNofreight()
+			}
+		},
+		attributeNofreight() {
+			//计算没有邮费的支付价格
+			if (this.ischecked) {
+				let totalAmount = this.allPrice - this.couponAmount //计算不包邮的价格 总价等于商品价格+邮费
+				if (this.userMoney > totalAmount) {
+					this.orderShouldPayFee = 0.0
+					this.deductMoney = this.allPrice - this.couponAmount // 勾选后使用抵余额
+					this.surplusMoney = this.userMoney - this.deductMoney // 勾选后的剩余抵扣
+				} else {
+					this.orderShouldPayFee = this.allPrice - this.userMoney - this.couponAmount //勾选后的总价
+					this.deductMoney = this.userMoney // 勾选后使用抵余额
+					this.surplusMoney = this.userMoney - this.deductMoney // 勾选后的剩余抵扣
 				}
-				console.log('最终订单支付金额',this.orderShouldPayFee)
-				console.log('优惠券金额',this.couponAmount)
-			},
-			attributeHashfreight(postage){//计算需要邮费的支付价格
-				let totalAmount = this.allPrice + parseInt(postage) - this.couponAmount//计算不包邮的价格 总价等于商品价格+邮费
-				if(this.ischecked){
-					if(this.userMoney > totalAmount ){							//余额大于支付金额
-						this.orderShouldPayFee = 0.00
-						this.deductMoney = this.allPrice + parseInt(postage) - this.couponAmount			//勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    //勾选后的剩余抵扣
-					}else{
-						this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.userMoney  - this.couponAmount       	//勾选后的总价
-						this.deductMoney = this.userMoney				            //勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    //勾选后的剩余抵扣
-					}
-				}else{
-					this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.couponAmount
-					this.deductMoney = 0.00
-					this.surplusMoney = this.userMoney
+			} else {
+				this.orderShouldPayFee = this.allPrice - this.couponAmount
+				this.deductMoney = 0.0
+				this.surplusMoney = this.userMoney
+			}
+			console.log('最终订单支付金额', this.orderShouldPayFee)
+			console.log('优惠券金额', this.couponAmount)
+		},
+		attributeHashfreight(postage) {
+			//计算需要邮费的支付价格
+			let totalAmount = this.allPrice + parseInt(postage) - this.couponAmount //计算不包邮的价格 总价等于商品价格+邮费
+			if (this.ischecked) {
+				if (this.userMoney > totalAmount) {
+					//余额大于支付金额
+					this.orderShouldPayFee = 0.0
+					this.deductMoney = this.allPrice + parseInt(postage) - this.couponAmount //勾选后使用抵余额
+					this.surplusMoney = this.userMoney - this.deductMoney //勾选后的剩余抵扣
+				} else {
+					this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.userMoney - this.couponAmount //勾选后的总价
+					this.deductMoney = this.userMoney //勾选后使用抵余额
+					this.surplusMoney = this.userMoney - this.deductMoney //勾选后的剩余抵扣
 				}
-				console.log('最终订单支付金额',this.orderShouldPayFee)
-				console.log('优惠券金额',this.couponAmount)
-			},
-			orderSubmitMit(){//提交订单
-				if(this.confirmParam.addressId == ''){
-					this.$util.msg('请先添加收货地址~',2000)
+			} else {
+				this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.couponAmount
+				this.deductMoney = 0.0
+				this.surplusMoney = this.userMoney
+			}
+			console.log('最终订单支付金额', this.orderShouldPayFee)
+			console.log('优惠券金额', this.couponAmount)
+		},
+		orderSubmitMit() {
+			//提交订单
+			if (this.confirmParam.addressId == '') {
+				this.$util.msg('请先添加收货地址~', 2000)
+				return
+			}
+			if (this.confirmParam.payInfo.rebateFlag === 2) {
+				if (this.rebateFee == 0) {
+					this.$util.msg('请输入返佣服务费', 2000)
 					return
 				}
-				if(this.confirmParam.payInfo.rebateFlag ===2){
-					if(this.rebateFee == 0){
-						this.$util.msg('请输入返佣服务费',2000)
-						return
-					}
-					this.confirmParam.payInfo.rebateFee = Number(this.rebateFee).toFixed(2)
-				}
-				this.modal = true
-				this.contentModalText = '请仔细确认订单是否为返佣订单后再提交订单'
-			},
-			SellerCreateOrderSubmit(){
-				//提交订单
-				if(this.isSubLoading){ return }
-				this.confirmParam.orderInfo = this.goodsData.map(el => {
-					let productInfo = []
-					el.cartList.forEach(pros => {
-						productInfo.push({
-							skuId:pros.skuId,
-							productNum:pros.number,
-							presentNum:0,
-							productType:pros.giftType
-						})
+				this.confirmParam.payInfo.rebateFee = Number(this.rebateFee).toFixed(2)
+			}
+			this.modal = true
+			this.contentModalText = '请仔细确认订单是否为返佣订单后再提交订单'
+		},
+		SellerCreateOrderSubmit() {
+			//提交订单
+			if (this.isSubLoading) {
+				return
+			}
+			this.confirmParam.orderInfo = this.goodsData.map(el => {
+				let productInfo = []
+				el.cartList.forEach(pros => {
+					productInfo.push({
+						skuId: pros.skuId,
+						productNum: pros.number,
+						presentNum: 0,
+						productType: pros.giftType
 					})
-					return {splitCode:el.splitCode,shopId:el.shopId,note:el.note?el.note:'',productInfo:productInfo}
 				})
-				this.confirmParam.payInfo.postage = parseInt(this.handleFreightData.postage).toFixed(2)
-				this.confirmParam.payInfo.postageFlag = parseInt(this.handleFreightData.postageFlag)
-				this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
-				this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
-				this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
-				this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
-				this.isSubLoading = true	
-				this.hanldeOrderSubmit(this.confirmParam)
-			},
-			hanldeOrderSubmit(params){// 提交订单
-				this.SellerService.SellerCreateOrderSubmit(params).then(response =>{
+				return {
+					splitCode: el.splitCode,
+					shopId: el.shopId,
+					note: el.note ? el.note : '',
+					productInfo: productInfo
+				}
+			})
+			this.confirmParam.payInfo.postage = parseInt(this.handleFreightData.postage).toFixed(2)
+			this.confirmParam.payInfo.postageFlag = parseInt(this.handleFreightData.postageFlag)
+			this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
+			this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
+			this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
+			this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
+			this.isSubLoading = true
+			this.hanldeOrderSubmit(this.confirmParam)
+		},
+		hanldeOrderSubmit(params) {
+			// 提交订单
+			this.SellerService.SellerCreateOrderSubmit(params)
+				.then(response => {
 					const data = response.data
-					if(data.code === 1){
-						this.$util.msg('支付成功',2000,true,'success')
-						setTimeout(() =>{
+					if (data.code === 1) {
+						this.$util.msg('支付成功', 2000, true, 'success')
+						setTimeout(() => {
 							this.isSubLoading = false
-							this.$api.redirectTo(`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${this.postageParam.userId}`)
-						},2000)
-					}else{
-						this.$util.msg('订单提交成功',2000,true,'success')
-						setTimeout(()=>{
+							this.$api.redirectTo(
+								`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${
+									this.postageParam.userId
+								}`
+							)
+						}, 2000)
+					} else {
+						this.$util.msg('订单提交成功', 2000, true, 'success')
+						setTimeout(() => {
 							this.isSubLoading = false
-							this.$api.redirectTo(`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${this.postageParam.userId}`)
-						},2000)
+							this.$api.redirectTo(
+								`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${
+									this.postageParam.userId
+								}`
+							)
+						}, 2000)
 					}
-				}).catch(error =>{
+				})
+				.catch(error => {
 					this.isSubLoading = false
 					this.handleError(error)
 				})
-			},
-			handleError(data){// 提交订单异常处理
-				this.formatConfirmParam()
-				const buttonMap = {
-						1:{
-							contentModalText :  '订单内存在械字号三类商品,需要拥有医疗执业许可证的医美机构才能购买。建议升级医美机构后再下单,否则会导致订单退款或影响发货。',
-							modalButton :  [
-								{ text: '取消',  type: 'gray', plain: true },
-								{ text: '继续提交', customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },plain: false }
-							]
+		},
+		handleError(data) {
+			// 提交订单异常处理
+			this.formatConfirmParam()
+			const buttonMap = {
+				1: {
+					contentModalText:
+						'订单内存在械字号三类商品,需要拥有医疗执业许可证的医美机构才能购买。建议升级医美机构后再下单,否则会导致订单退款或影响发货。',
+					modalButton: [
+						{ text: '取消', type: 'gray', plain: true },
+						{
+							text: '继续提交',
+							customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
+							plain: false
 						}
+					]
 				}
-				if(data.code === -6){// 非医美机构下三类商品订单
-					this.modal = true
-					this.showModalstauts = 2
-					this.contentModalText = buttonMap[1].contentModalText
-					this.modalButton= buttonMap[1].modalButton
-				}else{
-					this.$util.msg(error.msg,3000)
-				}
-			},
-			formatConfirmParam(){// 还原提交订单参数格式
-				this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
-				this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
-				this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
-			},
-			handleRebateFlag(){// 普通订单返佣
-				let self = this
-				uni.showActionSheet({
-					itemList: ['返佣订单', '普通订单,存在返佣服务费','否'],
-					success: (e) => {
-						switch(e.tapIndex){
-							case 0:
-								self.confirmParam.payInfo.rebateFlag = 1
-								self.rebateFeeText = '返佣订单'
-								break
-							case 1:
-								self.confirmParam.payInfo.rebateFlag = 2
-								self.rebateFeeText = '普通订单,存在返佣服务费'
-								break
-							case 2:
-								self.confirmParam.payInfo.rebateFlag = 0
-								self.rebateFeeText = '否'
-								break
-						}
-					}
-				})
-				if(this.confirmParam.payInfo.rebateFlag ===1){
-					this.confirmParam.payInfo.balancePayFlag = 0
-					this.couponAmount = 0
-					this.confirmParam.clubCouponId = 0
-					this.confirmParam.orderSeen = 2
-					this.$refs.clubVisible.orderVisibleText = '不可见'
-					this.$refs.clubVisible.current = 1
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-					this.$refs.coupon.coupon.couponAmount = 0
-					this.$refs.freight.infoData(this.freightData)
-					this.$refs.freight.freightData  = this.freightData
-					this.handleFreightData = this.freightData
-				}else{
-					this.confirmParam.orderSeen = 1
-					this.$refs.clubVisible.orderVisibleText = '可见'
-					if(this.couponList.length>0){
-						this.confirmParam.clubCouponId = this.couponList[0].clubCouponId 
-						this.$refs.coupon.coupon.couponAmount = this.couponAmount = this.couponList[0].couponAmount
+			}
+			if (data.code === -6) {
+				// 非医美机构下三类商品订单
+				this.modal = true
+				this.showModalstauts = 2
+				this.contentModalText = buttonMap[1].contentModalText
+				this.modalButton = buttonMap[1].modalButton
+			} else {
+				this.$util.msg(error.msg, 3000)
+			}
+		},
+		formatConfirmParam() {
+			// 还原提交订单参数格式
+			this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
+			this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
+			this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
+		},
+		handleRebateFlag() {
+			// 普通订单返佣
+			let self = this
+			uni.showActionSheet({
+				itemList: ['返佣订单', '普通订单,存在返佣服务费', '否'],
+				success: e => {
+					switch (e.tapIndex) {
+						case 0:
+							self.confirmParam.payInfo.rebateFlag = 1
+							self.rebateFeeText = '返佣订单'
+							break
+						case 1:
+							self.confirmParam.payInfo.rebateFlag = 2
+							self.rebateFeeText = '普通订单,存在返佣服务费'
+							break
+						case 2:
+							self.confirmParam.payInfo.rebateFlag = 0
+							self.rebateFeeText = '否'
+							break
 					}
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount 
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
 				}
-			},
-			handleClick(e){
-				//确认提交
-				if (e.index == 1) {
-					if(this.showModalstauts == 2){
-						this.confirmParam.orderMiniType = 2
-						this.SellerCreateOrderSubmit()
-					}else{
-						this.SellerCreateOrderSubmit()
-					}
+			})
+			if (this.confirmParam.payInfo.rebateFlag === 1) {
+				this.confirmParam.payInfo.balancePayFlag = 0
+				this.couponAmount = 0
+				this.confirmParam.clubCouponId = 0
+				this.confirmParam.orderSeen = 2
+				this.$refs.clubVisible.orderVisibleText = '不可见'
+				this.$refs.clubVisible.current = 1
+				this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
+				this.totalDiscountAmount = this.reducedPrice + this.couponAmount
+				this.$refs.coupon.coupon.couponAmount = 0
+				this.$refs.freight.infoData(this.freightData)
+				this.$refs.freight.freightData = this.freightData
+				this.handleFreightData = this.freightData
+			} else {
+				this.confirmParam.orderSeen = 1
+				this.$refs.clubVisible.orderVisibleText = '可见'
+				if (this.couponList.length > 0) {
+					this.confirmParam.clubCouponId = this.couponList[0].clubCouponId
+					this.$refs.coupon.coupon.couponAmount = this.couponAmount = this.couponList[0].couponAmount
 				}
-				this.confirmParam.orderMiniType = 0
-				this.modal = false
-			},
-			handleSecondFlag(){// 二手订单勾选返佣
-				this.rebatecheck = !this.rebatecheck
-				if(this.rebatecheck){
-					this.ischecked = false
-					this.confirmParam.payInfo.rebateFlag=1
-					this.confirmParam.payInfo.balancePayFlag = 0
-					this.confirmParam.clubCouponId = 0
-					this.confirmParam.orderSeen = 2
-					this.$refs.clubVisible.orderVisibleText = '不可见'
-					this.$refs.clubVisible.current = 1
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
-					this.$refs.freight.infoData(this.freightData)
-					this.$refs.freight.freightData  = this.freightData
-					this.handleFreightData = this.freightData
-				}else{
-					this.confirmParam.orderSeen = 1
-					this.$refs.clubVisible.orderVisibleText = '可见'
-					this.confirmParam.payInfo.rebateFlag=0
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
+				this.totalDiscountAmount = this.reducedPrice + this.couponAmount
+				this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
+			}
+		},
+		handleClick(e) {
+			//确认提交
+			if (e.index == 1) {
+				if (this.showModalstauts == 2) {
+					this.confirmParam.orderMiniType = 2
+					this.SellerCreateOrderSubmit()
+				} else {
+					this.SellerCreateOrderSubmit()
 				}
-			},
-			handFreightAlertShow(){//显示邮费弹窗
-				this.isfreightTip = true
-			},
-			handleClickCancel(){// 关闭优惠券弹窗
-				this.isCouponModel = false
-				this.getInitCrearOrder()
-			},
-			hideFreight(){//关闭邮费弹窗
-				this.isfreightTip = false
-			},
-			hideMobel() {
-				this.modal = false
-			},
+			}
+			this.confirmParam.orderMiniType = 0
+			this.modal = false
 		},
-		onShow() {
-			let pages = getCurrentPages()
-			let currPage = pages[pages.length-1]
-			if(currPage.data.select =='select'){
-				this.isAddress = true
-				let SelectData = uni.getStorageSync('selectAddress')
-				this.confirmParam.addressId = SelectData.addressId
-				this.postageParam.townId = SelectData.townId 
-				this.addressData = SelectData
-				this.getFreightData()
-			}else{
-				this.getAddressData()
+		handleSecondFlag() {
+			// 二手订单勾选返佣
+			this.rebatecheck = !this.rebatecheck
+			if (this.rebatecheck) {
+				this.ischecked = false
+				this.confirmParam.payInfo.rebateFlag = 1
+				this.confirmParam.payInfo.balancePayFlag = 0
+				this.confirmParam.clubCouponId = 0
+				this.confirmParam.orderSeen = 2
+				this.$refs.clubVisible.orderVisibleText = '不可见'
+				this.$refs.clubVisible.current = 1
+				this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
+				this.$refs.freight.infoData(this.freightData)
+				this.$refs.freight.freightData = this.freightData
+				this.handleFreightData = this.freightData
+			} else {
+				this.confirmParam.orderSeen = 1
+				this.$refs.clubVisible.orderVisibleText = '可见'
+				this.confirmParam.payInfo.rebateFlag = 0
+				this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
 			}
+		},
+		handFreightAlertShow() {
+			//显示邮费弹窗
+			this.isfreightTip = true
+		},
+		handleClickCancel() {
+			// 关闭优惠券弹窗
+			this.isCouponModel = false
+			this.getInitCrearOrder()
+		},
+		hideFreight() {
+			//关闭邮费弹窗
+			this.isfreightTip = false
+		},
+		hideMobel() {
+			this.modal = false
+		}
+	},
+	onShow() {
+		let pages = getCurrentPages()
+		let currPage = pages[pages.length - 1]
+		if (currPage.data.select == 'select') {
+			this.isAddress = true
+			let SelectData = uni.getStorageSync('selectAddress')
+			this.confirmParam.addressId = SelectData.addressId
+			this.postageParam.townId = SelectData.townId
+			this.addressData = SelectData
+			this.getFreightData()
+		} else {
+			this.getAddressData()
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	page {
-		height: auto;
-		background:#F7F7F7;
-	}
-	.btn-hover{
-		background: #FFFFFF;
+page {
+	height: auto;
+	background: #f7f7f7;
+}
+.btn-hover {
+	background: #ffffff;
+}
+.animation {
+	/* transition: transform 0.3s ease;*/
+	transition-property: transform;
+	transition-duration: 0.3s;
+	transition-timing-function: ease;
+}
+.invoice-freight {
+	width: 702rpx;
+	padding: 0 24rpx;
+	height: 86rpx;
+	line-height: 86rpx;
+	font-size: $font-size-28;
+	color: $text-color;
+	background: #ffffff;
+	float: left;
+	font-weight: bold;
+	.freight-left {
+		float: left;
+		.icon-yunfeishuoming {
+			height: 100%;
+			padding: 0 15rpx;
+			color: $color-system;
+			font-weight: normal;
+		}
 	}
-	.animation{
-		/* transition: transform 0.3s ease;*/
-		transition-property: transform;
-		transition-duration: 0.3s;
-		transition-timing-function: ease;
+	.freight-right {
+		float: right;
+		color: #2a81ff;
 	}
-	.invoice-freight{
-		width: 702rpx;
-		padding: 0 24rpx;
+}
+.invoice-balance {
+	width: 702rpx;
+	height: auto;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	margin-bottom: 24rpx;
+	.balabce-t {
+		width: 100%;
 		height: 86rpx;
 		line-height: 86rpx;
 		font-size: $font-size-28;
 		color: $text-color;
-		background: #FFFFFF;
 		float: left;
-		font-weight: bold;
-		.freight-left{
+		.balabce-t-le {
 			float: left;
-			.icon-yunfeishuoming{
-				height: 100%;
-				padding: 0 15rpx;
-				color: $color-system;
-				font-weight: normal;
-			}
+			font-weight: bold;
 		}
-		.freight-right{
+		.balabce-t-ri {
 			float: right;
-			color: #2A81FF;
-		}
-	}
-	.invoice-balance{
-		width: 702rpx;
-		height: auto;
-		padding:0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		margin-bottom: 24rpx;
-		.balabce-t{
-			width: 100%;
-			height: 86rpx;
-			line-height: 86rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			float: left;
-			.balabce-t-le{
+			display: flex;
+			align-items: center;
+			.money {
+				display: flex;
 				float: left;
-				font-weight: bold;
 			}
-			.balabce-t-ri{
-				float: right;
+			.checkbox-box {
 				display: flex;
-				align-items: center;
-				.money{
-					display: flex;
-					float: left;
-				}
-				.checkbox-box{
-					display: flex;
-					width: 60rpx;
-					float: left;
-					height: 100%;
-					font-size: $font-size-24;
-					.checkbox{
-						width: 40rpx;
-						text-align: right;
-						box-sizing: border-box;
-						text-align: center;
-						text-decoration: none;
-						border-radius: 0;
-						-webkit-tap-highlight-color: transparent;
-						overflow: hidden;
-						color: $color-system;
-						padding: 5rpx;
-					}
-				}	
-			}
-		}
-		.balabce-b{
-			width: 100%;	
-			float: left;
-			overflow: hidden;
-			.balabce-b-text{
-				width: 100%;
-				line-height: 58rpx;
+				width: 60rpx;
+				float: left;
+				height: 100%;
 				font-size: $font-size-24;
-				color: #FF2A2A;
-				text-align: right;
-				float: right;
+				.checkbox {
+					width: 40rpx;
+					text-align: right;
+					box-sizing: border-box;
+					text-align: center;
+					text-decoration: none;
+					border-radius: 0;
+					-webkit-tap-highlight-color: transparent;
+					overflow: hidden;
+					color: $color-system;
+					padding: 5rpx;
+				}
 			}
-			&.balabce-b--hide {
-				padding: 0 0;
-				height: 0px;
-				line-height: 0px;
-			}	
 		}
 	}
-	.footer{
-		position: fixed;
-		left: 0;
-		bottom: 0;
-		display: flex;
-		align-items: center;
+	.balabce-b {
 		width: 100%;
-		height: 110rpx;
-		line-height: 110rpx;
-		justify-content: space-between;
-		font-size: $font-size-28;
-		background-color: #FFFFFF;
-		z-index: 990;
-		color: $text-color;
-		.footer-le{
-			width:570rpx;
-			height:100%;
-			float: left;
+		float: left;
+		overflow: hidden;
+		.balabce-b-text {
+			width: 100%;
+			line-height: 58rpx;
+			font-size: $font-size-24;
+			color: #ff2a2a;
+			text-align: right;
+			float: right;
 		}
-		.footer-count{
-			float: left;
-			padding-left: 24rpx;
-			width:190rpx;
-			box-sizing: border-box;
-			font-size: $font-size-26;
+		&.balabce-b--hide {
+			padding: 0 0;
+			height: 0px;
+			line-height: 0px;
 		}
-		.footer-price{
-			width:370rpx;
-			float: right;
-			text-align: right;
+	}
+}
+.footer {
+	position: fixed;
+	left: 0;
+	bottom: 0;
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 110rpx;
+	line-height: 110rpx;
+	justify-content: space-between;
+	font-size: $font-size-28;
+	background-color: #ffffff;
+	z-index: 990;
+	color: $text-color;
+	.footer-le {
+		width: 570rpx;
+		height: 100%;
+		float: left;
+	}
+	.footer-count {
+		float: left;
+		padding-left: 24rpx;
+		width: 190rpx;
+		box-sizing: border-box;
+		font-size: $font-size-26;
+	}
+	.footer-price {
+		width: 370rpx;
+		float: right;
+		text-align: right;
+		color: $text-color;
+		padding: 10rpx 20rpx 10rpx 0;
+		box-sizing: border-box;
+		.sum-none {
+			width: 100%;
+			height: 45rpx;
+			line-height: 45rpx;
 			color: $text-color;
-			padding: 10rpx 20rpx 10rpx 0;
-			box-sizing: border-box;
-			.sum-none{
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				color: $text-color;
-				float: left;
-				text-align: right;
-				.money{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-reduced{
-					margin-left: 10rpx;
-					font-size: $font-size-26;
-					color:$color-system;
-				}
+			float: left;
+			text-align: right;
+			.money {
+				font-size: $font-size-26;
+				color: #999999;
+				text-decoration: line-through;
 			}
-			.sum{
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				float: left;
-				&.none{
-					height: 90rpx;
-					line-height: 90rpx;
-				}
-				.price{
-					font-size: $font-size-32;
-					color: #FF2A2A;
-				}
+			.money-sign {
+				font-size: $font-size-26;
+				color: #999999;
+				text-decoration: line-through;
 			}
-			
-		}
-		.footer-submit{
-			display:flex;
-			align-items:center;
-			justify-content: center;
-			width: 180rpx;
-			height: 100%;
-			box-sizing: border-box;
-			padding: 15rpx 5rpx;
-			.btn{
-				width: 100%;
-				height: 100%;
-				color: #FFFFFF;
-				background:linear-gradient(90deg, #FF9300 0%, #FF5B00 100%);
+			.money-reduced {
+				margin-left: 10rpx;
 				font-size: $font-size-26;
-				text-align: center;
-				line-height: 80rpx;
-				border-radius: 40rpx;
-				&.disabled{
-					background: #e4e8eb;
-					color: #999999;
-				}
+				color: $color-system;
 			}
 		}
-	}
-	.order-return{
-		width: 100%;
-		height: auto;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin: 24rpx 0;
-		.order-return-main{
-			width:100%;
-			height: 86rpx;
-			line-height: 86rpx;
-			.label{
-				float: left;
-				font-weight: bold;
-				color: #333333;
-				font-size: $font-size-28;
+		.sum {
+			width: 100%;
+			height: 45rpx;
+			line-height: 45rpx;
+			float: left;
+			&.none {
+				height: 90rpx;
+				line-height: 90rpx;
 			}
-			.label-right{
-				float: right;
-				color: #2A81FF;
-				.text-l{
-					font-size: 28rpx;
-					font-weight: bold;
-					margin-right: 20rpx;
-				}
-				.icon-xiayibu{
-					line-height: 88rpx;
-					color: #999999;
-					font-weight: normal;
-				}
+			.price {
+				font-size: $font-size-32;
+				color: #ff2a2a;
 			}
-			
 		}
-		.order-return-input{
+	}
+	.footer-submit {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 180rpx;
+		height: 100%;
+		box-sizing: border-box;
+		padding: 15rpx 5rpx;
+		.btn {
 			width: 100%;
-			height: 86rpx;
-			padding-bottom: 20rpx;
-			box-sizing: border-box;
-			.input{
-				width: 100%;
-				height: 66rpx;
-				font-size: $font-size-26;
-				border: 1px solid #e1e1e1;
-				line-height: 66rpx;
-				color: #333333;
-				border-radius: 4rpx;
-				box-sizing: border-box;
-				padding: 0 20rpx;
+			height: 100%;
+			color: #ffffff;
+			background: linear-gradient(90deg, #ff9300 0%, #ff5b00 100%);
+			font-size: $font-size-26;
+			text-align: center;
+			line-height: 80rpx;
+			border-radius: 40rpx;
+			&.disabled {
+				background: #e4e8eb;
+				color: #999999;
 			}
 		}
 	}
-	.Rebate{
-		width: 702rpx;
-		height: auto;
-		padding: 0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin-bottom: 24rpx;
-		margin-top: 24rpx;
+}
+.order-return {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin: 24rpx 0;
+	.order-return-main {
+		width: 100%;
+		height: 86rpx;
 		line-height: 86rpx;
-		.rebate-title{
+		.label {
 			float: left;
 			font-weight: bold;
 			color: #333333;
 			font-size: $font-size-28;
 		}
-		.iconfont{
+		.label-right {
 			float: right;
-			color: #b2b2b2;
-			font-size: 40rpx;
-			&.icon-yixuanze{
-				color: $color-system;
+			color: #2a81ff;
+			.text-l {
+				font-size: 28rpx;
+				font-weight: bold;
+				margin-right: 20rpx;
+			}
+			.icon-xiayibu {
+				line-height: 88rpx;
+				color: #999999;
+				font-weight: normal;
 			}
 		}
 	}
-	.coupon-content-model{
+	.order-return-input {
 		width: 100%;
-		height: 100%;
-		background: rgba(0,0,0,.5);
-		position: fixed;
+		height: 86rpx;
+		padding-bottom: 20rpx;
+		box-sizing: border-box;
+		.input {
+			width: 100%;
+			height: 66rpx;
+			font-size: $font-size-26;
+			border: 1px solid #e1e1e1;
+			line-height: 66rpx;
+			color: #333333;
+			border-radius: 4rpx;
+			box-sizing: border-box;
+			padding: 0 20rpx;
+		}
+	}
+}
+.Rebate {
+	width: 702rpx;
+	height: auto;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin-bottom: 24rpx;
+	margin-top: 24rpx;
+	line-height: 86rpx;
+	.rebate-title {
+		float: left;
+		font-weight: bold;
+		color: #333333;
+		font-size: $font-size-28;
+	}
+	.iconfont {
+		float: right;
+		color: #b2b2b2;
+		font-size: 40rpx;
+		&.icon-yixuanze {
+			color: $color-system;
+		}
+	}
+}
+.coupon-content-model {
+	width: 100%;
+	height: 100%;
+	background: rgba(0, 0, 0, 0.5);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 8888;
+	transition: all 0.4s;
+	.coupon-alert-content {
+		width: 600rpx;
+		height: 612rpx;
+		position: absolute;
 		top: 0;
 		left: 0;
-		z-index: 8888;
-		transition: all 0.4s;
-		.coupon-alert-content{
+		bottom: 0;
+		right: 0;
+		margin: auto;
+		box-sizing: border-box;
+		padding-top: 92rpx;
+		.coupon {
 			width: 600rpx;
-			height: 612rpx;
-			position: absolute;
-			top: 0;
-			left: 0;
-			bottom: 0;
-			right: 0;
-			margin: auto;
+			height: 522rpx;
+			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
+			background-size: cover;
 			box-sizing: border-box;
-			padding-top: 92rpx;
-			.coupon{
-				width: 600rpx;
-				height: 522rpx;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
-				background-size: cover;
+			padding: 230rpx 40rpx 0 40rpx;
+			.coupon-list {
+				width: 100%;
+				height: 147rpx;
+				margin-bottom: 32rpx;
 				box-sizing: border-box;
-				padding: 230rpx 40rpx 0 40rpx;
-				.coupon-list{
-					width: 100%;
-					height: 147rpx;
-					margin-bottom: 32rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
+				background-size: cover;
+				position: relative;
+				.list-cell-tags {
+					display: inline-block;
+					padding: 0 10rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					background-color: #f94b4b;
+					color: #ffffff;
+					font-size: 18rpx;
+					border-radius: 16rpx 0 16rpx 0;
+					text-align: center;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				.list-cell-le {
+					width: 154rpx;
+					height: 100%;
 					box-sizing: border-box;
-					background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
-					background-size: cover;
-					position: relative;
-					.list-cell-tags{
-						display: inline-block;
-						padding: 0 10rpx;
-						height: 32rpx;
-						line-height: 32rpx;
-						background-color: #f94b4b;
-						color: #FFFFFF;
-						font-size: 18rpx;
-						border-radius: 16rpx 0 16rpx 0;
+					padding: 30rpx 0;
+					float: left;
+					.coupon-maxMoney {
+						width: 100%;
+						height: 54rpx;
+						line-height: 54rpx;
+						font-size: 42rpx;
+						color: #f94b4b;
 						text-align: center;
-						position: absolute;
-						top: 0;
-						left: 0;
+						margin-top: 10rpx;
+						.small {
+							font-size: $font-size-20;
+						}
 					}
-					.list-cell-le{
-						width: 154rpx;
-						height: 100%;
-						box-sizing: border-box;
-						padding: 30rpx 0;
+					.coupon-minMoney {
+						width: 100%;
+						height: 28rpx;
 						float: left;
-						.coupon-maxMoney{
-							width: 100%;
-							height: 54rpx;
-							line-height: 54rpx;
-							font-size: 42rpx;
+						box-sizing: border-box;
+						padding-left: 24rpx;
+						.txt {
+							display: block;
+							height: 28rpx;
+							line-height: 28rpx;
+							font-size: 16rpx;
 							color: #f94b4b;
 							text-align: center;
-							margin-top: 10rpx;
-							.small{
-								font-size: $font-size-20;
-							}
-						}
-						.coupon-minMoney{
-							width: 100%;
-							height: 28rpx;
+							padding: 0 5rpx;
+							background-color: #fff1eb;
+							border-radius: 4rpx;
 							float: left;
-							box-sizing: border-box;
-							padding-left: 24rpx;
-							.txt{
-								display: block;
-								height: 28rpx;
-								line-height: 28rpx;
-								font-size: 16rpx;
-								color: #f94b4b;
-								text-align: center;
-								padding: 0 5rpx;
-								background-color: #fff1eb;
-								border-radius: 4rpx;
-								float: left;
-							}
 						}
 					}
-					.list-cell-ri{
-						width: 366rpx;
-						height: 100%;
-						box-sizing: border-box;
-						padding:30rpx 20rpx;
+				}
+				.list-cell-ri {
+					width: 366rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 20rpx;
+					float: left;
+					.list-cell-top {
+						width: 100%;
+						height: 64rpx;
+						line-height: 64rpx;
+						font-size: $font-size-26;
+						color: #333333;
 						float: left;
-						.list-cell-top{
-							width: 100%;
-							height: 64rpx;
-							line-height: 64rpx;
-							font-size: $font-size-26;
-							color: #333333;
-							float: left;
-							text-overflow:ellipsis;
-							display: -webkit-box;
-							word-break: break-all;
-							-webkit-box-orient: vertical;
-							-webkit-line-clamp: 1;
-							overflow: hidden;
-						}
-						.list-cell-time{
-							width: 100%;
-							height: 28rpx;
-							line-height: 28rpx;
-							text-align: left;
-							font-size: $font-size-20;
-							color: #999999;
-						}
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					.list-cell-time {
+						width: 100%;
+						height: 28rpx;
+						line-height: 28rpx;
+						text-align: left;
+						font-size: $font-size-20;
+						color: #999999;
 					}
 				}
-				.coupon-btn{
-					width: 100%;
-					height: 78rpx;
-					background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
-					background-size: cover;
-					line-height: 78rpx;
-					text-align: center;
-					color: #FFFFFF;
-					font-size: $font-size-36;
-				}
+			}
+			.coupon-btn {
+				width: 100%;
+				height: 78rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
+				background-size: cover;
+				line-height: 78rpx;
+				text-align: center;
+				color: #ffffff;
+				font-size: $font-size-36;
 			}
 		}
 	}
+}
 </style>

+ 36 - 78
pages/seller/order/order-club-details.vue

@@ -1,12 +1,7 @@
 <template>
 	<view class="container details clearfix" :style="{ paddingBottom: isIphoneX ? 130 + 68 + 'rpx' : '130rpx' }">
 		<!-- 自定义返回 -->
-		<header-back
-			:systeminfo="systeminfo"
-			:navbar-data="nvabarData"
-			:headerBtnPosi="headerBtnPosi"
-			:isShare="isOrderShare"
-		></header-back>
+		<header-back :systeminfo="systeminfo" :navbar-data="nvabarData" :headerBtnPosi="headerBtnPosi" :isShare="isOrderShare" />
 		<view class="container-details" :style="{ paddingTop: navbarHeight + 'px' }">
 			<view class="status-text">
 				<view class="view-type">{{ information.status | TextFormat }}</view>
@@ -27,37 +22,21 @@
 				>
 			</view>
 			<!-- 地址选择 -->
-			<order-address
-				ref="orderAddress"
-				v-if="isRequest && !rechargeGoods"
-				:addressData="addressData"
-			></order-address>
+			<cm-address-temp ref="orderAddress" v-if="isRequest && !rechargeGoods" :addressData="addressData" /> 
+			<!-- 特殊商品退货须知 -->
+			<view class="return-instructions" v-if="returnGoodsStutas" v-html="helpContent"></view>
 			<!-- 商品 -->
-			<goods-list
-				ref="goods"
-				v-if="isRequest"
-				:shopOrderData="shopOrderData"
-				:information="information"
-				@popupClick="hanldePopupFn"
-			></goods-list>
+			<cm-goods-temp ref="goods" v-if="isRequest" :shopOrderData="shopOrderData" :information="information" @popupClick="hanldePopupFn" />
 			<!-- 订单信息 -->
-			<order-information ref="information" v-if="isRequest" :information="information"></order-information>
+			<cm-order-temp ref="information" v-if="isRequest" :information="information"/>
 			<!-- 发票信息 -->
-			<invoice-tent ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice"></invoice-tent>
+			<cm-invice-temp ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice" />
 			<!-- 支付记录 -->
-			<payment-record
-				ref="payment"
-				v-if="isRequest"
-				:discernReceiptList="discernReceiptList"
-				:receiptAmount="receiptAmount"
-			></payment-record>
+			<cm-payment-temp ref="payment" v-if="isRequest" :discernReceiptList="discernReceiptList" :receiptAmount="receiptAmount" />
 			<!-- 退款记录 -->
-			<refund-record
-				ref="refund"
-				v-if="!isManage"
-				:returnedPurchaseList="returnedPurchaseList"
-				:returnedPurchaseFee="returnedPurchaseFee"
-			></refund-record>
+			<cm-refund-temp ref="refund" v-if="isRequest" :returnedPurchaseList="returnedPurchaseList" :returnedPurchaseFee="returnedPurchaseFee" />
+			<!-- 支付凭证记录 -->
+			<cm-voucher-temp ref="voucher" v-if="skeletonShow && voucherList.length > 0" :list="voucherList" />
 			<view
 				class="clause"
 				v-if="information.secondHandOrderFlag != 1"
@@ -68,36 +47,13 @@
 					clauseData.name
 				}}</label>
 			</view>
-			<!-- 底部button -->
-<!-- 			<order-button
-				ref="orderButton"
-				v-if="isRequest"
-				:status="btnStatus"
-				:order="information"
-				:rechargeGoods="rechargeGoods"
-				:ableUserMoney="ableUserMoney"
-				:shareCode="shareCode"
-				:serviceProviderId="serviceProviderId"
-				:secondHandOrderFlag="information.secondHandOrderFlag"
-				@buttonConfirm="handButtonConfirm"
-			>
-			</order-button> -->
 		</view>
 		<!-- 付款弹窗 -->
-		<order-model
-			v-if="isPayModel"
-			:payModelData="payModelData"
-			:modelType="modelType"
-			@paymentConfirm="hanldPaymentConfirm"
-		/>
+		<cm-orderpay-popup v-if="isPayModel" :payModelData="payModelData" :modelType="modelType" @paymentConfirm="hanldPaymentConfirm" />
 		<!-- 分享弹窗 -->
-		<share-alert :orderId="orderId" 
-					 :shareType="isShareType"
-					 v-if="isShareModal" 
-					 @shareConfirm="onShareAppMessage"> 
-		</share-alert>
+		<cm-share-popup :orderId="orderId" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 促销活动弹窗 -->
-		<activi-popup :Promotion="handlerPros" :popupShow="popupShow"></activi-popup>
+		<cm-promote-popup :Promotion="handlerPros" :popupShow="popupShow" />
 		<!-- 再来一单 -->
 		<view class="aganBj" v-show="showAgan">
 			<view class="alertAgan">
@@ -120,30 +76,32 @@
 <script>
 import { mapState, mapMutations } from 'vuex'
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
-import orderAddress from '../components/cm-seller-address.vue' //地址信息
-import goodsList from '@/components/cm-module/orderDetails/goodsList' //商品列表
-import invoiceTent from '@/components/cm-module/orderDetails/invoiceTent' //发票信息
-import orderInformation from '@/components/cm-module/orderDetails/orderInformation' //订单信息
-import paymentRecord from '@/components/cm-module/orderDetails/paymentRecord' //支付记录
-import refundRecord from '@/components/cm-module/orderDetails/refundRecord' //退款记录
-import orderButton from './components/sellerDetaileButton' //底部按钮
-import shareAlert from './components/sellerShareAlert.vue' //分享弹窗
-import orderModel from '@/components/cm-module/modelAlert/order-alert' //付款弹窗
-import activiPopup from '@/components/cm-module/orderDetails/activipopu' //促销活动弹窗
+import cmAddressTemp from './components/details/cm-address-temp' //地址信息
+import cmGoodsTemp from './components/details/cm-goods-temp' //商品列表
+import cmOrderTemp from './components/details/cm-order-temp' //订单信息
+import cmInviceTemp from './components/details/cm-invice-temp' //发票信息
+import cmPaymentTemp from './components/details/cm-payment-temp' //支付记录
+import cmRefundTemp from './components/details/cm-refund-temp' //退款记录
+import cmVoucherTemp from './components/details/cm-voucher-temp' //退款记录
+import cmDetailsButton from './components/cm-details-button' //底部按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
+import cmPrderpayPopup from './components/cm-orderpay-popup' //付款弹窗
+import cmPromotePopup from './components/details/cm-promote-popup' //促销活动弹窗
 
 export default {
 	components: {
 		headerBack,
-		orderInformation,
-		orderAddress,
-		invoiceTent,
-		goodsList,
-		paymentRecord,
-		refundRecord,
-		orderButton,
-		shareAlert,
-		orderModel,
-		activiPopup
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmOrderTemp,
+		cmInviceTemp,
+		cmPaymentTemp,
+		cmRefundTemp,
+		cmVoucherTemp,
+		cmDetailsButton,
+		cmSharePopup,
+		cmPrderpayPopup,
+		cmPromotePopup
 	},
 	data() {
 		return {

+ 37 - 65
pages/seller/order/order-details.vue

@@ -1,12 +1,7 @@
 <template>
 	<view class="container details clearfix" :style="{ paddingBottom: isIphoneX ? 130 + 68 + 'rpx' : '130rpx' }">
 		<!-- 自定义返回 -->
-		<header-back
-			:systeminfo="systeminfo"
-			:navbar-data="nvabarData"
-			:headerBtnPosi="headerBtnPosi"
-			:isShare="isOrderShare"
-		></header-back>
+		<header-back :systeminfo="systeminfo" :navbar-data="nvabarData" :headerBtnPosi="headerBtnPosi" :isShare="isOrderShare" />
 		<view class="container-details" :style="{ paddingTop: navbarHeight + 'px' }">
 			<view class="status-text">
 				<view class="view-type">{{ information.status | TextFormat }}</view>
@@ -26,41 +21,23 @@
 					"
 					>自主</text
 				>
-			</view>
+			</view> 
 			<!-- 地址选择 -->
-			<order-address
-				ref="orderAddress"
-				v-if="isRequest && !rechargeGoods"
-				:addressData="addressData"
-			></order-address> 
+			<cm-address-temp ref="orderAddress" v-if="isRequest && !rechargeGoods" :addressData="addressData" /> 
             <!-- 特殊商品退货须知 -->
             <view class="return-instructions" v-if="returnGoodsStutas" v-html="helpContent"></view>
 			<!-- 商品 -->
-			<goods-list
-				ref="goods"
-				v-if="isRequest"
-				:shopOrderData="shopOrderData"
-				:information="information"
-				@popupClick="hanldePopupFn"
-			></goods-list>
+			<cm-goods-temp ref="goods" v-if="isRequest" :shopOrderData="shopOrderData" :information="information" @popupClick="hanldePopupFn" />
 			<!-- 订单信息 -->
-			<order-information ref="information" v-if="isRequest" :information="information"></order-information>
+			<cm-order-temp ref="information" v-if="isRequest" :information="information"/>
 			<!-- 发票信息 -->
-			<invoice-tent ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice"></invoice-tent>
+			<cm-invice-temp ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice" />
 			<!-- 支付记录 -->
-			<payment-record
-				ref="payment"
-				v-if="isRequest"
-				:discernReceiptList="discernReceiptList"
-				:receiptAmount="receiptAmount"
-			></payment-record>
+			<cm-payment-temp ref="payment" v-if="isRequest" :discernReceiptList="discernReceiptList" :receiptAmount="receiptAmount" />
 			<!-- 退款记录 -->
-			<refund-record
-				ref="refund"
-				v-if="isRequest"
-				:returnedPurchaseList="returnedPurchaseList"
-				:returnedPurchaseFee="returnedPurchaseFee"
-			></refund-record>
+			<cm-refund-temp ref="refund" v-if="isRequest" :returnedPurchaseList="returnedPurchaseList" :returnedPurchaseFee="returnedPurchaseFee" />
+			<!-- 支付凭证记录 -->
+			<cm-voucher-temp ref="voucher" v-if="skeletonShow && voucherList.length > 0" :list="voucherList" />
 			<view
 				class="clause"
 				v-if="information.secondHandOrderFlag != 1"
@@ -72,7 +49,7 @@
 				}}</label>
 			</view>
 			<!-- 底部button -->
-			<order-button
+			<cm-details-button
 				ref="orderButton"
 				v-if="isRequest"
 				:status="btnStatus"
@@ -83,21 +60,14 @@
 				:serviceProviderId="serviceProviderId"
 				:secondHandOrderFlag="information.secondHandOrderFlag"
 				@buttonConfirm="handButtonConfirm"
-			>
-			</order-button>
+			/>
 		</view>
 		<!-- 付款弹窗 -->
-		<order-model
-			v-if="isPayModel"
-			:payModelData="payModelData"
-			:modelType="modelType"
-			@paymentConfirm="hanldPaymentConfirm"
-		/>
+		<cm-orderpay-popup v-if="isPayModel" :payModelData="payModelData" :modelType="modelType" @paymentConfirm="hanldPaymentConfirm" />
 		<!-- 分享弹窗 -->
-		<share-alert :orderId="orderId" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage">
-		</share-alert>
+		<cm-share-popup :orderId="orderId" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 促销活动弹窗 -->
-		<activi-popup :Promotion="handlerPros" :popupShow="popupShow"></activi-popup>
+		<cm-promote-popup :Promotion="handlerPros" :popupShow="popupShow" />
 		<!-- 再来一单 -->
 		<view class="aganBj" v-show="showAgan">
 			<view class="alertAgan">
@@ -119,30 +89,32 @@
 
 <script>
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
-import orderAddress from '@/components/cm-module/orderDetails/orderAddress' //地址信息
-import goodsList from '@/components/cm-module/orderDetails/goodsList' //商品列表
-import invoiceTent from '@/components/cm-module/orderDetails/invoiceTent' //发票信息
-import orderInformation from '@/components/cm-module/orderDetails/orderInformation' //订单信息
-import paymentRecord from '@/components/cm-module/orderDetails/paymentRecord' //支付记录
-import refundRecord from '@/components/cm-module/orderDetails/refundRecord' //退款记录
-import orderButton from './components/sellerDetaileButton' //底部按钮
-import shareAlert from './components/sellerShareAlert.vue' //分享弹窗
-import orderModel from '@/components/cm-module/modelAlert/order-alert' //付款弹窗
-import activiPopup from '@/components/cm-module/orderDetails/activipopu' //促销活动弹窗
+import cmAddressTemp from './components/details/cm-address-temp' //地址信息
+import cmGoodsTemp from './components/details/cm-goods-temp' //商品列表
+import cmOrderTemp from './components/details/cm-order-temp' //订单信息
+import cmInviceTemp from './components/details/cm-invice-temp' //发票信息
+import cmPaymentTemp from './components/details/cm-payment-temp' //支付记录
+import cmRefundTemp from './components/details/cm-refund-temp' //退款记录
+import cmVoucherTemp from './components/details/cm-voucher-temp' //退款记录
+import cmDetailsButton from './components/cm-details-button' //底部按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
+import cmPrderpayPopup from './components/cm-orderpay-popup' //付款弹窗
+import cmPromotePopup from './components/details/cm-promote-popup' //促销活动弹窗
 
 export default {
 	components: {
 		headerBack,
-		orderInformation,
-		orderAddress,
-		invoiceTent,
-		goodsList,
-		paymentRecord,
-		refundRecord,
-		orderButton,
-		shareAlert,
-		orderModel,
-		activiPopup
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmOrderTemp,
+		cmInviceTemp,
+		cmPaymentTemp,
+		cmRefundTemp,
+		cmVoucherTemp,
+		cmDetailsButton,
+		cmSharePopup,
+		cmPrderpayPopup,
+		cmPromotePopup
 	},
 	data() {
 		return {

+ 7 - 12
pages/seller/order/order-historylist.vue

@@ -208,7 +208,7 @@
 									</view>
 								</view>
 								<!-- 底部button -->
-								<order-button
+								<cm-list-button
 									ref="orderButton"
 									v-if="clubSpId === serviceProviderId"
 									:status="order.status"
@@ -218,8 +218,7 @@
 									:userId="order.userId"
 									:secondHandOrderFlag="order.secondHandOrderFlag"
 									@buttonConfirm="handButtonConfirm"
-								>
-								</order-button>
+								/>
 							</view>
 							<!--加载loadding-->
 							<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -235,7 +234,7 @@
 			</swiper-item>
 		</swiper>
 		<!-- 分享弹窗 -->
-		<share-alert v-if="isShareModal" :shareType="isShareType" :orderId="btnoRderID" @shareConfirm="onShareAppMessage"> </share-alert>
+		<cm-share-popup :orderId="btnoRderID" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 透明模态层 -->
 		<modal-layer v-if="isModalLayer"></modal-layer>
 		<!-- 再来一单弹窗 -->
@@ -261,23 +260,19 @@
 import { mapState, mapMutations } from 'vuex'		
 import headerBack from '@/components/cm-module/headerNavbar/header-back' // 自定义顶部导航
 import btSearch from '@/components/uni-search/bt-search.vue' // 搜索
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import orderButton from './components/sellerOrderButton' // 操作按钮
 import modalLayer from '@/components/modal-layer'
 import empty from '@/components/empty'
-import shareAlert from './components/sellerShareAlert.vue' // 分享弹窗
+import cmListButton from './components/cm-list-button' //操作按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
 
 export default {
 	components: {
 		headerBack,
 		empty,
 		btSearch,
-		tuiLoadmore,
-		tuiNomore,
-		orderButton,
 		modalLayer,
-		shareAlert
+		cmListButton,
+		cmSharePopup,
 	},
 	data() {
 		return {

+ 9 - 22
pages/seller/order/order-list.vue

@@ -9,8 +9,7 @@
 			:isUsertype="1"
 			:screenTab="screenTab"
 			@goSearchPath="handlSearchPath"
-		>
-		</header-back>
+		/>
 		<view class="order-section-top" :style="{ marginTop: navbarHeight + 'px' }">
 			<scroll-view scroll-x scroll-with-animation class="tab-view" :scroll-left="scrollLeft">
 				<view
@@ -231,7 +230,7 @@
 									</view>
 								</view>
 								<!-- 底部button -->
-								<order-button
+								<cm-list-button
 									ref="orderButton"
 									v-if="screenTab != 3"
 									:status="order.status"
@@ -241,8 +240,7 @@
 									:userId="order.userId"
 									:secondHandOrderFlag="order.secondHandOrderFlag"
 									@buttonConfirm="handButtonConfirm"
-								>
-								</order-button>
+								/>
 							</view>
 							<!--加载loadding-->
 							<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -258,13 +256,7 @@
 			</swiper-item>
 		</swiper>
 		<!-- 分享弹窗 -->
-		<share-alert
-			v-if="isShareModal"
-			:orderId="btnoRderID"
-			:shareType="isShareType"
-			@shareConfirm="onShareAppMessage"
-		>
-		</share-alert>
+		<cm-share-popup :orderId="btnoRderID" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 透明模态层 -->
 		<modal-layer v-if="isModalLayer"></modal-layer>
 		<view class="aganBj" v-show="showAgan">
@@ -288,8 +280,7 @@
 			v-if="rightDrawer"
 			:rightDrawer="rightDrawer"
 			@handSearchConfirm="handSearchConfirmData"
-		>
-		</cm-orderDrawer>
+		/>
 	</view>
 </template>
 
@@ -297,12 +288,10 @@
 import { mapState, mapMutations } from 'vuex'
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义顶部导航
 import btSearch from '@/components/uni-search/bt-search.vue' //搜索
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import orderButton from './components/sellerOrderButton' //操作按钮
 import modalLayer from '@/components/modal-layer'
 import empty from '@/components/empty'
-import shareAlert from './components/sellerShareAlert.vue' //分享弹窗
+import cmListButton from './components/cm-list-button' //操作按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
 import cmOrderDrawer from '../components/cm-order-drawer' //筛选抽屉
 
 export default {
@@ -310,11 +299,9 @@ export default {
 		headerBack,
 		empty,
 		btSearch,
-		tuiLoadmore,
-		tuiNomore,
-		orderButton,
 		modalLayer,
-		shareAlert,
+		cmListButton,
+		cmSharePopup,
 		cmOrderDrawer
 	},
 	data() {

+ 7 - 13
pages/seller/order/search-order.vue

@@ -202,7 +202,7 @@
 								</view>
 							</view>
 							<!-- 底部button -->
-							<order-button
+							<cm-list-button
 								ref="orderButton"
 								:status="order.status"
 								:rechargeGoods="order.rechargeGoods"
@@ -210,8 +210,7 @@
 								:userId="order.userId"
 								:secondHandOrderFlag="order.secondHandOrderFlag"
 								@buttonConfirm="handButtonConfirm"
-							>
-							</order-button>
+							/>
 						</view>
 						<!--加载loadding-->
 						<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -222,7 +221,7 @@
 			</scroll-view>
 		</view>
 		<!-- 分享弹窗 -->
-		<share-alert v-if="isShareModal" :orderId="btnoRderID" @shareConfirm="onShareAppMessage"> </share-alert>
+		<cm-share-popup :orderId="btnoRderID" :shareType="isShareType" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 透明模态层 -->
 		<modal-layer v-if="isModalLayer"></modal-layer>
 		<!-- 再来一单弹窗 -->
@@ -246,13 +245,10 @@
 
 <script>
 import orSearch from '@/components/uni-search/or-search.vue'
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import orderButton from './components/sellerOrderButton' //按钮
 import modalLayer from '@/components/modal-layer'
 import empty from '@/components/empty'
-import shareAlert from './components/sellerShareAlert.vue' //分享弹窗
-import authorize from '@/common/config/authorize.js'
+import cmListButton from './components/cm-list-button' //操作按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
 const defaultListQuery = {
 	pageNum: 1, // 页码
 	pageSize: 10, // 每页条数
@@ -262,11 +258,9 @@ const defaultListQuery = {
 export default {
 	components: {
 		orSearch,
-		tuiLoadmore,
-		tuiNomore,
-		orderButton,
 		empty,
-		shareAlert
+		cmListButton,
+		cmSharePopup,
 	},
 	data() {
 		return {

+ 523 - 0
pages/supplier/order/components/details/goodsList.vue

@@ -0,0 +1,523 @@
+<template name="goods">
+	<view class="goods-template">
+		<!-- 商品列表 -->
+		<view class="goods-list">
+			<view v-for="(item, index) in list" :key="index" class="goods-item clearfix">
+				<view class="shoptitle">
+					<view v-if="item.shopPromotion" class="floor-item-act">
+						<view class="floor-tags" @click.stop="clickPopupShow(item.shopPromotion)">{{
+							item.shopPromotion.name
+						}}</view>
+					</view>
+					<view class="title-text" v-if="information.secondHandOrderFlag == 1"
+						>{{ item.shopName }}
+						<label class="paymenttext" v-if="information.affirmPaymentFlag == 1">已确认打款供应商</label>
+					</view>
+					<view class="title-text" v-else @click="goShophome(item)">
+						{{ item.shopName }} <label class="iconfont icon-jinrudianpu"></label>
+					</view>
+				</view>
+				<view class="productlist" v-for="(pros, idx) in item.orderProductList" :key="idx">
+					<view class="goods-pros-t " @click="details(pros)">
+						<view class="pros-left">
+							<view class="pros-img">
+								<image :src="pros.image" alt="" />
+								<text class="tips" v-if="pros.giftType == 2 || pros.giftType == 1">赠品</text>
+							</view>
+						</view>
+						<view class="pros-product">
+							<view class="producttitle">{{ pros.name }}</view>
+							<view class="productspec product-view" v-if="pros.productCategory != 2"
+								>规格:{{ pros.productUnit ? pros.productUnit : '' }}</view
+							>
+							<view class="product-view">
+								<view
+									class="view-num red"
+									:class="
+										pros.svipPriceFlag == 1 || PromotionsFormat(pros.productPromotion) ? 'none' : ''
+									"
+									>¥{{ pros.price | NumFormat }}</view
+								>
+								<view class="view-num right">x {{ pros.num }}</view>
+							</view>
+							<view class="floor-item-act">
+								<template v-if="pros.productPromotion">
+									<view
+										v-if="PromotionsFormat(pros.productPromotion)"
+										class="floor-tags"
+										@click.stop="clickPopupShow(pros.productPromotion)"
+									>
+										{{ pros.productPromotion.name }}
+										<text v-if="pros.productPromotion != null && pros.productPromotion.type != 3">
+											:¥{{
+												pros.productPromotion == null
+													? '0.00'
+													: pros.productPromotion.touchPrice | NumFormat
+											}}
+										</text>
+									</view>
+									<view
+										v-else-if="pros.productPromotion.type != 3"
+										class="floor-tags"
+										@click.stop="clickPopupShow(pros.productPromotion)"
+										>{{ pros.productPromotion.name }}</view
+									>
+								</template>
+								<template v-if="pros.svipPriceFlag == 1">
+									<view class="svip-tags">
+										<view class="tags">SVIP</view>
+										<view class="price">{{ pros.svipPriceTag }}</view>
+									</view>
+								</template>
+							</view>
+						</view>
+					</view>
+					<view class=" product-info clearfix"> 
+						<view class="product-view" v-if="pros.returnedNum > 0 || pros.actualCancelNum > 0">
+							<view class="view-num">已退货/已取消:<text class="text">{{ pros.returnedNum }}/{{ pros.actualCancelNum }}</text></view>
+						</view>
+						<view class="product-view" v-if="pros.svipPriceType != 1">
+							<view class="view-num">折扣:<text class="text">{{ pros.discount == null ? '0' : pros.discount }}%</text></view>
+						</view>
+						<view class="product-view">
+							<view class="view-num">税率:<text class="text">{{ pros.taxRate }}%</text></view>
+						</view>
+						<view class="product-view">
+							<view class="view-num">折后单价:<text class="text">¥{{ pros.discountPrice | NumFormat }}</text></view>
+						</view>
+						<view class="product-view allPrice">
+							<view class="view-num">合计:<text class="text">¥{{ pros.totalFee | NumFormat }}</text></view>
+						</view>
+					</view>
+				</view>
+				<view class="goods-pros-m" v-if="item.note">
+					<view class="m-text">留言:</view>
+					<view class="m-input">
+						<view class="text">{{ item.note ? item.note : '' }}</view>
+					</view>
+				</view>
+				<view class="goods-pros-b clearfix" v-if="information.onlinePayFlag == 0">
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">商品总额:</view>
+						<view class="price-view-ri">¥{{ item.totalAmount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">优惠:</view>
+						<view class="price-view-ri">¥{{ item.eachDiscount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">应付金额:</view>
+						<view class="price-view-ri">¥{{ item.realPay | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">已付金额:</view>
+						<view class="price-view-ri">¥{{ item.receiptAmount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view">
+						<view class="price-view-le">待付金额:</view>
+						<view class="price-view-ri red">¥{{ item.obligation | NumFormat }}</view>
+					</view>
+					<view class="pros-price-btn">
+						<view class="btn" @click="handelShowDetails(item)">
+							{{ item.isHandelShow ? '收起' : '查看更多' }}
+							<text class="iconfont" :class="item.isHandelShow ? 'icon-xiangshangjiantou' : 'icon-xiangxiajiantou'"></text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'goods',
+	props: {
+		shopOrderData: {
+			type: Array
+		},
+		information: {
+			type: Object
+		}
+	},
+	data() {
+		return {
+			list: [],
+			vipFlag: 0,
+		}
+	},
+	created() {
+		this.initGetStotage(this.shopOrderData)
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		},
+		formatIncludedTax(value) {
+			if (value === '1') {
+				return '不含税 '
+			} else if (value === '2') {
+				return '含税'
+			} else {
+				return ''
+			}
+		}
+	},
+	computed: {},
+	methods: {
+		async initGetStotage(data) {
+			const userInfo = await this.$api.getStorage()
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.list = data.map((el,index)=>{
+				el.isHandelShow = false
+				return el
+			})
+		},
+		handelShowDetails(item){
+			item.isHandelShow = !item.isHandelShow
+		},
+		goShophome(shop) {
+			if(shop.shopType === 2){
+				return
+			}
+			this.$api.navigateTo(`/pages/supplier/user/my-shop?shopId=${shop.shopId}`)
+		},
+		details(pros) {
+			if (pros.validFlag == 9) {
+				return
+			} else {
+				this.$api.navigateTo(`/pages/goods/product?id=${pros.productId}`)
+			}
+		},
+		clickPopupShow(pros) {
+			console.log(pros)
+			this.$emit('popupClick', pros)
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.goods-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.goods-list {
+		width: 100%;
+		height: auto;
+		background: #f7f7f7;
+		.goods-item {
+			width: 702rpx;
+			padding: 24rpx;
+			height: auto;
+			background: #ffffff;
+			margin-bottom: 24rpx;
+			&:last-child {
+				margin-bottom: 0;
+			}
+		}
+		.shoptitle {
+			width: 100%;
+			float: left;
+			height: 56rpx;
+			line-height: 56rpx;
+			margin-bottom: 12rpx;
+            .floor-item-act{
+                height: 56rpx;
+                text-align: center;
+                box-sizing: border-box;
+                float: left;
+                padding: 10rpx 0;
+                margin-right: 12rpx;
+                .floor-tags{
+                    height: 28rpx;
+                    border-radius: 6rpx;
+                    background-color: #FFFFFF;
+                    line-height: 28rpx;
+                    color: $color-system;
+                    text-align: center;
+                    display: inline-block;
+                    padding:0 6rpx;
+                    font-size: $font-size-20;
+                    border: 1px solid #FF5B00;
+                    float: left;
+                }
+            }
+			.title-text {
+				width: 400rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				float: left;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 56rpx;
+				font-weight: bold;
+				.iconfont {
+					color: #999999;
+					font-size: 28rpx;
+					margin-left: 10rpx;
+				}
+				.paymenttext {
+					color: #f9a94b;
+					font-size: $font-size-22;
+					margin-left: 20rpx;
+				}
+			}
+		}
+		.productlist {
+			width: 100%;
+			height: auto;
+			padding: 0;
+			box-sizing: border-box;
+			border-bottom: 1px solid #E1E1E1;
+		}
+		.goods-pros-t {
+			display: flex;
+			width: 100%;
+			height: auto;
+			margin: 20rpx 0;
+			.pros-left {
+				width: 210rpx;
+				height: 100%;
+				margin: 0 26rpx 0 0;
+			}
+			.pros-img {
+				width: 210rpx;
+				height: 210rpx;
+				border-radius: 10rpx;
+				border: 1px solid #f3f3f3;
+				position: relative;
+				.tips {
+					display: inline-block;
+					width: 80rpx;
+					height: 40rpx;
+					background-image: linear-gradient(214deg, #ff4500 0%, #ff5800 53%, #ff4367 100%);
+					line-height: 40rpx;
+					text-align: center;
+					font-size: $font-size-24;
+					color: #ffffff;
+					border-radius: 10rpx 0 10rpx 0;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				image {
+					width: 210rpx;
+					height: 210rpx;
+					border-radius: 10rpx;
+				}
+			}
+		}
+		.product-info {
+			padding: 10rpx 0;
+			.product-view {
+				font-size: $font-size-24;
+				color: #999999;
+				overflow: hidden;
+				height: 44rpx;
+				line-height: 44rpx;
+				float: left;
+				width: 50%;
+				.view-num {
+					float: left;
+					.text{
+						color: #333333;
+					}
+				}
+			}
+		}
+		.pros-product {
+			width: 468rpx;
+			height: 100%;
+			line-height: 36rpx;
+			font-size: $font-size-26;
+			position: relative;
+			.product-view {
+				&.allPrice {
+					width: 100%;
+				}
+				.view-num {
+					flex: 1;
+					text-align: left;
+					font-size: $font-size-26;
+					color: #999999;
+					line-height: 44rpx;
+					float: left;
+					&.right {
+						float: right;
+					}
+					&.red {
+						color: #ff2000;
+						font-weight: bold;
+						&.none {
+							text-decoration: line-through;
+							color: #999999;
+						}
+					}
+				}
+			}
+			.producttitle {
+				width: 100%;
+				display: inline-block;
+				height: auto;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-bottom: 8rpx;
+			}
+			.productspec {
+				height: 44rpx;
+				color: #999999;
+				line-height: 44rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 1;
+				overflow: hidden;
+			}
+			.productprice {
+				height: 48rpx;
+				position: absolute;
+				width: 100%;
+				bottom: 0;
+				.price {
+					line-height: 48rpx;
+					font-size: $font-size-28;
+					width: 48%;
+					color: #ff2a2a;
+					float: left;
+					.price {
+						line-height: 48rpx;
+						font-size: $font-size-28;
+						width: 48%;
+						color: #ff2a2a;
+						float: left;
+						font-weight: bold;
+					}
+				}
+				.count {
+					height: 100%;
+					float: right;
+					position: relative;
+					.small {
+						color: #666666;
+					}
+				}
+			}
+			.floor-item-act {
+				width: 100%;
+				height: 56rpx;
+				text-align: center;
+				box-sizing: border-box;
+				float: left;
+				padding: 10rpx 0 0 0;
+			}
+			.floor-item-act {
+				height: 56rpx;
+				text-align: center;
+				box-sizing: border-box;
+				float: left;
+				padding: 10rpx 0;
+				margin-right: 12rpx;
+			}
+		}
+		.goods-pros-m {
+			width: 100%;
+			height: auto;
+			line-height: 76rpx;
+			font-size: $font-size-26;
+			color: $text-color;
+			float: left;
+			.m-text {
+				width: 62rpx;
+				float: left;
+				padding-right: 20rpx;
+				font-weight: bold;
+			}
+			.m-input {
+				display: -webkit-box;
+				display: -webkit-flex;
+				display: flex;
+				-webkit-box-align: center;
+				-webkit-align-items: center;
+				align-items: center;
+				position: relative;
+				width: 620rpx;
+				height: auto;
+				padding: 20rpx 0 10rpx 0;
+				background: #ffffff;
+				.text {
+					width: 100%;
+					height: 100%;
+					font-size: $font-size-26;
+					line-height: 36rpx;
+					color: #333333;
+				}
+			}
+		}
+		.goods-pros-b {
+			width: 100%;
+			padding-top: 12rpx;
+			float: left;
+			.pros-price-view{
+				width: 100%;
+				height: 44rpx;
+				font-size: 24rpx;
+				line-height: 44rpx;
+				.price-view-le{
+					float: left;
+					color: #999999;
+					text-align: left;
+				}
+				.price-view-ri{
+					float: right;
+					color: #333333;
+					text-align: right;
+					&.red{
+						color: #F94B4B;
+					}
+				}
+			}
+			.pros-price-btn{
+				width: 100%;
+				height: 48rpx;
+				.btn{
+					width: 168rpx;
+					height: 48rpx;
+					line-height: 46rpx;
+					box-sizing: border-box;
+					border: 2rpx solid #e1e1e1;
+					border-radius: 8rpx;
+					text-align: center;
+					color: #b2b2b2;
+					margin: 0 auto;
+					font-size: $font-size-24;
+					.iconfont {
+						
+					}
+				}
+			}
+		}
+	}
+}
+</style>

+ 3 - 2
components/cm-module/orderDetails/orderAddress.vue → pages/supplier/order/components/details/orderAddress.vue

@@ -22,7 +22,7 @@
 				</view>
 		 	</view>
 		 </view>
-		 <image  src="../../../static/temp/line@3x.png" mode=""></image>
+		 <image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
 	</view>
 </template>
 
@@ -37,7 +37,8 @@
 		},
 		data() {
 			return{
-				initData:''
+				initData:'',
+				StaticUrl: this.$Static,
 			}
 		},
 		created(){

+ 0 - 0
components/cm-module/orderDetails/orderButton.vue → pages/supplier/order/components/details/orderButton.vue


+ 0 - 0
components/cm-module/orderDetails/orderListButton.vue → pages/supplier/order/components/details/orderListButton.vue


+ 579 - 542
pages/supplier/order/order-details.vue

@@ -5,56 +5,64 @@
 			<view class="address-section clearfix">
 				<view class="address-content">
 					<view class="info-item">
-						<text class="label">买家名称:{{orderInfo.userInfo.name}}</text>
+						<text class="label">买家名称:{{ orderInfo.userInfo.name }}</text>
 					</view>
 					<view class="info-item">
-						<text class="label">收货人:{{orderInfo.userInfo.receiver}}</text>
-						<text class="label" :style="{marginLeft:40+'rpx'}">联系方式:{{orderInfo.userInfo.mobile}}</text>
+						<text class="label">收货人:{{ orderInfo.userInfo.receiver }}</text>
+						<text class="label" :style="{ marginLeft: 40 + 'rpx' }"
+							>联系方式:{{ orderInfo.userInfo.mobile }}</text
+						>
 					</view>
 					<view class="info-item">
-						<text class="label">收货地址:<text style="color: #666666;">{{orderInfo.userInfo.address}}</text></text>
+						<text class="label"
+							>收货地址:<text style="color: #666666;">{{ orderInfo.userInfo.address }}</text></text
+						>
 					</view>
 				</view>
-				<image  src="../../../static/temp/line@3x.png" mode=""></image>
+				 <image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
 			</view>
 			<!-- 商品 -->
 			<view class="goods-list">
 				<view class="goods-item clearfix">
-					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
+					<view class="productlist" v-for="(pros, idx) in orderInfo.orderProductList" :key="idx">
 						<view class="goods-pros-t">
 							<view class="pros-left">
 								<view class="pros-img"><image :src="pros.image" alt="" mode="aspectFill"/></view>
 							</view>
 							<view class="pros-product">
-								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
-								<view class="productspec">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+								<view class="producttitle">{{ pros.aliasName ? pros.aliasName : '' }}</view>
+								<view class="productspec">规格:{{ pros.productUnit ? pros.productUnit : '' }}</view>
 								<view class="product-view">
 									<view class="view-num price">¥{{ pros.price | NumFormat }}</view>
-									<view class="view-num num"> <text class="small">X</text> {{pros.num+pros.presentNum}}</view>
+									<view class="view-num num">
+										<text class="small">X</text> {{ pros.num + pros.presentNum }}</view
+									>
 								</view>
 								<view class="product-view">
-									<view class="view-num">已发货:{{pros.shipmentsNum}}</view>
-									<view class="view-num">已退货:{{pros.returnedNum}}</view>
-									<view class="view-num">已取消:{{pros.actualCancelNum}}</view>
+									<view class="view-num">已发货:{{ pros.shipmentsNum }}</view>
+									<view class="view-num">已退货:{{ pros.returnedNum }}</view>
+									<view class="view-num">已取消:{{ pros.actualCancelNum }}</view>
 								</view>
-							</view>	
+							</view>
 						</view>
 						<view class="product-total">
 							<view class="total">
 								合计: <text>¥{{ pros.totalAmount | NumFormat }}</text>
 							</view>
-						</view>	
-					</view>	
-					
+						</view>
+					</view>
+
 					<view class="goods-pros-m" v-if="orderInfo.note">
 						<view class="m-text">留言:</view>
 						<view class="m-input">
-							<view class="text">{{orderInfo.note ? orderInfo.note : ''}}</view>
-						</view>	
+							<view class="text">{{ orderInfo.note ? orderInfo.note : '' }}</view>
+						</view>
 					</view>
 					<view class="goods-pros-b">
-						<view class="count">共{{orderInfo.itemCount}}件商品</view>
-						<view class="money">商品总额:<text class="red">¥{{orderInfo.productAmount | NumFormat}}</text> </view>
+						<view class="count">共{{ orderInfo.itemCount }}件商品</view>
+						<view class="money"
+							>商品总额:<text class="red">¥{{ orderInfo.productAmount | NumFormat }}</text>
+						</view>
 					</view>
 				</view>
 			</view>
@@ -63,637 +71,666 @@
 				<view class="order-title">
 					<view class="order-title-t">
 						<view class="order-title-num">订单编号:{{ orderInfo.shopOrderNo }}</view>
-						<view class="order-title-tip">结算状态:<text :style="{color:setStatusText(orderInfo.payStatus)}">{{ orderInfo.payStatus | payStatusType }}</text></view>
+						<view class="order-title-tip"
+							>结算状态:<text :style="{ color: setStatusText(orderInfo.payStatus) }">{{
+								orderInfo.payStatus | payStatusType
+							}}</text></view
+						>
 					</view>
 					<view class="order-title-t">
 						<view class="order-title-num">下单时间:{{ orderInfo.orderTime }}</view>
-						<view class="order-title-tip">发货状态:<text class="status" :style="{color:setStatusText(orderInfo.receiptStatus)}">{{ orderInfo.sendOutStatus | sendOutStatusType }}</text></view>
+						<view class="order-title-tip"
+							>发货状态:<text
+								class="status"
+								:style="{ color: setStatusText(orderInfo.receiptStatus) }"
+								>{{ orderInfo.sendOutStatus | sendOutStatusType }}</text
+							></view
+						>
 					</view>
 					<template v-if="isOpenInfoFlag">
 						<view class="order-title-t">
-							<view class="order-title-num">结算商品金额:<text class="red">¥{{orderInfo.shopProductAmount | NumFormat}}</text></view>
-							<view class="order-title-tip">结算税费:<text class="red">¥{{orderInfo.shopTaxFee | NumFormat}}</text></view>
+							<view class="order-title-num"
+								>结算商品金额:<text class="red"
+									>¥{{ orderInfo.shopProductAmount | NumFormat }}</text
+								></view
+							>
+							<view class="order-title-tip"
+								>结算税费:<text class="red">¥{{ orderInfo.shopTaxFee | NumFormat }}</text></view
+							>
 						</view>
 						<view class="order-title-t">
-							<view class="order-title-num">结算运费:<text class="red">¥{{orderInfo.shopPostFee | NumFormat}}</text></view>
-							<view class="order-title-tip">总结算金额:<text class="red">¥{{orderInfo.shouldPayShopAmount | NumFormat}}</text></view>
+							<view class="order-title-num"
+								>结算运费:<text class="red">¥{{ orderInfo.shopPostFee | NumFormat }}</text></view
+							>
+							<view class="order-title-tip"
+								>总结算金额:<text class="red"
+									>¥{{ orderInfo.shouldPayShopAmount | NumFormat }}</text
+								></view
+							>
 						</view>
 						<view class="order-title-t">
-							<view class="order-title-num">已结算金额:<text class="red">¥{{orderInfo.payedShopAmount | NumFormat}}</text></view>
+							<view class="order-title-num"
+								>已结算金额:<text class="red">¥{{ orderInfo.payedShopAmount | NumFormat }}</text></view
+							>
 							<view class="order-title-tip"></view>
 						</view>
-					</template>	
+					</template>
 				</view>
 				<view class="order-more" v-if="isOpenFlag">
-					<view class="btnInfo" @click="OpenFlagShow">查看更多<label class="iconfont icon-xiangxiajiantou"></label></view>
+					<view class="btnInfo" @click="OpenFlagShow"
+						>查看更多<label class="iconfont icon-xiangxiajiantou"></label
+					></view>
 				</view>
 			</view>
 			<!-- 结算记录 -->
 			<view class="information-record clearfix">
-				<view class="record-title">
-					<view class="record-title-l">结算记录</view>
-				</view>
-				<view class="record-list" v-if="payShopRecord.length>0">
-					<view class="record-item" v-for="(item,index) in payShopRecord" :key="index">
-						<view class="item-time mm">¥{{item.payAmount | NumFormat}}</view>
-						<view class="item-time tt">{{item.payTime ? item.payTime : '无'}}</view>
+				<view class="record-title"> <view class="record-title-l">结算记录</view> </view>
+				<view class="record-list" v-if="payShopRecord.length > 0">
+					<view class="record-item" v-for="(item, index) in payShopRecord" :key="index">
+						<view class="item-time mm">¥{{ item.payAmount | NumFormat }}</view>
+						<view class="item-time tt">{{ item.payTime ? item.payTime : '无' }}</view>
 					</view>
 				</view>
-				<view class="record-empty" v-else>
-				 	<text>暂无结算记录</text>
-				</view>
-			</view>	
+				<view class="record-empty" v-else> <text>暂无结算记录</text> </view>
+			</view>
 			<!-- 底部button -->
-			<order-button ref="orderButton" 
-						  v-if= "isRequest" 
-						  :status= "btnStatus" 
-						  :shareCode= "shareCode"
-						   @buttonConfirm="handButtonConfirm">
+			<order-button
+				ref="orderButton"
+				v-if="isRequest"
+				:status="btnStatus"
+				:shareCode="shareCode"
+				@buttonConfirm="handButtonConfirm"
+			>
 			</order-button>
 		</view>
-		<share-alert  :shopOrderId="shopOrderId" 
-					  v-if="isShareModal"  
-					  @shareConfirm ='onShareAppMessage'>
-		</share-alert>		
+		<share-alert :shopOrderId="shopOrderId" v-if="isShareModal" @shareConfirm="onShareAppMessage"> </share-alert>
 	</view>
 </template>
 
 <script>
-	import headerBack from '@/components/cm-module/headerNavbar/header-back' 		 	 //自定义导航
-	import orderAddress from '@/components/cm-module/orderDetails/orderAddress' 		 //地址信息
-	import goodsList from '@/components/cm-module/orderDetails/goodsList'		 		 //商品列表
-	import orderButton from './components/supplierDetaileButton'	//底部按钮
-	import shareAlert from '../components/supplierShareAlert'	  //分享弹窗
-	export default {
-		components:{
-			headerBack,
-			orderAddress,
-			goodsList,
-			orderButton,
-			shareAlert,
-		},
-		data() {
-			return {
-				nvabarData: {		//顶部自定义导航
-					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
-					showSearch: 0,
-					title: '订单详情', // 导航栏 中间的标题
-					haveBack:false,
-					textLeft:this.$store.state.isIphone
-				},
-				windowHeight: '',
-				isIphoneX:this.$store.state.isIphoneX,
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				state:0,
-				userID:'',
-				shopOrderId:'',
-				shareCode:'',				//分享码
-				payStatus:0,
-				btnStatus:0,				//按钮组件状态
-				isRequest:false,			//是否加载完成渲染子组件
-				isOrderShare:false,
-				isShareModal:false,
-				orderInfo:{},				//订单信息
-				payShopRecord:[],			//结算记录
-				isOpenInfoFlag:false,
-				isOpenFlag:true
-				
+import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
+import orderAddress from './components/details/orderAddress' //地址信息
+import goodsList from './components/details/goodsList' //商品列表
+import orderButton from './components/supplierDetaileButton' //底部按钮
+import shareAlert from '../components/supplierShareAlert' //分享弹窗
+export default {
+	components: {
+		headerBack,
+		orderAddress,
+		goodsList,
+		orderButton,
+		shareAlert
+	},
+	data() {
+		return {
+			nvabarData: {
+				//顶部自定义导航
+				showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+				showSearch: 0,
+				title: '订单详情', // 导航栏 中间的标题
+				haveBack: false,
+				textLeft: this.$store.state.isIphone
+			},
+			StaticUrl: this.$Static,
+			windowHeight: '',
+			isIphoneX: this.$store.state.isIphoneX,
+			CustomBar: this.CustomBar, // 顶部导航栏高度
+			state: 0,
+			userID: '',
+			shopOrderId: '',
+			shareCode: '', //分享码
+			payStatus: 0,
+			btnStatus: 0, //按钮组件状态
+			isRequest: false, //是否加载完成渲染子组件
+			isOrderShare: false,
+			isShareModal: false,
+			orderInfo: {}, //订单信息
+			payShopRecord: [], //结算记录
+			isOpenInfoFlag: false,
+			isOpenFlag: true
+		}
+	},
+	onLoad(option) {
+		console.log(option.shopOrderId)
+		this.shopOrderId = option.shopOrderId
+		this.initShopOrderDetails()
+	},
+	filters: {
+		sendOutStatusType(value) {
+			if (value === null) {
+				return '未发货'
+			} else if (value === 1) {
+				return '待发货'
+			} else if (value === 2) {
+				return '部分发货'
+			} else {
+				return '已发货'
 			}
 		},
-		onLoad(option){
-			console.log(option.shopOrderId)
-			this.shopOrderId = option.shopOrderId
-			this.initShopOrderDetails()
+		payStatusType(value) {
+			if (value === 1) {
+				return '待结算'
+			} else if (value === 2) {
+				return '部分结算'
+			} else {
+				return '已结算'
+			}
 		},
-		filters:{
-			sendOutStatusType(value) {
-				if (value === null) {
-				  return '未发货'
-				} else if(value === 1) {
-				  return '待发货'
-				} else if(value === 2) {
-				  return '部分发货'
-				} else{
-				  return '已发货'
-				}
-			},
-			payStatusType(value) {
-				if (value === 1) {
-				  return '待结算'
-				} else if (value === 2) {
-				  return '部分结算'
-				} else {
-				  return '已结算'
-				}
-			},
-			NumFormat(value) {//处理金额
-				//处理金额
-				if (!value) return '0.00'
-				let number = parseFloat(Number(value))
-				return number
-			},
-		},	
-		methods: {
-			initShopOrderDetails(){//初始化页面数据@参数:订单ID
-				this.ShopService.GetShopOrderDetails({ shopOrderId : this.shopOrderId }).then(response =>{
-					this.orderInfo  = response.data.shopOrder
+		NumFormat(value) {
+			//处理金额
+			//处理金额
+			if (!value) return '0.00'
+			let number = parseFloat(Number(value))
+			return number
+		}
+	},
+	methods: {
+		initShopOrderDetails() {
+			//初始化页面数据@参数:订单ID
+			this.ShopService.GetShopOrderDetails({ shopOrderId: this.shopOrderId })
+				.then(response => {
+					this.orderInfo = response.data.shopOrder
 					this.btnStatus = this.orderInfo.sendOutStatus
 					this.payShopRecord = response.data.payShopRecord
 					this.isRequest = true
-				}).catch(err =>{
-					this.$util.msg(err.msg,2000)
 				})
-			},
-			handButtonConfirm(data){//监听点击时间的按钮类型并执行...
-				this.handShowAlert(data)
-			},
-			handShowAlert(type){//判断点击的按钮类型并执行...
-				switch(type){
-					case 'record':
-						this.$api.navigateTo('/pages/supplier/deliver/deliver-record?shopOrderId='+this.shopOrderId)
-						break
-					case 'deliver':
-						this.$api.navigateTo('/pages/supplier/deliver/deliver-goods?shopOrderId='+this.shopOrderId)
-						break
-				}
-			},
-			setStatusText(status){
-				let textColor=''
-				switch(status){
-					case 1:
-						textColor = '#FF2A2A'
-						break
-					case 2:
-						textColor = '#FF5B00'
-						break
-					case 3:
-						textColor = '#38CB3D'
-						break
-				}
-				return textColor
-			},
-			OpenFlagShow(){//查看更多
-				this.isOpenInfoFlag = true
-				this.isOpenFlag = false
-			},
-			onShareCode(){
-				this.isShareModal = true
-			},
-			onShareAppMessage(res){//分享转发
-				this.isShareModal = false
-				if (res.from === 'button') {
-					// 来自页面内转发按钮
-			    }
-				return {
-					title: '您有订单待处理,请点击查看~',
-					path: `/pages/supplier/login/share-info?authority=3&shopOrderId=${this.shopOrderId}`,
-					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
-				}
+				.catch(err => {
+					this.$util.msg(err.msg, 2000)
+				})
+		},
+		handButtonConfirm(data) {
+			//监听点击时间的按钮类型并执行...
+			this.handShowAlert(data)
+		},
+		handShowAlert(type) {
+			//判断点击的按钮类型并执行...
+			switch (type) {
+				case 'record':
+					this.$api.navigateTo('/pages/supplier/deliver/deliver-record?shopOrderId=' + this.shopOrderId)
+					break
+				case 'deliver':
+					this.$api.navigateTo('/pages/supplier/deliver/deliver-goods?shopOrderId=' + this.shopOrderId)
+					break
 			}
 		},
-		onPullDownRefresh() {//下拉刷新
-			this.initShopOrderDetails()
-			uni.stopPullDownRefresh()
+		setStatusText(status) {
+			let textColor = ''
+			switch (status) {
+				case 1:
+					textColor = '#FF2A2A'
+					break
+				case 2:
+					textColor = '#FF5B00'
+					break
+				case 3:
+					textColor = '#38CB3D'
+					break
+			}
+			return textColor
 		},
-		onShow() {
-
+		OpenFlagShow() {
+			//查看更多
+			this.isOpenInfoFlag = true
+			this.isOpenFlag = false
+		},
+		onShareCode() {
+			this.isShareModal = true
+		},
+		onShareAppMessage(res) {
+			//分享转发
+			this.isShareModal = false
+			if (res.from === 'button') {
+				// 来自页面内转发按钮
+			}
+			return {
+				title: '您有订单待处理,请点击查看~',
+				path: `/pages/supplier/login/share-info?authority=3&shopOrderId=${this.shopOrderId}`,
+				imageUrl: 'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
+			}
 		}
-	}
+	},
+	onPullDownRefresh() {
+		//下拉刷新
+		this.initShopOrderDetails()
+		uni.stopPullDownRefresh()
+	},
+	onShow() {}
+}
 </script>
 
 <style lang="scss">
-	page {
-		background:#F7F7F7;
-	}
-	.details{
-		padding-bottom: 130rpx;
+page {
+	background: #f7f7f7;
+}
+.details {
+	padding-bottom: 130rpx;
+	width: 100%;
+	height: auto;
+}
+.container-details {
+	background: #f7f7f7;
+}
+.information-content {
+	width: 702rpx;
+	height: auto;
+	padding: 10rpx 24rpx;
+	background: #ffffff;
+	margin: 24rpx 0;
+	.order-more {
 		width: 100%;
 		height: auto;
+		float: left;
+		.btnInfo {
+			width: 140rpx;
+			height: 40rpx;
+			border: 2rpx solid #e1e1e1;
+			border-radius: 6rpx;
+			padding: 5rpx;
+			text-align: center;
+			color: #b2b2b2;
+			margin: 20rpx auto;
+			font-size: $font-size-24;
+			.iconfont {
+				position: relative;
+				top: 5rpx;
+				right: -3rpx;
+			}
+		}
 	}
-	.container-details{
-		background:#F7F7F7;
-	}
-	.information-content{
-		width: 702rpx;
+	.order-title {
+		width: 100%;
 		height: auto;
-		padding:10rpx 24rpx;
-		background: #FFFFFF;
-		margin: 24rpx 0;
-		.order-more{
+		float: left;
+		.order-title-t {
 			width: 100%;
-			height: auto;
+			height: 58rpx;
 			float: left;
-			.btnInfo{
-				width: 140rpx;
-				height: 40rpx;
-				border: 2rpx solid #e1e1e1;
-				border-radius: 6rpx;
-				padding: 5rpx;
-				text-align: center;
-				color: #b2b2b2;
-				margin: 20rpx auto;
-				font-size:  $font-size-24;
-				.iconfont{
-					position: relative;
-					top: 5rpx;
-					right: -3rpx;
+			font-size: $font-size-28;
+			line-height: 58rpx;
+			.order-title-num {
+				float: left;
+				text-align: left;
+				color: #666666;
+				.red {
+					color: #f94b4b;
+					font-weight: bold;
 				}
 			}
-		}
-		.order-title{
-			width: 100%;
-			height: auto;
-			float: left;
-			.order-title-t{
-				width: 100%;
-				height: 58rpx;
-				float: left;
+			.order-title-tip {
+				float: right;
+				text-align: right;
 				font-size: $font-size-28;
-				line-height: 58rpx;
-				.order-title-num{
-					float: left;
-					text-align: left;
-					color: #666666;
-					.red{
-						color: #f94b4b;
-						font-weight: bold;
-					}
+				color: #666666;
+				.red {
+					color: #f94b4b;
+					font-weight: bold;
 				}
-				.order-title-tip{
-					float: right;
-					text-align: right;
-					font-size: $font-size-28;
-					color: #666666;
-					.red{
-						color: #f94b4b;
-						font-weight: bold;
-					}
-					.status{
-						color: $color-system;
-					}
+				.status {
+					color: $color-system;
 				}
 			}
-			.order-title-b{
-				width: 100%;
-				height: 40rpx;
-				float: left;
-				margin-top: 8rpx;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: #999999;
-				text-align: left;
-			}
 		}
-		.info-item{
-			height: 58rpx;
+		.order-title-b {
 			width: 100%;
-			display: flex;
-			.item-view{
-				flex: 1;
-				line-height: 58rpx;
-				font-size: $font-size-28;
-				color: #333333;
-			}
+			height: 40rpx;
+			float: left;
+			margin-top: 8rpx;
+			font-size: $font-size-28;
+			line-height: 40rpx;
+			color: #999999;
+			text-align: left;
 		}
 	}
-	.address-section{
+	.info-item {
+		height: 58rpx;
 		width: 100%;
-		margin-bottom: 24rpx;
-		.address-content{
-			width: 100%;
-			height: auto;
-			padding:10rpx 24rpx;
-			background: #FFFFFF;
-			box-sizing: border-box;
-			float: left;
-			.info-item{
-				width: 100%;
-				display: flex;
-				line-height: 50rpx;
-				font-size: $font-size-28;
-				color: #333333;
-			}
+		display: flex;
+		.item-view {
+			flex: 1;
+			line-height: 58rpx;
+			font-size: $font-size-28;
+			color: #333333;
 		}
-		image{
-			float: left;
+	}
+}
+.address-section {
+	width: 100%;
+	margin-bottom: 24rpx;
+	.address-content {
+		width: 100%;
+		height: auto;
+		padding: 10rpx 24rpx;
+		background: #ffffff;
+		box-sizing: border-box;
+		float: left;
+		.info-item {
 			width: 100%;
-			height: 6rpx;
+			display: flex;
+			line-height: 50rpx;
+			font-size: $font-size-28;
+			color: #333333;
 		}
 	}
-	
-	.goods-list{
+	image {
+		float: left;
 		width: 100%;
+		height: 6rpx;
+	}
+}
+
+.goods-list {
+	width: 100%;
+	height: auto;
+	background: #f7f7f7;
+	.goods-item {
+		width: 702rpx;
+		padding: 24rpx;
 		height: auto;
-		background: #F7F7F7;
-		.goods-item{
-			width: 702rpx;
-			padding:24rpx;
-			height: auto;
-			background: #FFFFFF;
-			margin-bottom: 24rpx;
-			&:last-child{
-				margin-bottom: 0;
-			}
+		background: #ffffff;
+		margin-bottom: 24rpx;
+		&:last-child {
+			margin-bottom: 0;
 		}
-		.productlist{
-			width: 100%;
-			height: auto;
-		}	
-		.goods-pros-t{
-			display: flex;
-			width: 100%;
-			height: auto;
-			padding: 12rpx 0;
-			.pros-left{
-				width: 210rpx;
+	}
+	.productlist {
+		width: 100%;
+		height: auto;
+	}
+	.goods-pros-t {
+		display: flex;
+		width: 100%;
+		height: auto;
+		padding: 12rpx 0;
+		.pros-left {
+			width: 210rpx;
+			height: 100%;
+			margin: 0 26rpx 0 0;
+		}
+		.pros-img {
+			width: 210rpx;
+			height: 210rpx;
+			border-radius: 10rpx;
+			border: 1px solid #f3f3f3;
+			image {
+				width: 100%;
 				height: 100%;
-				margin:0 26rpx 0 0;
-			}
-			.pros-img{
-				width: 210rpx;
-				height: 210rpx;
 				border-radius: 10rpx;
-				border:1px solid #f3f3f3;
-				image{
-					width: 100%;
-					height: 100%;
-					border-radius: 10rpx;
-				}
 			}
 		}
-		.product-total{
-			width: 100%;
-			height: 60rpx;
-			float: left;
-			border-bottom: 1px solid #E1E1E1;
-			.total{
-				float: right;
-				font-size: 28rpx;
-				line-height: 60rpx;
-				color: #333333;
-				font-weight: bold;
-				text{
-					color: #f94b4b;
-				}
+	}
+	.product-total {
+		width: 100%;
+		height: 60rpx;
+		float: left;
+		border-bottom: 1px solid #e1e1e1;
+		.total {
+			float: right;
+			font-size: 28rpx;
+			line-height: 60rpx;
+			color: #333333;
+			font-weight: bold;
+			text {
+				color: #f94b4b;
 			}
 		}
-		.pros-product{
-			width: 468rpx;
-			height: 100%;
-			line-height: 36rpx;
-			font-size: $font-size-26;	
-			position: relative;
-			.icon-genghuan{
-				position: absolute;
-				top: 50%;
-				right: 0;
-				font-size: $font-size-44;
-				color: $color-system;
-			}
-			.product-view{
-				width: 100%;
-				height: auto;
-				display: flex;
-				.view-num{
-					flex: 1;
-					text-align: left;
-					font-size: $font-size-26;
-					color: #666666;
-					line-height: 44rpx;
-					.small{
-						font-size: $font-size-20;
-						color: #999999;
-					}
-					&.price{
-						flex: 9;
-						color: #f94b4b;
-						font-weight: bold;
-					}
-					&.num{
-						flex: 1;
-						text-align: right;
-					}
-				}
-			}
-			.producttitle{
-				width: 100%;
-				display: inline-block;
-				height: auto;							
-				text-overflow:ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-				margin-bottom: 8rpx;
-				font-size: $font-size-28;
-			}
-			.productspec{
-				height: 44rpx;
+	}
+	.pros-product {
+		width: 468rpx;
+		height: 100%;
+		line-height: 36rpx;
+		font-size: $font-size-26;
+		position: relative;
+		.icon-genghuan {
+			position: absolute;
+			top: 50%;
+			right: 0;
+			font-size: $font-size-44;
+			color: $color-system;
+		}
+		.product-view {
+			width: 100%;
+			height: auto;
+			display: flex;
+			.view-num {
+				flex: 1;
+				text-align: left;
+				font-size: $font-size-26;
 				color: #666666;
 				line-height: 44rpx;
-			}
-			.productprice{
-				height: 48rpx;
-				position: absolute;
-				width: 100%;
-				bottom: 0;
-				.price{
-					line-height: 48rpx;
-					font-size: $font-size-28;
-					width: 48%;
+				.small {
+					font-size: $font-size-20;
+					color: #999999;
+				}
+				&.price {
+					flex: 9;
 					color: #f94b4b;
-					float: left;
+					font-weight: bold;
 				}
-				.count{
-					height: 100%;
-					float: right;
-					position: relative;
-					.small{
-						color: #666666;
-					}
+				&.num {
+					flex: 1;
+					text-align: right;
 				}
 			}
 		}
-		.goods-pros-m{
+		.producttitle {
 			width: 100%;
+			display: inline-block;
 			height: auto;
-			line-height: 76rpx;
-			font-size: $font-size-26;
-			color: $text-color;
-			float: left;
-			padding: 10rpx 0;
-			border-bottom: 1px solid #F7F7F7;
-			.m-text{
-				width: 82rpx;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			word-break: break-all;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+			overflow: hidden;
+			margin-bottom: 8rpx;
+			font-size: $font-size-28;
+		}
+		.productspec {
+			height: 44rpx;
+			color: #666666;
+			line-height: 44rpx;
+		}
+		.productprice {
+			height: 48rpx;
+			position: absolute;
+			width: 100%;
+			bottom: 0;
+			.price {
+				line-height: 48rpx;
+				font-size: $font-size-28;
+				width: 48%;
+				color: #f94b4b;
 				float: left;
-				padding-right: 20rpx;
-				font-weight:bold;
 			}
-			.m-input{
-				display: -webkit-box;
-				display: -webkit-flex;
-				display: flex;
-				-webkit-box-align: center;
-				-webkit-align-items: center;
-				align-items: center;
+			.count {
+				height: 100%;
+				float: right;
 				position: relative;
-				width: 600rpx;
-				height: auto;
-				padding: 20rpx 0 10rpx 0;
-				background: #FFFFFF;
-				.text{
-					width: 100%;
-					height: 100%;
-					font-size: $font-size-26;
-					line-height: 36rpx;
-					color: #333333;
+				.small {
+					color: #666666;
 				}
 			}
 		}
-		.goods-pros-b{
-			width:100%;
-			height: 40rpx;
-			margin-top: 12rpx;
+	}
+	.goods-pros-m {
+		width: 100%;
+		height: auto;
+		line-height: 76rpx;
+		font-size: $font-size-26;
+		color: $text-color;
+		float: left;
+		padding: 10rpx 0;
+		border-bottom: 1px solid #f7f7f7;
+		.m-text {
+			width: 82rpx;
 			float: left;
-			.count{
-				float: left;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: $text-color;
-				display: flex;
-				justify-content: flex-end;
-			}
-			.money{
-				float: right;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: $text-color;
-				display: flex;
-				justify-content: flex-end;
-				.red{
-					color: #f94b4b;
-					font-weight: bold;
-				}
+			padding-right: 20rpx;
+			font-weight: bold;
+		}
+		.m-input {
+			display: -webkit-box;
+			display: -webkit-flex;
+			display: flex;
+			-webkit-box-align: center;
+			-webkit-align-items: center;
+			align-items: center;
+			position: relative;
+			width: 600rpx;
+			height: auto;
+			padding: 20rpx 0 10rpx 0;
+			background: #ffffff;
+			.text {
+				width: 100%;
+				height: 100%;
+				font-size: $font-size-26;
+				line-height: 36rpx;
+				color: #333333;
 			}
 		}
 	}
-	.information-record{
+	.goods-pros-b {
 		width: 100%;
-		height: auto;
-		padding: 20rpx 24rpx;
-		box-sizing: border-box;
-		background-color: #FFFFFF;
-		.record-title{
-			width: 100%;
+		height: 40rpx;
+		margin-top: 12rpx;
+		float: left;
+		.count {
+			float: left;
 			font-size: $font-size-28;
+			line-height: 40rpx;
 			color: $text-color;
-			text-align: left;
+			display: flex;
+			justify-content: flex-end;
+		}
+		.money {
+			float: right;
+			font-size: $font-size-28;
 			line-height: 40rpx;
-			margin-bottom: 12rpx;
-			float: left;
-			.record-title-l{
+			color: $text-color;
+			display: flex;
+			justify-content: flex-end;
+			.red {
+				color: #f94b4b;
 				font-weight: bold;
-				float: left;
-			}
-			.record-title-r{
-				float: right;
-				.red{
-					color: #FF2A2A;
-					font-weight: bold;
-				}
 			}
 		}
-		.record-empty{
-			font-size: $font-size-26;
-			color: #999999;
-			text-align: left;
-			line-height: 40rpx;
+	}
+}
+.information-record {
+	width: 100%;
+	height: auto;
+	padding: 20rpx 24rpx;
+	box-sizing: border-box;
+	background-color: #ffffff;
+	.record-title {
+		width: 100%;
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 40rpx;
+		margin-bottom: 12rpx;
+		float: left;
+		.record-title-l {
+			font-weight: bold;
+			float: left;
+		}
+		.record-title-r {
+			float: right;
+			.red {
+				color: #ff2a2a;
+				font-weight: bold;
+			}
 		}
-		.record-list{
+	}
+	.record-empty {
+		font-size: $font-size-26;
+		color: #999999;
+		text-align: left;
+		line-height: 40rpx;
+	}
+	.record-list {
+		width: 100%;
+		height: auto;
+		float: left;
+		margin-top: 12rpx;
+		.record-item {
+			height: 40rpx;
 			width: 100%;
-			height: auto;
+			padding: 12rpx 0;
+			font-size: $font-size-28;
+			line-height: 40rpx;
 			float: left;
-			margin-top: 12rpx;
-			.record-item{
-				height: 40rpx;
-				width: 100%;
-				padding: 12rpx 0;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				float: left;
-				display: flex;
-				justify-content: center;
-				flex-direction: row;
-				.item-time{
-					&.mm{
-						flex: 1;
-						color: $text-color;
-						text-align: left;
-					}
-					&.tt{
-						flex: 1;
-						color: #999999;
-						text-align: right;
-					}
+			display: flex;
+			justify-content: center;
+			flex-direction: row;
+			.item-time {
+				&.mm {
+					flex: 1;
+					color: $text-color;
+					text-align: left;
+				}
+				&.tt {
+					flex: 1;
+					color: #999999;
+					text-align: right;
 				}
 			}
 		}
 	}
-	.button-template{
-		width: 100%;
+}
+.button-template {
+	width: 100%;
+	height: auto;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	background: #ffffff;
+	.button-content {
+		width: 702rpx;
+		padding: 0 24rpx;
 		height: auto;
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		background: #FFFFFF;
-		.button-content{
-			width: 702rpx;
-			padding:0 24rpx;
-			height: auto;
-			float: left;
-			position: relative;
-			.btn{
+		float: left;
+		position: relative;
+		.btn {
+			width: 160rpx;
+			height: 64rpx;
+			margin: 22rpx;
+			line-height: 64rpx;
+			font-size: $font-size-26;
+			color: #ffffff;
+			text-align: center;
+			border-radius: 10rpx;
+			float: right;
+		}
+		.btn-color {
+			background: $btn-confirm;
+			margin: 22rpx 0 22rpx 22rpx;
+			.tips {
 				width: 160rpx;
-				height:  64rpx;
-				margin:22rpx;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #FFFFFF;
-				text-align: center;
-				border-radius: 10rpx;
-				float: right;
-			}
-			.btn-color{
-				background: $btn-confirm;
-				margin: 22rpx 0 22rpx 22rpx;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
+				height: 34rpx;
+				padding: 10rpx 10rpx;
+				background: linear-gradient(45deg, rgba(0, 0, 0, 1) 0%, rgba(87, 87, 87, 1) 100%);
+				box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.2);
+				border-radius: 8rpx;
+				position: absolute;
+				color: #ffffff;
+				line-height: 34rpx;
+				font-size: $font-size-24;
+				text-align: left;
+				right: 24rpx;
+				top: -45rpx;
+				&:before {
+					content: '';
+					width: 25rpx;
+					height: 25rpx;
+					background: linear-gradient(45deg, rgba(0, 0, 0, 1) 0%, rgba(87, 87, 87, 1) 100%);
 					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 24rpx;
-					top: -45rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+					bottom: -8rpx;
+					right: 30rpx;
+					z-index: -1;
+					transform: rotate(45deg);
 				}
 			}
 		}
 	}
+}
 </style>

+ 521 - 468
pages/supplier/order/order-service-details.vue

@@ -1,66 +1,108 @@
 <template>
-	<view class="details clearfix" :style="{paddingBottom :isIphoneX ? (130+68)+'rpx' : '130rpx'}">
-		<cu-custom :navbar-data='nvabarData'></cu-custom>
-		<view class="container-details" :style="{paddingTop:CustomBar+'px'}" v-show="isRequest">
+	<view class="details clearfix" :style="{ paddingBottom: isIphoneX ? 130 + 68 + 'rpx' : '130rpx' }">
+		<cu-custom :navbar-data="nvabarData"></cu-custom>
+		<view class="container-details" :style="{ paddingTop: CustomBar + 'px' }" v-show="isRequest">
 			<!-- 订单信息 -->
 			<view class="information-content">
-				<view class="info-item"><view class="item-view"><text class="label">供应商:{{orderInfo.shopName ? orderInfo.shopName :''}}</text></view></view>
-				<view class="info-item"><view class="item-view"><text class="label">订单号:{{orderInfo.shopOrderNo}}</text></view></view>
-				<view class="info-item"><view class="item-view"><text class="label">下单时间:{{orderInfo.orderTime}}</text></view></view>
+				<view class="info-item"
+					><view class="item-view"
+						><text class="label">供应商:{{ orderInfo.shopName ? orderInfo.shopName : '' }}</text></view
+					></view
+				>
+				<view class="info-item"
+					><view class="item-view"
+						><text class="label">订单号:{{ orderInfo.shopOrderNo }}</text></view
+					></view
+				>
+				<view class="info-item"
+					><view class="item-view"
+						><text class="label">下单时间:{{ orderInfo.orderTime }}</text></view
+					></view
+				>
 				<view class="info-item">
-					<view class="item-view"><text class="label">收款状态:<text :style="{color:setStatusText(orderInfo.receiptStatus)}">{{setStatusTextHtml(orderInfo.receiptStatus)}}</text></text></view>
-					<view class="item-view"><text class="label">结算状态:<text :style="{color:setStatusText(orderInfo.payStatus)}">{{setStatusTextHtml1(orderInfo.payStatus)}}</text></text></view>
+					<view class="item-view"
+						><text class="label"
+							>收款状态:<text :style="{ color: setStatusText(orderInfo.receiptStatus) }">{{
+								setStatusTextHtml(orderInfo.receiptStatus)
+							}}</text></text
+						></view
+					>
+					<view class="item-view"
+						><text class="label"
+							>结算状态:<text :style="{ color: setStatusText(orderInfo.payStatus) }">{{
+								setStatusTextHtml1(orderInfo.payStatus)
+							}}</text></text
+						></view
+					>
 				</view>
 				<view class="info-item">
-					<view class="item-view"><text class="label">发货状态:<text :style="{color:setStatusText(orderInfo.sendOutStatus)}">{{setStatusTextHtml2(orderInfo.sendOutStatus)}}</text></text></view>
+					<view class="item-view"
+						><text class="label"
+							>发货状态:<text :style="{ color: setStatusText(orderInfo.sendOutStatus) }">{{
+								setStatusTextHtml2(orderInfo.sendOutStatus)
+							}}</text></text
+						></view
+					>
 				</view>
 			</view>
 			<!-- 地址信息 -->
 			<view class="address-content">
-				<view class="info-item"><text class="label">收货人:{{orderInfo.userInfo.receiver}}</text></view>
-				<view class="info-item"><text class="label">联系方式:{{orderInfo.userInfo.mobile}}</text></view>
-				<view class="info-item"><text class="label">收货地址:<text style="color: #666666;">{{orderInfo.userInfo.address}}</text></text></view>
+				<view class="info-item"
+					><text class="label">收货人:{{ orderInfo.userInfo.receiver }}</text></view
+				>
+				<view class="info-item"
+					><text class="label">联系方式:{{ orderInfo.userInfo.mobile }}</text></view
+				>
+				<view class="info-item"
+					><text class="label"
+						>收货地址:<text style="color: #666666;">{{ orderInfo.userInfo.address }}</text></text
+					></view
+				>
 			</view>
 			<!-- 商品 -->
 			<view class="goods-list">
 				<view class="goods-item clearfix">
-					<view class="productlist" v-for="(pros,idx) in orderInfo.orderProductList" :key="idx">
+					<view class="productlist" v-for="(pros, idx) in orderInfo.orderProductList" :key="idx">
 						<view class="goods-pros-t" @click="hanldOperationConfim(pros)">
 							<view class="pros-left">
-								<view class="pros-img"><image :src="pros.image" alt="" mode="aspectFill" /></view>
+								<view class="pros-img"><image :src="pros.image" alt="" mode="aspectFill"/></view>
 							</view>
 							<view class="pros-product">
-								<view class="producttitle">{{pros.aliasName ? pros.aliasName : ''}}</view>
-								<view class="productspec">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
-								<view class="productspec">商品编码:{{pros.productNo ? pros.productNo : ''}}</view>
+								<view class="producttitle">{{ pros.aliasName ? pros.aliasName : '' }}</view>
+								<view class="productspec">规格:{{ pros.productUnit ? pros.productUnit : '' }}</view>
+								<view class="productspec">商品编码:{{ pros.productNo ? pros.productNo : '' }}</view>
 								<view class="product-view">
-									<view class="view-num">数量:{{pros.num+pros.presentNum}}</view>
+									<view class="view-num">数量:{{ pros.num + pros.presentNum }}</view>
 								</view>
 								<view class="product-view">
-									<view class="view-num">已发货:{{pros.shipmentsNum}}</view>
-									<view class="view-num">未发货:{{pros.notOutStore-pros.actualCancelNum}}</view>
+									<view class="view-num">已发货:{{ pros.shipmentsNum }}</view>
+									<view class="view-num">未发货:{{ pros.notOutStore - pros.actualCancelNum }}</view>
 								</view>
 								<view class="product-view">
-									<view class="view-num" v-if="pros.returnedNum>0">已退货:{{pros.returnedNum}}</view>
-									<view class="view-num" v-if="pros.actualCancelNum>0">已取消:{{pros.actualCancelNum}}</view>
+									<view class="view-num" v-if="pros.returnedNum > 0"
+										>已退货:{{ pros.returnedNum }}</view
+									>
+									<view class="view-num" v-if="pros.actualCancelNum > 0"
+										>已取消:{{ pros.actualCancelNum }}</view
+									>
 								</view>
 								<text class="iconfont icon-genghuan"></text>
-							</view>	
+							</view>
 						</view>
-					</view>	
-					<view class="goods-pros-m" v-if="orderInfo.note!=null || orderInfo.note!=''">
+					</view>
+					<view class="goods-pros-m" v-if="orderInfo.note != null || orderInfo.note != ''">
 						<view class="m-text">留言:</view>
 						<view class="m-input">
-							<view class="text">{{orderInfo.note ? orderInfo.note : ''}}</view>
-						</view>	
+							<view class="text">{{ orderInfo.note ? orderInfo.note : '' }}</view>
+						</view>
 					</view>
 					<view class="goods-pros-b">
-						<view class="count">共{{orderInfo.itemCount}}件商品</view>
+						<view class="count">共{{ orderInfo.itemCount }}件商品</view>
 					</view>
 				</view>
-			</view>	
+			</view>
 			<!-- 底部按钮 -->
-			<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
+			<view class="button-template" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
 				<view class="button-content">
 					<!-- #ifdef MP-WEIXIN -->
 					<button class="btn btn-color" open-type="share" @click="onShareAppMessage">分享订单</button>
@@ -68,19 +110,23 @@
 				</view>
 			</view>
 			<!--底部选择模态层弹窗组件 -->
-			<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
+			<view class="popup spec" :class="specClass" @touchmove.stop.prevent="discard" @tap="hideSpec">
 				<!-- 遮罩层 -->
 				<view class="mask"></view>
-				<view class="layer" @tap.stop="discard" :style="{paddingBottom :isIphoneX ? '68rpx' : '36rpx',bottom:isIphoneX ?'-332rpx' : '-294rpx'}">
+				<view
+					class="layer"
+					@tap.stop="discard"
+					:style="{ paddingBottom: isIphoneX ? '68rpx' : '36rpx', bottom: isIphoneX ? '-332rpx' : '-294rpx' }"
+				>
 					<view class="content">
 						<view class="layer-title">商品显示名:</view>
-						<view class="layer-name">{{handleData.name}}</view>
+						<view class="layer-name">{{ handleData.name }}</view>
 						<view class="layer-text">
 							<view class="layer-text-fl">
-								售价:<text style="color: #666;">¥{{toFixedFn(handleData.discountPrice)}}</text>
+								售价:<text style="color: #666;">¥{{ toFixedFn(handleData.discountPrice) }}</text>
 							</view>
 							<view class="layer-text-fr">
-								<text style="color: #666;">共计{{handleData.num+handleData.presentNum}}件商品</text>
+								<text style="color: #666;">共计{{ handleData.num + handleData.presentNum }}件商品</text>
 							</view>
 						</view>
 					</view>
@@ -91,502 +137,509 @@
 </template>
 
 <script>
-	import headerBack from '@/components/cm-module/headerNavbar/header-back' 		 	 //自定义导航
-	import orderAddress from '@/components/cm-module/orderDetails/orderAddress' 		 //地址信息
-	import goodsList from '@/components/cm-module/orderDetails/goodsList'		 		 //商品列表
-	import orderButton from '@/components/cm-module/orderDetails/orderButton'			 //底部按钮
-	export default {
-		components:{
-			headerBack,
-			orderAddress,
-			goodsList,
-			orderButton,
+import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
+import orderAddress from './components/details/orderAddress' //地址信息
+import goodsList from './components/details/goodsList' //商品列表
+import orderButton from './components/details/orderButton' //底部按钮
+export default {
+	components: {
+		headerBack,
+		orderAddress,
+		goodsList,
+		orderButton
+	},
+	data() {
+		return {
+			nvabarData: {
+				//顶部自定义导航
+				showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+				showSearch: 0,
+				title: '订单详情', // 导航栏 中间的标题
+				haveBack: false,
+				textLeft: this.$store.state.isIphone
+			},
+			isIphoneX: this.$store.state.isIphoneX,
+			CustomBar: this.CustomBar, // 顶部导航栏高度
+			specClass: '', //规格弹窗css类,控制开关动画
+			handleData: {},
+			state: 0,
+			userID: '',
+			shopOrderId: '',
+			shareCode: '', //分享码
+			orderInfo: {}, //订单信息
+			payStatus: 0,
+			btnStatus: 0, //按钮组件状态
+			isRequest: false, //是否加载完成渲染子组件
+			isOrderShare: false,
+			addressData: {}, //地址信息初始化
+			information: {} //订单信息初始化
+		}
+	},
+	onLoad(option) {
+		console.log(option)
+		this.shopOrderId = option.shopOrderId
+		this.initShopOrderDetails()
+	},
+	methods: {
+		initShopOrderDetails() {
+			//初始化页面数据@参数:订单ID
+			this.ShopService.GetShopOrderDetails({ shopOrderId: this.shopOrderId })
+				.then(res => {
+					this.orderInfo = res.data.shopOrder
+					this.isRequest = true
+				})
+				.catch(err => {
+					this.$util.msg(err.msg, 2000)
+				})
 		},
-		data() {
-			return {
-				nvabarData: {		//顶部自定义导航
-					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
-					showSearch: 0,
-					title: '订单详情', // 导航栏 中间的标题
-					haveBack:false,
-					textLeft:this.$store.state.isIphone
-				},
-				isIphoneX:this.$store.state.isIphoneX,
-				CustomBar:this.CustomBar,// 顶部导航栏高度
-				specClass: '',//规格弹窗css类,控制开关动画
-				handleData:{},
-				state:0,
-				userID:'',
-				shopOrderId:'',
-				shareCode:'',				//分享码
-				orderInfo:{},				//订单信息
-				payStatus:0,
-				btnStatus:0,				//按钮组件状态
-				isRequest:false,			//是否加载完成渲染子组件
-				isOrderShare:false,
-				addressData:{},				//地址信息初始化
-				information:{},				//订单信息初始化
+		handButtonConfirm(data) {
+			//监听点击时间的按钮类型并执行...
+			this.handShowAlert(data)
+		},
+		setStatusTextHtml(status) {
+			let TextHtml = ''
+			switch (status) {
+				case 1:
+					TextHtml = '待付款'
+					break
+				case 2:
+					TextHtml = '部分付款'
+					break
+				case 3:
+					TextHtml = '已付款'
+					break
 			}
+			return TextHtml
 		},
-		onLoad(option){
-			console.log(option)
-			this.shopOrderId = option.shopOrderId
-			this.initShopOrderDetails()
+		setStatusTextHtml1(status) {
+			let TextHtml = ''
+			switch (status) {
+				case 1:
+					TextHtml = '待结算'
+					break
+				case 2:
+					TextHtml = '部分结算'
+					break
+				case 3:
+					TextHtml = '已结算'
+					break
+			}
+			return TextHtml
 		},
-		methods: {
-			initShopOrderDetails(){//初始化页面数据@参数:订单ID
-				this.ShopService.GetShopOrderDetails({ shopOrderId : this.shopOrderId }).then(res =>{
-					this.orderInfo  = res.data.shopOrder
-					this.isRequest = true
-				}).catch(err =>{
-					this.$util.msg(err.msg,2000);
-				})
-			},
-			handButtonConfirm(data){//监听点击时间的按钮类型并执行...
-				this.handShowAlert(data)
-			},
-			setStatusTextHtml(status){
-				let TextHtml='';
-				switch(status){
-					case 1:
-						TextHtml = '待付款'
-						break;
-					case 2:
-						TextHtml = '部分付款'
-						break;
-					case 3:
-						TextHtml = '已付款'
-						break;
-				}
-				return TextHtml
-			},
-			setStatusTextHtml1(status){
-				let TextHtml='';
-				switch(status){
-					case 1:
-						TextHtml = '待结算'
-						break;
-					case 2:
-						TextHtml = '部分结算'
-						break;
-					case 3:
-						TextHtml = '已结算'
-						break;
-				}
-				return TextHtml
-			},
-			setStatusTextHtml2(status){
-				let TextHtml='';
-				switch(status){
-					case 1:
-						TextHtml = '待发货'
-						break;
-					case 2:
-						TextHtml = '部分发货'
-						break;
-					case 3:
-						TextHtml = '已发货'
-						break;
-				}
-				return TextHtml
-			},
-			setStatusText(status){
-				let textColor='';
-				switch(status){
-					case 1:
-						textColor = '#FF2A2A'
-						break;
-					case 2:
-						textColor = '#FF5B00'
-						break;
-					case 3:
-						textColor = '#38CB3D'
-						break;
-				}
-				return textColor
-			},
-			hanldOperationConfim(data){//显示选择数量确认弹窗
-				this.specClass = 'show';
-				this.handleData = data
-			},
-			toFixedFn(text){
-				return Number(text).toFixed(2);
-			},
-			hideSpec() {//关闭选择数量确认弹窗
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 200);
-			},
-			onShareAppMessage(res){//分享转发
-				if (res.from === 'button') {
-					// 来自页面内转发按钮
-			    }
-				return {
-					title: '您有订单待处理,请点击查看~',
-					path: `/pages/supplier/login/share-info?authority=2&shopOrderId=${this.shopOrderId}`,
-					imageUrl:'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
-				}
-			},
-			discard(){
-				//丢弃
+		setStatusTextHtml2(status) {
+			let TextHtml = ''
+			switch (status) {
+				case 1:
+					TextHtml = '待发货'
+					break
+				case 2:
+					TextHtml = '部分发货'
+					break
+				case 3:
+					TextHtml = '已发货'
+					break
+			}
+			return TextHtml
+		},
+		setStatusText(status) {
+			let textColor = ''
+			switch (status) {
+				case 1:
+					textColor = '#FF2A2A'
+					break
+				case 2:
+					textColor = '#FF5B00'
+					break
+				case 3:
+					textColor = '#38CB3D'
+					break
 			}
+			return textColor
 		},
-		onPullDownRefresh() {//下拉刷新
-			this.initShopOrderDetails()
-			uni.stopPullDownRefresh()
+		hanldOperationConfim(data) {
+			//显示选择数量确认弹窗
+			this.specClass = 'show'
+			this.handleData = data
 		},
-		onShow() {
-
+		toFixedFn(text) {
+			return Number(text).toFixed(2)
+		},
+		hideSpec() {
+			//关闭选择数量确认弹窗
+			this.specClass = 'hide'
+			setTimeout(() => {
+				this.specClass = 'none'
+			}, 200)
+		},
+		onShareAppMessage(res) {
+			//分享转发
+			if (res.from === 'button') {
+				// 来自页面内转发按钮
+			}
+			return {
+				title: '您有订单待处理,请点击查看~',
+				path: `/pages/supplier/login/share-info?authority=2&shopOrderId=${this.shopOrderId}`,
+				imageUrl: 'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
+			}
+		},
+		discard() {
+			//丢弃
 		}
-	}
+	},
+	onPullDownRefresh() {
+		//下拉刷新
+		this.initShopOrderDetails()
+		uni.stopPullDownRefresh()
+	},
+	onShow() {}
+}
 </script>
 
 <style lang="scss">
-	page {
-		height: 100%;
-		background:#F7F7F7;
-	}
-	.details{
-		padding-bottom: 130rpx;
+page {
+	height: 100%;
+	background: #f7f7f7;
+}
+.details {
+	padding-bottom: 130rpx;
+	width: 100%;
+	height: auto;
+}
+.container-details {
+	background: #f7f7f7;
+}
+.information-content {
+	width: 702rpx;
+	height: auto;
+	padding: 10rpx 24rpx;
+	background: #ffffff;
+	margin-bottom: 24rpx;
+	.info-item {
+		height: 58rpx;
 		width: 100%;
-		height: auto;
+		display: flex;
+		.item-view {
+			flex: 1;
+			line-height: 58rpx;
+			font-size: $font-size-28;
+			color: #333333;
+		}
 	}
-	.container-details{
-		background:#F7F7F7;
+}
+.address-content {
+	width: 702rpx;
+	height: auto;
+	padding: 10rpx 24rpx;
+	background: #ffffff;
+	margin-bottom: 24rpx;
+	.info-item {
+		width: 100%;
+		display: flex;
+		line-height: 50rpx;
+		font-size: $font-size-28;
+		color: #333333;
 	}
-	.information-content{
+}
+.goods-list {
+	width: 100%;
+	height: auto;
+	background: #f7f7f7;
+	.goods-item {
 		width: 702rpx;
+		padding: 24rpx;
 		height: auto;
-		padding:10rpx 24rpx;
-		background: #FFFFFF;
+		background: #ffffff;
 		margin-bottom: 24rpx;
-		.info-item{
-			height: 58rpx;
-			width: 100%;
-			display: flex;
-			.item-view{
-				flex: 1;
-				line-height: 58rpx;
-				font-size: $font-size-28;
-				color: #333333;
-			}
+		&:last-child {
+			margin-bottom: 0;
 		}
 	}
-	.address-content{
-		width: 702rpx;
+	.productlist {
+		width: 100%;
 		height: auto;
-		padding:10rpx 24rpx;
-		background: #FFFFFF;
-		margin-bottom: 24rpx;
-		.info-item{
-			width: 100%;
-			display: flex;
-			line-height: 50rpx;
-			font-size: $font-size-28;
-			color: #333333;
-		}
 	}
-	.goods-list{
+	.goods-pros-t {
+		display: flex;
 		width: 100%;
 		height: auto;
-		background: #F7F7F7;
-		.goods-item{
-			width: 702rpx;
-			padding:24rpx;
-			height: auto;
-			background: #FFFFFF;
-			margin-bottom: 24rpx;
-			&:last-child{
-				margin-bottom: 0;
-			}
+		padding: 12rpx 0;
+		.pros-left {
+			width: 210rpx;
+			height: 100%;
+			margin: 0 26rpx 0 0;
 		}
-		.productlist{
-			width: 100%;
-			height: auto;
-		}	
-		.goods-pros-t{
-			display: flex;
-			width: 100%;
-			height: auto;
-			padding: 12rpx 0;
-			.pros-left{
-				width: 210rpx;
+		.pros-img {
+			width: 210rpx;
+			height: 210rpx;
+			border-radius: 10rpx;
+			border: 1px solid #f3f3f3;
+			image {
+				width: 100%;
 				height: 100%;
-				margin:0 26rpx 0 0;
-			}
-			.pros-img{
-				width: 210rpx;
-				height: 210rpx;
 				border-radius: 10rpx;
-				border:1px solid #f3f3f3;
-				image{
-					width: 100%;
-					height: 100%;
-					border-radius: 10rpx;
-				}
 			}
 		}
-		.pros-product{
-			width: 468rpx;
-			height: 100%;
-			line-height: 36rpx;
-			font-size: $font-size-26;	
-			position: relative;
-			.icon-genghuan{
-				position: absolute;
-				top: 50%;
-				right: 0;
-				font-size: $font-size-44;
-				color: $color-system;
-			}
-			.product-view{
-				width: 100%;
-				height: auto;
-				display: flex;
-				.view-num{
-					flex: 1;
-					text-align: left;
-					font-size: $font-size-26;
-					color: #666666;
-					line-height: 44rpx;
-				}
-			}
-			.producttitle{
-				width: 100%;
-				display: inline-block;
-				height: auto;							
-				text-overflow:ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-				margin-bottom: 8rpx;
-			}
-			.productspec{
-				height: 44rpx;
+	}
+	.pros-product {
+		width: 468rpx;
+		height: 100%;
+		line-height: 36rpx;
+		font-size: $font-size-26;
+		position: relative;
+		.icon-genghuan {
+			position: absolute;
+			top: 50%;
+			right: 0;
+			font-size: $font-size-44;
+			color: $color-system;
+		}
+		.product-view {
+			width: 100%;
+			height: auto;
+			display: flex;
+			.view-num {
+				flex: 1;
+				text-align: left;
+				font-size: $font-size-26;
 				color: #666666;
 				line-height: 44rpx;
 			}
-			.productprice{
-				height: 48rpx;
-				position: absolute;
-				width: 100%;
-				bottom: 0;
-				.price{
-					line-height: 48rpx;
-					font-size: $font-size-28;
-					width: 48%;
-					color: #FF2A2A;
-					float: left;
-				}
-				.count{
-					height: 100%;
-					float: right;
-					position: relative;
-					.small{
-						color: #666666;
-					}
-				}
-			}
 		}
-		.goods-pros-m{
+		.producttitle {
 			width: 100%;
+			display: inline-block;
 			height: auto;
-			line-height: 76rpx;
-			font-size: $font-size-26;
-			color: $text-color;
-			float: left;
-			padding: 10rpx 0;
-			border-top: 1px solid #F7F7F7;
-			border-bottom: 1px solid #F7F7F7;
-			.m-text{
-				width: 62rpx;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			word-break: break-all;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+			overflow: hidden;
+			margin-bottom: 8rpx;
+		}
+		.productspec {
+			height: 44rpx;
+			color: #666666;
+			line-height: 44rpx;
+		}
+		.productprice {
+			height: 48rpx;
+			position: absolute;
+			width: 100%;
+			bottom: 0;
+			.price {
+				line-height: 48rpx;
+				font-size: $font-size-28;
+				width: 48%;
+				color: #ff2a2a;
 				float: left;
-				padding-right: 20rpx;
-				font-weight:bold;
 			}
-			.m-input{
-				display: -webkit-box;
-				display: -webkit-flex;
-				display: flex;
-				-webkit-box-align: center;
-				-webkit-align-items: center;
-				align-items: center;
+			.count {
+				height: 100%;
+				float: right;
 				position: relative;
-				width: 620rpx;
-				height: auto;
-				padding: 20rpx 0 10rpx 0;
-				background: #FFFFFF;
-				.text{
-					width: 100%;
-					height: 100%;
-					font-size: $font-size-26;
-					line-height: 36rpx;
-					color: #333333;
+				.small {
+					color: #666666;
 				}
 			}
 		}
-		.goods-pros-b{
-			width:100%;
-			height: 40rpx;
-			margin-top: 12rpx;
+	}
+	.goods-pros-m {
+		width: 100%;
+		height: auto;
+		line-height: 76rpx;
+		font-size: $font-size-26;
+		color: $text-color;
+		float: left;
+		padding: 10rpx 0;
+		border-top: 1px solid #f7f7f7;
+		border-bottom: 1px solid #f7f7f7;
+		.m-text {
+			width: 62rpx;
 			float: left;
-			.count{
-				float: right;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: $text-color;
-				display: flex;
-				justify-content: flex-end;
+			padding-right: 20rpx;
+			font-weight: bold;
+		}
+		.m-input {
+			display: -webkit-box;
+			display: -webkit-flex;
+			display: flex;
+			-webkit-box-align: center;
+			-webkit-align-items: center;
+			align-items: center;
+			position: relative;
+			width: 620rpx;
+			height: auto;
+			padding: 20rpx 0 10rpx 0;
+			background: #ffffff;
+			.text {
+				width: 100%;
+				height: 100%;
+				font-size: $font-size-26;
+				line-height: 36rpx;
+				color: #333333;
 			}
 		}
 	}
-	.button-template{
+	.goods-pros-b {
 		width: 100%;
+		height: 40rpx;
+		margin-top: 12rpx;
+		float: left;
+		.count {
+			float: right;
+			font-size: $font-size-28;
+			line-height: 40rpx;
+			color: $text-color;
+			display: flex;
+			justify-content: flex-end;
+		}
+	}
+}
+.button-template {
+	width: 100%;
+	height: auto;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	background: #ffffff;
+	-webkit-border-radius: 20rpx 20rpx 0 0;
+	border-radius: 20rpx 20rpx 0 0;
+	-webkit-box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
+	box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
+	.button-content {
+		width: 702rpx;
+		padding: 0 24rpx;
 		height: auto;
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		background: #FFFFFF;
-		-webkit-border-radius: 20rpx 20rpx 0 0;
-		border-radius: 20rpx 20rpx 0 0;
-		-webkit-box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
-		box-shadow: 0px 3px 10px rgba(51, 51, 51, 0.5);
-		.button-content{
-			width: 702rpx;
-			padding:0 24rpx;
-			height: auto;
-			float: left;
-			position: relative;
-			.btn{
+		float: left;
+		position: relative;
+		.btn {
+			width: 160rpx;
+			height: 64rpx;
+			margin: 22rpx;
+			line-height: 64rpx;
+			font-size: $font-size-26;
+			color: #ffffff;
+			text-align: center;
+			border-radius: 10rpx;
+			float: right;
+		}
+		.btn-color {
+			background: $btn-confirm;
+			margin: 22rpx 0 22rpx 22rpx;
+			.tips {
 				width: 160rpx;
-				height:  64rpx;
-				margin:22rpx;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #FFFFFF;
-				text-align: center;
-				border-radius: 10rpx;
-				float: right;
-			}
-			.btn-color{
-				background: $btn-confirm;
-				margin: 22rpx 0 22rpx 22rpx;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
+				height: 34rpx;
+				padding: 10rpx 10rpx;
+				background: linear-gradient(45deg, rgba(0, 0, 0, 1) 0%, rgba(87, 87, 87, 1) 100%);
+				box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.2);
+				border-radius: 8rpx;
+				position: absolute;
+				color: #ffffff;
+				line-height: 34rpx;
+				font-size: $font-size-24;
+				text-align: left;
+				right: 24rpx;
+				top: -45rpx;
+				&:before {
+					content: '';
+					width: 25rpx;
+					height: 25rpx;
+					background: linear-gradient(45deg, rgba(0, 0, 0, 1) 0%, rgba(87, 87, 87, 1) 100%);
 					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 24rpx;
-					top: -45rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
+					bottom: -8rpx;
+					right: 30rpx;
+					z-index: -1;
+					transform: rotate(45deg);
 				}
 			}
 		}
 	}
-	.popup {
+}
+.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: 999;
-		display: none;
-		.mask{
-			position: fixed;
-			top: 0;
+		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: 236rpx;
+		border-radius: 20rpx 20rpx 0 0;
+		background-color: #fff;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: space-between;
+		.content {
 			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: 236rpx;
-			border-radius: 20rpx 20rpx 0 0;
-			background-color: #fff;
-			display: flex;
-			flex-wrap: wrap;
-			align-content: space-between;
-			.content {
+			.layer-title {
+				font-size: $font-size-28;
+				color: $text-color;
+				line-height: 58rpx;
+			}
+			.layer-name {
 				width: 100%;
-				.layer-title{
-					font-size: $font-size-28;
-					color: $text-color;
-					line-height: 58rpx;
-				}
-				.layer-name{
-					width: 100%;
-					display: inline-block;
-					height: auto;							
-					text-overflow:ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					margin-bottom: 8rpx;
-					font-size: $font-size-28;
-					color: #666;
+				display: inline-block;
+				height: auto;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-bottom: 8rpx;
+				font-size: $font-size-28;
+				color: #666;
+			}
+			.layer-text {
+				margin-top: 10rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				line-height: 58rpx;
+				.layer-text-fl {
+					float: left;
 				}
-				.layer-text{
-					margin-top: 10rpx;
-					font-size: $font-size-28;
-					color: $text-color;
-					line-height: 58rpx;
-					.layer-text-fl{
-						float: left;
-					}
-					.layer-text-fr{
-						float: right;
-					}
+				.layer-text-fr {
+					float: right;
 				}
 			}
 		}
-		
-		&.show {
-			display: block;
-			.mask{
-				animation: showPopup 0.2s linear both;
-			}
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
+	}
+
+	&.show {
+		display: block;
+		.mask {
+			animation: showPopup 0.2s linear both;
 		}
-		&.hide {
-			display: block;
-			.mask{
-				animation: hidePopup 0.2s linear both;
-			}
-			
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
+		.layer {
+			animation: showLayer 0.2s linear both;
 		}
-		&.none {
-			display: none;
+	}
+	&.hide {
+		display: block;
+		.mask {
+			animation: hidePopup 0.2s linear both;
 		}
-	}	
+
+		.layer {
+			animation: hideLayer 0.2s linear both;
+		}
+	}
+	&.none {
+		display: none;
+	}
+}
 </style>

+ 2 - 1
pages/user/order/components/choiceAddress.vue → pages/user/order/components/cm-address-temp.vue

@@ -26,7 +26,7 @@
 		 		</view>
 		 	</view>
 		 </navigator>
-		 <image  src="../../../static/temp/line@3x.png" mode=""></image>
+		 <image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
 	</view>
 </template>
 
@@ -42,6 +42,7 @@
 			return{
 				isEmpty:false,
 				addressSrc:'',
+				StaticUrl: this.$Static,
 			}
 		},
 		created(){

+ 0 - 0
pages/user/order/components/exchangeCoupon.vue → pages/user/order/components/cm-coupon-chang.vue


+ 6 - 16
pages/user/order/components/coupon.vue → pages/user/order/components/cm-coupon-popup.vue

@@ -113,22 +113,12 @@ export default {
 			return Number(value).toFixed(2)
 		},
 		TypeFormat(value) {
-			switch (value) {
-				case 0:
-					return '活动券'
-					break
-				case 1:
-					return '品类券'
-					break
-				case 2:
-					return '用户专享券'
-					break
-				case 3:
-					return '店铺券'
-					break
-				case 4:
-					return '新用户券'
-					break
+			const map = {
+				0:'活动券',
+				1:'品类券',
+				2:'用户专享券',
+				3:'店铺券',
+				4:'新用户券',
 			}
 		}
 	},

+ 199 - 0
pages/user/order/components/cm-coupon-tips.vue

@@ -0,0 +1,199 @@
+<template name="alert">
+	<view class="coupon-content-model">
+		<view class="coupon-alert-content">
+			<view class="coupon">
+				<view class="coupon-list">
+					<view class="list-cell-tags"
+						><text>{{ coupon.couponType | TypeFormat }}</text></view
+					>
+					<view class="list-cell-le">
+						<view class="coupon-maxMoney"> <text class="small">¥</text> {{ coupon.couponAmount }} </view>
+						<view class="coupon-minMoney">
+							<text class="txt">满{{ coupon.touchPrice }}可用</text>
+						</view>
+					</view>
+					<view class="list-cell-ri">
+						<view class="list-cell-top">
+							<text v-if="coupon.couponType == 0">
+								{{
+									coupon.productType && coupon.productType == 1
+										? '全商城商品通用'
+										: '仅可购买指定商品'
+								}}
+							</text>
+							<text v-if="coupon.couponType == 1">
+								{{ coupon.categoryType == 1 ? '仅限购买产品类商品' : '仅限购买仪器类商品' }}
+							</text>
+							<text v-if="coupon.couponType == 3">仅限购买店铺【{{ coupon.shopName }}】的商品</text>
+							<text v-if="coupon.couponType == 4 || coupon.couponType == 2">全商城商品通用</text>
+						</view>
+						<view class="list-cell-time">{{ coupon.startDate }} - {{ coupon.endDate }}</view>
+					</view>
+				</view>
+				<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'alert',
+	props: {
+		coupon: {
+			type: Object
+		}
+	},
+	filters: {
+		TypeFormat(value) {
+			const map = {
+				0:'活动券',
+				1:'品类券',
+				2:'用户专享券',
+				3:'店铺券',
+				4:'新用户券',
+			}
+		}
+	},
+	data() {
+		return {}
+	},
+	created() {},
+	onLoad() {},
+	methods: {},
+	onShow() {}
+}
+</script>
+
+<style lang="scss">
+.coupon-content-model {
+	width: 100%;
+	height: 100%;
+	background: rgba(0, 0, 0, 0.5);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 8888;
+	transition: all 0.4s;
+	.coupon-alert-content {
+		width: 600rpx;
+		height: 612rpx;
+		position: absolute;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		margin: auto;
+		box-sizing: border-box;
+		padding-top: 92rpx;
+		.coupon {
+			width: 600rpx;
+			height: 522rpx;
+			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
+			background-size: cover;
+			box-sizing: border-box;
+			padding: 230rpx 40rpx 0 40rpx;
+			.coupon-list {
+				width: 100%;
+				height: 147rpx;
+				margin-bottom: 32rpx;
+				box-sizing: border-box;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
+				background-size: cover;
+				position: relative;
+				.list-cell-tags {
+					display: inline-block;
+					padding: 0 10rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					background-color: #f94b4b;
+					color: #ffffff;
+					font-size: 18rpx;
+					border-radius: 16rpx 0 16rpx 0;
+					text-align: center;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				.list-cell-le {
+					width: 154rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 0;
+					float: left;
+					.coupon-maxMoney {
+						width: 100%;
+						height: 54rpx;
+						line-height: 54rpx;
+						font-size: 42rpx;
+						color: #f94b4b;
+						text-align: center;
+						margin-top: 10rpx;
+						.small {
+							font-size: $font-size-20;
+						}
+					}
+					.coupon-minMoney {
+						width: 100%;
+						height: 28rpx;
+						float: left;
+						box-sizing: border-box;
+						padding-left: 24rpx;
+						.txt {
+							display: block;
+							height: 28rpx;
+							line-height: 28rpx;
+							font-size: 16rpx;
+							color: #f94b4b;
+							text-align: center;
+							padding: 0 5rpx;
+							background-color: #fff1eb;
+							border-radius: 4rpx;
+							float: left;
+						}
+					}
+				}
+				.list-cell-ri {
+					width: 366rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 20rpx;
+					float: left;
+					.list-cell-top {
+						width: 100%;
+						height: 64rpx;
+						line-height: 64rpx;
+						font-size: $font-size-26;
+						color: #333333;
+						float: left;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					.list-cell-time {
+						width: 100%;
+						height: 28rpx;
+						line-height: 28rpx;
+						text-align: left;
+						font-size: $font-size-20;
+						color: #999999;
+					}
+				}
+			}
+			.coupon-btn {
+				width: 100%;
+				height: 78rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
+				background-size: cover;
+				line-height: 78rpx;
+				text-align: center;
+				color: #ffffff;
+				font-size: $font-size-36;
+			}
+		}
+	}
+}
+</style>

+ 234 - 0
pages/user/order/components/cm-details-button.vue

@@ -0,0 +1,234 @@
+<template name="button">
+	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
+		<!-- 底部按钮 -->
+		<view class="button-content">
+			<view class="btn btn-payment" v-if="order.affirmPaymentFlag == 10" @click.stop="btnConfirm('payment',order)">确认打款<text>供应商</text></view>
+			<view class="btn btn-confirm" v-if="btnState.isConfirmation" @click.stop="btnConfirm('confirmation',order)">确认订单</view>
+			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
+			<view class="btn btn-share" @click.stop="onShareCode">
+				<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
+				分享订单
+			</view>
+			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
+			<!-- <view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view> -->
+			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
+			<view class="btn btn-firm" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">
+				确认收货
+				<view class="tips">采美豆<text class="line"></text></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'button',
+		props:{
+			status:{
+				type:Number
+			},
+			order: {
+				type:Object
+			},
+			shareCode:{
+				type:String
+			},
+		},
+		watch:{
+			status:{
+				handler:function(val){
+					this.initData(val)
+				},
+				deep:true//对象内部的属性监听,也叫深度监听
+			}
+		},
+		data() {
+			return{
+				btnState:this.initStatus(),
+				isIphoneX:this.$store.state.isIphoneX,
+				mapStateArr:[
+					{label:'isQuery',val:[4,5,12,13,33,22,23,32,77],status: true},
+					{label:'isDelete',val:[6],status: true},
+					{label:'isCancel',val:[0,111],status: true},
+					{label:'isConfirm',val:[33],status: true},
+					{label:'isConfirmation',val:[0],status: true},
+					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
+				]
+			}
+		},
+		created(){
+			this.initData(this.status)
+		},
+		computed: {
+
+		},
+		methods:{
+			initData(resVal) {
+				/**
+				 * @分享按钮统一显示
+				 * @按钮根据状态显示
+				 * @(4、5、7、12、22、23、32)显示[查看物流]按钮,其他隐藏
+				 * @(6)显示[删除订单],其他隐藏
+				 * @(0、111)显示[取消订单],其他隐藏
+				 * @(21,31)只显示分享
+				 * @(13,33)显示[确认收货]和[查看物流]
+				 */
+				this.btnState = this.initStatus()
+				this.mapStateArr.forEach(el => {
+					el.val.forEach(value => {
+						if(resVal === value){
+							this.btnState[el.label] = el.status
+						}
+					})
+				})
+			},
+			initStatus(){
+				let btnState= {
+						isQuery: false,
+						isDelete: false,
+						isCancel: false,
+						isConfirm: false,
+						isConfirmation:false,
+					}
+				return 	btnState
+			},
+			getShareCode(code){
+				this.shareCode = code
+			},
+			onShareCode(){
+				this.$parent.isShareModal = true
+				this.$emit('shareConfirm')
+			},
+			btnConfirm(type,order){
+				let data = {
+						type:type,
+						orderId:order.orderId,
+						order:order
+					}
+				this.$emit('buttonConfirm',data)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.button-template{
+		width: 100%;
+		height: auto;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		background: #FFFFFF;
+		.button-content{
+			padding:0 24rpx;
+			height: auto;
+			float: right;
+			position: relative;
+			.share-code{
+				width: 200rpx;
+				height:  64rpx;
+				line-height: 64rpx;
+				color: #2A45FF;
+				text-align: left;
+				position: absolute;
+				font-size: $font-size-28;
+				font-weight: bold;
+				left: 24rpx;
+				top: 24rpx;
+			}
+			.btn{
+				width: 160rpx;
+				height:  64rpx;
+				margin:22rpx 22rpx 22rpx 0;
+				line-height: 64rpx;
+				font-size:$font-size-26;
+				color: #666666;
+				text-align: center;
+				float: right;
+				border: 2rpx solid #999999;
+				border-radius: 34rpx;
+				&.btn-payment{
+					line-height: 38rpx;
+					font-size: 24rpx;
+					background: #f9a94b;
+					color: #fff;
+					border: 2rpx solid #f9a94b;
+					text{
+						display: block;
+						line-height: 15rpx;
+					}
+				}
+				&.btn-share{
+					position: relative;
+				}
+			}
+			.btn-confirm{
+				background:#ff7a51;
+				border-color:#ff7a51;
+				color: #FFFFFF;
+			}
+			.btn-pay{
+				background:#f94b4b;
+				margin-right: 0;
+				border: 2rpx solid #f94b4b;
+				color: #fff;
+			}
+			.btn-firm{
+				position:relative;
+				.tips{
+					width: 74rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					padding: 0 7rpx;
+					border-radius: 16rpx;
+					background-color: #ffe6dc;
+					color: $color-system;
+					text-align: center;
+					font-size: $font-size-20;
+					position:absolute;
+					right: 0;
+					top: -40rpx;
+					z-index: 90;
+					.line{
+						display: block;
+						width: 20rpx;
+						height: 20rpx;
+						background-color: #ffe6dc;
+						position: relative;
+						bottom: 18rpx;
+						left: 15rpx;
+						z-index: -1;
+						transform:rotate(45deg);
+					}
+				}
+			}
+			.btn-share{
+				.tips{
+					width: 160rpx;
+					height: 34rpx;
+					padding: 10rpx 10rpx;
+					background:#FF5B00;
+					border-radius: 8rpx;
+					position: absolute;
+					color: #FFFFFF;
+					line-height: 34rpx;
+					font-size: $font-size-24;
+					text-align: left;
+					right: 0;
+					top: -65rpx;
+					&:before{
+						content: "";
+						width: 25rpx;
+						height: 25rpx;
+						background:#FF5B00;
+						position: absolute;
+						bottom: -8rpx;
+						left: 30rpx;
+						z-index: -1;
+						transform:rotate(45deg);
+					}
+				}
+			}
+		}
+	}
+</style>

+ 1 - 4
pages/user/order/components/freight.vue → pages/user/order/components/cm-freight-popup.vue

@@ -176,10 +176,7 @@
 			discard(){
 				this.isShowOption = false
 				this.selectClass = ''
-			},
-			showTip(){
-				this.$emit('showFreightAlert')
-			},
+			}
 		}
 	}
 </script>

+ 0 - 0
pages/user/order/components/goodsList.vue → pages/user/order/components/cm-goods-temp.vue


+ 452 - 0
pages/user/order/components/cm-invice-popup.vue

@@ -0,0 +1,452 @@
+<template name="cm-parameter">
+	<view class="invoice-template">
+		<!-- 发票信息 -->
+		<view class="invoice-title" @tap.stop="handleShowPopup">
+			<text class="text">发票信息:</text> <text class="invoice-text">{{ invoiceText }}</text>
+			<text class="iconfont icon-xiangyou"></text>
+		</view>
+		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
+			<view class="tui-popup-box clearfix">
+				<view class="title">发票信息</view>
+				<view class="tui-popup-close" @click="hidePopup">
+					<text class="iconfont icon-iconfontguanbi"></text>
+				</view>
+				<view class="tui-popup-main">
+					<view class="popup-form">
+						<text
+							class="radio"
+							v-for="(invoice, index) in invoiceType"
+							:key="index"
+							@click="handleTnvoiceType(invoice.type, index)"
+							:class="invoiceTypeIndex === index ? 'active' : ''"
+						>
+							{{ invoice.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex === 1">
+						<view class="label">抬头类型:</view>
+						<text
+							class="radio"
+							v-for="(title, index) in titleType"
+							:key="index"
+							@click="handleTitleType(title.type, index)"
+							:class="titleIndex === index ? 'active' : ''"
+						>
+							{{ title.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex > 0">
+						<view class="label">发票抬头:</view>
+						<input
+							class="input"
+							type="text"
+							v-model="invoiceData.invoiceTitle"
+							placeholder="请输入发票抬头"
+							maxlength="50"
+							cursor-spacing="40"
+						/>
+					</view>
+					<template v-if="invoiceTypeIndex === 2 || titleIndex === 1">
+						<view class="popup-form">
+							<view class="label">单位税号:</view>
+							<input
+								class="input"
+								type="text"
+								v-model="invoiceData.corporationTaxNum"
+								placeholder="请输入单位税号"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册地址:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.registeredAddress"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册地址' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册电话:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.registeredPhone"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册电话' : '选填'"
+								maxlength="11"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">开户银行:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.openBank"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入开户银行' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">银行账号:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.bankAccountNo"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入银行账号' : '选填'"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+					</template>
+				</view>
+				<view class="tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="tui-modal-flex">
+						<button
+							class="tui-modal-button"
+							:disabled="disabled"
+							@click="handleConfirm"
+						>
+							确定
+						</button>
+					</view>
+				</view>
+			</view>
+		</tui-bottom-popup>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'cm-prams-popup',
+	props: {},
+	data() {
+		return {
+			popupShow: false,
+			isIphoneX: this.$store.state.isIphoneX,
+			userId:0,
+			invoiceTypeIndex: 0,
+			titleIndex: 0,
+			invoiceType: [
+				{
+					name: '不开发票',
+					type: 0
+				},
+				{
+					name: '普通发票',
+					type: 1
+				},
+				{
+					name: '增值税专用发票',
+					type: 2
+				}
+			],
+			titleType: [
+				{
+					name: '个人',
+					type: 0
+				},
+				{
+					name: '单位',
+					type: 1
+				}
+			],
+			invoiceText: '不开发票',
+			invoiceData: {
+				type: 0, 		//发票类型 0 不开发票 1 普通发票 2 增值税发票
+				headingType: 0, 		//抬头类型 0 个人 1 单位
+				invoiceTitle: '', 		//发票抬头
+				corporationTaxNum: '',  //单位税号
+				registeredAddress: '',  //单位地址
+				registeredPhone: '',    //注册电话
+				openBank: '', 		    //开户银行
+				bankAccountNo: ''       //银行账号
+			}
+		}
+	},
+	created() {
+		
+	},
+	computed: {
+		
+	},
+	methods: {
+		// 切换发票类型
+		handleTnvoiceType(type, index) {
+			this.invoiceTypeIndex = index
+			this.invoiceData.type = type
+			if(this.invoiceTypeIndex === 1){
+				this.titleIndex = 0
+				this.invoiceData.headingType = 0
+			}
+		},
+		// 切换抬头类型
+		handleTitleType(type, index) {
+			this.titleIndex = index
+			this.invoiceData.headingType = type
+		},
+		// 显示发票弹窗 查询发票信息
+		handleShowPopup(){
+			this.getUseFindInvoice()
+		},
+		// 确认保存发票
+		handleConfirm(){
+			if(this.invoiceTypeIndex === 0){
+				this.invoiceData = {...this.invoiceData , ...{ type : 0 }}
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.hidePopup()
+			}else{
+				this.checkedInput()
+			}
+		},
+		// 校验必填项
+		checkedInput(){
+			/**
+			 *  普通发票 个人 仅校验发票抬头
+			 * 	普通发票 单位 校验发票抬头 校验单位税号
+			 *  增值税发票 校验全部
+			 * */ 
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 0){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 1){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 2){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredAddress) {
+					this.$util.msg('请输入注册地址', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredPhone) {
+					this.$util.msg('请输入注册电话', 2000)
+					return
+				}
+				if (!this.invoiceData.openBank) {
+					this.$util.msg('请输入开户银行', 2000)
+					return
+				}
+				if (!this.invoiceData.bankAccountNo) {
+					this.$util.msg('请输入银行账号', 2000)
+					return
+				}
+			}
+			this.updateInvoiceFn()
+		},
+		//获取发票信息
+		async getUseFindInvoice() {
+			try {
+				this.popupShow = true
+				const resolve = await this.$api.getStorage()
+				this.userId = resolve.userId
+				const res = await this.OrderService.GetFindInvoice({ userId: resolve.userId })
+				this.invoiceData = {...this.invoiceData, ...res.data}
+				console.log('invoiceData',this.invoiceData)
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		//保存发票信息
+		async updateInvoiceFn() {
+			try {
+				const res = await this.OrderService.updateOrganize({ ...this.invoiceData,...{userId: this.userId }})
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.$emit('handleChoiceaInvoice', this.invoiceData)
+				this.popupShow = false
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		// 设置发票文案
+		setInvoiceText(data){
+			const map = {
+				0:'个人',
+				1:'单位'
+			}
+			switch (data.type){
+				case 0:
+					return `不开发票`
+					break;
+				case 1:
+					return `普票-${map[data.headingType]}(${this.nameFilters(data.invoiceTitle)})`
+					break;
+				case 2:
+					return `专票(${this.nameFilters(data.invoiceTitle)})`
+					break;
+			}
+		},
+		nameFilters(value) {
+			if(value && value.length>10){
+				return value.substring(0,10)+"..." 
+			}else{
+				return value
+			}
+		},
+		hidePopup() {
+			this.popupShow = false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-title {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		position: relative;
+		border-bottom: 1px solid #ebebeb;
+		.text {
+			font-size: $font-size-28;
+			color: $text-color;
+		}
+		.invoice-text {
+			font-size: $font-size-28;
+			color: #F85050;
+			line-height: 90rpx;
+			display: inline-block;
+			float: right;
+			box-sizing: border-box;
+			padding-right: 30rpx;
+		}
+		.iconfont {
+			width: 50rpx;
+			height: 88rpx;
+			line-height: 88rpx;
+			color: #999999;
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 220rpx;
+	padding: 24rpx 24rpx 0 24rpx;
+	.title {
+		font-size: $font-size-34;
+		color: $text-color;
+		line-height: 88rpx;
+		text-align: center;
+		float: left;
+		width: 100%;
+		height: 88rpx;
+		font-weight: bold;
+	}
+	.tui-popup-close {
+		width: 90rpx;
+		height: 90rpx;
+		position: absolute;
+		right: 0;
+		top: 24rpx;
+		line-height: 90rpx;
+		text-align: center;
+		color: #b2b2b2;
+		.icon-iconfontguanbi {
+			font-size: $font-size-40;
+		}
+	}
+	.tui-popup-main {
+		width: 100%;
+		float: left;
+		min-height: 400rpx;
+		.popup-form {
+			width: 100%;
+			height: 112rpx;
+			box-sizing: border-box;
+			padding: 23rpx 0;
+			border-bottom: 1px solid #e1e1e1;
+			&.none{
+				border-bottom: none;
+			}
+			.label {
+				width: 140rpx;
+				float: left;
+				font-size: $font-size-28;
+				line-height: 64rpx;
+				color: #666666;
+			}
+			.radio {
+				height: 64rpx;
+				padding: 0 28rpx;
+				line-height: 64rpx;
+				color: #666666;
+				text-align: center;
+				border-radius: 32rpx;
+				margin: 0 8rpx;
+				display: inline-block;
+				background: #f5f5f5;
+				font-size: $font-size-28;
+				&.active {
+					background: #fff4e6;
+					color: #f3b574;
+				}
+			}
+			.input {
+				line-height: 64rpx;
+				height: 64rpx;
+				color: #333333;
+				font-size: $font-size-28;
+			}
+		}
+	}
+	.tui-popup-btn {
+		width: 100%;
+		height: auto;
+		float: left;
+	}
+	.tui-modal-flex {
+		width: 100%;
+		height: 84rpx;
+		margin-top: 40rpx;
+		display: flex;
+		.tui-modal-button {
+			flex: 1;
+			line-height: 84rpx;
+			font-size: $font-size-28;
+			text-align: center;
+			border-radius: 42rpx;
+			padding: 0;
+			margin: 0 15rpx;
+			box-sizing: border-box;
+			background: $btn-confirm;
+			color: #ffffff;
+			&.disabled {
+				background: #e1e1e1;
+				border-radius: 42rpx;
+			}
+		}
+	}
+}
+</style>

+ 244 - 0
pages/user/order/components/cm-list-button.vue

@@ -0,0 +1,244 @@
+<template name="button">
+	<view class="button-template">
+		<!-- 底部按钮 -->
+		<view class="button-content">
+			<view class="btn btn-payment" v-if="order.affirmPaymentFlag == 10" @click.stop="btnConfirm('payment',order)">确认打款<text>供应商</text></view>
+			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
+			<view class="btn btn-confirm" v-if="btnState.isConfirmation" @click.stop="btnConfirm('confirmation',order)">确认订单</view>
+			<view class="btn btn-share"  @click.stop="onShareCode(order.orderId)">分享订单</view>
+			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
+			<!-- <view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view> -->
+			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
+			<view class="btn btn-firm" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">
+				确认收货
+				<view class="tips">采美豆<text class="line"></text></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:"button",
+		props:{
+			status: {
+				type:Number
+			},
+			order: {
+				type:Object
+			},
+		},
+		data() {
+			return{
+				isShare:true,
+				shareCode:'',
+				btnState:this.initStatus(),
+				mapStateArr:[
+					{label:'isQuery',val:[4,5,12,13,33,22,23,32,77],status: true},
+					{label:'isDelete',val:[6],status: true},
+					{label:'isCancel',val:[0,111],status: true},
+					{label:'isConfirm',val:[33],status: true},
+					{label:'isConfirmation',val:[0],status: true},
+					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
+				]
+			}
+		},
+		created(){
+			this.initData(this.status)
+		},
+		computed: {
+
+		},
+		watch:{
+			status:{
+				handler:function(val){
+					this.initData(val)
+				},
+				deep:true//对象内部的属性监听,也叫深度监听
+			}
+		},
+		methods:{
+			initData(resVal) {
+				/**
+				 * @分享按钮统一显示
+				 * @按钮根据状态显示
+				 * @(4、5、7、12、22、23、32)显示[查看物流]按钮,其他隐藏
+				 * @(6)显示[删除订单],其他隐藏
+				 * @(0、111)显示[取消订单],其他隐藏
+				 * @(21,31)只显示分享
+				 * @(13,33)显示[确认收货]和[查看物流]
+				 */
+				this.btnState = this.initStatus()
+				this.mapStateArr.forEach(el => {
+					el.val.forEach(value => {
+						if(resVal === value){
+							this.btnState[el.label] = el.status
+						}
+					})
+				})
+			},
+			initStatus(){
+				let btnState= {
+						isQuery: false,
+						isDelete: false,
+						isCancel: false,
+						isConfirm: false,
+						isShare: true,
+						isConfirmation:false,
+					}
+				return 	btnState
+			},
+			getShareCode(code){
+				this.shareCode = code
+			},
+			onShareCode(orderId){
+				this.$parent.isShareModal = true
+				this.$parent.btnoRderID = orderId
+				this.$emit('shareConfirm')
+			},
+			btnConfirm(type,order){
+				let data = {
+						type:type,
+						orderId:order.orderId,
+						order:order
+					}
+				this.$emit('buttonConfirm',data)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.button-template{
+		width: 100%;
+		height: auto;
+		float: left;
+		background: #FFFFFF;
+		.button-content{
+			height: auto;
+			float: right;
+			position: relative;
+			.share-code{
+				width: 200rpx;
+				height:  64rpx;
+				line-height: 64rpx;
+				color: #2A45FF;
+				text-align: left;
+				position: absolute;
+				font-size: $font-size-28;
+				font-weight: bold;
+				left: 24rpx;
+				top: 24rpx;
+			}
+			.btn{
+				width: 150rpx;
+				height:  64rpx;
+				margin: 22rpx 0 20rpx 20rpx;
+				line-height: 64rpx;
+				font-size:$font-size-26;
+				color: #999999;
+				text-align: center;
+				float: right;
+				border-radius: 34rpx;
+				border: 2rpx solid #999999;
+				&.btn-payment{
+					line-height: 38rpx;
+					font-size: 24rpx;
+					background: #f9a94b;
+					color: #fff;
+					border: 2rpx solid #f9a94b;
+					text{
+						display: block;
+						line-height: 15rpx;
+					}
+				}
+			}
+			.btn-color{
+				background: $btn-confirm;
+				// margin: 22rpx 0 22rpx 22rpx;
+			}
+			.btn-cancel{
+				// background:#FFFFFF;
+				// color: #999999;
+				// float: left;
+				// margin: 22rpx 0;
+				text-align: center;
+			}
+			// .btn-delete{
+			// 	background:linear-gradient(315deg,rgba(255,163,3,1) 0%,rgba(255,53,1,1) 100%);
+			// }
+			// .btn-query{
+			// 	background:linear-gradient(135deg,rgba(255,212,129,1) 0%,rgba(198,129,0,1) 100%);
+			// }
+			.btn-confirm{
+				background:#ff7a51;
+				border-color:#ff7a51;
+				color: #FFFFFF;
+			}
+			.btn-pay{
+				background:#f94b4b;
+				color: #FFFFFF;
+				border: 2rpx solid #f94b4b;
+			}
+			.btn-firm{
+				position:relative;
+				.tips{
+					width: 74rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					padding: 0 7rpx;
+					border-radius: 16rpx;
+					background-color: #ffe6dc;
+					color: $color-system;
+					text-align: center;
+					font-size: $font-size-20;
+					position:absolute;
+					right: 0;
+					top: -40rpx;
+					z-index: 90;
+					.line{
+						display: block;
+						width: 20rpx;
+						height: 20rpx;
+						background-color: #ffe6dc;
+						position: relative;
+						bottom: 18rpx;
+						left: 15rpx;
+						z-index: -1;
+						transform:rotate(45deg);
+					}
+				}
+			}
+			.btn-share{
+				// background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
+				position: relative;
+				.tips{
+					width: 160rpx;
+					height: 34rpx;
+					padding: 10rpx 10rpx;
+					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
+					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
+					border-radius: 8rpx;
+					position: absolute;
+					color: #FFFFFF;
+					line-height: 34rpx;
+					font-size: $font-size-24;
+					text-align: left;
+					right: 0;
+					top: -65rpx;
+					&:before{
+						content: "";
+						width: 25rpx;
+						height: 25rpx;
+						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
+						position: absolute;
+						bottom: -8rpx;
+						right: 30rpx;
+						z-index: -1;
+						transform:rotate(45deg);
+					}
+				}
+			}
+		}
+	}
+</style>

+ 148 - 0
pages/user/order/components/cm-orderpay-popup.vue

@@ -0,0 +1,148 @@
+<template name="sharealert">
+	<view class="alert spec" >
+		<view class="model-warp" @click.stop="hideConfirm">
+			<view class="content" v-if="modelType == 1">
+				<view class="content-title"></view>
+				<view class="text-content clearfix">
+					<view class="text">
+						<text>您有采美余额¥{{payModelData.ableUserMoney}}暂未使用,是否需要抵扣订单?</text>
+						<text>抵扣后您只需再支付¥{{payModelData.pendingPayments}}</text></view>
+					<view class="alert-btn" @click="cancelConfirm(dataInfo)">不抵扣,继续付款</view>
+					<view class="alert-btn" @click="paymentConfirm(1,dataInfo)">抵扣,继续付款</view>
+				</view>				
+			</view>
+			<view class="content" v-if="modelType == 2">
+				<view class="content-title"></view>
+				<view class="text-content clearfix">
+					<view class="text">您有采美余额¥{{payModelData.ableUserMoney}}暂未使用,是否需要抵扣订单?抵扣后订单支付完成</view>
+					<view class="alert-btn" @click="cancelConfirm(dataInfo)">不抵扣,继续付款</view>
+					<view class="alert-btn" @click="paymentConfirm(2,dataInfo)">抵扣</view>
+				</view>				
+			</view>
+			<view class="content" v-if="modelType == 3">
+				<view class="content-title"></view>
+				<view class="text-content clearfix">
+					<view class="text">目前机构余额剩余¥{{payModelData.ableUserMoney.toFixed(2)}}是否抵扣订单?</view>
+					<view class="alert-btn" @click="hideConfirm">取消,不抵扣</view>
+					<view class="alert-btn" @click="paymentConfirm(3,dataInfo)">抵扣</view>
+				</view>				
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'sharealert',
+		props:{
+			modelType:{
+				type:Number,
+				default:3
+			},
+			payModelData:{
+				type:Object
+			}
+		},
+		data() {
+			return{
+				dataInfo:{}
+			}
+		},
+		created() {
+			this.infoData(this.payModelData)
+		},
+		methods:{
+			infoData(el){
+				this.dataInfo = el
+			},
+			hideConfirm(){
+				this.$parent.isPayModel = false
+			},
+			cancelConfirm(data){
+				this.$emit('cancelConfirm',data)
+			},
+			paymentConfirm(type,data){
+				this.$parent.isPayModel = false
+				let _data = {type:type,order:data}
+				this.$emit('paymentConfirm',_data)
+			},
+			btnConfirm(data){//点击事件
+				this.$emit('btnConfirm',data)
+			}
+		}
+	}
+</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: 540rpx;
+			min-height: 310rpx;
+			box-sizing: border-box;
+			position: absolute;
+			left: 50%;
+			top: 50%;
+			transform: translate(-50%,-50%);
+			border-radius: 14rpx;
+			background-color: #FFFFFF;
+			padding-top: 180rpx;
+			.content-title{
+				position: absolute;
+				left: 0;
+				top: -53rpx;
+				width: 100%;
+				height: 232rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-orderAlert@2x.png) no-repeat;
+				background-size: contain;
+			}
+			.text-content{
+				width: 100%;
+				min-height: 208rpx;
+				box-sizing: border-box;
+				padding:24rpx;
+				float: left;
+				background-color: #FFFFFF;
+				border-radius:0 0 14rpx 14rpx;
+				.text{
+					letter-spacing: 2rpx;
+					line-height: 50rpx;
+					font-size: $font-size-26;
+					color: $text-color;
+					text-align: justify;
+					margin-bottom: 30rpx;
+				}
+			}
+			.alert-btn{
+				width: 492rpx;
+				height: 88rpx;
+				background: $btn-confirm;
+				line-height: 88rpx;
+				text-align: center;
+				border-radius: 44rpx;
+				color: #FFFFFF;
+				margin-top: 20rpx;
+			}
+		}	
+	}
+</style>

+ 0 - 0
pages/user/order/components/cm-return-instructions.vue → pages/user/order/components/cm-return-popup.vue


+ 1 - 1
components/cm-module/modelAlert/shareAlert.vue → pages/user/order/components/cm-share-popup.vue

@@ -147,4 +147,4 @@
 			}
 		}	
 	}
-</style>
+</style>

+ 175 - 0
pages/user/order/components/details/cm-address-temp.vue

@@ -0,0 +1,175 @@
+<template name="address">
+	<view class="address-template">
+		 <!-- 地址信息 -->
+		 <view class="address-section">
+		 	<view class="address-content">
+				<view class="address-cen">
+					<view class="top">
+						<view class="name">{{addressData.receiver ? addressData.receiver : ''}}</view>
+						<view class="mobile">{{addressData.mobile ? addressData.mobile : ''}}</view>
+					</view>
+					<view class="address">
+						<view class="address-icon">
+							<text class="iconfont icon-shouhuodizhi"></text>
+						</view>
+						<view class="address-text">
+							{{addressData.province ? addressData.province : ''}}
+							{{addressData.city ? addressData.city : ''}}
+							{{addressData.town ? addressData.town : ''}}
+							{{addressData.address ? addressData.address : ''}}
+						</view>
+					</view>
+				</view>
+		 	</view>
+		 </view>
+		<image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
+	</view>
+</template>
+
+<script>
+	import { mapState, mapMutations } from 'vuex'	
+	export default{
+		name:'address',
+		props:{
+			addressData:{
+				type:Object
+			}
+		},
+		data() {
+			return{
+				initData:'',
+				StaticUrl: this.$Static,
+			}
+		},
+		created(){
+			this.initData = this.addressData
+		},
+		computed: {
+			...mapState(['isManage'])
+		},
+		methods:{
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	.address-template{
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+        
+        &::after{
+            content: "";
+            display: block;
+            clear: both;
+        }
+		// border-top: 1px solid #F8F8F8;
+		image{
+			float: left;
+			width: 100%;
+			height: 6rpx;
+		}
+	}
+	.address-section {
+		width: 100%;
+		height: auto;
+		float: left;
+		position: relative;
+		
+		.address-empty{
+			width: 100%;
+			height: 84rpx;
+			line-height: 84rpx;
+			color: $color-system;
+			text-align: center;
+			font-size: $font-size-26;
+			font-weight: bold;
+			background: #fff;
+			float: left;
+			.icon-tianjiadizhi{
+				font-size: 30rpx;
+				margin: 0 8rpx;
+			}
+		}
+		.address-content {
+			display: flex;
+			align-items: center;
+			padding:20rpx 24rpx;
+			background: #fff;
+		}
+		
+		.icon-shouhuodizhi {
+			flex-shrink: 0;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 40rpx;
+			color: $color-system;
+			font-size: 46rpx;
+			margin-right: 10rpx;
+		}	
+		.address-cen {
+			width: 100%;
+			height: auto;
+			position: relative;
+			.top{
+				padding-left: 50rpx;
+				height: 42rpx;
+				line-height: 42rpx;
+				text-align: left;
+				font-size: $font-size-30;
+				color: $text-color;
+				padding-bottom: 8rpx;
+				display: flex;
+				float: left;
+				.name{
+					margin-right: 48rpx;
+				}
+				.mobile{
+					margin-right: 40rpx;
+				}
+			}
+			.address {
+				width: 100%;
+				height: auto;
+				float: left;
+				.address-icon{
+					width: 40rpx;
+					height: auto;
+					float: left;
+					line-height: 40rpx;
+				}
+				.address-text{
+					width: 650rpx;
+					padding-left: 10rpx;
+					float: left;
+					line-height: 40rpx;
+					font-size: $font-size-28;
+					color: #666666;
+					text-align: left;
+					-o-text-overflow: ellipsis;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+				}
+			}
+		}
+		.icon-xiayibu {
+			font-size: 32rpx;
+			color: $text-color;
+			margin-right: 30rpx;
+		}
+		.a-bg {
+			position: absolute;
+			left: 0;
+			bottom: 0;
+			display: block;
+			width: 100%;
+			height: 5rpx;
+		}
+	}
+</style>

+ 523 - 0
pages/user/order/components/details/cm-goods-temp.vue

@@ -0,0 +1,523 @@
+<template name="goods">
+	<view class="goods-template">
+		<!-- 商品列表 -->
+		<view class="goods-list">
+			<view v-for="(item, index) in list" :key="index" class="goods-item clearfix">
+				<view class="shoptitle">
+					<view v-if="item.shopPromotion" class="floor-item-act">
+						<view class="floor-tags" @click.stop="clickPopupShow(item.shopPromotion)">{{
+							item.shopPromotion.name
+						}}</view>
+					</view>
+					<view class="title-text" v-if="information.secondHandOrderFlag == 1"
+						>{{ item.shopName }}
+						<label class="paymenttext" v-if="information.affirmPaymentFlag == 1">已确认打款供应商</label>
+					</view>
+					<view class="title-text" v-else @click="goShophome(item)">
+						{{ item.shopName }} <label class="iconfont icon-jinrudianpu"></label>
+					</view>
+				</view>
+				<view class="productlist" v-for="(pros, idx) in item.orderProductList" :key="idx">
+					<view class="goods-pros-t " @click="details(pros)">
+						<view class="pros-left">
+							<view class="pros-img">
+								<image :src="pros.image" alt="" />
+								<text class="tips" v-if="pros.giftType == 2 || pros.giftType == 1">赠品</text>
+							</view>
+						</view>
+						<view class="pros-product">
+							<view class="producttitle">{{ pros.name }}</view>
+							<view class="productspec product-view" v-if="pros.productCategory != 2"
+								>规格:{{ pros.productUnit ? pros.productUnit : '' }}</view
+							>
+							<view class="product-view">
+								<view
+									class="view-num red"
+									:class="
+										pros.svipPriceFlag == 1 || PromotionsFormat(pros.productPromotion) ? 'none' : ''
+									"
+									>¥{{ pros.price | NumFormat }}</view
+								>
+								<view class="view-num right">x {{ pros.num }}</view>
+							</view>
+							<view class="floor-item-act">
+								<template v-if="pros.productPromotion">
+									<view
+										v-if="PromotionsFormat(pros.productPromotion)"
+										class="floor-tags"
+										@click.stop="clickPopupShow(pros.productPromotion)"
+									>
+										{{ pros.productPromotion.name }}
+										<text v-if="pros.productPromotion != null && pros.productPromotion.type != 3">
+											:¥{{
+												pros.productPromotion == null
+													? '0.00'
+													: pros.productPromotion.touchPrice | NumFormat
+											}}
+										</text>
+									</view>
+									<view
+										v-else-if="pros.productPromotion.type != 3"
+										class="floor-tags"
+										@click.stop="clickPopupShow(pros.productPromotion)"
+										>{{ pros.productPromotion.name }}</view
+									>
+								</template>
+								<template v-if="pros.svipPriceFlag == 1">
+									<view class="svip-tags">
+										<view class="tags">SVIP</view>
+										<view class="price">{{ pros.svipPriceTag }}</view>
+									</view>
+								</template>
+							</view>
+						</view>
+					</view>
+					<view class=" product-info clearfix"> 
+						<view class="product-view" v-if="pros.returnedNum > 0 || pros.actualCancelNum > 0">
+							<view class="view-num">已退货/已取消:<text class="text">{{ pros.returnedNum }}/{{ pros.actualCancelNum }}</text></view>
+						</view>
+						<view class="product-view" v-if="pros.svipPriceType != 1">
+							<view class="view-num">折扣:<text class="text">{{ pros.discount == null ? '0' : pros.discount }}%</text></view>
+						</view>
+						<view class="product-view">
+							<view class="view-num">税率:<text class="text">{{ pros.taxRate }}%</text></view>
+						</view>
+						<view class="product-view">
+							<view class="view-num">折后单价:<text class="text">¥{{ pros.discountPrice | NumFormat }}</text></view>
+						</view>
+						<view class="product-view allPrice">
+							<view class="view-num">合计:<text class="text">¥{{ pros.totalFee | NumFormat }}</text></view>
+						</view>
+					</view>
+				</view>
+				<view class="goods-pros-m" v-if="item.note">
+					<view class="m-text">留言:</view>
+					<view class="m-input">
+						<view class="text">{{ item.note ? item.note : '' }}</view>
+					</view>
+				</view>
+				<view class="goods-pros-b clearfix" v-if="information.onlinePayFlag == 0">
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">商品总额:</view>
+						<view class="price-view-ri">¥{{ item.totalAmount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">优惠:</view>
+						<view class="price-view-ri">¥{{ item.eachDiscount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">应付金额:</view>
+						<view class="price-view-ri">¥{{ item.realPay | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view" v-if="item.isHandelShow">
+						<view class="price-view-le">已付金额:</view>
+						<view class="price-view-ri">¥{{ item.receiptAmount | NumFormat }}</view>
+					</view>
+					<view class="pros-price-view">
+						<view class="price-view-le">待付金额:</view>
+						<view class="price-view-ri red">¥{{ item.obligation | NumFormat }}</view>
+					</view>
+					<view class="pros-price-btn">
+						<view class="btn" @click="handelShowDetails(item)">
+							{{ item.isHandelShow ? '收起' : '查看更多' }}
+							<text class="iconfont" :class="item.isHandelShow ? 'icon-xiangshangjiantou' : 'icon-xiangxiajiantou'"></text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'goods',
+	props: {
+		shopOrderData: {
+			type: Array
+		},
+		information: {
+			type: Object
+		}
+	},
+	data() {
+		return {
+			list: [],
+			vipFlag: 0,
+		}
+	},
+	created() {
+		this.initGetStotage(this.shopOrderData)
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		},
+		formatIncludedTax(value) {
+			if (value === '1') {
+				return '不含税 '
+			} else if (value === '2') {
+				return '含税'
+			} else {
+				return ''
+			}
+		}
+	},
+	computed: {},
+	methods: {
+		async initGetStotage(data) {
+			const userInfo = await this.$api.getStorage()
+			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
+			this.list = data.map((el,index)=>{
+				el.isHandelShow = false
+				return el
+			})
+		},
+		handelShowDetails(item){
+			item.isHandelShow = !item.isHandelShow
+		},
+		goShophome(shop) {
+			if(shop.shopType === 2){
+				return
+			}
+			this.$api.navigateTo(`/pages/supplier/user/my-shop?shopId=${shop.shopId}`)
+		},
+		details(pros) {
+			if (pros.validFlag == 9) {
+				return
+			} else {
+				this.$api.navigateTo(`/pages/goods/product?id=${pros.productId}`)
+			}
+		},
+		clickPopupShow(pros) {
+			console.log(pros)
+			this.$emit('popupClick', pros)
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.goods-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.goods-list {
+		width: 100%;
+		height: auto;
+		background: #f7f7f7;
+		.goods-item {
+			width: 702rpx;
+			padding: 24rpx;
+			height: auto;
+			background: #ffffff;
+			margin-bottom: 24rpx;
+			&:last-child {
+				margin-bottom: 0;
+			}
+		}
+		.shoptitle {
+			width: 100%;
+			float: left;
+			height: 56rpx;
+			line-height: 56rpx;
+			margin-bottom: 12rpx;
+            .floor-item-act{
+                height: 56rpx;
+                text-align: center;
+                box-sizing: border-box;
+                float: left;
+                padding: 10rpx 0;
+                margin-right: 12rpx;
+                .floor-tags{
+                    height: 28rpx;
+                    border-radius: 6rpx;
+                    background-color: #FFFFFF;
+                    line-height: 28rpx;
+                    color: $color-system;
+                    text-align: center;
+                    display: inline-block;
+                    padding:0 6rpx;
+                    font-size: $font-size-20;
+                    border: 1px solid #FF5B00;
+                    float: left;
+                }
+            }
+			.title-text {
+				width: 400rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				float: left;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 56rpx;
+				font-weight: bold;
+				.iconfont {
+					color: #999999;
+					font-size: 28rpx;
+					margin-left: 10rpx;
+				}
+				.paymenttext {
+					color: #f9a94b;
+					font-size: $font-size-22;
+					margin-left: 20rpx;
+				}
+			}
+		}
+		.productlist {
+			width: 100%;
+			height: auto;
+			padding: 0;
+			box-sizing: border-box;
+			border-bottom: 1px solid #E1E1E1;
+		}
+		.goods-pros-t {
+			display: flex;
+			width: 100%;
+			height: auto;
+			margin: 20rpx 0;
+			.pros-left {
+				width: 210rpx;
+				height: 100%;
+				margin: 0 26rpx 0 0;
+			}
+			.pros-img {
+				width: 210rpx;
+				height: 210rpx;
+				border-radius: 10rpx;
+				border: 1px solid #f3f3f3;
+				position: relative;
+				.tips {
+					display: inline-block;
+					width: 80rpx;
+					height: 40rpx;
+					background-image: linear-gradient(214deg, #ff4500 0%, #ff5800 53%, #ff4367 100%);
+					line-height: 40rpx;
+					text-align: center;
+					font-size: $font-size-24;
+					color: #ffffff;
+					border-radius: 10rpx 0 10rpx 0;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				image {
+					width: 210rpx;
+					height: 210rpx;
+					border-radius: 10rpx;
+				}
+			}
+		}
+		.product-info {
+			padding: 10rpx 0;
+			.product-view {
+				font-size: $font-size-24;
+				color: #999999;
+				overflow: hidden;
+				height: 44rpx;
+				line-height: 44rpx;
+				float: left;
+				width: 50%;
+				.view-num {
+					float: left;
+					.text{
+						color: #333333;
+					}
+				}
+			}
+		}
+		.pros-product {
+			width: 468rpx;
+			height: 100%;
+			line-height: 36rpx;
+			font-size: $font-size-26;
+			position: relative;
+			.product-view {
+				&.allPrice {
+					width: 100%;
+				}
+				.view-num {
+					flex: 1;
+					text-align: left;
+					font-size: $font-size-26;
+					color: #999999;
+					line-height: 44rpx;
+					float: left;
+					&.right {
+						float: right;
+					}
+					&.red {
+						color: #ff2000;
+						font-weight: bold;
+						&.none {
+							text-decoration: line-through;
+							color: #999999;
+						}
+					}
+				}
+			}
+			.producttitle {
+				width: 100%;
+				display: inline-block;
+				height: auto;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-bottom: 8rpx;
+			}
+			.productspec {
+				height: 44rpx;
+				color: #999999;
+				line-height: 44rpx;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				word-break: break-all;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 1;
+				overflow: hidden;
+			}
+			.productprice {
+				height: 48rpx;
+				position: absolute;
+				width: 100%;
+				bottom: 0;
+				.price {
+					line-height: 48rpx;
+					font-size: $font-size-28;
+					width: 48%;
+					color: #ff2a2a;
+					float: left;
+					.price {
+						line-height: 48rpx;
+						font-size: $font-size-28;
+						width: 48%;
+						color: #ff2a2a;
+						float: left;
+						font-weight: bold;
+					}
+				}
+				.count {
+					height: 100%;
+					float: right;
+					position: relative;
+					.small {
+						color: #666666;
+					}
+				}
+			}
+			.floor-item-act {
+				width: 100%;
+				height: 56rpx;
+				text-align: center;
+				box-sizing: border-box;
+				float: left;
+				padding: 10rpx 0 0 0;
+			}
+			.floor-item-act {
+				height: 56rpx;
+				text-align: center;
+				box-sizing: border-box;
+				float: left;
+				padding: 10rpx 0;
+				margin-right: 12rpx;
+			}
+		}
+		.goods-pros-m {
+			width: 100%;
+			height: auto;
+			line-height: 76rpx;
+			font-size: $font-size-26;
+			color: $text-color;
+			float: left;
+			.m-text {
+				width: 62rpx;
+				float: left;
+				padding-right: 20rpx;
+				font-weight: bold;
+			}
+			.m-input {
+				display: -webkit-box;
+				display: -webkit-flex;
+				display: flex;
+				-webkit-box-align: center;
+				-webkit-align-items: center;
+				align-items: center;
+				position: relative;
+				width: 620rpx;
+				height: auto;
+				padding: 20rpx 0 10rpx 0;
+				background: #ffffff;
+				.text {
+					width: 100%;
+					height: 100%;
+					font-size: $font-size-26;
+					line-height: 36rpx;
+					color: #333333;
+				}
+			}
+		}
+		.goods-pros-b {
+			width: 100%;
+			padding-top: 12rpx;
+			float: left;
+			.pros-price-view{
+				width: 100%;
+				height: 44rpx;
+				font-size: 24rpx;
+				line-height: 44rpx;
+				.price-view-le{
+					float: left;
+					color: #999999;
+					text-align: left;
+				}
+				.price-view-ri{
+					float: right;
+					color: #333333;
+					text-align: right;
+					&.red{
+						color: #F94B4B;
+					}
+				}
+			}
+			.pros-price-btn{
+				width: 100%;
+				height: 48rpx;
+				.btn{
+					width: 168rpx;
+					height: 48rpx;
+					line-height: 46rpx;
+					box-sizing: border-box;
+					border: 2rpx solid #e1e1e1;
+					border-radius: 8rpx;
+					text-align: center;
+					color: #b2b2b2;
+					margin: 0 auto;
+					font-size: $font-size-24;
+					.iconfont {
+						
+					}
+				}
+			}
+		}
+	}
+}
+</style>

+ 151 - 0
pages/user/order/components/details/cm-invice-temp.vue

@@ -0,0 +1,151 @@
+<template name="invoice">
+	<view class="invoice-template">
+		<!-- 发票信息 -->
+		<view class="invoice-content">
+			<view class="invoice-title">发票信息</view>
+			<view class="invoice-empty">
+				<text>{{ invoiceText }}</text>
+			</view>
+			<view class="invoice-text" v-if="orderInvoice.type > 0">
+				<view class="table">
+					<text class="label-name">发票抬头:</text>
+					<text class="label-text">{{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : '无' }}</text>
+				</view>
+				<template v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">
+					<view class="table">
+						<text class="label-name">单位税号:</text>
+						<text class="label-text">{{
+							orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">注册地址:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredAddress ? orderInvoice.registeredAddress : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">注册电话:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredPhone ? orderInvoice.registeredPhone : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">开户银行:</text>
+						<text class="label-text">{{ orderInvoice.openBank ? orderInvoice.openBank : '无' }}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">银行账号:</text>
+						<text class="label-text">{{ bankAccountNo ? bankAccountNo : '无' }}</text>
+					</view>
+				</template>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'invoice',
+	props: {
+		orderInvoice: {
+			type: Object
+		}
+	},
+	filters: {},
+	data() {
+		return {
+			invoiceText: '不开发票',
+			title: '发票信息',
+			isOpen: false,
+			bankAccountNo: ''
+		}
+	},
+	created() {
+		this.initData(this.orderInvoice)
+	},
+	computed: {},
+	methods: {
+		initData(data) {
+			if (data) {
+				this.bankAccountNo = this.$reg.bankRegex(data.bankAccountNo)
+				this.invoiceText = this.setInvoiceText(data)
+			}
+		},
+		// 设置发票文案
+		setInvoiceText(data) {
+			const map = {
+				0: '个人',
+				1: '单位'
+			}
+			switch (data.type) {
+				case 0:
+					return `不开发票`
+					break
+				case 1:
+					return `普票-${map[data.headingType]}`
+					break
+				case 2:
+					return `专票`
+					break
+			}
+		},
+		onMessage(pros) {},
+		showInvoice() {
+			this.isOpen = !this.isOpen
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-content {
+		width: 702rpx;
+		padding: 20rpx 24rpx;
+	}
+	.invoice-title {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 40rpx;
+		font-weight: bold;
+		margin-bottom: 30rpx;
+	}
+	.invoice-empty {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 64rpx;
+		.txt {
+			font-size: $font-size-24;
+			color: #999999;
+		}
+	}
+	.invoice-text {
+		width: 100%;
+		height: auto;
+		.table {
+			height: auto;
+			line-height: 64rpx;
+			font-size: $font-size-26;
+			color: $text-color;
+			text-align: left;
+			position: relative;
+			.label-name {
+				display: inline-block;
+				line-height: 64rpx;
+				color: #999999;
+			}
+			.label-text {
+				color: #333333;
+			}
+		}
+	}
+}
+</style>

+ 329 - 0
pages/user/order/components/details/cm-order-temp.vue

@@ -0,0 +1,329 @@
+<template name="information">
+	<view class="information-template">
+		<!-- 订单信息 -->
+		<view class="information-content">
+			<view class="information-view title">
+				<view class="view-num">
+					<view class="bage-text">
+						订单编号:<label class="label">{{ orderData.orderNo ? orderData.orderNo : '' }}</label>
+					</view>
+				</view>
+			</view>
+			<view class="information-view same">
+				<view class="view-num">
+					订单总额:<label class="label">¥{{ orderData.payTotalFee | NumFormat }}</label>
+				</view>
+			</view>
+			<view class="information-view">
+				<view class="view-num bold">
+					订单标识:<label class="label">{{ orderData.orderMark ? orderData.orderMark : '' }}</label>
+					<text class="clipboard" @click="clipboard(orderData.orderMark)">复制</text>
+				</view>
+			</view>
+			<view class="information-view same">
+				<view class="view-num">
+					待付金额:<text class="red">¥{{ orderData.pendingPayments | NumFormat }}</text>
+				</view>
+				<view class="view-man"></view>
+			</view>
+			<template v-if="openShowflag">
+				<view class="information-view">
+					<view class="view-num time">
+						下单时间:<label class="label">{{ orderData.orderTime ? orderData.orderTime : '' }}</label>
+					</view>
+					<!-- <view class="view-type">{{ orderData.status | TextFormat }}</view> -->
+				</view>
+				<view class="information-view same">
+					<view class="view-num">
+						余额抵扣:<label class="label">¥{{ orderData.balancePayFee | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view ">
+					<view class="view-num" v-if="orderData.postageFlag == 0">
+						运费:<label class="label">包邮</label>
+					</view>
+					<view class="view-num" v-if="orderData.postageFlag == -1">
+						运费:<label class="label">到付</label>
+					</view>
+					<view class="view-num" v-if="orderData.postageFlag == 1">
+						运费:<label class="label">¥{{ orderData.postage | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view same" v-if="orderData.svipFullReduction > 0">
+					<view class="view-man">
+						超级会员优惠:<label class="label">¥{{ orderData.svipFullReduction | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view" v-if="orderData.userBeans > 0">
+					<view class="view-man">
+						采美豆抵用运费:<label class="label">{{ orderData.userBeans }}</label>
+					</view>
+				</view>
+				<view class="information-view same" v-if="orderData.discountFee && orderData.discountFee > 0">
+					<view class="view-num">
+						经理折扣:<label class="label">¥{{ orderData.discountFee | NumFormat }}</label>
+					</view>
+				</view>
+				<view
+					class="information-view"
+					v-if="orderData.promotionFullReduction && orderData.promotionFullReduction > 0"
+				>
+					<view class="view-man">
+						促销满减:<label class="label">¥{{ orderData.promotionFullReduction | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view same">
+					<view class="view-man">
+						优惠券:<label class="label">¥{{ orderData.couponAmount | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view">
+					<view class="view-man">
+						赠品总数:<label class="label">{{
+							orderData.presentCount + orderData.promotionalGiftsCount
+						}}</label>
+					</view>
+				</view>
+				<view class="information-view same">
+					<view class="view-man">
+						应付总额:<label class="red">¥{{ orderData.payableAmount | NumFormat }}</label>
+					</view>
+				</view>
+				<view class="information-view">
+					<view class="view-num">
+						已支付:<label class="red">¥{{ orderData.receiptAmount | NumFormat }}</label>
+					</view>
+					<view class="view-man"></view>
+				</view>
+			</template>
+		</view>
+		<view class="openinfo" v-if="infoflag">
+			<view class="btnInfo" @click="openShow">
+				查看更多
+				<text class="iconfont icon-xiangxiajiantou"></text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+const thorui = require('@/components/clipboard/clipboard.thorui.js')
+export default {
+	name: 'information',
+	props: {
+		information: {
+			type: Object
+		}
+	},
+	data() {
+		return {
+			orderData: '',
+			openShowflag: false,
+			infoflag: true
+		}
+	},
+	created() {
+		this.initData(this.information)
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			if (!value) return '0.00'
+			let number = Number(value)
+			return number.toFixed(2)
+		},
+		TextFormat(status) {
+			//处理金额
+			let HtmlText,
+				typeTextObject = {
+					0: '待确认',
+					4: '交易完成',
+					5: '订单完成',
+					6: '已关闭',
+					7: '交易全退',
+					77: '交易全退',
+					11: '待付款待发货',
+					12: '待付款部分发货',
+					13: '待付款已发货',
+					21: '部分付款待发货',
+					22: '部分付款部分发货',
+					23: '部分付款已发货',
+					31: '已付款待发货',
+					32: '已付款部分发货',
+					33: '已付款已发货',
+					111: '待付款待发货'
+				}
+
+			Object.keys(typeTextObject).forEach(key => {
+				if (key == status) {
+					HtmlText = typeTextObject[key]
+				}
+			})
+			return HtmlText
+		}
+	},
+	computed: {},
+	watch: {
+		information: {
+			handler: function(val) {
+				this.initData(val)
+			},
+			deep: true //对象内部的属性监听,也叫深度监听
+		}
+	},
+	methods: {
+		openShow() {
+			this.openShowflag = true
+			this.infoflag = false
+		},
+		initData(res) {
+			this.orderData = res
+		},
+		clipboard(data) {
+			thorui.getClipboardData(data, res => {
+				if (res) {
+					this.$util.msg('复制成功', 2000, true, 'success')
+				} else {
+					this.$util.msg('复制失败', 2000, true, 'none')
+				}
+			})
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.information-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.information-content {
+		width: 702rpx;
+		padding: 15rpx 24rpx 20rpx 24rpx;
+		.information-view {
+			height: 50rpx;
+			line-height: 50rpx;
+			font-size: $font-size-24;
+			margin: 4rpx 0;
+			// display: flex;
+			width: 55%;
+			display: inline-block;
+			&.same {
+				width: 45%;
+				text-align: right;
+			}
+			// &.title{
+			// 	height: 68rpx;
+			// 	line-height: 68rpx;
+			// 	margin-bottom: 5rpx;
+			// }
+			view {
+				// flex: 1;
+				color: $text-color;
+				color: #999999;
+				.label {
+					color: #666666;
+				}
+			}
+			.view-num.title {
+				height: 68rpx;
+				line-height: 68rpx;
+				position: relative;
+				.bage-icon {
+					width: 50rpx;
+					height: 50rpx;
+					display: block;
+					position: absolute;
+					right: 0;
+					top: 9rpx;
+				}
+				.bage-buss {
+					display: inline-block;
+					width: 72rpx;
+					height: 30rpx;
+					background: radial-gradient(circle, rgba(255, 39, 180, 1) 0%, rgba(193, 77, 245, 1) 100%);
+					border-radius: 4rpx;
+					line-height: 30rpx;
+					font-size: $font-size-24;
+					text-align: center;
+					color: #ffffff;
+					margin-top: 10rpx;
+				}
+				.bage-auto {
+					display: inline-block;
+					width: 72rpx;
+					height: 30rpx;
+					background: radial-gradient(circle, rgba(255, 180, 39, 1) 0%, rgba(245, 142, 77, 1) 100%);
+					border-radius: 4rpx;
+					line-height: 30rpx;
+					font-size: $font-size-24;
+					text-align: center;
+					color: #ffffff;
+					margin-top: 10rpx;
+				}
+				.bage-text {
+					display: inline-block;
+					font-size: $font-size-28;
+					line-height: 68rpx;
+					text-align: left;
+					color: $color-system;
+					// margin-left: 10rpx;
+				}
+			}
+			.view-num.ord {
+				color: $color-system;
+				text-align: left;
+				flex: 3;
+				font-weight: bold;
+			}
+			.view-num.time {
+				color: #999999;
+				flex: 6;
+			}
+			// .bold{
+			// 	font-weight: bold;
+			// }
+			.red {
+				color: #ff2a2a;
+			}
+			.view-type {
+				float: right;
+				text-align: right;
+				color: #ff2a2a;
+				flex: 4;
+			}
+			.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: 6rpx;
+				line-height: 36rpx;
+				display: inline-block;
+				margin-left: 42rpx;
+			}
+		}
+	}
+}
+.openinfo {
+	width: 100%;
+	height: 48rpx;
+	margin-bottom: 30rpx;
+	.btnInfo{
+		width: 168rpx;
+		height: 48rpx;
+		line-height: 46rpx;
+		box-sizing: border-box;
+		border: 2rpx solid #e1e1e1;
+		border-radius: 8rpx;
+		text-align: center;
+		color: #b2b2b2;
+		margin: 0 auto;
+		font-size: $font-size-24;
+	}
+}
+</style>

+ 159 - 0
pages/user/order/components/details/cm-payment-temp.vue

@@ -0,0 +1,159 @@
+<template name="record">
+	<view class="record-template">
+		<!-- 支付记录 -->
+		<view class="record-content">
+			<view class="record-title">
+				<view class="record-title-l">支付记录</view>
+				<view class="record-title-r" v-if="!isEmpty">
+					已支付:<text class="red">¥{{ receiptAmount != null ? receiptAmount.toFixed(2): '0.00'}}</text>
+				</view>
+			</view>
+			<view class="record-empty" v-if="isEmpty">
+			 	<text>暂无支付记录</text>
+			</view>
+			<view class="record-list" v-else>
+				<view class="record-item" v-for="(record,index) in discernReceiptList" :key="index">
+					<view class="record-item-t">
+						<view class="item-time mm">¥{{record.associateAmount.toFixed(2)}}</view>
+					</view>
+					<view class="record-item-t">
+						<view class="item-time tt">{{ record.receiptDate }}</view>
+						<view class="item-time pp">{{ payTypeText(record) }}</view>
+					</view>	
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'record',
+		props:{
+			discernReceiptList:{
+				type:Array
+			},
+			receiptAmount:{
+				type:Number
+			}
+		},
+		data() {
+			return{
+				isEmpty:false,
+				paymentData:'',
+				typeText:'',
+				isOpen:false,
+			}
+		},
+		created(){
+			this.initData(this.discernReceiptList)
+		},
+		computed: {
+
+		},
+		methods:{
+			initData(res) {
+				if(res!=''){
+					this.isEmpty = false
+					this.paymentData = res
+				}else{
+					this.isEmpty = true
+				}
+			},
+			payTypeText(record) {
+				//处理支付记录文字
+				const map = {
+					12: '企业网银',
+					13: '微信支付',
+					14: '支付宝',
+					15: '微信支付',
+					16: '余额抵扣',
+				}
+				if(record.payType === 28 || record.payType === 29 ){
+					return record.quickPayStr
+				}else{
+					return map[record.payType]
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.record-template{
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		float: left;
+		margin-top: 24rpx;
+		.record-content{
+			width: 702rpx;
+			padding: 20rpx 24rpx;
+			height: auto;
+			.record-title{
+				width: 100%;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 40rpx;
+				margin-bottom: 12rpx;
+				float: left;
+				.record-title-l{
+					font-weight: bold;
+					float: left;
+				}
+				.record-title-r{
+					float: right;
+					.red{
+						color: #FF2A2A;
+						font-weight: bold;
+					}
+				}
+			}
+			.record-empty{
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 40rpx;
+			}
+			.record-list{
+				width: 100%;
+				height: auto;
+				float: left;
+				margin-top: 12rpx;
+				.record-item{
+					height: auto;
+					width: 100%;
+					padding: 12rpx 0;
+					font-size: $font-size-28;
+					float: left;
+					.record-item-t{
+						width: 100%;
+						height: 40rpx;
+						display: flex;
+						justify-content: center;
+						flex-direction: row;
+						.item-time{
+							line-height: 48rpx;
+							&.mm{
+								flex: 1;
+								color: $text-color;
+								text-align: left;
+							}
+							&.pp{
+								flex: 5;
+								color: #999999;
+								text-align: right;
+							}
+							&.tt{
+								flex: 5;
+								color: #999999;
+								text-align: left;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 235 - 0
pages/user/order/components/details/cm-promote-popup.vue

@@ -0,0 +1,235 @@
+<template name="cm-price">
+	<!--促销活动弹窗提示-->
+	<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
+		<view class="tui-popup-box clearfix">
+			<view class="tui-scrollview-box">
+				<view class="box-text">
+					<text>促销时间:</text>
+					<text class="txt" v-if="Promotion.status == 1">不限时</text>
+					<text class="txt" v-else>{{ Promotion.beginTime }} ~ {{ Promotion.endTime }}</text>
+				</view>
+				<view class="box-title" v-show="Promotion.mode ==2">
+					<text>此商品参与{{Promotion.name}},满</text>
+					<text class="txt">¥{{Promotion == null ? '0.00' : Promotion.touchPrice | NumFormat}}</text>减
+					<text class="txt">¥{{Promotion == null ? '0.00' : Promotion.reducedPrice | NumFormat}}</text>
+				</view>
+				<view class="box-title" v-show="Promotion.mode==3">
+					<text>此商品参与{{Promotion.name}},满</text>
+					<text class="txt">¥{{Promotion.touchPrice}}</text>赠送商品(赠品见订单详情)
+				</view>
+			</view>
+			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom :isIphoneX ? '68rpx' : '0rpx' }">
+				<view class="tui-flex-1">
+					<view class="tui-button" @click="hidePopup()">了解</view>
+				</view>
+			</view>
+		</view>	
+	</tui-bottom-popup>
+</template>
+
+<script>
+	import { mapState,mapMutations } from 'vuex'
+	export default{
+		name:'cm-price',
+		props:{
+			Promotion:{
+				type:Object,
+			},
+			popupShow:{
+				type:Boolean,
+				default:false
+			}
+		},
+		data() {
+			return{
+				isIphoneX:this.$store.state.isIphoneX,
+			}
+		},
+		filters: {
+			NumFormat:function(text) {//处理金额
+				return Number(text).toFixed(2);
+			},
+		},
+		created() {
+			
+		},
+		computed: {
+			...mapState(['hasLogin','isWxAuthorize'])
+		},
+		methods:{
+			hidePopup(){
+				this.$parent.popupShow = false
+			},
+			goGoodActiveFn(id){
+				this.$parent.popupShow = false
+				this.$api.navigateTo('/pages/goods/goods-active?id='+id)
+			}
+		},
+		
+	}
+</script>
+
+<style lang="scss">	
+	.tui-flex-1 {
+		flex: 1;
+	}
+	.tui-popup-box {
+		position: relative;
+		box-sizing: border-box;
+		min-height: 220rpx;
+		padding:24rpx 24rpx 0 24rpx;
+	}
+	.tui-scrollview-box{
+		width: 100%;
+		height: auto;
+		float: left;
+		box-sizing: border-box;
+		.ladder-main{
+			width: 100%;
+			height: 320rpx;
+			border: 1px solid rgba(225,86,22,0.3);
+			border-radius: 10rpx;
+			.ladder-item{
+				width: 100%;
+				height: 80rpx;
+				float: left;
+				border-bottom: 1px solid rgba(225,86,22,0.3);
+				&:nth-child(1){
+					.ladder-item-td{
+						color: #333333;
+					}
+				}
+				&:last-child{
+					border-bottom: none;
+				}
+				.ladder-item-td{
+					width:50%;
+					text-align: center;
+					line-height: 80rpx;
+					font-size: $font-size-24;
+					color: $color-system;
+					box-sizing: border-box;
+					float: left;
+					&:nth-child(1){
+						border-right: 1px solid rgba(225,86,22,0.3);
+					}
+				}
+			}
+		}
+		.box-title{
+			font-size: $font-size-26;
+			color: $text-color;
+			text-align: left;
+			line-height: 56rpx;
+			.txt{
+				color: $color-system;
+				margin: 0 8rpx;
+			}
+		}
+		.box-text{
+			font-size: $font-size-26;
+			color: $text-color;
+			text-align: left;
+			line-height: 56rpx;
+			.txt{
+				color: $color-system;
+			}
+		}
+		.box-product{
+			width: 100%;
+			height: auto;
+			margin-top: 20rpx;
+			.title{
+				font-size: $font-size-24;
+				color: $text-color;
+				text-align: left;
+				line-height: 54rpx;
+			}
+			.box-product-main{
+				width: 100%;
+				height: 136rpx;
+				.image{
+					width: 134rpx;
+					height: 134rpx;
+					border: 1px solid #EBEBEB;
+					float: left;
+					image{
+						width: 100%;
+						height: 100%;
+						display: block;
+					}
+				}
+				.info{
+					width: 540rpx;
+					height: 134rpx;
+					float: left;
+					margin-left: 16rpx;
+					position: relative;
+					.name{
+						width: 100%;
+						float: left;
+						line-height: 40rpx;
+						font-size: $font-size-28;
+						color: $text-color;
+						-o-text-overflow: ellipsis;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						overflow: hidden;
+					}
+					.num{
+						width: 100%;
+						height: 44rpx;
+						font-size: $font-size-24;
+						color: $text-color;
+						text-align: left;
+						line-height: 44rpx;
+						position: absolute;
+						bottom: 0;
+						left: 0;
+					}
+				}
+			}
+		}
+	}
+	
+	.tui-popup-btn {
+		width: 100%;
+		height: auto;
+		float: left;
+		margin-top: 24rpx;
+		.tui-button{
+			width: 100%;
+			height: 88rpx;
+			background: $btn-confirm;
+			line-height: 88rpx;
+			text-align: center;
+			color: #FFFFFF;
+			font-size: $font-size-28;
+			border-radius: 14rpx;
+		}
+	}
+</style>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 120 - 0
pages/user/order/components/details/cm-refund-temp.vue

@@ -0,0 +1,120 @@
+<template name="refund">
+	<view class="record-template" v-if="isEmpty">
+		<!-- 支付记录 -->
+		<view class="record-content">
+			<view class="record-title">
+				<view class="record-title-l">退款记录</view>
+				<view class="record-title-r">
+					已退款:<text class="red">¥{{ returnedPurchaseFee != null ? returnedPurchaseFee.toFixed(2) : '0.00'}}</text>
+				</view>
+			</view>
+			<view class="record-list">
+				<view class="record-item" v-for="(item,index) in returnedPurchaseList" :key="index">
+					<view class="item-nums">{{item.returnedWay =='4' ? '无支付无退款' : '¥'+item.refundFee.toFixed(2)}}</view>
+					<view class="item-time">{{item.confirmReturnTime}}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:"refund",
+		props:{
+			returnedPurchaseList:{
+				type:Array
+			},
+			returnedPurchaseFee:{
+				type:Number
+			}
+		},
+		data() {
+			return{
+				isEmpty:false,
+				isOpen:false,
+			}
+		},
+		created(){
+			this.initData(this.returnedPurchaseList)
+		},
+		computed: {
+		
+		},
+		methods:{
+			initData(res) {
+				if(res!=''){
+					this.isEmpty = true
+				}else{
+					this.isEmpty = false
+					this.refundData = res;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.record-template{
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		float: left;
+		margin-top: 24rpx;
+		padding-bottom: 40rpx;
+		.record-content{
+			width: 702rpx;
+			padding: 20rpx 24rpx;
+			height: auto;
+			.record-title{
+				width: 100%;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 40rpx;
+				margin-bottom: 12rpx;
+				float: left;
+				.record-title-l{
+					font-weight: bold;
+					float: left;
+				}
+				.record-title-r{
+					float: right;
+					.red{
+						color: #FF2A2A;
+						font-weight: bold;
+					}
+				}
+			}
+			.record-empty{
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 40rpx;
+			}
+			.record-list{
+				width: 100%;
+				height: auto;
+				float: left;
+				margin-top: 12rpx;
+				.record-item{
+					height: 40rpx;
+					width: 100%;
+					padding: 12rpx 0;
+					font-size: $font-size-28;
+					line-height: 40rpx;
+					float: left;
+					.item-time{
+						float: right;
+						color: #999999;
+					}
+					.item-nums{
+						font-weight: bold;
+						float: left;
+						color: $text-color;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 150 - 0
pages/user/order/components/details/cm-voucher-temp.vue

@@ -0,0 +1,150 @@
+<template name="refund">
+	<view class="record-template" v-if="isEmpty">
+		<!-- 支付凭证 -->
+		<view class="record-content">
+			<view class="record-title">线下支付凭证</view>
+			<view class="record-list" v-for="(item,index) in voucherList">
+				<view class="record-list-time">{{ item.addtime }}</view>
+				<scroll-view scroll-x>
+					<view class="tui-goods__list">
+						<view class="tui-goods__item" @click.stop="previewImg(image.img)" v-for="image in item.imgs">
+							<view class="tui-goods__imgbox">
+								<image :src="image.img" mode="" class="tui-goods__img"></image>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+				<view class="record-list-tmk" v-if="item.remarks">
+					备注:{{ item.remarks }}
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:"refund",
+		props:{
+			list:{
+				type:Array
+			},
+		},
+		data() {
+			return{
+				isEmpty:true,
+				voucherList:[]
+			}
+		},
+		created(){
+			this.initData(this.list)
+		},
+		computed: {
+		
+		},
+		methods:{
+			initData(data) {
+				this.voucherList = data
+			},
+			previewImg (image) {//顶部商品图片预览
+				this.isPreviewImage = true
+				let urls = []
+				urls.push(image)
+				uni.previewImage({
+					urls: urls,
+					current: 0
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.record-template{
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		float: left;
+		margin-top: 24rpx;
+		padding-bottom: 40rpx;
+		.record-content{
+			width: 100%;
+			padding: 24rpx;
+			box-sizing: border-box;
+			height: auto;
+			.record-title{
+				width: 100%;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: left;
+				line-height: 40rpx;
+				margin-bottom: 12rpx;
+				float: left;
+				font-weight: bold;
+				padding: 24rpx 0;
+				box-sizing: border-box;
+			}
+			.record-list{
+				width: 100%;
+				padding: 0 24rpx 24rpx;
+				box-sizing: border-box;
+				overflow: hidden;
+				.record-list-time{
+					width: 100%;
+					line-height: 37rpx;
+					text-align: left;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					color: #666666;
+					font-size: $font-size-26;
+					margin-bottom: 20rpx;
+				}
+				.record-list-tmk{
+					width: 100%;
+					line-height: 37rpx;
+					text-align: justify;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					color: #999999;
+					font-size: $font-size-26;
+					margin-top: 20rpx;
+				}
+			}
+		}
+	}
+	.tui-goods__list {
+		display: flex;
+		align-items: center;
+	}
+	.tui-goods__item {
+		background-color: #fff;
+		width: 210rpx;
+		height: 210rpx;
+		border-radius: 6rpx;
+		box-sizing: border-box;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-direction: column;
+		flex-shrink: 0;
+		margin-right: 18rpx;
+		border:1px solid #B8BFCA;
+	}
+	.tui-goods__imgbox {
+		width: 210rpx;
+		height: 210rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		box-sizing: border-box;
+		border-radius: 8rpx;
+	}
+	
+	.tui-goods__img {
+		width: 210rpx;
+		height: 210rpx;
+		display: block;
+	}
+</style>

+ 0 - 683
pages/user/order/components/invoiceTent.vue

@@ -1,683 +0,0 @@
-<template name="invoice">
-	<view class="invoice-template">
-		 <!-- 发票信息 -->
-		<view class="invoice-title" @tap.stop="hanldOperationConfim">
-			<text class="text">发票信息:</text>
-			<text class="iconfont icon-xiayibu"></text>
-		</view>
-		<view class="invoice-text">
-			<text>{{invoiceText}}</text>
-		</view>
-		<!--底部选择模态层弹窗组件 -->
-		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="choiceaInvoiceConfim">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer" @tap.stop="discard">
-				<view class="content clearfix">
-					<view class="invoice-ltitle">发票类型</view>
-					<view class="invoice-radio">
-						<radio-group class="row-group" @change="radioChange">
-							<label class="row-input" v-for="(item, index) in invoiceTypeList" :key="item.value">
-								<radio class="row-radio" :value="item.value" :checked="index === current" color="#FF5B00"/>
-								<view class="row-text">{{item.name}}</view>
-							</label>
-						</radio-group>
-					</view>
-					<view class="invoice-main from" v-if="invoiceType == '2'">
-						<view class="invoice-from">
-							<view class="label">单位名称:</view>
-							<input class="form-input" type="text" v-model="invoiceData.invoiceTitle" placeholder="请填写单位信息(必填)" maxlength="24">
-						</view>
-						<view class="invoice-from">
-							<view class="label">纳税人识别号:</view>
-							<input class="form-input" type="text" v-model="invoiceData.corporationTaxNum" placeholder="请填写纳税人识别号(必填)" maxlength="24">
-						</view>
-						<view class="invoice-from">
-							<view class="label">注册地址:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredAddress" placeholder="请填写单位注册地址(必填)" maxlength="100">
-						</view>
-						<view class="invoice-from">
-							<view class="label">注册电话:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredPhone" placeholder="请填写注册电话(必填)" maxlength="15">
-						</view>
-						<view class="invoice-from">
-							<view class="label">开户银行:</view>
-							<input class="form-input" type="text" v-model="invoiceData.openBank"   placeholder="请填写开户银行(必填)" maxlength="30">
-						</view>
-						<view class="invoice-from">
-							<view class="label">银行账号:</view>
-							<input class="form-input" 
-								   type="text" 
-								   v-model="invoiceData.bankAccountNo" 
-								   placeholder="请填写银行账号(必填)" 
-								   maxlength="30">
-						</view>
-					</view>
-					<view class="invoice-main" v-if="invoiceType == '3'">
-						<view class="invoice-ltitle">发票内容</view>
-						<view class="invoice-group tit">
-							<checkbox-group class="row-group" @change="checkboxChange">
-								<view class="text">商品明细</view>
-								<checkbox class="row-radio" value="明细"  :checked="inventoryChecked" color="#FF5B00"></checkbox>
-							</checkbox-group>
-						</view>
-						<view class="invoice-ltitle">发票抬头</view>
-						<view class="invoice-group tit">
-							<radio-group class="row-group radio" @change="radioChangeTitle">
-								<label class="row-input" v-for="(item, index) in invoiceTitleList" :key="item.value">
-									<radio class="row-radio" :value="item.value" :checked="index === titleCurrent" color="#FF5B00"/>
-									<view class="row-text">{{item.name}}</view>
-								</label>
-							</radio-group>
-						</view>
-						<view class="invoice-group from">
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '0'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写个人抬头" maxlength="20">
-							</view>
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写公司抬头" maxlength="20">
-							</view>
-							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.corporationTaxNum"   placeholder="请填写纳税人识别号" maxlength="20">
-							</view>
-						</view>
-					</view>
-					<view class="invoice-main" v-if="invoiceType == '1'">
-						<view class="invoice-none">不开具发票信息</view>
-					</view>
-				</view>
-				<view class="btn">
-					<view class="button add" @click="choiceaInvoiceConfim">完成</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'invoice',
-		data() {
-			return{
-				invoiceText:'不要发票',
-				specClass: '',//规格弹窗css类,控制开关动画
-				invoiceType:'1',//发票类型
-				current:0,
-				titleCurrent:0,
-				inventoryChecked:false,
-				invoiceTypeList:[
-					{value:'1',name:'不要发票'},
-					{value:'2',name:'要发票'},
-				],
-				invoiceTitleList:[
-					{value:'0',name:'个人'},
-					{value:'1',name:'公司'},
-				],
-				peopleInvoiceData:{
-					invoiceTitle:'',   //单位名称
-					invoiceContent:'', //商品明细
-					corporationTaxNum:'',//纳税人识别号
-					invoiceTitleType:'0'//发票抬头类型 1企业 0个人
-				},
-				invoiceData:{
-					invoiceTitle:'',	 //单位名称
-					corporationTaxNum:'',//纳税人识别号
-					registeredAddress: '',//单位地址
-					registeredPhone:'',	 //注册电话
-					openBank:'',		//开户银行
-					bankAccountNo: ''  ,//银行账号
-				},
-			}
-		},
-		created(){
-			// this.initData(this.invoiceDatas)
-		},
-		computed: {
-
-		},
-		methods:{
-			getUseFindInvoice(){//获取发票信息
-				this.$api.getStorage().then((resolve) => {
-					this.OrderService.GetFindInvoice({userId:resolve.userId}).then(response =>{
-						if(response.data == null){
-							this.invoiceData = Object.assign(this.invoiceData,'',{type:0})
-						}else{
-							this.invoiceData = response.data
-						} 
-					})
-				})
-			},
-			updateInvoiceFn(){//保存发票信息
-				this.$api.getStorage().then((resolve) => {
-					console.log(resolve.userId)
-					this.OrderService.UpdateInvoice(Object.assign({userId:resolve.userId},this.invoiceData)).then(response =>{})
-				})
-			},
-			choiceaInvoiceConfim(){
-				switch(this.invoiceType){
-					case '1':
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-						break
-					// case '2':
-					// 	this.choiceaInvoiceTwo()
-					// 	this.invoiceText = this.peopleInvoiceData.invoiceTitle
-					// 	break;
-					case '2':
-						this.choiceaInvoiceFirst()
-						this.invoiceText = this.invoiceData.invoiceTitle
-						break	
-						default:
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-				}
-			},
-			choiceaInvoiceFirst(){//增值税发票
-				if(this.invoiceData.invoiceTitle == ''){
-					this.$util.msg('请输入单位名称',2000)
-					return
-				}
-				if(this.invoiceData.corporationTaxNum == ''){
-					this.$util.msg('请输入纳税人识别号',2000)
-					return
-				}
-				if(this.invoiceData.registeredAddress == ''){
-					this.$util.msg('请输入单位地址',2000)
-					return
-				}
-				if(this.invoiceData.registeredPhone == ''){
-					this.$util.msg('请输入注册电话',2000)
-					return
-				}
-				if(this.invoiceData.openBank == ''){
-					this.$util.msg('请输入开户银行',2000)
-					return
-				}
-				if(this.invoiceData.bankAccountNo == ''){
-					this.$util.msg('请输入银行账号',2000)
-					return
-				}
-				this.updateInvoiceFn()
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:2}))
-				this.hideSpec()
-			},
-			choiceaInvoiceTwo(){//取消普通发票.(可删除)	
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '0':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入个人抬头',2000)
-							return
-						}
-						break
-					case '1':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入公司抬头',2000)
-							return
-						}
-						if(this.peopleInvoiceData.corporationTaxNum == ''){
-							this.$util.msg('请输入纳税人识别号',2000)
-							return
-						}
-						break
-				}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.peopleInvoiceData,'',{type:1}))
-				this.hideSpec()
-			},
-			choiceaInvoiceThree(){//不要发票
-				this.invoiceData = {}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:0}))
-				this.hideSpec()
-			},
-			hideSpec() {//关闭弹窗
-				this.specClass = 'hide'
-				setTimeout(() => {
-					this.specClass = 'none'
-				}, 200)
-			},
-			hanldOperationConfim(){//显示发票弹窗
-				this.specClass = 'show'
-			},
-			radioChange(e) {
-				this.invoiceType = e.target.value
-				for (let i = 0; i < this.invoiceTypeList.length; i++) {
-					if (this.invoiceTypeList[i].value === this.invoiceType) {
-						this.current = i
-						break
-					}
-				}
-				switch(this.invoiceType){
-					case '2':
-						this.getUseFindInvoice()
-						break
-					//取消普通发票.(可删除)	
-					// case '3':
-					// 	this.peopleInvoiceData.invoiceTitleType = "0"
-					// 	this.titleCurrent = 0
-					// 	break;
-				}		
-			},
-			radioChangeTitle(e) {
-				this.peopleInvoiceData.invoiceTitleType = e.target.value
-				for (let i = 0; i < this.invoiceTitleList.length; i++) {
-					if (this.invoiceTitleList[i].value === this.peopleInvoiceData.invoiceTitleType) {
-						this.titleCurrent = i
-						break
-					}
-				}
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '1':
-						this.inventoryChecked = false
-						this.peopleInvoiceData.invoiceTitle = ''
-						this.peopleInvoiceData.invoiceContent = ''
-						break
-				}		
-			},
-			checkboxChange(e){
-				this.inventoryChecked = !this.inventoryChecked
-				this.peopleInvoiceData.invoiceContent = e.detail.value[0]
-			},
-			inputBankNum(val) {
-				if (/\S{5}/.test(val)) {
-					this.invoiceData.bankAccountNo = val.replace(/\s/g, '').replace(/(.{4})/g, '$1 ')
-				}
-			},
-			discard(){
-				//丢弃
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.invoice-template{
-		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		.invoice-title{
-			width: 702rpx;
-			padding: 0 24rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			position: relative;
-			border-bottom: 1px solid #EBEBEB;
-			.text{
-				font-size: $font-size-28;
-				color: $text-color;
-			}
-			.iconfont{
-				width: 50rpx;
-				height: 88rpx;
-				line-height: 88rpx;
-				color: #999999;
-				display: block;
-				position: absolute;
-				right: 0;
-				top: 0;
-			}
-		}
-		.invoice-text{
-			width: 702rpx;
-			padding: 0 24rpx;
-			font-size: $font-size-24;
-			color: #666666;
-			line-height: 60rpx;
-		}
-		.invoice-ltitle{
-			width: 100%;
-			line-height: 60rpx;
-			height: 60rpx;
-			font-size: $font-size-28;
-			color: #333333;
-		}
-		.invoice-radio{
-			width: 100%;
-			height: 88rpx;
-			line-height: 88rpx;
-			display: flex;
-			border-bottom: 1px solid #EBEBEB;
-			.row-group{
-				flex:1;
-				display: flex;
-			}
-			.row-input{
-				flex: 1;
-				height: 88rpx;
-				line-height: 88rpx;
-			}
-			.row-radio{
-				float: left;
-				transform: scale(0.6);
-			}
-			.row-text{
-				font-size: $font-size-24;
-				color: $text-color;
-			}
-		}
-		.invoice-main{
-			width: 100%;
-			height: auto;
-			margin-top: 30rpx;
-			&.from{
-				padding-bottom: 40rpx;
-			}
-			.invoice-none{
-				line-height: 60rpx;
-				height: 60rpx;
-				font-size: $font-size-24;
-				color: #666666;
-				text-align: center;
-			}
-			.invoice-from{
-				width: 662rpx;
-				height: 40rpx;
-				padding: 20rpx;
-				line-height: 40rpx;
-				align-items: flex-start;
-				font-size: $font-size-28;
-				color: $text-color;
-				background: #F7F7F7;
-				border-radius: 14rpx;
-				margin-bottom: 20rpx;
-				.label{
-					height: 40rpx;
-					line-height: 40rpx;
-					float: left;
-				}
-				.form-input{
-					height: 40rpx;
-					line-height: 40rpx;
-					flex-grow: 1;
-					padding-left: 20rpx;
-				}
-			}
-			.invoice-group{
-				width: 100%;
-				height: 88rpx;
-				display: flex;
-				border-bottom: 1px solid #EBEBEB;
-				&.tit{
-					margin-bottom: 30rpx;
-				}
-				&.from{
-					margin-bottom: 30rpx;
-					border-bottom: 1px solid #FFFFFF;
-					flex-direction: row;
-					display: block;
-					.group-from{
-						flex: 1;
-						height: 40rpx;
-						padding: 20rpx;
-						line-height: 40rpx;
-						align-items: flex-start;
-						font-size: $font-size-24;
-						color: $text-color;
-						background: #F7F7F7;
-						border-radius: 14rpx;
-						margin-bottom: 20rpx;
-						.form-input{
-							height: 40rpx;
-							line-height: 40rpx;
-							flex-grow: 1;
-						}
-					}
-				}
-				.row-group{
-					line-height: 88rpx;
-					flex: 1;
-					.text{
-						font-size: $font-size-24;
-						color: $text-color;
-						line-height: 88rpx;
-						float: left;
-					}
-					.row-radio{
-						float: right;
-						transform: scale(0.8);
-						border-radius: 50%;
-					}
-					&.radio{
-						display: flex;
-						.row-input{
-							flex: 1;
-							height: 88rpx;
-							line-height: 88rpx;
-						}
-						.row-radio{
-							float: left;
-							transform: scale(0.6);
-						}
-						.row-text{
-							font-size: $font-size-24;
-							color: $text-color;
-						}
-					}
-				}
-			}
-		}
-	}
-	/* 加入购物模态层*/
-	@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: absolute;
-			z-index: 22;
-			bottom: -1010rpx;
-			width: 702rpx;
-			padding: 24rpx 24rpx 65rpx 24rpx;
-			height: 920rpx;
-			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;
-				display: flex;
-				.button {
-					width: 702rpx;
-					height: 88rpx;
-					color: #fff;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					font-size: $font-size-28;
-					border-radius: 44rpx;
-					background: $btn-confirm;
-				}
-			}
-		}
-		
-		&.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: 88rpx;
-			padding: 13rpx 0 0 0;
-			float: left;
-			.layer-nunbox-t{
-				width: 100%;
-				height:44rpx;
-				position:relative;
-				display: flex;
-				.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 18rpx;
-						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;
-				}
-			}
-		}
-	}	
-</style>

+ 79 - 283
pages/user/order/create-order.vue

@@ -1,42 +1,25 @@
 <template>
 	<view class="container order clearfix" :style="{ paddingBottom: isIphoneX ? '170rpx' : '134rpx' }">
 		<!-- 地址选择 -->
-		<choice-address ref="choiceAddress" v-if="isAddress" :addressData="addressData"></choice-address>
+		<cm-address-temp ref="choiceAddress" v-if="isAddress" :addressData="addressData" />		
 		<!-- 商品 -->
-		<goods-list
-			ref="goods"
-			v-if="isRequest"
-			:goodsData="goodsData"
-			@handleGoodList="handChangeInputGoodsList"
-		></goods-list>
+		<cm-goods-temp ref="goods" v-if="isRequest" :goodsData="goodsData" @handleGoodList="handChangeInputGoodsList" />
 		<!-- 发票信息 -->
-		<invoice-tent
-			ref="invoice"
-			v-if="isRequest"
-			:invoiceDatas="invoiceData"
-			@handleChoiceaInvoice="handleChoiceaInvoiceData"
-		>
-		</invoice-tent>
+		<cm-invice-popup ref="invoice" v-if="isRequest" :invoiceDatas="invoiceData" @handleChoiceaInvoice="handleChoiceaInvoiceData" />
 		<!-- 优惠券选择弹窗 -->
-		<coupon
-			ref="coupon"
-			v-if="isCouponShow"
-			:couponList="couponList"
-			@handleChoiceaCoupon="handleChoiceaCouponData"
-		>
-		</coupon>
+		<cm-coupon-popup ref="coupon" v-if="isCouponShow" :couponList="couponList" @handleChoiceaCoupon="handleChoiceaCouponData" />
 		<!-- 兑换优惠券弹窗 -->
-		<exchangeCoupon v-if="isExchangePopup"></exchangeCoupon>
+		<cm-coupon-chang v-if="isExchangePopup" />
 		<!-- 运费 -->
-		<freight
-			ref="freight"
-			v-if="isFreight"
-			:freightData="freightData"
+		<cm-freight-popup 
+			ref="freight" 
+			v-if="isFreight" 
+			:freightData="freightData" 
 			@confirmFreight="hanldFreightFn"
 			@confirmFreightBeans="hanldFreightBeans"
-		>
-		</freight>
-		<freight-alert v-if="isfreightTip" ref="csPhone"></freight-alert>
+		/>
+		<!-- 优惠券 -->
+		<cm-coupon-tips ref="coupon-tips"  :coupon="ExchangeCouponData" v-if="isCouponModel" />
 		<!-- 余额抵扣 -->
 		<view class="invoice-balance" v-show="!rechargeGoods">
 			<view class="balabce-t">
@@ -74,7 +57,7 @@
 				v-if="returnGoodsStutas"
 				:content="helpContent"
 				@change="onAgreementChange"
-			></cm-return-instructions>
+			/>
 			<view class="footer">
 				<view class="footer-le">
 					<view class="footer-count">
@@ -96,54 +79,6 @@
 				</view>
 			</view>
 		</view>
-		<!-- 优惠券 -->
-		<view class="coupon-content-model" v-if="isCouponModel">
-			<view class="coupon-alert-content">
-				<view class="coupon">
-					<view class="coupon-list">
-						<view class="list-cell-tags"
-							><text>{{ ExchangeCouponData.couponType | TypeFormat }}</text></view
-						>
-						<view class="list-cell-le">
-							<view class="coupon-maxMoney">
-								<text class="small">¥</text> {{ ExchangeCouponData.couponAmount }}
-							</view>
-							<view class="coupon-minMoney">
-								<text class="txt">满{{ ExchangeCouponData.touchPrice }}可用</text>
-							</view>
-						</view>
-						<view class="list-cell-ri">
-							<view class="list-cell-top">
-								<text v-if="ExchangeCouponData.couponType == 0">
-									{{
-										ExchangeCouponData.productType && ExchangeCouponData.productType == 1
-											? '全商城商品通用'
-											: '仅可购买指定商品'
-									}}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 1">
-									{{
-										ExchangeCouponData.categoryType == 1
-											? '仅限购买产品类商品'
-											: '仅限购买仪器类商品'
-									}}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 3"
-									>仅限购买店铺【{{ ExchangeCouponData.shopName }}】的商品</text
-								>
-								<text v-if="ExchangeCouponData.couponType == 4 || ExchangeCouponData.couponType == 2"
-									>全商城商品通用</text
-								>
-							</view>
-							<view class="list-cell-time"
-								>{{ ExchangeCouponData.startDate }} - {{ ExchangeCouponData.endDate }}</view
-							>
-						</view>
-					</view>
-					<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
-				</view>
-			</view>
-		</view>
 		<!-- 提示弹窗 -->
 		<tui-modal
 			:show="showModal"
@@ -155,8 +90,7 @@
 			:size="28"
 			shape="circle"
 			:maskClosable="false"
-		></tui-modal>
-
+		/>
 		<tui-modal
 			:show="agreementModel"
 			title="提示"
@@ -166,29 +100,29 @@
 			:size="28"
 			:button="agreementModelButtons"
 			@click="agreementModel = false"
-		></tui-modal>
+		/>
 	</view>
 </template>
 <script>
 import { mapState, mapMutations } from 'vuex'
-import choiceAddress from './components/choiceAddress'
-import goodsList from './components/goodsList'
-import invoiceTent from './components/invoiceTent'
-import coupon from './components/coupon'
-import exchangeCoupon from './components/exchangeCoupon'
-import freight from './components/freight'
-import cmReturnInstructions from './components/cm-return-instructions.vue'
-import freightAlert from '@/components/cm-module/modelAlert/freightAlert'
+import cmAddressTemp from './components/cm-address-temp'
+import cmGoodsTemp from './components/cm-goods-temp'
+import cmInvicePopup from './components/cm-invice-popup'
+import cmCouponPopup from './components/cm-coupon-popup'
+import cmCouponChang from './components/cm-coupon-chang'
+import cmFreightPopup from './components/cm-freight-popup'
+import cmReturnPopup from './components/cm-return-popup.vue'
+import cmCouponTips from './components/cm-coupon-tips'
 export default {
 	components: {
-		choiceAddress,
-		goodsList,
-		invoiceTent,
-		coupon,
-		exchangeCoupon,
-		freight,
-		freightAlert,
-		cmReturnInstructions
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmInvicePopup,
+		cmCouponPopup,
+		cmCouponChang,
+		cmFreightPopup,
+		cmReturnPopup,
+		cmCouponTips
 	},
 	data() {
 		return {
@@ -258,7 +192,6 @@ export default {
 			isFreight: false, // 是否加载完成渲染子组件
 			isAddress: false, // 是否加载完成地址
 			isExchangePopup: false, // 控制兑换优惠券弹窗
-			isfreightTip: false, // 控制邮费弹窗
 			ischecked: false, // 是否勾选余额
 			hanldFreePostFlag: '', // 邮费状态
 			hanldFreight: '', // 邮费
@@ -326,10 +259,9 @@ export default {
 			const data = JSON.parse(option.data)
 			const userInfo = await this.$api.getStorage()
 			console.log('data', data)
-			this.productParam.userId = this.cartParam.userId = this.supportParm.userId = this.postageParam.userId = userInfo.userId
-				? userInfo.userId
-				: 0
-			this.confirmParam.clubId = userInfo.clubId ? userInfo.clubId : 0
+			this.productParam.userId = this.cartParam.userId = userInfo.userId
+			this.supportParm.userId = this.postageParam.userId = userInfo.userId
+			this.confirmParam.clubId = userInfo.clubId 
 			switch (option.type) {
 				case '1': // 商品详情立即购买
 					this.confirmParam.cartType = 2
@@ -342,7 +274,6 @@ export default {
 				case '2': // 购物车结算
 					this.confirmParam.cartType = 1
 					this.confirmType = 2
-					
 					this.cartParam.skuIds = data.data.skuIds
 					this.CartCreateOrderInfo()
 					break
@@ -353,38 +284,35 @@ export default {
 					this.GetOrderClubProductSupporting()
 			}
 		},
-		GetProductCreateOrderInfo() {
-			// 商品立即购买确认订单数据初始化
-			this.OrderService.ProductCreateOrderInfo(this.productParam)
-				.then(response => {
-					this.setCreatDataInfo(response.data)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+		// 商品立即购买确认订单数据初始化
+		async GetProductCreateOrderInfo() {
+			try{
+				const res = await this.OrderService.ProductCreateOrderInfo(this.productParam)
+				this.setCreatDataInfo(res.data)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
-		GetOrderClubProductSupporting() {
-			// 组合商品立即购买确认订单数据初始化
-			this.OrderService.OrderClubProductSupporting(this.supportParm)
-				.then(response => {
-					this.setCreatDataInfo(response.data)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+		// 组合商品立即购买确认订单数据初始化
+		async GetOrderClubProductSupporting() {
+			try{
+				const res = await this.OrderService.OrderClubProductSupporting(this.supportParm)
+				this.setCreatDataInfo(res.data)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
-		CartCreateOrderInfo() {
-			// 购物车去结算确认订单数据初始化
-			this.OrderService.CartCreateOrderInfo(this.cartParam)
-				.then(response => {
-					this.setCreatDataInfo(response.data)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+		// 购物车去结算确认订单数据初始化
+		async CartCreateOrderInfo() {
+			try{
+				const res = await this.OrderService.CartCreateOrderInfo(this.cartParam)
+				this.setCreatDataInfo(res.data)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
+		// 公共初始化数据
 		setCreatDataInfo(data) {
-			// 公共初始化数据
 			this.isRequest = true
 			this.goodsData = data.list
 			this.couponList = data.couponList
@@ -417,12 +345,12 @@ export default {
 			// console.log(list);
 			return skuId.join(',')
 		},
-
-		getFreightData() {
+		async getFreightData() {
 			// 获取邮费信息
-			this.isFreight = false
-			this.OrderService.GetOrderPostage(this.postageParam).then(response => {
-				const data = response.data
+			try{
+				this.isFreight = false
+				const res = await this.OrderService.GetOrderPostage(this.postageParam)
+				const data = res.data
 				this.isFreight = true
 				this.isCheckedBeans = false
 				this.freightData = data
@@ -447,17 +375,20 @@ export default {
 					this.attributePallPrice()
 					this.hanldFreightBeans(this.isCheckedBeans)
 				}
-			})
+			}catch(error){
+				console.log('获取订单运费异常')
+			}
 		},
 		async getAddressData() {
 			//获取地址信息
-			const userInfo = await this.$api.getStorage()
-			this.UserService.QueryAddressList({
-				pageNum: 1,
-				pageSize: 1,
-				userId: userInfo.userId
-			}).then(response => {
-				let data = response.data
+			try{
+				const userInfo = await this.$api.getStorage()
+				const res = await this.UserService.QueryAddressList({
+					pageNum: 1,
+					pageSize: 1,
+					userId: userInfo.userId
+				})
+				const data = response.data
 				this.isAddress = true
 				this.addressData = {}
 				if (data.list && data.list.length > 0) {
@@ -468,7 +399,9 @@ export default {
 				} else {
 					this.addressData = this.addressData
 				}
-			})
+			}catch(error){
+				console.log('获取订单地址异常')
+			}
 		},
 		handChangeInputGoodsList(data) {
 			//对应供应商的留言信息
@@ -813,10 +746,6 @@ export default {
 			this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
 			this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
 		},
-		handFreightAlertShow() {
-			//显示邮费弹窗
-			this.isfreightTip = true
-		},
 		handleClickCancel() {
 			// 关闭优惠券弹窗
 			this.isCouponModel = false
@@ -868,10 +797,6 @@ export default {
 					console.log(res)
 				}
 			})
-		},
-		hideFreight() {
-			//关闭邮费弹窗
-			this.isfreightTip = false
 		}
 	},
 	onShow() {
@@ -1080,134 +1005,5 @@ page {
 		}
 	}
 }
-.coupon-content-model {
-	width: 100%;
-	height: 100%;
-	background: rgba(0, 0, 0, 0.5);
-	position: fixed;
-	top: 0;
-	left: 0;
-	z-index: 8888;
-	transition: all 0.4s;
-	.coupon-alert-content {
-		width: 600rpx;
-		height: 612rpx;
-		position: absolute;
-		top: 0;
-		left: 0;
-		bottom: 0;
-		right: 0;
-		margin: auto;
-		box-sizing: border-box;
-		padding-top: 92rpx;
-		.coupon {
-			width: 600rpx;
-			height: 522rpx;
-			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
-			background-size: cover;
-			box-sizing: border-box;
-			padding: 230rpx 40rpx 0 40rpx;
-			.coupon-list {
-				width: 100%;
-				height: 147rpx;
-				margin-bottom: 32rpx;
-				box-sizing: border-box;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
-				background-size: cover;
-				position: relative;
-				.list-cell-tags {
-					display: inline-block;
-					padding: 0 10rpx;
-					height: 32rpx;
-					line-height: 32rpx;
-					background-color: #f94b4b;
-					color: #ffffff;
-					font-size: 18rpx;
-					border-radius: 16rpx 0 16rpx 0;
-					text-align: center;
-					position: absolute;
-					top: 0;
-					left: 0;
-				}
-				.list-cell-le {
-					width: 154rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 30rpx 0;
-					float: left;
-					.coupon-maxMoney {
-						width: 100%;
-						height: 54rpx;
-						line-height: 54rpx;
-						font-size: 42rpx;
-						color: #f94b4b;
-						text-align: center;
-						margin-top: 10rpx;
-						.small {
-							font-size: $font-size-20;
-						}
-					}
-					.coupon-minMoney {
-						width: 100%;
-						height: 28rpx;
-						float: left;
-						box-sizing: border-box;
-						padding-left: 24rpx;
-						.txt {
-							display: block;
-							height: 28rpx;
-							line-height: 28rpx;
-							font-size: 16rpx;
-							color: #f94b4b;
-							text-align: center;
-							padding: 0 5rpx;
-							background-color: #fff1eb;
-							border-radius: 4rpx;
-							float: left;
-						}
-					}
-				}
-				.list-cell-ri {
-					width: 366rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 30rpx 20rpx;
-					float: left;
-					.list-cell-top {
-						width: 100%;
-						height: 64rpx;
-						line-height: 64rpx;
-						font-size: $font-size-26;
-						color: #333333;
-						float: left;
-						text-overflow: ellipsis;
-						display: -webkit-box;
-						word-break: break-all;
-						-webkit-box-orient: vertical;
-						-webkit-line-clamp: 1;
-						overflow: hidden;
-					}
-					.list-cell-time {
-						width: 100%;
-						height: 28rpx;
-						line-height: 28rpx;
-						text-align: left;
-						font-size: $font-size-20;
-						color: #999999;
-					}
-				}
-			}
-			.coupon-btn {
-				width: 100%;
-				height: 78rpx;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
-				background-size: cover;
-				line-height: 78rpx;
-				text-align: center;
-				color: #ffffff;
-				font-size: $font-size-36;
-			}
-		}
-	}
-}
+
 </style>

+ 90 - 89
pages/user/order/order-details.vue

@@ -24,39 +24,37 @@
 				>
 			</view>
 			<!-- 地址选择 -->
-			<order-address
-				ref="orderAddress"
-				v-if="isRequest && !rechargeGoods"
-				:addressData="addressData"
-			></order-address>
-            <!-- 特殊商品退货须知 -->
-            <view class="return-instructions" v-if="returnGoodsStutas" v-html="helpContent"></view>
+			<cm-address-temp ref="orderAddress" v-if="isRequest && !rechargeGoods" :addressData="addressData" />
+			<!-- 特殊商品退货须知 -->
+			<view class="return-instructions" v-if="returnGoodsStutas" v-html="helpContent"></view>
 			<!-- 商品 -->
-			<goods-list
+			<cm-goods-temp
 				ref="goods"
 				v-if="isRequest"
 				:shopOrderData="shopOrderData"
 				:information="information"
 				@popupClick="hanldePopupFn"
-			></goods-list>
+			/>
 			<!-- 订单信息 -->
-			<order-information ref="information" v-if="isRequest" :information="information"></order-information>
+			<cm-order-temp ref="information" v-if="isRequest" :information="information" />
 			<!-- 发票信息 -->
-			<invoice-tent ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice"></invoice-tent>
+			<cm-invice-temp ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice" />
 			<!-- 支付记录 -->
-			<payment-record
+			<cm-payment-temp
 				ref="payment"
 				v-if="isRequest"
 				:discernReceiptList="discernReceiptList"
 				:receiptAmount="receiptAmount"
-			></payment-record>
+			/>
 			<!-- 退款记录 -->
-			<refund-record
+			<cm-refund-temp
 				ref="refund"
 				v-if="isRequest"
 				:returnedPurchaseList="returnedPurchaseList"
 				:returnedPurchaseFee="returnedPurchaseFee"
-			></refund-record>
+			/>
+			<!-- 支付凭证记录 -->
+			<cm-voucher-temp ref="voucher" v-if="skeletonShow && voucherList.length > 0" :list="voucherList" />
 			<view
 				class="clause"
 				v-if="information.secondHandOrderFlag != 1 && !orderSubmitType"
@@ -68,18 +66,17 @@
 				}}</label>
 			</view>
 			<!-- 底部button -->
-			<order-button
+			<cm-details-button
 				ref="orderButton"
 				v-if="isRequest"
 				:status="btnStatus"
 				:shareCode="shareCode"
 				:order="orderInfo"
 				@buttonConfirm="handButtonConfirm"
-			>
-			</order-button>
+			/>
 		</view>
 		<!-- 付款弹窗 -->
-		<order-model
+		<cm-orderpay-popup
 			v-if="isPayModel"
 			:payModelData="payModelData"
 			:modelType="modelType"
@@ -87,9 +84,9 @@
 			@paymentConfirm="hanldPaymentConfirm"
 		/>
 		<!-- 分享弹窗 -->
-		<share-alert :orderId="orderId" v-if="isShareModal" @btnConfirm="onShareAppMessage"> </share-alert>
+		<cm-share-popup :orderId="orderId" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 促销活动弹窗 -->
-		<activi-popup :Promotion="handlerPros" :popupShow="popupShow"></activi-popup>
+		<cm-promote-popup :Promotion="handlerPros" :popupShow="popupShow" />
 		<!-- 采美豆提示弹窗 -->
 		<activityBean
 			v-if="isActivityBean"
@@ -97,7 +94,7 @@
 			:beansType="beansType"
 			:beanNumber="beanNumber"
 			@cancel="handleBeanlClick"
-		></activityBean>
+		/>
 		<!-- 提示弹窗 -->
 		<tui-modal
 			:show="modal"
@@ -108,38 +105,38 @@
 			:size="32"
 			shape="circle"
 			:maskClosable="false"
-		>
-		</tui-modal>
+		/>
 	</view>
 </template>
 
 <script>
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
-import orderAddress from '@/components/cm-module/orderDetails/orderAddress' //地址信息
-import goodsList from '@/components/cm-module/orderDetails/goodsList' //商品列表
-import invoiceTent from '@/components/cm-module/orderDetails/invoiceTent' //发票信息
-import orderInformation from '@/components/cm-module/orderDetails/orderInformation' //订单信息
-import paymentRecord from '@/components/cm-module/orderDetails/paymentRecord' //支付记录
-import refundRecord from '@/components/cm-module/orderDetails/refundRecord' //退款记录
-import orderButton from '@/components/cm-module/orderDetails/orderButton' //底部按钮
-import shareAlert from '@/components/cm-module/modelAlert/shareAlert.vue' //分享弹窗
-import orderModel from '@/components/cm-module/modelAlert/order-alert' //付款弹窗
-import activiPopup from '@/components/cm-module/orderDetails/activipopu' //促销活动弹窗
+import cmAddressTemp from './components/details/cm-address-temp' //地址信息
+import cmGoodsTemp from './components/details/cm-goods-temp' //商品列表
+import cmOrderTemp from './components/details/cm-order-temp' //订单信息
+import cmInviceTemp from './components/details/cm-invice-temp' //发票信息
+import cmPaymentTemp from './components/details/cm-payment-temp' //支付记录
+import cmRefundTemp from './components/details/cm-refund-temp' //退款记录
+import cmVoucherTemp from './components/details/cm-voucher-temp' //支付凭证记录
+import cmDetailsButton from './components/cm-details-button' //底部按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
+import cmPrderpayPopup from './components/cm-orderpay-popup' //付款弹窗
+import cmPromotePopup from './components/details/cm-promote-popup' //促销活动弹窗
 import activityBean from '@/components/cm-module/activity/activityBean.vue'
 
 export default {
 	components: {
 		headerBack,
-		orderInformation,
-		orderAddress,
-		invoiceTent,
-		goodsList,
-		paymentRecord,
-		refundRecord,
-		orderButton,
-		shareAlert,
-		orderModel,
-		activiPopup,
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmOrderTemp,
+		cmInviceTemp,
+		cmPaymentTemp,
+		cmRefundTemp,
+		cmVoucherTemp,
+		cmDetailsButton,
+		cmSharePopup,
+		cmPromotePopup,
 		activityBean
 	},
 	data() {
@@ -187,7 +184,7 @@ export default {
 			beansType: 1,
 			beanNumber: 0,
 			isActivityBean: false,
-			modal:false,
+			modal: false,
 			contentModalText: '订单查询失败,请稍候重试~', //操作文字提示语句
 			modalButton: [
 				{
@@ -199,8 +196,8 @@ export default {
 					plain: false
 				}
 			],
-            returnGoodsStutas: false,
-            helpContent: '',
+			returnGoodsStutas: false,
+			helpContent: ''
 		}
 	},
 	onLoad(option) {
@@ -276,9 +273,9 @@ export default {
 					this.receiptAmount = data.order.receiptAmount
 					this.returnedPurchaseFee = data.order.returnedPurchaseFee
 					this.clauseData = data.clause
-                    // 特殊商品退货须知
-                    this.returnGoodsStutas = data.returnGoodsStutas && data.returnGoodsStutas === 2 // 1:可以 2:不可以
-                    this.helpContent = data.helpContent
+					// 特殊商品退货须知
+					this.returnGoodsStutas = data.returnGoodsStutas && data.returnGoodsStutas === 2 // 1:可以 2:不可以
+					this.helpContent = data.helpContent
 					if (
 						this.information.orderSubmitType == 0 ||
 						this.information.orderSubmitType == 1 ||
@@ -293,7 +290,7 @@ export default {
 					this.modal = true
 				})
 		},
-		handleClick(){
+		handleClick() {
 			this.modal = false
 			this.$api.switchTabTo('/pages/tabBar/home/index')
 		},
@@ -329,36 +326,39 @@ export default {
 		},
 		getOrderPaymentValidation(data) {
 			//监听根据付款状态做操作
-			this.OrderService.OrderPaymentValidation({ orderId: data.orderId }).then(response => {
-				let data = response.data
-				this.payModelData = data
-				if(data.balanceFlag == 1){// 0可以走余额抵扣,1不能走余额抵扣
-					this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
-				}else{
-					switch (data.code) {
-						case 1:
-							this.isPayModel = true
-							this.modelType = 1
-							break
-						case 2:
-							this.isPayModel = true
-							this.modelType = 2
-							break
-						case -1:
-							this.$util.modal('', '订单已申请全部退款,无需再付款!', '确定', '', false, () => {})
-							break
-						default:
-							if (data.onlinePayFlag == 1) {// 只能线下
-								this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.orderId}`)
-							} else {
-								this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
-							}
+			this.OrderService.OrderPaymentValidation({ orderId: data.orderId })
+				.then(response => {
+					let data = response.data
+					this.payModelData = data
+					if (data.balanceFlag == 1) {
+						// 0可以走余额抵扣,1不能走余额抵扣
+						this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
+					} else {
+						switch (data.code) {
+							case 1:
+								this.isPayModel = true
+								this.modelType = 1
+								break
+							case 2:
+								this.isPayModel = true
+								this.modelType = 2
+								break
+							case -1:
+								this.$util.modal('', '订单已申请全部退款,无需再付款!', '确定', '', false, () => {})
+								break
+							default:
+								if (data.onlinePayFlag == 1) {
+									// 只能线下
+									this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.orderId}`)
+								} else {
+									this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
+								}
+						}
 					}
-				}
-			})
-			.catch(error => {
-				this.$util.msg(error.msg, 2000)
-			})
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
 		},
 		hanldPaymentConfirm(data) {
 			//余额抵扣跳转
@@ -379,7 +379,8 @@ export default {
 		},
 		hanldCancelConfirm(data) {
 			//不使用余额抵扣直接跳转收银台
-			if (data.onlinePayFlag == 1) {// 只能线下
+			if (data.onlinePayFlag == 1) {
+				// 只能线下
 				this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.orderId}`)
 			} else {
 				this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
@@ -458,7 +459,7 @@ export default {
 		handCenceConfirm() {
 			//取消订单
 			this.$util.modal('提示', '确认取消该订单吗?', '确定', '取消', true, () => {
-				this.OrderService.CancelOrder({ orderId: this.orderId , userIdentity : 0})
+				this.OrderService.CancelOrder({ orderId: this.orderId, userIdentity: 0 })
 					.then(response => {
 						this.$util.msg(response.msg, 2000, true, 'success')
 						setTimeout(() => {
@@ -536,13 +537,13 @@ page {
 .details {
 	padding-bottom: 130rpx;
 }
-.return-instructions{
-    font-size: 26rpx;
-    color: #FF5B00;
-    line-height: 42rpx;
-    padding: 32rpx 50rpx;
-    background-color: #FFFAF8;
-    text-align: justify;
+.return-instructions {
+	font-size: 26rpx;
+	color: #ff5b00;
+	line-height: 42rpx;
+	padding: 32rpx 50rpx;
+	background-color: #fffaf8;
+	text-align: justify;
 }
 .btn-hover {
 	background: #ffffff;

+ 15 - 20
pages/user/order/order-list.vue

@@ -200,13 +200,12 @@
 									</view>
 								</view>
 								<!-- 底部button -->
-								<order-button
+								<cm-list-button
 									ref="orderButton"
 									:status="order.status"
 									:order="order"
 									@buttonConfirm="handButtonConfirm"
-								>
-								</order-button>
+								/>
 							</view>
 							<!--加载loadding-->
 							<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -222,7 +221,7 @@
 			</swiper-item>
 		</swiper>
 		<!-- 付款弹窗 -->
-		<order-model
+		<cm-orderpay-popup
 			v-if="isPayModel"
 			:payModelData="payModelData"
 			:modelType="modelType"
@@ -230,9 +229,7 @@
 			@paymentConfirm="hanldPaymentConfirm"
 		/>
 		<!-- 分享弹窗 -->
-		<share-alert v-if="isShareModal" :orderId="btnoRderID" @shareConfirm="onShareAppMessage" />
-		<!-- 透明模态层 -->
-		<modal-layer v-if="isModalLayer"></modal-layer>
+		<cm-share-popup :orderId="btnoRderID" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 采美豆提示弹窗 -->
 		<activityBean
 			v-if="isActivityBean"
@@ -240,33 +237,31 @@
 			:beansType="beansType"
 			:beanNumber="beanNumber"
 			@cancel="handleBeanlClick"
-		></activityBean>
+		/>
+		<!-- 透明模态层 -->
+		<modal-layer v-if="isModalLayer"/>
 	</view>
 </template>
 
 <script>
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
 import btSearch from '@/components/uni-search/bt-search.vue' //搜索
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import orderButton from '@/components/cm-module/orderDetails/orderListButton' //按钮
 import modalLayer from '@/components/modal-layer'
 import empty from '@/components/empty'
-import shareAlert from '@/components/cm-module/modelAlert/shareAlert' //分享弹窗
-import orderModel from '@/components/cm-module/modelAlert/order-alert' //付款弹窗
+import cmListButton from './components/cm-list-button' //底部按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
+import cmPrderpayPopup from './components/cm-orderpay-popup' //付款弹窗
 import activityBean from '@/components/cm-module/activity/activityBean.vue'
 
 export default {
 	components: {
 		headerBack,
 		empty,
-		btSearch,
-		tuiLoadmore,
-		tuiNomore,
-		orderButton,
 		modalLayer,
-		shareAlert,
-		orderModel,
+		btSearch,
+		cmListButton,
+		cmSharePopup,
+		cmPrderpayPopup,
 		activityBean
 	},
 	data() {
@@ -658,7 +653,7 @@ export default {
 			})
 		},
 		handlSearchPath() {
-			this.$api.navigateTo('/pages/search/search-order')
+			this.$api.navigateTo('/pages/order/search-order')
 		},
 		onShareAppMessage(res) {
 			//分享转发

+ 23 - 36
pages/user/order/order-sharedetails.vue

@@ -1,60 +1,47 @@
 <template>
 	<view class="container details clearfix">
 		<!-- 地址选择 -->
-		<order-address ref="orderAddress" v-if="isRequest" :addressData="addressData"></order-address>
+		<cm-address-temp ref="orderAddress" v-if="isRequest" :addressData="addressData" />
 		<!-- 商品 -->
-		<goods-list
-			ref="goods"
-			v-if="isRequest"
-			:shopOrderData="shopOrderData"
-			@popupClick="hanldePopupFn"
-		></goods-list>
+		<cm-goods-temp ref="goods" v-if="isRequest" :shopOrderData="shopOrderData" @popupClick="hanldePopupFn" />
 		<!-- 订单信息 -->
-		<order-information ref="information" v-if="isRequest" :information="information"></order-information>
+		<cm-order-temp ref="information" v-if="isRequest" :information="information" />
 		<!-- 发票信息 -->
-		<invoice-tent ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice"></invoice-tent>
+		<cm-invice-temp ref="invoice" v-if="isRequest" :orderInvoice="orderInvoice" />
 		<!-- 支付记录 -->
-		<payment-record
-			ref="payment"
-			v-if="isRequest"
-			:discernReceiptList="discernReceiptList"
-			:receiptAmount="receiptAmount"
-		></payment-record>
+		<cm-payment-temp ref="payment" v-if="isRequest" :discernReceiptList="discernReceiptList" :receiptAmount="receiptAmount" />
 		<!-- 退款记录 -->
-		<refund-record
-			ref="refund"
-			v-if="isRequest"
-			:returnedPurchaseList="returnedPurchaseList"
-			:returnedPurchaseFee="returnedPurchaseFee"
-		></refund-record>
+		<cm-refund-temp ref="refund" v-if="isRequest" :returnedPurchaseList="returnedPurchaseList" :returnedPurchaseFee="returnedPurchaseFee" />
 		<!-- 底部button -->
 		<view class="button-content" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 			<view class="btn btn-query" v-if="btnState.isQuery" @click.stop="queryLogistics">查看物流</view>
 			<view class="btn btn-cancel" v-if="btnState.isPay" @click.stop="btnConfirmPay">立即支付</view>
 		</view>
 		<!-- 促销活动弹窗 -->
-		<activi-popup :Promotion="handlerPros" :popupShow="popupShow"></activi-popup>
+		<cm-promote-popup :Promotion="handlerPros" :popupShow="popupShow" />
 	</view>
 </template>
 
 <script>
-import orderAddress from '@/components/cm-module/orderDetails/orderAddress' //地址信息
-import goodsList from '@/components/cm-module/orderDetails/goodsList' //商品列表
-import invoiceTent from '@/components/cm-module/orderDetails/invoiceTent' //发票信息
-import orderInformation from '@/components/cm-module/orderDetails/orderInformation' //订单信息
-import paymentRecord from '@/components/cm-module/orderDetails/paymentRecord' //支付记录
-import refundRecord from '@/components/cm-module/orderDetails/refundRecord' //退款记录
-import activiPopup from '@/components/cm-module/orderDetails/activipopu' //促销活动弹窗
+import cmAddressTemp from './components/details/cm-address-temp' //地址信息
+import cmGoodsTemp from './components/details/cm-goods-temp' //商品列表
+import cmOrderTemp from './components/details/cm-order-temp' //订单信息
+import cmInviceTemp from './components/details/cm-invice-temp' //发票信息
+import cmPaymentTemp from './components/details/cm-payment-temp' //支付记录
+import cmRefundTemp from './components/details/cm-refund-temp' //退款记录
+import cmVoucherTemp from './components/details/cm-voucher-temp' //支付凭证记录
+import cmPromotePopup from './components/details/cm-promote-popup' //促销活动弹窗
 
 export default {
 	components: {
-		orderInformation,
-		orderAddress,
-		invoiceTent,
-		goodsList,
-		paymentRecord,
-		refundRecord,
-		activiPopup
+		cmAddressTemp,
+		cmGoodsTemp,
+		cmOrderTemp,
+		cmInviceTemp,
+		cmPaymentTemp,
+		cmRefundTemp,
+		cmVoucherTemp,
+		cmPromotePopup
 	},
 	data() {
 		return {

+ 117 - 22
pages/search/search-order.vue → pages/user/order/search-order.vue

@@ -195,14 +195,13 @@
 								</view>
 							</view>
 							<!-- 底部button -->
-							<order-button
+							<cm-list-button
 								ref="orderButton"
 								:status="order.status"
 								:order="order"
 								:onlinePayFlag="order.onlinePayFlag"
 								@buttonConfirm="handButtonConfirm"
-							>
-							</order-button>
+							/>
 						</view>
 						<!--加载loadding-->
 						<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -212,10 +211,16 @@
 				</view>
 			</scroll-view>
 		</view>
+		<!-- 付款弹窗 -->
+		<cm-orderpay-popup
+			v-if="isPayModel"
+			:payModelData="payModelData"
+			:modelType="modelType"
+			@cancelConfirm="hanldCancelConfirm"
+			@paymentConfirm="hanldPaymentConfirm"
+		/>
 		<!-- 分享弹窗 -->
-		<share-alert v-if="isShareModal" :orderId="btnoRderID" @shareConfirm="onShareAppMessage"> </share-alert>
-		<!-- 透明模态层 -->
-		<modal-layer v-if="isModalLayer"></modal-layer>
+		<cm-share-popup :orderId="btnoRderID" v-if="isShareModal" @shareConfirm="onShareAppMessage" />
 		<!-- 采美豆提示弹窗 -->
 		<activityBean
 			v-if="isActivityBean"
@@ -223,20 +228,21 @@
 			:beansType="beansType"
 			:beanNumber="beanNumber"
 			@cancel="handleBeanlClick"
-		></activityBean>
+		/>
+		<!-- 透明模态层 -->
+		<modal-layer v-if="isModalLayer"/>
 	</view>
 </template>
 
 <script>
 import orSearch from '@/components/uni-search/or-search.vue'
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import orderButton from '@/components/cm-module/orderDetails/orderListButton' //按钮
-import modalLayer from '@/components/modal-layer'
 import empty from '@/components/empty'
-import shareAlert from '@/components/cm-module/modelAlert/shareAlert' //分享弹窗
-import authorize from '@/common/config/authorize.js'
+import modalLayer from '@/components/modal-layer'
+import cmListButton from './components/cm-list-button' //底部按钮
+import cmSharePopup from './components/cm-share-popup' //分享弹窗
+import cmPrderpayPopup from './components/cm-orderpay-popup' //付款弹窗
 import activityBean from '@/components/cm-module/activity/activityBean.vue'
+
 const defaultListQuery = {
 	pageNum: 1, // 页码
 	pageSize: 10, // 每页条数
@@ -246,11 +252,11 @@ const defaultListQuery = {
 export default {
 	components: {
 		orSearch,
-		tuiLoadmore,
-		tuiNomore,
-		orderButton,
 		empty,
-		shareAlert,
+		modalLayer,
+		cmListButton,
+		cmSharePopup,
+		cmPrderpayPopup,
 		activityBean
 	},
 	data() {
@@ -282,7 +288,8 @@ export default {
 			scrollHeight: '',
 			beansType: 1,
 			beanNumber: 0,
-			isActivityBean: false
+			isActivityBean: false,
+			payModelData: {},
 		}
 	},
 	onLoad() {
@@ -436,7 +443,7 @@ export default {
 		detail(orderId) {
 			//订单详情跳转
 			this.isModalLayer = true
-			this.$api.navigateTo(`/pages/user/order/order-details?type=search&orderId=${orderId}`)
+			this.$api.navigateTo(`/pages/user/order/order-details?state=${this.currentTab}&orderId=${orderId}`)
 		},
 		handButtonConfirm(data) {
 			//获取点击
@@ -459,11 +466,99 @@ export default {
 				case 'confirm':
 					this.handOrderConfirm(data.orderId)
 					break
+				case 'pay':
+					this.hanldOrderData = data.order
+					this.getOrderPaymentValidation(data)
+					break
 				case 'confirmation':
 					this.handOrderConfirmation(data.orderId)
 					break
+				case 'payment':
+					this.hanldConfirmFn(data.orderId)
+					break
 			}
 		},
+		getOrderPaymentValidation(data) {
+			//监听根据付款状态做操作
+			this.OrderService.OrderPaymentValidation({ orderId: data.orderId })
+				.then(response => {
+					let data = response.data
+					this.payModelData = data
+					if(data.balanceFlag == 1){// 0可以走余额抵扣,1不能走余额抵扣
+						this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
+					}else{
+						switch (data.code) {
+							case 1:
+								this.isPayModel = true
+								this.modelType = 1
+								break
+							case 2:
+								this.isPayModel = true
+								this.modelType = 2
+								break
+							case -1:
+								this.$util.modal('', '订单已申请全部退款,无需再付款!', '确定', '', false, () => {})
+								break
+							default:
+								if (data.onlinePayFlag == 1) {// 只能线下
+									this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.orderId}`)
+								} else {
+									this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
+								}
+						}
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		hanldPaymentConfirm(data) {
+			//余额抵扣跳转
+			this.OrderService.OrderBalanceDeduction({ orderId: data.order.orderId })
+				.then(response => {
+					if (data.type === 2) {
+						let _data = { orderId: data.order.orderId }
+						this.$api.navigateTo(
+							`/pages/user/order/success?type=deduction&data=${JSON.stringify({ data: _data })}`
+						)
+					} else {
+						this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.order.orderId}`)
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		hanldCancelConfirm(data) {
+			//不使用余额抵扣直接跳转收银台
+			if (data.onlinePayFlag === 1) {// 只能线下
+				this.$api.navigateTo(`/pages/user/order/order-payunder?orderId=${data.orderId}`)
+			} else {
+				this.$api.navigateTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
+			}
+		},
+		hanldConfirmFn(orderId) {
+			//确认打款供应商
+			this.$util.modal(
+				'提示',
+				'确定委托采美平台打款给供应商吗?确定之前请务必确保货品完好?',
+				'确定',
+				'取消',
+				true,
+				() => {
+					this.OrderService.confirmpayment({ orderId: orderId })
+						.then(response => {
+							this.$util.msg('确认成功', 2000, true, 'success')
+							setTimeout(() => {
+								this.getOrderDatainit(this.currentTab)
+							}, 2000)
+						})
+						.catch(error => {
+							this.$util.msg(error.msg, 2000)
+						})
+				}
+			)
+		},
 		handOrderConfirm(orderId) {
 			//确认收货
 			this.$util.modal('提示', '是否确认收货', '确定', '取消', true, () => {
@@ -485,7 +580,7 @@ export default {
 					.then(response => {
 						this.$util.msg(response.msg, 2000, true, 'success')
 						setTimeout(() => {
-							this.getOrderDatainit()
+							this.getOrderDatainit(this.currentTab)
 						}, 2000)
 					})
 					.catch(error => {
@@ -500,7 +595,7 @@ export default {
 					.then(response => {
 						this.$util.msg(response.msg, 2000, true, 'success')
 						setTimeout(() => {
-							this.getOrderDatainit()
+							this.getOrderDatainit(this.currentTab)
 						}, 2000)
 					})
 					.catch(error => {
@@ -515,7 +610,7 @@ export default {
 					.then(response => {
 						this.$util.msg(response.msg, 2000, true, 'success')
 						setTimeout(() => {
-							this.getOrderDatainit()
+							this.getOrderDatainit(this.currentTab)
 						}, 2000)
 					})
 					.catch(error => {