浏览代码

commit -m 订单

zhengjinyi 4 年之前
父节点
当前提交
f1de71c42c

文件差异内容过多而无法显示
+ 0 - 2
common/css/iconfont.scss


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

@@ -95,7 +95,7 @@
 			btnConfirm(type,order){
 				let data = {
 						type:type,
-						orderId:order.orderID,
+						orderId:order.orderId,
 						order:order
 					}
 				this.$emit('buttonConfirm',data)

+ 0 - 259
components/cm-module/orderDetails/sellerDetaileButton.vue

@@ -1,259 +0,0 @@
-<template name="button">
-	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
-		<!-- 底部按钮 -->
-		<view class="button-content">
-			<view class="btn btn-cancel"  v-if="secondHandOrderFlag!=1"  @click.stop="btnConfirm('again',order)">再来一单</view>
-			<view class="btn btn-cancel" v-if="btnState.isCancel"  @click.stop="btnConfirm('cancel',order)">取消订单</view>
-			<view class="btn btn-cancel" v-if="btnState.isDelete"  @click.stop="btnConfirm('delete',order)">删除订单</view>
-			<view class="btn btn-share" @click.stop="onShareCode">
-				<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
-				分享订单
-			</view>	
-			<view class="btn btn-color" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认订单</view>
-			<view class="btn btn-color" v-if="btnState.isPay && ableUserMoney > 0 && !rechargeGoods" @click.stop="btnConfirm('balance',order)">余额抵扣</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:"button",
-		props:{
-			status:{
-				type:Number
-			},
-			order: {
-				type:Object
-			},
-			ableUserMoney:{
-				type:Number
-			},
-			rechargeGoods:{
-				type:Boolean
-			},
-			shareCode:{
-				type:String
-			},
-			serviceProviderId:{
-				type:Number
-			},
-			secondHandOrderFlag:{
-				type:String
-			}
-		},
-		watch:{
-			status:{
-				handler:function(val){
-					this.initData(val)
-				},
-				deep:true//对象内部的属性监听,也叫深度监听
-			}
-		},
-		data() {
-			return{
-				btnState:this.initStatus(),
-				isIphoneX:this.$store.state.isIphoneX,
-				invoiceStatus:false,
-				mapStateArr:[
-					{label:'isDelete',val:[6],status: true},
-					{label:'isCancel',val:[0,111],status: true},
-					{label:'isConfirm',val:[0],status: true},
-					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
-				]
-			}
-		},
-		created(){
-			console.log(this.rechargeGoods);
-			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
-							//console.log(this.btnState[el.label]);
-						}
-					})
-				})
-			},
-			initStatus(){
-				let btnState= {
-						isQuery: false,
-						isDelete: false,
-						isCancel: false,
-						isConfirm: false,
-						isPay: false,
-					}
-				return 	btnState
-			},
-			getShareCode(code){
-				this.shareCode = code
-			},
-			onShareCode(){
-				if(this.order.onlinePayFlag!= '1'){
-					this.PayService.PayOrderCheckoutCounter({orderId:this.order.orderID}).then(response =>{
-						let data = response.data.order
-						this.invoiceStatus =  data.invoiceStatus
-						//判断线上线下显示
-						if(this.invoiceStatus){
-							this.$util.modal('提示','由于商品发票属性的限制,本订单不能进行线上支付,请让客户选择线下转账方式付款','继续分享','知道了',true,() =>{
-								this.$parent.isShareModal = true
-							})		
-						}else{
-							this.$parent.isShareModal = true
-						}
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
-				}else{
-					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;
-			margin: 20rpx 0;
-			.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;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #FFFFFF;
-				text-align: center;
-				border-radius: 34rpx;
-				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);
-					}
-				}
-			}
-			.btn-cancel{
-				background:#FFFFFF;
-				color: #666666;
-				float: left;
-				// margin: 22rpx 0;
-				margin-right: 15rpx;
-				border: 2rpx solid #999999;
-			}
-			.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:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
-			}
-			.btn-share{
-				background:#FFFFFF;
-				color: #666666;
-				float: left;
-				// margin: 22rpx 0;
-				margin-right: 15rpx;
-				border: 2rpx solid #999999;
-				position: relative;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:#E15616;
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -69rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:#E15616;
-						position: absolute;
-						bottom: -8rpx;
-						left: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 195
components/cm-module/orderDetails/sellerOrderButton.vue

@@ -1,195 +0,0 @@
-<template name="button">
-	<view class="button-template">
-		<!-- 底部按钮 -->
-		<view class="button-content"> 
-			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',orderID)">取消订单</view>
-			<view class="btn btn-cancel" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',orderID)">删除订单</view>
-			<view class="btn btn-cancel" v-if="secondHandOrderFlag!=1"  @click.stop="btnConfirm('again',orderID)">再来一单</view>
-			<view class="btn btn-cancel"  @click.stop="onShareCode(orderID,userID)">分享订单</view>	
-			<view class="btn btn-color" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',orderID)">确认订单</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:"button",
-		props:{
-			status: {
-				type:Number
-			},
-			orderID: {
-				type:Number
-			},
-			userID:{
-				type:Number
-			},
-			serviceProviderId:{
-				type:Number
-			},
-			secondHandOrderFlag:{
-				type:String
-			}
-		},
-		data() {
-			return{
-				isShare:true,
-				shareCode:'',
-				btnState:this.initStatus(),
-				mapStateArr:[
-					{label:'isDelete',val:[6],status: true},
-					{label:'isCancel',val:[0,111],status: true},
-					{label:'isConfirm',val:[0],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= {
-						isDelete: false,
-						isCancel: false,
-						isConfirm: false,
-						isShare: true
-					}
-				return 	btnState
-			},
-			getShareCode(code){
-				this.shareCode = code
-			},
-			onShareCode(oID,uID){
-				this.$parent.isShareModal = true
-				this.$parent.btnoRderID = oID,
-				this.$parent.btnClubUserID = uID
-				this.$emit('shareConfirm')
-			},
-			btnConfirm(type,id){
-				let data = {
-						type:type,
-						orderId:id,
-					}
-				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;
-			margin: 20rpx 0;
-			.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;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #FFFFFF;
-				text-align: center;
-				border-radius:34rpx;
-				// float: right; 
-				display: inline-block;
-			}
-			.btn-color{
-				background: $btn-confirm;
-				// margin: 22rpx 0 22rpx 22rpx;
-			}
-			.btn-cancel{
-				border: 2rpx solid #999999;
-				background:#FFFFFF;
-				color: #666666;
-				// float: left;
-				margin-right: 15rpx;
-			}
-			.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:linear-gradient(315deg,rgba(231,0,0,1) 0%,rgba(255,104,1,1) 100%);
-			}
-			.btn-share{
-				background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
-				margin-right: 0;
-				position: relative;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:#E15616;
-					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:#E15616;
-						position: absolute;
-						bottom: -8rpx;
-						left: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 4 - 4
components/cm-module/productDetails/cm-price.vue

@@ -101,15 +101,15 @@
 						<view class="box-product" v-show="product.promotion.mode == 3">
 							<view
 								class="box-product-main"
-								v-for="(item, index) in product.promotion.giftList"
+								v-for="(item, index) in product.promotion.productGifts"
 								:key="index"
 							>
 								<view class="image"
-									><image :src="item.image" mode="widthFix"></image
+									><image :src="item.mainImage" mode="widthFix"></image
 								></view>
 								<view class="info">
-									<view class="name">{{ item.name }}</view>
-									<view class="num">X{{ item.number }}</view>
+									<view class="name">{{ item.productName }}</view>
+									<view class="num">X{{ item.productCount }}</view>
 								</view>
 							</view>
 						</view>

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

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

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

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

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

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

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

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

+ 0 - 84
components/cm-module/productDetails/secondParameters.vue

@@ -1,84 +0,0 @@
-<template name="cm-parameters">
-	<!-- 二手商品参数-->
-	<view class="content">
-		<view class="content-tr">
-			<view class="content-td">品牌</view>
-			<view class="content-th">{{product.brandName == null? '其他' : product.brandName}}</view>
-		</view>
-		<view class="content-tr">
-			<view class="content-td">分类</view> 
-			<view class="content-th">{{product.typeStr}}</view>
-		</view>
-		<view class="content-tr">
-			<view class="content-td">商品成色</view> 
-			<view class="content-th">{{product.productQuality}}</view>
-		</view>
-		<view class="content-tr" v-if="product.fixedYears!=''&& product.fixedYears!=null">
-			<view class="content-td">出厂日期</view> 
-			<view class="content-th">{{product.fixedYears}}</view>
-		</view>
-		<view class="content-tr" v-if="product.contactName!=''&& product.contactName!=null">
-			<view class="content-td">联系人</view> 
-			<view class="content-th">{{product.contactName}}</view>
-		</view>
-		<view class="content-tr" v-if="product.contactMobile!=''&&product.contactMobile!=null">
-			<view class="content-td">联系方式</view> 
-			<view class="content-th">{{product.contactMobile}}</view>
-		</view>
-		<view class="content-tr" v-if="product.productType!=null||product.productType!=''">
-			<view class="content-td">商品类型</view> 
-			<view class="content-th" v-if="product.productType==1">医美</view>
-			<view class="content-th" v-else>非医美</view>
-		</view>
-		<view class="content-tr" v-if="product.secondHandType==2">
-			<view class="content-td">市场价</view>
-			<view class="content-th">{{product.normalPriceStr}}</view>
-		</view>
-		<view class="content-tr" v-if="product.secondHandType==2">
-			<view class="content-td">采购价/原价</view>
-			<view class="content-th">{{product.originalPriceStr}}</view>
-		</view>
-		<view class="content-tr" v-if="product.secondHandType==2">
-			<view class="content-td">产品到期日</view>
-			<view class="content-th">{{product.maturityYears}}</view>
-		</view>
-		<view class="content-tr" v-if="product.secondHandType==2">
-			<view class="content-td">数量</view>
-			<view class="content-th">{{product.stock}}</view>
-		</view>
-		<view class="content-tr">
-			<view class="content-td">所在地</view>
-			<view class="content-th">{{product.provinceCityDistrict}}</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'cm-parameters',
-		props:{
-			product:{
-				type:Object,
-				default: {}
-			},
-			goodsData:{
-				type:Object,
-				default: {}
-			},
-		},
-		data() {
-			return{
-				
-			}
-		},
-		created() {
-			
-		},
-		methods:{
-		},
-		
-	}
-</script>
-
-<style>
-</style>

+ 0 - 86
components/cm-module/productDetails/secondPrice.vue

@@ -1,86 +0,0 @@
-<template name="second-price">
-	<!-- 商品详情价格判断 -->
-	<view class="wrap-main">
-		<template v-if="!hasLogin">
-			<view class="p-login grade tui-skeleton-fillet">
-				<view class="floor-item-btn" v-if="product.detailTalkFlag !=2">
-					<view class="btn" @click.stop="loginClick">登录查看价格</view>
-				</view>
-				<template  v-else>
-					<text class="p-no">¥</text>
-					<text class="txt big" >详聊</text>
-				</template>
-			</view>
-		</template>
-		<template v-else>
-			<view class="wrap-main-item">
-				<view class="p-price tui-skeleton-fillet">
-					<text class="txt sm">¥</text>
-					<text class="txt big" v-if="product.detailTalkFlag==2">详聊</text>
-					<text class="txt big" v-else>{{product.price1Str}}</text>
-				</view>
-			</view>
-			
-		</template>
-		
-	</view>
-</template>
-
-<script>
-	import { mapState,mapMutations } from 'vuex'
-	export default{
-		name:'second-price',
-		props:{
-			product:{
-				type:Object,
-			},
-		},
-		data() {
-			return{
-				
-			}
-		},
-		filters: {
-			NumFormat:function(text) {//处理金额
-				return Number(text).toFixed(2);
-			},
-		},
-		created() {
-			console.log(this.product)
-		},
-		computed: {
-			...mapState(['hasLogin','isWxAuthorize'])
-		},
-		methods:{
-			loginClick(){
-				this.$api.navigateTo('/pages/login/login')
-			},
-		},
-		
-	}
-</script>
-
-<style lang="scss">	
-
-</style>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 180
components/cm-module/productDetails/secondRecommend.vue

@@ -1,180 +0,0 @@
-<template name="recommend">
-	<!-- 供应商信息 -->
-	<view class="recommend clearfix">
-		<view class="recommend-empty" v-if="isEmpty">
-			<image src="https://admin-b.caimei365.com/userfiles/1/images/photo/2020/11/recmmmd.png"></image>
-			<text>暂无相关推荐商品</text>
-		</view>
-		<view class="recommend-list" v-else>
-					<view class="row-list" v-for="(pros, idx) in recommendList" :key="idx" @click.stop="navToDetailPage(pros.productID)">
-						<view class="list-image"><image :src="pros.mainImage" mode=""></image></view>
-						<view class="list-name">{{pros.name}}</view>
-					</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import authorize from '@/common/config/authorize.js'
-	import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
-	import tuiNomore from "@/components/tui-components/nomore/nomore"
-	
-	export default{
-		name:'recommend',
-		props:{
-			queryProductid: {
-				// Unistars类型
-				type: String,
-			}
-		},
-		components:{
-			tuiLoadmore,
-			tuiNomore,
-		},
-		data() {
-			return{
-				current:0,
-				recommendList:[],
-				isEmpty:false,
-				pageSize:4,
-				productID:'',
-			}
-		},
-		created() {
-			this.productID = this.queryProductid
-			this.infoRecommend(this.queryProductid)
-		},
-		methods:{
-			infoRecommend(id){
-				this.SellerService.ProductRecommend({productId:id}).then(response =>{
-					if( response.data && response.data.length > 0){
-						this.isEmpty = false
-						this.recommendList = response.data
-					}else{
-						this.isEmpty = true
-					}
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			//轮播图切换修改背景色
-			swiperChange(e) {
-				const index = e.detail.current;
-				this.current = index;
-			},
-			navToDetailPage(id) {//跳转商品详情页
-				this.$api.navigateTo(`/pages/goods/product?id=${id}`)
-			}
-		}
-	}
-</script>
-
-<style lang="scss">	
-.recommend{
-	width: 100%;
-	.recommend-empty{
-		width: 702rpx;
-		// height: 100rpx;
-		line-height: 100rpx;
-		padding: 40rpx 24rpx;
-		font-size: $font-size-28;
-		color: #999999;
-		text-align: center;
-		image{
-			width: 360rpx;
-			height: 360rpx;
-		}
-		text{
-			display: block;
-		}
-	}
-	.recommend-list{
-		width: 100%;
-		height: auto;
-		position: relative;
-		box-sizing: border-box;
-		padding: 0rpx 24rpx;
-		.row-list{
-			width: 340rpx;
-			height: auto;
-			float: left;
-			margin-right: 20rpx;
-			margin-bottom: 20rpx;
-			border-radius: 20rpx;
-			background: #FFFFFF;
-			&:nth-child(2n){
-				margin-right: 0;
-			}
-			.list-image{
-				width: 100%;
-				height: 340rpx;
-				border-radius: 20rpx 20rpx 0 0;
-				image{
-					width: 100%;
-					height: 340rpx;
-					border-radius: 20rpx 20rpx 0 0;
-				}
-			}	
-			.list-name{
-				font-size: $font-size-28;
-				color: $text-color;
-				line-height:88rpx;
-				padding: 0 10rpx;
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
-			}
-		}
-	}
-	.swiper__recommenddots-box{
-		position: absolute;
-		bottom: -20rpx;
-		left: 0;
-		right: 0;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex: 1;
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		height: 60rpx;
-		background: #FFFFFF;
-		.swiper__dots-item{
-			width: 8rpx;
-			height: 8rpx;
-			border-radius: 100%;
-			margin-left: 6px;
-			background-color:rgba(0,0,0,.3);
-		}
-		.swiper__dots-long{
-			width: 32rpx;
-			height: 8rpx;
-			border-radius: 4rpx;
-			background-color: #000;
-			transition: all 0.4s;
-		}
-	}
-}
-</style>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 6 - 0
pages.json

@@ -120,6 +120,12 @@
 					"navigationStyle": "custom"
 				}
 			},
+			{
+				"path": "order/order-historylist",
+				"style": {
+					"navigationBarTitleText": "机构订单列表"
+				}
+			},
 			{
 				"path": "order/order-details",
 				"style": {

+ 11 - 11
pages/goods/list.vue

@@ -152,17 +152,17 @@ export default {
 				userId: this.userId,
 				productCount: this.number
 			})
-				.then(response => {
-					this.specClass = 'hide'
-					this.$util.msg(response.msg, 1500, true, 'success')
-					setTimeout(() => {
-						this.specClass = 'none'
-					}, 200)
-					this.$refs.productList.cartQuantity = response.data
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+			.then(response => {
+				this.specClass = 'hide'
+				this.$util.msg('加入购物车成功', 1500, true, 'success')
+				setTimeout(() => {
+					this.specClass = 'none'
+				}, 500)
+				this.$refs.productList.cartQuantity = response.data
+			})
+			.catch(error => {
+				this.$util.msg(error.msg, 2000)
+			})
 		}
 	}
 }

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

@@ -212,7 +212,7 @@ export default {
 		// 跳转订单列表
 		goOrderList(item) {
 			this.$api.setStorage('clubInfo', item)
-			this.$api.navigateTo(`pages/user/order/order-list`)
+			this.$api.navigateTo(`/pages/user/order/order-historylist`)
 		},
 		async hideSearchModalHandle() {
 			this.showSearchModal = false

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

@@ -208,16 +208,20 @@
 						this.modal = true;
 						this.contentModalText = '确认删除该订单吗?';
 						break;
-					case 'query':
-						this.isModalLayer = true;
-						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+this.orderId)
-						break;
 					case 'confirm':
 						this.modal = true;
 						this.contentModalText = '是否确认收货?'	
 						break;
+					case 'query':
+						this.isModalLayer = true;
+						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
+						break;
 					case 'pay':
-						this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${this.orderId}`)
+						if(data.order.onlinePayFlag == '0'){
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
+						}else{
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=onlinePay&Amount=${data.order.pendingPayments}&orderId=${data.orderId}`)
+						}
 						break;
 				}
 			},
@@ -231,10 +235,6 @@
 						case 'cancel':
 							this.handCenceConfirm(this.orderId)
 							break
-						case 'query':
-							this.isModalLayer = true;
-							this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+this.orderId)
-							break
 						case 'confirm':
 							this.handOrderConfirm(this.orderId);
 							break

+ 793 - 0
pages/user/order/order-historylist.vue

@@ -0,0 +1,793 @@
+<template>
+	<view class="container" :style="{paddingTop:50+'px'}">
+		<view class="order-section-top">
+			<scroll-view scroll-x scroll-with-animation class="tab-view" :scroll-left="scrollLeft">
+				<view v-for="(item,index) in orderTabBar" :key="index" class="tab-bar-item" :class="[currentTab==index ? 'active' : '']"
+				 :data-current="index" @tap.stop="onClickTab">
+					<text class="tab-bar-title">{{item.text}}</text>
+				</view>
+			</scroll-view>
+		</view>
+		<swiper class="tab-content" :current="currentTab" duration="80" @animationfinish="onChange" :style="{height:winHeight+'px'}" >
+			<swiper-item v-for="(tabItem,index) in orderTabBar" :key="index">
+				<tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading	="false" :loadingType="5"></tui-skeleton>
+				<scroll-view scroll-y class="scoll-y tui-skeleton" @scrolltolower="scrolltolower" :style="{height:winHeight+'px'}" >
+					<view  :class="{'tui-order-list':scrollTop >= 0}" class="tui-skeleton clearfix">
+						<!-- 空白页 -->
+						<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0" :typeIndex="currentTab" :navbarHeight="navbarHeight"></empty>
+						<!-- 列表 -->
+						<view v-else class="tui-order-content">
+							<view  class="tui-order-item" v-for="(order,orderIndex) in tabItem.orderList" :key="orderIndex" @click.stop="detail(order.orderId)">
+								<view class="order-title">
+									<view class="order-title-name">{{order.clubName}}</view>
+									<view class="order-title-t">
+										<text class="bage-text tui-skeleton-fillet">订单编号:{{order.orderNo}}({{order.orderId}})</text>
+										<image class="bage-icon" src="https://static.caimei365.com/app/img/icon/icon-type@3x.png" mode="widthFix" v-if="order.secondHandOrderFlag == 1"></image>
+									</view>
+									<view class="order-title-b">
+										<view class="order-title-btxt tui-skeleton-fillet">下单时间:{{order.orderTime}}</view>
+										<view class="order-title-tip tui-skeleton-fillet">{{StateExpFormat(order.status)}}</view>
+									</view>
+								</view>
+								<block v-for="(shop,index) in order.shopOrderList" :key="index">
+									<view class="goods-title">
+										<view class="title-text tui-skeleton-fillet">{{shop.shopName}}</view>
+									</view>
+									<view class="goods-item" v-for="(pros,prosIndex) in shop.orderProductList" :key="prosIndex">
+										<view class="goods-pros-t">
+											<view class="pros-img tui-skeleton-fillet">
+												<image :src="pros.productImage" alt="" />
+												<text class="tips" v-if="pros.productType ==2 || pros.productType ==1">赠品</text>
+											</view>
+											<view class="pros-product clearfix">
+												<view class="producttitle tui-skeleton-fillet">{{pros.name}}</view>
+												<view class="productspec tui-skeleton-fillet" v-if="pros.productCategory != 2">规格:{{pros.productUnit ? pros.productUnit : ''}}</view>
+												<view class="productprice">
+													<view class="price tui-skeleton-fillet">
+														<text>¥{{ pros.price | NumFormat }}</text>
+													</view>
+													<view class="count tui-skeleton-fillet">
+														<text class="small">x</text>{{pros.num}}
+													</view>
+												</view>
+												<view class="floor-item-act" v-if="pros.productPromotion!=null">
+													<view v-if="PromotionsFormat(pros.productPromotion)"  class="floor-tags">
+														{{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">{{pros.productPromotion.name}}</view>	
+												</view>
+											</view>	
+										</view>
+									</view>	
+								</block>
+								<view class="order-footer">
+									<view class="order-footer-top" v-if="order.discountFee!=0">经理折扣:¥{{ order.discountFee | NumFormat }}</view>
+									<view class="order-footer-bot">
+										<view class="count tui-skeleton-fillet">共{{order.productCount}}件商品</view>
+										<view class="money tui-skeleton-fillet" v-if="order.status==31||order.status==32||order.status==33">已支付:<label style="color:#f94b4b ;">¥{{ order.receiptAmount | NumFormat }}</label></view>
+										<view class="money tui-skeleton-fillet" v-else>待付总额:<label style="color:#f94b4b ;">¥{{ order.pendingPayments | NumFormat }}</label></view>
+									</view>
+								</view>
+								<!-- 底部button -->
+								<order-button ref="orderButton" 
+											  :status="order.status" 
+											  :order="order" 
+											  @buttonConfirm="handButtonConfirm">
+								</order-button>
+							</view>
+							<!--加载loadding-->
+							<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+							<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text='nomoreText'></tui-nomore>
+							<!--加载loadding-->
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+		<!-- 操作弹窗 -->
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
+		<!-- 分享弹窗 -->
+		<share-alert   v-if="isShareModal" :orderID="btnoRderID" @shareConfirm ='onShareAppMessage'></share-alert>
+		<!-- 透明模态层 -->
+		<modal-layer v-if='isModalLayer'></modal-layer>
+	</view>
+</template>
+
+<script>
+	import headerBack from '@/components/cm-module/headerNavbar/header-back' 		//自定义顶部导航
+	import btSearch from '@/components/uni-search/bt-search.vue'				//搜索
+	import tuiSkeleton from "@/components/tui-skeleton/tui-skeleton"
+	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'			 //分享弹窗
+	
+	export default {
+		components: {
+			headerBack,
+			empty,
+			btSearch,
+			tuiLoadmore,
+			tuiNomore,
+			orderButton,
+			tuiSkeleton,
+			modalLayer,
+			shareAlert
+		},
+		data() {
+			return {
+				orderTabBar: [{state: 0,text: '全部订单',orderList: []},
+							  {state: 1,text: '待付款',orderList: []},
+							  {state: 2,text: '待发货',orderList: []},
+							  {state: 3,text: '已发货',orderList: []},
+							  {state: 4,text: '退货/款',orderList: []},
+							 ],
+				winHeight: "", //窗口高度
+				userId:'',		//机构ID
+				organizeId:0,
+				currentTab: 0, //预设当前项的值
+				screenTab:0,   //筛选预设当前项的值
+				scrollLeft: 0 ,//tab标题的滚动条位置
+				serviceProviderId:0,//协销用户ID
+				orderData: [],
+				btnClubUserID:0,
+				btnoRderID: 0, //点击按钮传入的的订单ID
+				pageNum: 1,	  //页数
+				pageSize: 10,  //条数
+				scrollTop: 0,
+				deteleType:'',
+				skeletonShow: true,
+				isClickChange: false,
+				isShareModal: false,//控制分享弹窗
+				isSeller:false,
+				isModalLayer: false,
+				loadding: false,
+				pullUpOn: true,
+				hasNextPage: false,
+				pullFlag: true,
+				navbarHeight:'',
+				nomoreText: '上拉显示更多',
+				modal:false,
+				OperationType:'',
+				contentModalText:''
+			}
+		},
+		onLoad(option) {
+			let self = this
+			this.$api.getStorage().then((resolve) =>{
+				this.organizeId = resolve.organizeId
+			})
+			//  高度自适应
+			uni.getSystemInfo({
+				success: function(res) {
+					let calc = res.windowHeight;
+					self.winHeight = calc-82;
+				}
+			});
+			
+		},
+		filters:{
+			NumFormat(value) {//处理金额
+				return Number(value).toFixed(2);
+			},
+		},
+		methods: {
+			// 滚动切换标签样式
+			onChange (e) {
+				let index = e.target.current || e.detail.current;
+				if (this.isClickChange) {
+					this.currentTab = index;
+					this.isClickChange = false;
+					return;
+				}
+				this.isClickChange = false;
+				this.currentTab = index; 
+				this.checkCor();
+				this.pageNum = 1
+				this.pullUpOn = true //切换时隐藏
+				this.loadding =  false //切换时隐藏
+				this.nomoreText = ''
+				this.GetOrderDatainit(this.currentTab,'tabChange')
+			},
+			// 点击标题切换当前页时改变样式
+			onClickTab (e) {
+				let tabIndex = e.target.dataset.current || e.currentTarget.dataset.current;
+				if (this.currentTab === tabIndex) {
+					return false;
+				} else {
+					this.isClickChange = true;
+					this.currentTab = tabIndex
+					this.pageNum = 1
+					this.pullUpOn = true //切换时隐藏
+					this.loadding =  false //切换时隐藏
+					this.GetOrderDatainit(this.currentTab)
+				}
+			},
+			onClickScreenTab(index){
+				console.log(index)
+				this.screenTab = index
+				this.pageNum = 1
+				this.pullUpOn = true //切换时隐藏
+				this.loadding =  false //切换时隐藏
+				this.nomoreText = ''
+				this.GetOrderDatainit(this.currentTab)
+			},
+			//判断当前滚动超过一屏时,设置tab标题滚动条。
+			checkCor: function() {
+				if (this.currentTab > 3) {
+					//这里距离按实际计算
+					this.scrollLeft = 300
+				} else {
+					this.scrollLeft = 0
+				}
+			},
+			GetOrderDatainit(index,source){
+				console.log(index)
+				setTimeout(()=>{this.skeletonShow = false},1500)
+				let orderItem = this.orderTabBar[index];
+				let state = orderItem.state;
+				if(source === 'tabChange' && orderItem.loaded === true){//tab切换只有第一次需要加载数据
+					return;
+				}
+				setTimeout(()=>{
+					this.$api.getComStorage('clubInfo').then((resolve) =>{
+						let params = {orderState:index,userId:resolve.userId,organizeId:this.organizeId,pageNum:1,pageSize:this.pageSize};
+						this.OrderService.QueryOrderList(params).then(response =>{
+							let orderList = response.data.list.filter(item=>{
+								//添加不同状态下订单的表现形式
+								item = Object.assign(item, this.StateExpFormat(item.state));
+								return item;
+							});
+							orderItem.orderList =[];
+							orderList.forEach(item=>{
+								orderItem.orderList.push(item);
+							})
+							//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
+							this.$set(orderItem, 'loaded', true);
+							this.hasNextPage = response.data.hasNextPage;
+							if(this.hasNextPage){
+								this.pullUpOn = false
+								this.nomoreText = '上拉显示更多'
+							}else{
+								if(orderItem.orderList.length < 2){
+									this.pullUpOn = true
+								}else{
+									this.pullUpOn = false
+									this.nomoreText = '已至底部'
+								}
+							}
+						}).catch(error =>{
+							this.$util.msg(error.msg,2000);
+						})
+					})
+				}, 600);	
+			}, 
+			getOnReachBottomData(index){//上拉加载
+				this.pageNum += 1
+				this.$api.getComStorage('clubInfo').then((resolve) =>{
+					let params = {orderState:index,userId:resolve.userId,organizeId:this.organizeId,pageNum:this.pageNum,pageSize:this.pageSize};
+					this.OrderService.QueryOrderList(params).then(response =>{
+						let orderItem = this.orderTabBar[index];
+						let resData = response.data.list
+						this.hasNextPage = response.data.hasNextPage;
+						orderItem.orderList = orderItem.orderList.concat(resData)
+						this.pullFlag = false;// 防上拉暴滑
+						setTimeout(()=>{this.pullFlag = true;},500)
+						if(this.hasNextPage){
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						}else{
+							this.loadding = false
+							this.pullUpOn = false
+							this.nomoreText = '已至底部'
+						}
+					}).catch(error =>{
+						this.$util.msg(error.msg,2000)
+					})
+				})	
+			},
+			scrolltolower() {
+				if(this.hasNextPage){
+					this.loadding = true
+					this.pullUpOn = true
+					this.getOnReachBottomData(this.currentTab);
+				}	
+			},
+			detail(id) {//订单详情跳转
+				this.isModalLayer = true;	
+				this.$api.navigateTo(`/pages/user/order/order-details?state=${this.currentTab}&orderId=${id}`)
+			},
+			handButtonConfirm(data) {//获取点击
+				console.log(data)
+				this.hanldOrder = data
+				this.btnoRderID = data.orderId
+				this.OperationType = data.type
+				this.handShowAlert(data)
+			},
+			handShowAlert(data) {//执行
+				switch(data.type){
+					case 'cancel':
+						this.modal = true;
+						this.contentModalText = '确认取消该订单吗?';
+						break;
+					case 'delete':
+						this.modal = true;
+						this.contentModalText = '确认删除该订单吗?';
+						break;
+					case 'confirm':
+						this.modal = true;
+						this.contentModalText = '是否确认收货?'	
+						break;
+					case 'query':
+						this.isModalLayer = true;
+						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
+						break;
+					case 'pay':
+						if(data.order.onlinePayFlag == '0'){
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
+						}else{
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=onlinePay&Amount=${data.order.pendingPayments}&orderId=${data.orderId}`)
+						}
+						break;
+				}
+			},
+			handleClick(e) {//用户操作订单
+				let index = e.index;
+				if(index == 1){
+					switch(this.OperationType){
+						case 'delete':
+							this.handOrderDetele(this.btnoRderID);
+							break
+						case 'cancel':
+							this.handCenceConfirm(this.btnoRderID)
+							break
+						case 'confirm':
+							this.handOrderConfirm(this.btnoRderID);
+							break
+					}
+				}
+				this.modal = false;
+			},
+			handOrderConfirm (id){//确认收货
+				this.OrderService.ConfirmReceipt({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			handOrderDetele(id){//删除订单
+				this.OrderService.DeleteOrder({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			handCenceConfirm(id){//取消订单
+				this.OrderService.CancelOrder({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			handlSearchPath(){
+				this.$api.navigateTo('/pages/user/order/search-order')
+			},
+			onShareAppMessage (res){//分享转发
+				this.isShareModal = false
+				if (res.from === 'button') {// 来自页面内转发按钮
+			    }
+				return {
+					title: '点击查看您的订单~',
+					path: `/pages/user/order/order-sharelogin?orderId=${this.btnoRderID}&userId=${this.userId}`,
+					imageUrl:'https://static-b.caimei365.com/app/wisa/img/icon/icon-share.png'
+				}
+			},
+			PromotionsFormat(promo){//促销活动类型数据处理
+				if(promo!=null){
+					if(promo.type == 1 && promo.mode == 1){
+						return true
+					}else{
+						return false
+					}
+				}
+				return false
+			},
+			//订单状态文字和颜色
+			StateExpFormat (state){
+				let stateText = '',
+					stateTextObject={
+						4:'交易完成',
+						5:'订单完成',
+						6:'已关闭',
+						7:'交易全退',
+						77:'交易全退',
+						11:'待付款待发货',
+						12:'待付款部分发货',
+						13:'待付款已发货',
+						21:'部分付款待发货',
+						22:'部分付款部分发货',
+						23:'部分付款已发货',
+						31:'已付款待发货',
+						32:'已付款部分发货',
+						33:'已付款已发货',
+						111:'待付款待发货',
+					}
+				Object.keys(stateTextObject).forEach(key => {
+					if(key == state){
+						stateText = stateTextObject[key]
+					}
+				})
+				return stateText;
+			},
+			orderPriceToFixed (n){
+				let price ='';
+				price = n.toFixed(2);
+				return price
+			},
+		},
+		onPageScroll(e) {
+			this.scrollTop = e.scrollTop;
+		},
+		onShow() {
+			this.isModalLayer = false;
+			this.GetOrderDatainit(this.currentTab)
+		}
+	}
+</script>
+
+<style lang="scss">
+	/*tabbar end*/
+	page{
+		background: #FFFFFF;
+	}
+	/*tabbar start*/
+	::-webkit-scrollbar {
+		width: 0;
+		height: 0;
+		color: transparent;
+	}
+	.order-section-top{
+		width: 100%;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 99;
+		background: #FFFFFF;
+		.tab-screen{
+			height: 60rpx;
+			width: 702rpx;
+			padding: 10rpx 24rpx;
+			border-top: 1px solid #F7F7F7;
+			border-bottom: 1px solid #F7F7F7;
+			display: flex;
+			justify-content: center;
+			justify-items: center;
+			.tab-screen-item{
+				flex: 1;
+				height: 60rpx;
+				border-radius: 10rpx;
+				background: #F7F7F7;
+				margin-right: 22rpx;
+				line-height: 66rpx;
+				font-size: $font-size-28;
+				color: #333333;
+				text-align: center;
+				&.active{
+					color: $color-system;
+				}
+				&:last-child{
+					margin-right: 0;
+				}
+			}
+		}
+	}
+	.tab-view::before {
+		content: '';
+		position: absolute;
+		-webkit-transform: scaleY(0.5);
+		transform: scaleY(0.5);
+		bottom: 0;
+		right: 0;
+		left: 0;
+	}
+	.tab-view {
+		width: 100%;
+		height: 80rpx;
+		overflow: hidden;
+		box-sizing: border-box;
+		background: #fff;
+		white-space: nowrap;
+	}
+	.tab-bar-item {
+		padding: 0;
+		height: 80rpx;
+		min-width: 80rpx;
+		line-height: 80rpx;
+		margin: 0 28rpx;
+		display: inline-block;
+		text-align: center;
+		box-sizing: border-box;
+		&.active {
+			border-bottom: 6rpx solid #c4761f;
+		}
+		.tab-bar-title {
+			height: 80rpx;
+			line-height: 80rpx;
+			font-size:$font-size-28;
+			color: $text-color;
+		}
+		&.active .tab-bar-title {
+			color: #c4761f !important;
+		}
+	}
+	.container {
+		background-color: #F7F7F7;
+		padding-bottom: env(safe-area-inset-bottom);
+		height: auto;
+		position: relative;
+	}
+	.tui-order-content{
+		width: 100%;
+		height: auto;
+	}
+	.tui-order-list {
+		width: 100%;
+		position: relative;
+	}
+	.tui-order-item {
+		display: flex;
+		flex-direction: column;
+		width: 702rpx;
+		padding:0 24rpx;
+		background: #fff;
+		border-bottom: 20rpx solid #F7F7F7;
+	}
+	.order-title{
+		width: 100%;
+		height: auto;
+		.order-title-name{
+			width: 100%;
+			height: 72rpx;
+			border-bottom: 1px solid #F7F7F7;
+			line-height: 72rpx;
+			text-align: left;
+			font-size: $font-size-28;
+			color: #333333;
+		}
+		.order-title-t{
+			width: 100%;
+			height: 68rpx;
+			float: left;
+			line-height: 68rpx;
+			position: relative;
+			.bage-icon{
+				width: 50rpx;
+				height: 50rpx;
+				display: block;
+				position: absolute;
+				right: 0;
+				top: 9rpx;
+			}
+			.bage-buss{
+				display: inline-block;
+				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-22;
+				text-align: center;
+				color: #FFFFFF;
+				margin-top: 8rpx;
+			}
+			.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-22;
+				text-align: center;
+				color: #FFFFFF;
+				margin-top: 8rpx;
+			}
+			.bage-text{
+				display: inline-block;
+				font-size: $font-size-28;
+				line-height: 68rpx;
+				text-align: left;
+				color: $color-system;
+				margin-left: 15rpx;
+			}
+		}
+		.order-title-b{
+			width: 100%;
+			height: 40rpx;
+			float: left;
+			margin-top: 8rpx;
+			.order-title-btxt{
+				float: left;
+				font-size: $font-size-28;
+				line-height: 40rpx;
+				color: #999999;
+				text-align: lef
+			}
+			.order-title-tip{
+				float: right;
+				font-size: $font-size-28;
+				line-height: 40rpx;
+				text-align: right;
+				color: #FF2A2A;
+			}
+		}
+	}
+	.goods-title{
+		width: 100%;
+		height: 56rpx;
+		float: left;
+		margin-top:10rpx;
+		.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;
+		}
+	}
+	.goods-item{
+		width: 100%;
+		height: auto;
+	}	
+	.goods-pros-t{
+		width: 100%;
+		height: auto;
+		padding:24rpx 0;
+		.pros-img{
+			float: left;
+			width: 210rpx;
+			height: 100%;
+			border-radius: 10rpx;
+			margin:0 26rpx 0 0;
+			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;
+				border:1px solid #f3f3f3;
+			}
+		}
+	}
+	.pros-product{
+		width: 460rpx;
+		height: 100%;
+		line-height: 36rpx;
+		font-size: $font-size-26;	
+		position: relative;
+		float: left;
+		.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: 36rpx;
+			color: #999999;
+			margin: 10rpx 0;
+		}
+		.productprice{
+			height: 48rpx;
+			width: 100%;
+			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:0 0 10rpx 0;
+			.floor-tags{
+				height: 28rpx;
+				border-radius: 6rpx;
+				background-color: #FFFFFF;
+				line-height: 28rpx;
+				color: #ff2a2a;
+				text-align: center;
+				display: inline-block;
+				padding:0 16rpx;
+				font-size: $font-size-20;
+				border: 1px solid #ff2a2a;
+				float: left;
+			}
+		}
+	}
+	.order-footer{
+		width: 100%;
+		height: 78rpx;
+		float: left;
+		.order-footer-top{
+			width: 100%;
+			height: 34rpx;
+			line-height: 34rpx;
+			font-size: $font-size-24;
+			color: #999999;
+			text-align: right;
+		}
+		.order-footer-bot{
+			width: 100%;
+			float: left;
+			height: 48rpx;
+			line-height: 48rpx;
+			font-size: $font-size-28;
+			font-weight: bold;
+			color: $text-color;
+			.count{
+				width: 50%;
+				float: left;
+				text-align: left;
+			}
+			.money{
+				width: 50%;
+				float: right;
+				text-align: right;
+			}
+		}
+	}
+</style>

+ 11 - 17
pages/user/order/order-list.vue

@@ -91,12 +91,6 @@
 		</swiper>
 		<!-- 操作弹窗 -->
 		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
-		<!-- 付款弹窗 -->
-		<order-model v-if="isPayModel" 
-					:payModelData="payModelData" 
-					:modelType='modelType' 
-					@cancelConfirm = "hanldCancelConfirm"
-					@paymentConfirm ='hanldPaymentConfirm'/>
 		<!-- 分享弹窗 -->
 		<share-alert   v-if="isShareModal" :orderID="btnoRderID" @shareConfirm ='onShareAppMessage' />
 		<!-- 透明模态层 -->
@@ -344,16 +338,20 @@
 						this.modal = true;
 						this.contentModalText = '确认删除该订单吗?';
 						break;
-					case 'query':
-						this.isModalLayer = true;
-						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
-						break;
 					case 'confirm':
 						this.modal = true;
 						this.contentModalText = '是否确认收货?'	
 						break;
+					case 'query':
+						this.isModalLayer = true;
+						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
+						break;
 					case 'pay':
-						this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
+						if(data.order.onlinePayFlag == '0'){
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
+						}else{
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=onlinePay&Amount=${data.order.pendingPayments}&orderId=${data.orderId}`)
+						}
 						break;
 				}
 			},
@@ -367,10 +365,6 @@
 						case 'cancel':
 							this.handCenceConfirm(this.btnoRderID)
 							break
-						case 'query':
-							this.isModalLayer = true;
-							this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+this.btnoRderID)
-							break
 						case 'confirm':
 							this.handOrderConfirm(this.btnoRderID);
 							break
@@ -417,7 +411,7 @@
 			    }
 				return {
 					title: '点击查看您的订单~',
-					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userId=${this.userId}`,
+					path: `/pages/user/order/order-sharelogin?orderId=${this.btnoRderID}&userId=${this.userId}`,
 					imageUrl:'https://static-b.caimei365.com/app/wisa/img/icon/icon-share.png'
 				}
 			},
@@ -740,7 +734,7 @@
 		.productspec{
 			height: 36rpx;
 			color: #999999;
-			margin: 30rpx 0;
+			margin: 10rpx 0;
 		}
 		.productprice{
 			height: 48rpx;

+ 129 - 26
pages/user/order/order-payment.vue

@@ -9,8 +9,8 @@
 						<view class="pay-p"><text>待付金额</text></view>
 						<view class="pay-money">
 							<text class="pay-sm">¥</text>
-							<text class="pay-bg">{{showIndexOfMoney | NumFormat}}</text>
-							<text class="pay-sm">{{smallMoney | NumFormat}}</text>
+							<text class="pay-bg">{{ showIndexOfMoney }}</text>
+							<text class="pay-sm">{{ smallMoney }}</text>
 						</view>
 					</view>
 				</view>
@@ -18,7 +18,7 @@
 					<view class="pay-bring-content">
 						<view class="text-v title">转账信息</view>
 						<view class="text-v">开户行:中信银行(深圳泰然支行)</view>
-						<view class="text-v">银行卡号:{{bankNumber}}</view>
+						<view class="text-v">银行卡号:{{ bankNumber }}</view>
 						<view class="text-v">户名:周仁声</view>
 						<view class="text-v">订单标识:{{payOrderId}} <text class="clipboard" @click.stop="clipboard(payOrderId)">复制</text></view>
 						<view class="text-v title">特别注意</view>
@@ -35,8 +35,8 @@
 						<view class="pay-p"><text>待付金额</text></view>
 						<view class="pay-money">
 							<text class="pay-sm">¥</text>
-							<text class="pay-bg">{{showIndexOfMoney | NumFormat}}</text>
-							<text class="pay-sm">{{smallMoney | NumFormat}}</text>
+							<text class="pay-bg">{{ showIndexOfMoney }}</text>
+							<text class="pay-sm">{{ smallMoney }}</text>
 						</view>
 					</view>
 				</view>
@@ -44,9 +44,9 @@
 					<view class="pay-bring-content">
 						<view class="text-v title">转账信息</view>
 						<view class="text-v">开户行:中信银行(深圳泰然支行)</view>
-						<view class="text-v">银行卡号:{{bankNumber}}</view>
+						<view class="text-v">银行卡号:{{ bankNumber }}</view>
 						<view class="text-v">户名:周仁声</view>
-						<view class="text-v">订单标识:{{payOrderId}} <text class="clipboard" @click.stop="clipboard(payOrderId)">复制</text></view>
+						<view class="text-v">订单标识:{{ payOrderId }} <text class="clipboard" @click.stop="clipboard(payOrderId)">复制</text></view>
 						<view class="text-v title">特别注意</view>
 						<view class="text-v bg-color">请在转账备注中填写上述订单标识,方便财务快速审核,提高发货速度</view>
 					</view>
@@ -122,17 +122,36 @@
 					</view>
 				</view>
 			</view>
+			<view class="alert spec" :class="specClass" v-if="isHttpUrlShowTip">
+				<!-- 选择支付弹窗说明 -->
+				<view class="freight-alert"  @tap="hideTips">
+					<view class="content">
+						<view class="title">
+							<text>支付链接</text>
+							<text class="iconfont icon-iconfontguanbi" @click.stop="hideTips"></text>
+						</view>
+						<view class="text-content">
+							<view class="text">请复制以下链接,并发送至电脑端,在浏览器访问该链接并选择银行尽快完成支付</view>
+							<view class="text-p">{{payHttpUrl}}</view>
+							<view class="text-b">链接有效期为24小时</view>
+						</view>
+						<view class="text-button" @click.stop="clipboard(payHttpUrl)">复制链接</view>
+					</view>
+				</view>
+			</view>
 		</template>
 	</view>
 </template>
 
 <script>
-	const thorui = require("@/components/clipboard/clipboard.thorui.js")
+	import authorize from '@/common/config/authorize.js'
+	import thorui from "@/components/clipboard/clipboard.thorui.js"
 	export default{
 		data(){
 			return{
 				orderID:'',
 				payableAmount:0,
+				ableUserMoney:'',
 				showIndexOfMoney:'0',
 				smallMoney:'.00',
 				emptyWrapperH: '',
@@ -159,8 +178,10 @@
 				optionType:'',
 				onlinePayFlag:'',
 				payBringTitle:'本次交易暂不支持线上支付,请使用线下转账方式付款',
-				payStatusText:'使用微信和企业网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。',
-				pageType:''
+				payStatusText:'使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。',
+				pageType:'',
+				payType:'',
+				isHttpUrlShowTip:false,
 			}
 		},
 		onLoad(option) {
@@ -194,6 +215,7 @@
 				this.orderId = e.orderId;
 				this.payOrderId ='#'+e.orderId+'#';
 				this.optionType = e.type;
+				console.log(this.optionType)
 				switch(e.type){
 					case 'confirm':
 						this.nvabarData.haveBack = false
@@ -215,8 +237,9 @@
 						this.nvabarData.haveBack = true
 						this.nvabarData.haveHome = false
 						this.nvabarData.title = '付款提示'
-						this.payableAmount = e.Amount
+						this.payableAmount = this.ableUserMoney = e.Amount
 						this.payBringTitle = '您已通过线下转账的方式支付了订单部分款项,剩余款项依然需要使用线下转账方式,给您带来的不便敬请谅解'
+						this.initAbleUserMoney(this.payableAmount)
 						break;
 				}
 			},
@@ -234,20 +257,21 @@
 			PayOrderCheckoutCounter(orderId){
 				this.PayService.PayOrderCheckoutCounter({orderId:orderId}).then(response =>{
 					let data = response.data.order
-					this.payableAmount = data.payableAmount - data.receiptAmount  //待付金额
+					this.payableAmount = this.ableUserMoney = data.payableAmount - data.receiptAmount  //待付金额
 					this.receiptStatus =  data.receiptStatus
-					this.onlinePayFlag = data.onlinePayFlag					
+					this.onlinePayFlag = data.onlinePayFlag		
+					this.initAbleUserMoney(this.payableAmount)
 					//判断线上线下显示
 					if(this.optionType == 'onlinePay'){
 						this.invoiceStatus = true
 					}else{
 						this.invoiceStatus = data.invoiceStatus
 					}
-					if(data.receiptAmount>0){
-						this.payStatusText = '使用微信和企业网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。'
+					if(data.receiptAmount > 0){
+						this.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。'
 						this.isReceiptStatus = false
 					}else{
-						this.payStatusText = '使用微信和企业网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。'
+						this.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。'
 						this.isReceiptStatus = true
 					}
 				}).catch(error =>{
@@ -257,23 +281,71 @@
 			goOrderCash(){
 				if(this.invoiceStatus){
 					this.$util.modal('','本次交易暂不支持线上支付开票,请使用线下转账的方式付款','知道了','',false,() =>{})
-					this.payStatusText = '使用微信和企业网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。'
+					this.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。'
 					this.isReceiptStatus = true
 				}else{
 					switch(this.tabCurrentIndex){
 						case 0:
-							this.$api.navigateTo(`/pages/user/order/order-pay?type=0&orderId=${this.orderId}`)
+							this.MiniWxPayFor()
 							break;
 						case 1:
-							this.$api.navigateTo(`/pages/user/order/order-pay?type=1&orderId=${this.orderId}`)
+							this.payType = '1'
+							this.BuildCatenate()
 							break;
 						case 2:
-							this.$api.navigateTo(`/pages/user/order/order-pay?type=2&orderId=${this.orderId}`)
+							this.payType = '2'
+							this.BuildCatenate()
 							break;
 					}
 				}
 			},
+			async MiniWxPayFor(){
+				const wechatCode = await authorize.getCode('weixin')
+				if(this.payableAmount > 5000){
+					this.$util.modal('','本次支付金额已超出微信支付限额,请输入小于5千的金额进行支付','知道了','',false,() =>{})
+					return
+				}
+				let params ={
+						payAmount:this.payableAmount*100,
+						payWay:"WEIXIN",
+						code:wechatCode,
+						orderId:this.orderId
+					}
+				this.PayService.WeChatMiniWxPay(params).then(response =>{
+					let PayInfo = JSON.parse(response.data.data.payInfo);
+					this.WxRequestPayment(PayInfo)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			WxRequestPayment(data){
+				let self = this
+				wx.requestPayment({
+					'timeStamp': data.timeStamp,
+					'nonceStr': data.nonceStr,
+					'package': data.package,
+					'signType': data.signType,
+					'paySign': data.paySign,
+					'success':function(res){
+						wx.reLaunch({url: '/pages/index/index'});
+					},
+					'fail':function(res){
+						console.log(res)
+						self.$util.msg('用户取消支付~')
+					},
+					'complete':function(res){
+			
+					}
+				})
+			},
+			BuildCatenate(){
+				this.PayService.PayOrderPayLink({unpaidAmount:this.payableAmount,orderId:this.orderId,payType:this.payType}).then(response =>{
+					this.payHttpUrl = response.data
+					this.isHttpUrlShowTip = true
+				})
+			},
 			initAbleUserMoney(money){//拆分金额并转千分位格式显示
+				console.log(money)
 				if(money == 0){
 					this.showIndexOfMoney ='0';
 					this.smallMoney=".00"
@@ -281,7 +353,7 @@
 					this.ableUserMoney = this.$api.FormatMoney(money) ;
 					let i =  this.ableUserMoney.toString().lastIndexOf('.');
 					if(i==-1){
-						this.showIndexOfMoney=this.$api.FormatMoney( this.ableUserMoney)
+						this.showIndexOfMoney=this.$api.FormatMoney(this.ableUserMoney)
 						this.smallMoney=".00"
 					}else{
 						this.smallMoney = this.ableUserMoney.toString().substring(i);
@@ -311,6 +383,9 @@
 					delta: 1
 				});
 			},
+			hideTips(){//隐藏弹窗
+				this.isHttpUrlShowTip = false
+			},
 			showTips(){
 				this.isShowTip=!this.isShowTip
 			},
@@ -318,6 +393,9 @@
 				thorui.getClipboardData(data, (res) => {
 					if (res) {
 						this.$util.msg("复制成功",2000,true,'success');
+						setTimeout(()=>{
+							this.$api.navigateTo(`/pages/user/order/order-details?state=0&orderId=${this.orderId}`)
+						},2000)
 					} else {
 						this.$util.msg("复制失败",2000,true,'none');
 					}
@@ -560,7 +638,7 @@
 					line-height: 44rpx;
 					text-align: center;
 					&.bg-color{
-						color: $color-system;
+						color:#ff2a2a;
 						line-height: 88rpx;
 					}
 				}
@@ -575,7 +653,7 @@
 					}
 					&.bg-color{
 						line-height: 44rpx;
-						color: $color-system;
+						color: #ff2a2a;
 					}
 					.clipboard{
 						width: 84rpx;
@@ -609,7 +687,7 @@
 					line-height: 44rpx;
 					text-align: center;
 					&.bg-color{
-						color: $color-system;
+						color: #ff2a2a;
 						line-height: 88rpx;
 					}
 				}
@@ -624,7 +702,7 @@
 					}
 					&.bg-color{
 						line-height: 44rpx;
-						color: $color-system;
+						color: #ff2a2a;
 					}
 					.clipboard{
 						width: 84rpx;
@@ -693,19 +771,44 @@
 				width: 100%;
 				height: auto;
 				.text{
-					padding: 20rpx 0;
+					padding: 20rpx 0 0 0;
 					line-height: 44rpx;
 					font-size: $font-size-26;
 					color:#666666;
 					text-align: justify;
 				}
 				.text-p{
+					width: 100%;
 					line-height: 44rpx;
 					font-size: $font-size-26;
 					color:$color-system;
 					text-align: left;
+					text-overflow:ellipsis;
+					display: -webkit-box;
+					word-break: break-all;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 1;
+					overflow: hidden;
+				} 
+				.text-b{
+					line-height: 44rpx;
+					font-size: $font-size-24;
+					color:#999999;
+					text-align: left;
 				}
 			}
+			.text-button{
+				width: 100%;
+				height: 88rpx;
+				line-height: 88rpx;
+				background: $btn-confirm;
+				font-size: $font-size-28;
+				border-radius: 44rpx;
+				color:#FFFFFF;
+				text-align: center;
+				margin-top: 20rpx;
+			}
 		}
 	}
+	
 </style>

+ 116 - 93
pages/user/order/search-order.vue

@@ -18,7 +18,7 @@
 					<text class="iconfont icon-shanchu" @click="confirmDetele"></text>
 				</view>
 				<view class="list">
-					<view v-for="(item,index) in serachRecordList" :key="index" @click="keywordsClick(item.searchWord)">{{item.searchWord}}</view>
+					<view v-for="(item,index) in serachRecordList" :key="index" @click="keywordsClick(item)">{{item}}</view>
 				</view>
 			</view>
 		</view>
@@ -29,7 +29,7 @@
 					<empty v-if="isShowEmpty" :navbarHeight="navbarHeight"></empty>
 					<!-- 列表 -->
 					<view v-else class="tui-order-content">
-						<view  class="tui-order-item" v-for="(order,orderIndex) in orderList" :key="orderIndex" @click.stop="detail(order.orderID)">
+						<view  class="tui-order-item" v-for="(order,orderIndex) in orderList" :key="orderIndex" @click.stop="detail(order.orderId)">
 							<view class="order-title">
 								<view class="order-title-name">{{order.clubName}}</view>
 								<view class="order-title-t">
@@ -85,8 +85,7 @@
 							<!-- 底部button -->
 							<order-button ref="orderButton" 
 										  :status="order.status" 
-										  :orderID="order.orderID" 
-										  :onlinePayFlag = "order.onlinePayFlag"
+										  :order="order" 
 										  @buttonConfirm="handButtonConfirm">
 							</order-button>
 						</view>
@@ -98,10 +97,10 @@
 				</view>
 			</scroll-view>
 		</view>
+		<!-- 操作弹窗 -->
+		<tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
 		<!-- 分享弹窗 -->
-		<share-alert   v-if="isShareModal"
-					   :orderID="btnoRderID" 
-					   @shareConfirm ='onShareAppMessage'>
+		<share-alert   v-if="isShareModal" :orderID="btnoRderID" @shareConfirm ='onShareAppMessage'>
 		</share-alert>
 		<!-- 透明模态层 -->
 		<modal-layer v-if='isModalLayer'></modal-layer>
@@ -156,11 +155,17 @@
 				pullFlag: true,
 				navbarHeight:'',
 				nomoreText: '上拉显示更多',
-				scrollHeight:''
+				scrollHeight:'',
+				modal:false,
+				OperationType:'',
+				contentModalText:''
 			}
 		},
 		onLoad() {
-		  this.initGetSerachRecord()
+			this.$api.getStorage().then((resolve) =>{
+				this.organizeId = resolve.organizeId
+				this.InitGetSerachRecord(this.organizeId)
+			})	
 		},
 		filters:{
 			NumFormat(value) {//处理金额
@@ -173,37 +178,34 @@
 					this.$util.msg('请输入商品关键词',2000);
 				}else{
 					this.commodityList =[]
-					this.getOrderDatainit()
+					this.GetOrderDatainit()
 				}
 			},
-			initGetSerachRecord(){
-				this.$api.getStorage().then((resolve) =>{
-					this.userID = resolve.userID
-					this.OrderService.SearchOrderHistory({userId:this.userID}).then(response =>{
-						this.serachRecordList = response.data
-						if(this.serachRecordList.length>0){
-							this.isSearchHistory = true
-						}else{
-							this.isSearchHistory = false
-						}
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
-				})	
+			InitGetSerachRecord(){		
+				this.OrderService.SearchOrderHistory({organizeId:this.organizeId}).then(response =>{
+					this.serachRecordList = response.data
+					if(this.serachRecordList.length>0){
+						this.isSearchHistory = true
+					}else{
+						this.isSearchHistory = false
+					}
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
 			},
 			onShowClose () { //输入框失去焦点时触发
 				this.inputEmpty(this.searchInputVal)
 			},
 			onFocus () { //输入框获取焦点时触发
 				this.inputEmpty(this.searchInputVal)
-				this.initGetSerachRecord()
+				this.InitGetSerachRecord()
 			},
 			delInputText () { //清除输入框内容
 				this.searchInputVal = ''
 				this.isShowClose = false
 				this.isShowWrapper = false
 				this.inputEmpty(this.searchInputVal)
-				this.initGetSerachRecord()
+				this.InitGetSerachRecord()
 			},
 			keywordsClick (item) {	//关键词搜索与历史搜索
 				this.searchInputVal = item;
@@ -211,14 +213,9 @@
 				this.subMitSearch();
 			},
 			confirmDetele () {//清空历史记录
-				this.$util.modal('提示','确定删除历史记录?','确定','取消',true,() =>{
-					this.OrderService.ClearOrderHistory({userId:this.userID}).then(response =>{
-						this.$util.msg('删除记录成功',2000,true,'success')
-						this.serachRecordList=[]
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
-				})
+					this.modal = true;
+					this.contentModalText = '确定删除历史记录?';
+					this.OperationType = 'history';
 			},
 			inputEmpty(val){
 				this.isShowWrapper = false
@@ -228,7 +225,7 @@
 					this.isShowClose = false
 				}
 			},
-			getOrderDatainit(index,source){
+			GetOrderDatainit(index,source){
 				/**
 				 * @订单初始化加载  仅加载第一页码
 				 * @param:searchWord(搜索关键词)
@@ -237,11 +234,11 @@
 				 * @param:pageSize(每页条数)
 				 * @param:organizeID(全局变量组织ID)
 				 */ 
-				let params = {searchWord:this.searchInputVal,userId:this.userID,pageNum:1,pageSize:this.pageSize};
+				let params = {searchWord:this.searchInputVal,organizeId:this.organizeId,pageNum:1,pageSize:this.pageSize};
 				this.OrderService.SearchOrderInfo(params).then(response =>{
 					this.isShowWrapper = true
 					this.showSkeleton = true
-					const _responseData = response.data.results;
+					const _responseData = response.data.list;
 					if(_responseData && _responseData.length > 0){
 						let filrerData = _responseData.filter(item=>{
 							//添加不同状态下订单的表现形式
@@ -276,7 +273,7 @@
 				this.pageNum+=1
 				let params = {searchWord:this.searchInputVal,userId:this.userID,pageNum:this.pageNum,pageSize:this.pageSize}
 				this.OrderService.SearchOrderInfo(params).then(response =>{
-					let resData = response.data.results
+					let resData = response.data.list
 					this.hasNextPage = response.data.hasNextPage;
 					this.orderList = this.orderList.concat(resData)
 					this.pullFlag = false;// 防上拉暴滑
@@ -303,86 +300,112 @@
 			},
 			detail(id) {//订单详情跳转
 				this.isModalLayer = true;	
-				this.$api.navigateTo(`/pages/user/order/order-details?type=search&orderID=${id}`)
+				this.$api.navigateTo(`/pages/user/order/order-details?state=${this.currentTab}&orderId=${id}`)
 			},
 			handButtonConfirm(data) {//获取点击
-				this.handShowAlert(data)
+				console.log(data)
+				this.hanldOrder = data
 				this.btnoRderID = data.orderId
+				this.OperationType = data.type
+				this.handShowAlert(data)
 			},
 			handShowAlert(data) {//执行
 				switch(data.type){
-					case 'delete':
-						this.handOrderDetele(data.orderId);
-						break
 					case 'cancel':
-						this.handCenceConfirm(data.orderId)
-						break
+						this.modal = true;
+						this.contentModalText = '确认取消该订单吗?';
+						break;
+					case 'delete':
+						this.modal = true;
+						this.contentModalText = '确认删除该订单吗?';
+						break;
+					case 'confirm':
+						this.modal = true;
+						this.contentModalText = '是否确认收货?'	
+						break;
 					case 'query':
 						this.isModalLayer = true;
-						this.$api.navigateTo('/pages/user/order/order-logistics?orderID='+data.orderId)
-						break
-					case 'confirm':
-						this.handOrderConfirm(data.orderId);
-						break
-					case 'confirmation':
-						this.handOrderConfirmation(data.orderId);
-						break	
+						this.$api.navigateTo('/pages/user/order/order-logistics?orderId='+data.orderId)
+						break;
+					case 'pay':
+						if(data.order.onlinePayFlag == '0'){
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${data.orderId}`)
+						}else{
+							this.$api.navigateTo(`/pages/user/order/order-payment?type=onlinePay&Amount=${data.order.pendingPayments}&orderId=${data.orderId}`)
+						}
+						break;
+					
+						
 				}
 			},
-			handOrderConfirm (id){//确认收货
-				this.$util.modal('提示','是否确认收货','确定','取消',true,() =>{
-					this.OrderService.ConfirmReceipt({orderID:id}).then(response =>{
-						this.$util.msg(response.msg,2000,true,'success');
-						this.getOrderDatainit()
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
-				})
+			handleClick(e) {//用户操作订单
+				let index = e.index;
+				if(index == 1){
+					switch(this.OperationType){
+						case 'delete':
+							this.handOrderDetele(this.btnoRderID);
+							break;
+						case 'cancel':
+							this.handCenceConfirm(this.btnoRderID)
+							break;
+						case 'confirm':
+							this.handOrderConfirm(this.btnoRderID);
+							break;
+						case 'history':	
+							this.handDeleteHistory(this.organizeId)
+					}
+				}
+				this.modal = false;
 			},
-			handOrderConfirmation (id){//确认订单
-				this.$util.modal('提示','确认此订单?','确定','取消',true,() =>{
-					this.OrderService.AffirmOrder({orderID:id}).then(response =>{
-						this.$util.msg(response.msg,2000,true,'success');
-						setTimeout(() => {
-							this.getOrderDatainit()
-						},2000)
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
+			handOrderConfirm (id){//确认收货
+				this.OrderService.ConfirmReceipt({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
 				})
 			},
 			handOrderDetele(id){//删除订单
-				this.$util.modal('提示','确认删除该订单吗?','确定','取消',true,() =>{
-					this.OrderService.DeleteOrder({orderID:id}).then(response =>{
-						this.$util.msg(response.msg,2000,true,'success');
-						setTimeout(() => {
-							this.getOrderDatainit()
-						},2000)
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
+				this.OrderService.DeleteOrder({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
 				})
 			},
 			handCenceConfirm(id){//取消订单
-				this.$util.modal('提示','确认取消该订单吗?','确定','取消',true,() =>{
-					this.OrderService.CancelOrder({orderID:id}).then(response =>{
-						this.$util.msg(response.msg,2000,true,'success');
-						setTimeout(() => {
-							this.getOrderDatainit()
-						},2000)
-					}).catch(error =>{
-						this.$util.msg(error.msg,2000)
-					})
+				this.OrderService.CancelOrder({orderId:id}).then(response =>{
+					this.$util.msg(response.msg,2000,true,'success');
+					setTimeout(() => {
+						this.GetOrderDatainit(this.currentTab)
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
+				})
+			},
+			handDeleteHistory(id){
+				this.OrderService.ClearOrderHistory({organizeId:id}).then(response =>{
+					this.$util.msg('删除记录成功',2000,true,'success')
+					this.serachRecordList=[]
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000)
 				})
 			},
+			handlSearchPath(){
+				this.$api.navigateTo('/pages/user/order/search-order')
+			},
 			onShareAppMessage (res){//分享转发
 				this.isShareModal = false
 				if (res.from === 'button') {// 来自页面内转发按钮
 			    }
 				return {
-					title: '您有新分享订单,快来查看吧~',
-					path: `/pages/user/order/order-sharelogin?orderID=${this.btnoRderID}&userID=${this.userID}`,
-					imageUrl:'https://static.caimei365.com/app/img/bg/min-banner.jpg'
+					title: '点击查看您的订单~',
+					path: `/pages/user/order/order-sharelogin?orderId=${this.btnoRderID}&userId=${this.userId}`,
+					imageUrl:'https://static-b.caimei365.com/app/wisa/img/icon/icon-share.png'
 				}
 			},
 			setScrollHeight() {

+ 2 - 1
pages/user/order/success.vue

@@ -10,7 +10,7 @@
 					<text>{{ successText }}</text>
 				</view>
 				<view class="cash-btn">
-					<view class="btn btn-pay" @click="this.$api.navigateTo('/pages/user/order/order-payment?orderId='+orderId)">支付订单</view>
+					<view class="btn btn-pay" @click="this.$api.navigateTo(`/pages/user/order/order-payment?type=payfirm&orderId=${orderId}`)">支付订单</view>
 					<view class="btn btn-open" @click="this.$api.navigateTo('/pages/user/order/order-details?type=confim&orderId='+orderId)">查看订单</view>
 				</view>
 			</view>
@@ -57,6 +57,7 @@
 				return systeminfo
 			},
 			initData(option){
+				console.log(option)
 				this.orderId = option.orderId
 			}
 		},

+ 17 - 5
services/order.service.js

@@ -100,21 +100,33 @@ export default class OrderService {
 	 *@param pageSize	条数
 	 */
 	SearchOrderInfo (data = {}) {
-		return this.AjaxService.get({ url:'/order/search', data, isLoading: true })
+		return this.AjaxService.get({ 
+			url:'/order/search', 
+			data, 
+			isLoading: true ,
+		})
 	}
 	/**
 	 *搜索订单历史记录
-	 * @param orderID
+	 *@param organizeId 用户ID
 	 */
 	SearchOrderHistory (data = {}) {
-		return this.AjaxService.get({ url:'/order/searchHistory', data, isLoading: false })
+		return this.AjaxService.get({ 
+			url:'/order/searchHistory', 
+			data, 
+			isLoading: false ,
+		})
 	}
 	/**
 	 *清楚订单历史记录
-	 * @param orderID
+	 *@param organizeId 用户ID
 	 */
 	ClearOrderHistory (data = {}) {
-		return this.AjaxService.get({ url:'/order/searchHistory/delete', data, isLoading: true })
+		return this.AjaxService.get({ 
+			url:'/order/searchHistory/delete', 
+			data, 
+			isLoading: true ,
+		})
 	}
 	/**
 	 *@机构-确认订单初始化数据

部分文件因为文件数量过多而无法显示