Explorar el Código

1.订单管理

guo hace 2 años
padre
commit
0c18bb4bdb
Se han modificado 3 ficheros con 534 adiciones y 329 borrados
  1. 332 295
      pages/myOrder/activityOrderDetail.vue
  2. 41 24
      pages/myOrder/mallOrderDetail.vue
  3. 161 10
      pages/myOrder/paintOrderDetail.vue

+ 332 - 295
pages/myOrder/activityOrderDetail.vue

@@ -1,21 +1,22 @@
 <template>
 	<view class="box">
-	
-		<!-- 自定义导航 -->
-		<view class="zdyNavBox">
-			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
-			<view class="zdyNav">
-				<view class="zdyNavLeft">
-					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback"></image>
-				</view>
-				<view class="zdyNavTitle">订单详情</view>
-				<view style="width: 50px;"></view>
-			</view>
-		</view>
-		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
-		<view style="height: 44px;"></view>
-		
-		
+
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+				</view>
+				<view class="zdyNavTitle">订单详情</view>
+				<view style="width: 50px;"></view>
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+
 		<view class="top">
 			<view class="orderState">
 				<image src="../../static/img/icon_order_def.png" mode="" style="width: 44rpx;height: 44rpx;"></image>
@@ -41,8 +42,8 @@
 				</view>
 
 			</view>
-			<view class="shopRightBox" @click="map">
-
+			<!-- <view class="shopRightBox" @click="map"> -->
+			<view class="shopRightBox">
 				<image src="../../static/img/icon_ditu.png" mode="" class="shopRightImg"></image>
 
 				<view class="shopRihgtTxt">地图</view>
@@ -59,18 +60,20 @@
 		<!-- 订单内容 -->
 		<view class="information">
 			<view class="detailedTitle">订单内容</view>
-			
-			<view v-if="orderData.openSheetDetail.length>0" v-for="(item,index) in orderData.openSheetDetail" :key="index">
-				<view class="informationLine2">
-					<view class="goodsName">{{item.itemName}}</view>
-					<view class="huodong" @click="goDetail(item.itemId)">
-						<view class="goodsName3">活动详情</view>
-						<image src="../../static/img/little_rightArrow.png" mode="" style="width: 30rpx;height: 30rpx;"></image>
-					</view>
-				</view>
-				<view class="salePrice"><span class="informationNum">¥</span>{{item.salePrice}}</view>
+
+			<view v-if="orderData.openSheetDetail.length>0" v-for="(item,index) in orderData.openSheetDetail"
+				:key="index">
+				<view class="informationLine2">
+					<view class="goodsName">{{item.itemName}}</view>
+					<view class="huodong" @click="goDetail(item.itemId)">
+						<view class="goodsName3">活动详情</view>
+						<image src="../../static/img/little_rightArrow.png" mode="" style="width: 30rpx;height: 30rpx;">
+						</image>
+					</view>
+				</view>
+				<view class="salePrice"><span class="informationNum">¥</span>{{item.salePrice}}</view>
 			</view>
-			
+
 			<view v-if="orderData.data.sheetState != 1 && orderData.data.sheetState != 4" class="line"></view>
 			<view v-if="orderData.data.sheetState != 1 && orderData.data.sheetState != 4">
 				<view class="goodsName2">
@@ -83,14 +86,14 @@
 						<view class="code">{{v.qrCode}}</view>
 						<view class="quanState">待使用</view>
 
-					</view>
-					<view v-if="v.writeoffState==3" class="detailedName">
-						<view class="redPoint"></view>
-						<view class="code old" >{{v.qrCode}}</view>
-						<view class="quanState2">已使用</view>
-					
 					</view>
-					
+					<view v-if="v.writeoffState==3" class="detailedName">
+						<view class="redPoint"></view>
+						<view class="code old">{{v.qrCode}}</view>
+						<view class="quanState2">已使用</view>
+
+					</view>
+
 					<image src="../../static/img/icon_erweima.png" mode="" style="width: 36rpx;height: 36rpx;"
 						v-if="v.writeoffState==1" @click="isShowMa=true"></image>
 				</view>
@@ -98,7 +101,7 @@
 
 		</view>
 
-		
+
 		<!-- 实付款 -->
 		<view class="money">
 			<view class="informationNum">实付款:</view>
@@ -107,35 +110,35 @@
 
 		<!-- 订单信息 -->
 		<view class="information">
-			<view class="detailedTitle">订单信息</view>
-			<view class="informationLine" v-if="orderData.data.plateNumber">
-				<view class="informationTxt">车牌号:</view>
-				<view class="informationNum">{{orderData.data.plateNumber}}</view>
-			</view>
-			
-			<view class="informationLine" v-if="orderData.data.customerName">
-				<view class="informationTxt">联系人:</view>
-				<view class="informationNum">{{orderData.data.customerName}}</view>
-			</view>
-			<view class="informationLine" v-if="orderData.data.mobilePhone">
-				<view class="informationTxt">手机号:</view>
-				<view class="informationNum">{{orderData.data.mobilePhone}}</view>
-			</view>
-			<view class="informationLine" v-if="orderData.data.unit">
-				<view class="informationTxt">单位:</view>
-				<view class="informationNum">{{orderData.data.unit}}</view>
-			</view>
-			<view class="informationLine">
-				<view class="informationTxt">报名时间:</view>
-				<view class="informationNum">{{orderData.data.createTime}}</view>
-			</view>
-			
+			<view class="detailedTitle">订单信息</view>
+			<view class="informationLine" v-if="orderData.data.plateNumber">
+				<view class="informationTxt">车牌号:</view>
+				<view class="informationNum">{{orderData.data.plateNumber}}</view>
+			</view>
+
+			<view class="informationLine" v-if="orderData.data.customerName">
+				<view class="informationTxt">联系人:</view>
+				<view class="informationNum">{{orderData.data.customerName}}</view>
+			</view>
+			<view class="informationLine" v-if="orderData.data.mobilePhone">
+				<view class="informationTxt">手机号:</view>
+				<view class="informationNum">{{orderData.data.mobilePhone}}</view>
+			</view>
+			<view class="informationLine" v-if="orderData.data.unit">
+				<view class="informationTxt">单位:</view>
+				<view class="informationNum">{{orderData.data.unit}}</view>
+			</view>
+			<view class="informationLine">
+				<view class="informationTxt">报名时间:</view>
+				<view class="informationNum">{{orderData.data.createTime}}</view>
+			</view>
+
 			<view class="informationLine">
 				<view class="informationTxt">订单单号:</view>
 				<view class="informationNum">{{orderData.data.code}}<span class="codeCopy"
 						@click="copy(orderData.data.code)">复制</span></view>
 			</view>
-			
+
 
 		</view>
 
@@ -161,10 +164,15 @@
 
 		<view style="height: 50rpx;background-color: #F4F5F7;"></view>
 
+		<!-- 待付款 -->
 		<view class="bottom" v-if="orderData.data.sheetState == 1">
-
 			<view class="cancel" @click="cancelBespeak">取消订单</view>
-			<view class="defer" @click="pay">立即支付</view>
+
+		</view>
+		<!-- 待服务 -->
+		<view class="bottom" v-if="orderData.data.sheetState == 2">
+			<view class="defer" @click="goHeXiao">核销</view>
+
 		</view>
 
 
@@ -176,23 +184,24 @@
 					<image @click="isShowMa=false" src="../../static/img/icon_delete.png" mode=""
 						style="width: 26rpx;height: 26rpx;margin-left: 10rpx;"></image>
 
-				</view>
-				<swiper class="swiper" circular  :autoplay="false" :indicator-dots="true" indicator-color="#CCCCCC" indicator-active-color="#D53533">
-					<swiper-item v-for="(item,index) in quanMaList">
-						<view class="swiper-item">
-							<view class="maCode">{{item}}</view>
-							<view class="maBoximg">
-								<tki-qrcode cid="qrcode1" ref="qrcode" :val="item" :size="400" :unit="unit"
-									:pdground="pdground" :icon="icon" :iconSize="iconsize" :lv="lv" :onval="onval"
-									:loadMake="loadMake" :usingComponents="true" @result="qrR" />
-							</view>
-						</view>
-					</swiper-item>
-					
-					
+				</view>
+				<swiper class="swiper" circular :autoplay="false" :indicator-dots="true" indicator-color="#CCCCCC"
+					indicator-active-color="#D53533">
+					<swiper-item v-for="(item,index) in quanMaList">
+						<view class="swiper-item">
+							<view class="maCode">{{item}}</view>
+							<view class="maBoximg">
+								<tki-qrcode cid="qrcode1" ref="qrcode" :val="item" :size="400" :unit="unit"
+									:pdground="pdground" :icon="icon" :iconSize="iconsize" :lv="lv" :onval="onval"
+									:loadMake="loadMake" :usingComponents="true" @result="qrR" />
+							</view>
+						</view>
+					</swiper-item>
+
+
 				</swiper>
-				
-			
+
+
 			</view>
 		</view>
 
@@ -209,9 +218,9 @@
 		data() {
 			return {
 
-				id: '',
-				iStatusBarHeight:'',
-				
+				id: '',
+				iStatusBarHeight: '',
+
 				orderData: '',
 
 				onval: true, // val值变化时自动重新生成二维码
@@ -230,84 +239,101 @@
 				iconsize: 40, // 二维码图标大小
 				lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
 				src: '', // 二维码生成后的图片地址或base64
-				isShowMa: false,
-				quanMaList:[],
-				
+				isShowMa: false,
+				quanMaList: [],
+
 			}
 		},
 		onLoad(opt) {
-			 this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
 			this.id = opt.id
-			
+
 
 			if (this.id) {
 				this.getData()
-			}
-			
-
-		},
-		
-
-		methods: {
-			
-			goDetail(id) {
-				console.log('id--',id);
-				uni.navigateTo({
-					
-					url: '../../activity/jkDetail?id=' + id
-				})
+			}
+
+
+		},
+
+
+		methods: {
+			// 核销
+			goHeXiao() {
+
+				//app交互
+				var standalone = window.navigator.standalone
+				var userAgent = window.navigator.userAgent.toLowerCase()
+				var safari = /safari/.test(userAgent)
+				var ios = /iphone|ipod|ipad|mac/.test(userAgent)
+				var android = /android/.test(userAgent)
+				if (ios) {
+					if (true) { //!standalone&& !safari
+						window.webkit.messageHandlers.goHeXiao.postMessage({"id":this.id?this.id:''})
+					}
+				} else if (android) {
+					window.android.postMessage()
+				}
+
 			},
-			pay(){
+			goDetail(id) {
+				console.log('id--', id);
+				uni.navigateTo({
+
+					url: '../addjk/activityDetail?id=' + id
+				})
+			},
+			pay() {
 				this.$http('openMallOrder/unifiedPay', {
-					sheetId:this.id
-				},'POST').then(res => {
-					
-					if(res.code==0){
-						
+					sheetId: this.id
+				}, 'POST').then(res => {
+
+					if (res.code == 0) {
+
 						this.requestPayment(res.data)
-					}else{
+					} else {
 						uni.showToast({
 							title: res.msg,
 							icon: 'none',
 							duration: 3000
 						});
 					}
-				 })
+				})
 			},
-			requestPayment(res){
-				var payInfo=res;
+			requestPayment(res) {
+				var payInfo = res;
 				//console.log(payInfo)
 				//console.log(String(Date.now()))
-				var that=this;
+				var that = this;
 				uni.requestPayment({
 					provider: 'wxpay',
 					//timeStamp: String(Date.now()),
 					timeStamp: payInfo.timeStamp,
 					nonceStr: payInfo.nonceStr,
-					package:payInfo.package,
+					package: payInfo.package,
 					signType: payInfo.signType,
 					paySign: payInfo.paySign,
-					appid:payInfo.appId,	
-				
-				    success: function (res) {
-				        console.log('success:' + JSON.stringify(res));
-						 uni.showToast({
-							 title: '支付成功',
-							 icon:'none',
-							 duration: 2000
-						 });
+					appid: payInfo.appId,
+
+					success: function(res) {
+						console.log('success:' + JSON.stringify(res));
+						uni.showToast({
+							title: '支付成功',
+							icon: 'none',
+							duration: 2000
+						});
 						that.getData()
-				    },
-				    fail: function (err) {
-					  console.log(err)
-				      uni.showToast({
-						 title: '支付失败',
-						 icon:'none',
-						 duration: 2000
-				      });
-					
-				    }
-				}); 
+				 },
+					fail: function(err) {
+						console.log(err)
+						uni.showToast({
+							title: '支付失败',
+							icon: 'none',
+							duration: 2000
+						});
+
+					}
+				});
 			},
 			copy(txt) {
 				uni.setClipboardData({
@@ -347,47 +373,47 @@
 
 
 				})
-			},
-			cancelBespeak(){
-				var that = this
-				uni.showModal({
-				    title: '提示',
-				    content: '是否取消该订单',
-					cancelText:'否',
-					confirmText:'是',
-				    success: function (res) {
-				        if (res.confirm) {
-							
-								uni.showLoading({
-									title: '加载中'
-								})
-								
-								that.$http('openH5Indent/updateSheetState', {
-							
-									id: that.id,
-							
-								}, 'POST').then(res => {
-									uni.hideLoading();
-									// var list = res.data.Items
-									
-									uni.showToast({
-										title: '取消成功',
-										icon: 'none',
-										duration: 2000
-									});
-									setTimeout(function() {
-										that.getData();
-									}, 1000);
-								})
-							
-				          
-				        } else if (res.cancel) {
-				           
-				        }
-				    }
-				});
 			},
-			
+			cancelBespeak() {
+				var that = this
+				uni.showModal({
+					title: '提示',
+					content: '是否取消该订单',
+					cancelText: '否',
+					confirmText: '是',
+					success: function(res) {
+						if (res.confirm) {
+
+							uni.showLoading({
+								title: '加载中'
+							})
+
+							that.$http('openH5Indent/updateSheetState', {
+
+								id: that.id,
+
+							}, 'POST').then(res => {
+								uni.hideLoading();
+								// var list = res.data.Items
+
+								uni.showToast({
+									title: '取消成功',
+									icon: 'none',
+									duration: 2000
+								});
+								setTimeout(function() {
+									that.getData();
+								}, 1000);
+							})
+
+
+						} else if (res.cancel) {
+
+						}
+					}
+				});
+			},
+
 			map() {
 				console.log("打开地图")
 				var that = this;
@@ -433,32 +459,32 @@
 				}, 'GET').then(res => {
 					uni.hideLoading();
 					this.orderData = res.data;
-					if (this.quanMaList) {
-						this.quanMaList = [];
-					}
-					let maList = this.orderData.OpenSheetQRCode;
-					if (maList) {
-						maList.forEach(item =>{
-							if (item.writeoffState==1) {
-								this.quanMaList.push(item.qrCode);
-							}
-						})
-					}
-					
-					console.log('可用券码--',this.quanMaList);
-					
+					if (this.quanMaList) {
+						this.quanMaList = [];
+					}
+					let maList = this.orderData.OpenSheetQRCode;
+					if (maList) {
+						maList.forEach(item => {
+							if (item.writeoffState == 1) {
+								this.quanMaList.push(item.qrCode);
+							}
+						})
+					}
+
+					console.log('可用券码--', this.quanMaList);
+
 				})
 			},
-			
+
 			goback() {
-				uni.navigateBack({
-				 	delta: 1
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			gohome() {
+				uni.switchTab({
+					url: '../../index/index'
 				})
-			},
-			gohome(){
-				uni.switchTab({
-					url:'../../index/index'
-				})
 			},
 
 		},
@@ -478,47 +504,52 @@
 		min-height: 100vh;
 		background: #F4F5F7;
 		padding-bottom: 135rpx;
-	}
-	.zdyNavBox{
-		width: 100vw;
-		background: #FFFFFF;
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 9999999;
-	}
-	.zdyNav{
-		height: 44px;
-		display: flex;
-		justify-content: space-between;
-		
-		align-items: center;
-	}
-	
-	.backImg{
-		width: 44rpx;
-		height: 44rpx;
-		margin-left: 10rpx;
-		margin-right: 20rpx;
-	}
-	.homeImg{
-		width: 44rpx;
-		height: 44rpx;
-		
-	}
-	.zdyNavLeft{
-		display: flex;
-		align-items: center;
-	}
-	.zdyNavTitle{
-		
-		height: 44px;
-		background: #FFFFFF;
-		text-align: center;
-		font-size: 34rpx;
-		line-height: 44px;
-	}
-	
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
 
 	.top {
 		height: 190rpx;
@@ -654,8 +685,8 @@
 	.code {
 		font-size: 26rpx;
 		color: #333333;
-		font-weight: bold;
-		width: 180rpx
+		font-weight: bold;
+		width: 180rpx
 	}
 
 	.old {
@@ -683,15 +714,16 @@
 		border-radius: 4rpx;
 		margin-left: 20rpx;
 	}
-	.quanState2{
-		font-size: 22rpx;
-		color: #999999;
-		padding: 0 10rpx;
-		
-		border: 1rpx solid #DDDDDD;
-		
-		border-radius: 4rpx;
-		margin-left: 20rpx;
+
+	.quanState2 {
+		font-size: 22rpx;
+		color: #999999;
+		padding: 0 10rpx;
+
+		border: 1rpx solid #DDDDDD;
+
+		border-radius: 4rpx;
+		margin-left: 20rpx;
 	}
 
 
@@ -715,14 +747,14 @@
 		display: flex;
 		justify-content: space-between;
 		font-size: 26rpx;
-		padding: 20rpx;
-		align-items: center;
+		padding: 20rpx;
+		align-items: center;
 		padding-bottom: 0;
 	}
 
 	.salePrice {
-		    padding-left: 20rpx;
-		    padding-top: 15rpx;
+		padding-left: 20rpx;
+		padding-top: 15rpx;
 		font-size: 26rpx;
 		font-weight: 500;
 		color: #333333;
@@ -756,23 +788,26 @@
 	.goodsName {
 		width: 70%;
 		color: #333333;
-		font-size: 26rpx;
-		
-	}
-	.huodong{
-		display: flex;
-		align-items: center;
-	}
-	.goodsName3{
-		color: #333333;
-		font-size: 26rpx;
-		
-	}
-	.goodsName2{
-		padding: 20rpx 20rpx 15rpx;
-		
-		color: #333333;
-		font-size: 26rpx;
+		font-size: 26rpx;
+
+	}
+
+	.huodong {
+		display: flex;
+		align-items: center;
+	}
+
+	.goodsName3 {
+		color: #333333;
+		font-size: 26rpx;
+
+	}
+
+	.goodsName2 {
+		padding: 20rpx 20rpx 15rpx;
+
+		color: #333333;
+		font-size: 26rpx;
 	}
 
 	.informationNum {
@@ -789,7 +824,7 @@
 		color: #333333;
 		text-align: center;
 		line-height: 33rpx;
-		padding: 0 15rpx;
+		padding: 0 15rpx;
 		margin-left: 20rpx;
 	}
 
@@ -854,7 +889,7 @@
 	}
 
 	.itemTop {
-		padding: 18rpx 20rpx;
+		padding: 18rpx 20rpx;
 		padding-right: 0;
 		background-color: #FFEFD5;
 
@@ -867,24 +902,24 @@
 		width: 104rpx;
 		font-size: 26rpx;
 		color: #333333;
-		margin-right: 20rpx;
+		margin-right: 20rpx;
 		text-align: right;
-	}
-	
+	}
 
-	.leftItem {
-		font-size: 26rpx;
-		color: #333333;
+
+	.leftItem {
+		font-size: 26rpx;
+		color: #333333;
 		margin-right: 20rpx;
-		flex-grow: 1;
-		/* 隐藏文字显示 ...不换行 */
-		overflow: hidden;
-		text-overflow: ellipsis;
+		flex-grow: 1;
+		/* 隐藏文字显示 ...不换行 */
+		overflow: hidden;
+		text-overflow: ellipsis;
 		white-space: nowrap;
 	}
 
 	.itemContent {
-		padding: 20rpx;
+		padding: 20rpx;
 		padding-right: 0;
 		background-color: #FFFFFF;
 
@@ -925,26 +960,28 @@
 		font-size: 26rpx;
 		text-align: center;
 		padding-left: 100rpx;
-	}
-	.swiper{
-		width: 100%;
-		height: 85%;
-		background: #FFFFFF;
-		
-	}
-	.swiper-item{
-		width: 100%;
-		height: 100%;
-	}
-	
-	
+	}
+
+	.swiper {
+		width: 100%;
+		height: 85%;
+		background: #FFFFFF;
+
+	}
+
+	.swiper-item {
+		width: 100%;
+		height: 100%;
+	}
+
+
 	.maCode {
 
 		font-size: 30rpx;
 		font-weight: 500;
 		color: #333333;
 		line-height: 42rpx;
-		margin-bottom: 40rpx;
+		margin-bottom: 40rpx;
 		text-align: center;
 	}
 

+ 41 - 24
pages/myOrder/mallOrderDetail.vue

@@ -41,8 +41,8 @@
 				</view>
 
 			</view>
-			<view class="shopRightBox" @click="map">
-
+			<!-- <view class="shopRightBox" @click="map"> -->
+			<view class="shopRightBox">
 				<image src="../../static/img/icon_ditu.png" mode="" class="shopRightImg"></image>
 
 				<view class="shopRihgtTxt">地图</view>
@@ -198,8 +198,8 @@
 		<!-- 待服务 -->
 		<view class="bottom" v-if="orderData.data.sheetState == 2">
 			<view class="defer" @click="isShowTui=true">退款</view>
-			<view class="defer" @click="goVerification">核销</view>
-			<view class="defer" @click="">开单</view>
+			<view class="defer" @click="goHeXiao">核销</view>
+			<!-- <view class="defer" @click="">开单</view> -->
 		</view>
 
 
@@ -390,14 +390,44 @@
 			bindChange(e) {
 				console.log(e);
 				this.index = e.detail.value
-				this.yuanyin = this.tuicauseList[this.index].contents
+				
 			},
 			feedDone(e) {
 				this.tuikuanContent = e.target.value
 			
 			},
-			goVerification(){
+			
+			// 核销
+			goHeXiao(){
+				
+					//app交互
+					var standalone = window.navigator.standalone
+					var userAgent = window.navigator.userAgent.toLowerCase()
+					var safari = /safari/.test(userAgent)
+					var ios = /iphone|ipod|ipad|mac/.test(userAgent)
+					var android = /android/.test(userAgent)
+					if (ios) {
+									 if ( true) {//!standalone&& !safari
+									   window.webkit.messageHandlers.goHeXiao.postMessage({"id":this.id?this.id:''})
+									 }
+					} else if (android) {
+									 window.android.postMessage()
+					}
 				
+			},
+			getTuiKuanData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+			
+				this.$http('openH5Indent/getOpenReason', {
+			
+					// id: this.id,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					this.tuicauseList = res.data;
+					
+				})
 			},
 			pay(){
 				this.$http('openMallOrder/unifiedPay', {
@@ -562,20 +592,7 @@
 					phoneNumber: this.orderData.shopInfo.mobilePhone
 				});
 			},
-			getTuiKuanData() {
-				uni.showLoading({
-					title: '加载中'
-				});
-			
-				this.$http('openH5Indent/getOpenReason', {
-			
-					// id: this.id,
-				}, 'GET').then(res => {
-					uni.hideLoading();
-					this.tuicauseList = res.data;
-					
-				})
-			},
+			
 
 			getData() {
 				uni.showLoading({
@@ -604,12 +621,12 @@
 					
 				})
 			},
-			
-			goback() {
+			goback() {
 				uni.navigateBack({
 				 	delta: 1
-				})
-			},
+				})
+			},
+			
 			
 
 		},

+ 161 - 10
pages/myOrder/paintOrderDetail.vue

@@ -41,8 +41,8 @@
 				</view>
 
 			</view>
-			<view class="shopRightBox" @click="map">
-
+			<!-- <view class="shopRightBox" @click="map"> -->
+			<view class="shopRightBox">
 				<image src="../../static/img/icon_ditu.png" mode="" class="shopRightImg"></image>
 
 				<view class="shopRihgtTxt">地图</view>
@@ -169,10 +169,18 @@
 
 		<view style="height: 50rpx;background-color: #F4F5F7;"></view>
 
-		<view class="bottom" v-if="orderData.data.sheetState == 1">
-
-			<view class="cancel" @click="cancelBespeak">取消订单</view>
-			<view class="defer" @click="pay">立即支付</view>
+		<!-- 待付款 -->
+		<view class="bottom" v-if="orderData.data.sheetState == 1">
+			<view class="cancel" @click="cancelBespeak">取消订单</view>
+			
+		</view>
+		<!-- 待服务 -->
+		<view class="bottom" v-if="orderData.data.sheetState == 2">
+			<view class="defer" @click="isShowTui=true">退款</view>
+			<view class="defer" @click="goHeXiao">核销</view>
+			<!-- <view class="defer" @click="">开单</view> -->
+			<!-- <view class="defer" @click="">开卡</view> -->
+			
 		</view>
 
 
@@ -204,7 +212,62 @@
 			</view>
 		</view>
 
-
+		
+		<!-- 退款原因 -->
+		<view class="tuikuanBox" v-if="isShowTui==true">
+			<view class="tuikuan">
+				<view class="tuiTop">
+					<view class="tuiTitle">退款</view>
+					<image @click="isShowTui=false" src="../../static/img/icon_close.png" mode="" style="width: 26rpx; height: 26rpx;"></image>
+					
+				</view>
+				<view class="contLine">
+					<view class="contlineLeft">
+						<image src="../../static/img/icon_star.png" mode="" class="star"></image>
+						退款原因
+					</view>
+					<view class="contlineRight carModelRight" @click="">
+						
+						<picker class="carModel" @change="bindChange" mode="selector"  :value="index" :range="tuicauseList" range-key="contents">
+							<view class="uni-input">{{tuicauseList[index].contents}}</view>
+							<!-- <view class="uni-input noColor" v-else>请选择</view> -->
+						</picker>
+						<image src="../../static/img/little_rightArrow.png" mode="" class="contlineRightJt"></image>
+					</view>
+				</view>
+				
+				<view class="contLine">
+					<view class="contlineLeft">
+						<image src="../../static/img/icon_star.png" mode="" class="star"></image>
+						退款金额
+					</view>
+					<view class="contlineRight carModelRight" @click="cktime">
+						<span class="carModel">{{orderData.data.realMoney}}</span>
+						
+					</view>
+				</view>
+				
+				<view class="contLine">
+					<view class="contlineLeft">
+						<image src="" mode="" class="star"></image>
+						补充描述
+					</view>
+					
+					<view class="contlineRight">
+						<textarea placeholder-style="color:#999999" placeholder="请输入" v-model="tuikuanContent"
+								class="contlineRightInput" maxlength="-1" auto-height="true" @confirm="feedDone" />
+					</view>
+				</view>
+				
+				<view class="tuiBtns">
+					<view class="btn" @click="isShowTui=false">取消</view>
+					<view class="btn2" @click="goTui">确认退款</view>
+				</view>
+				
+			</view>
+		</view>
+		
+		
 	</view>
 </template>
 
@@ -239,7 +302,11 @@
 				lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
 				src: '', // 二维码生成后的图片地址或base64
 				isShowMa: false,
-				quanMaList:[],
+				quanMaList:[],
+				isShowTui: false,
+				tuicauseList:[],
+				tuikuanContent:'',
+				index: 0,
 				
 			}
 		},
@@ -251,13 +318,97 @@
 			if (this.id) {
 				this.getData()
 			}
-			
+			this.getTuiKuanData()
 
 		},
 		
 
 		methods: {
-			
+			goTui(){
+				
+				let yuanyin = this.tuicauseList[this.index].contents
+				if (!yuanyin) {
+					uni.showToast({
+						title: '请选择退款原因',
+						icon: 'none',
+						duration: 3000
+					});
+					return false;
+				}
+				
+					uni.showLoading({
+						title: '加载中'
+					})
+					var that = this
+					this.$http('openH5Indent/reimburse', {
+				
+						id: this.id,
+						refundReason: yuanyin,
+						refundComment: this.tuikuanContent,
+						realMoney:this.orderData.data.realMoney
+					}, 'GET').then(res => {
+						uni.hideLoading();
+						// var list = res.data.Items
+						var list = res.data
+						console.log("result+=", res.data);
+						if (res.data) {
+							that.isShowTui = false
+							uni.showToast({
+								title: '退款成功',
+								icon: 'none',
+								duration: 2000
+							});
+							setTimeout(function() {
+								that.getData();
+							}, 1000);
+						}
+						
+				
+					})
+				
+			},
+			bindChange(e) {
+				console.log(e);
+				this.index = e.detail.value
+				
+			},
+			feedDone(e) {
+				this.tuikuanContent = e.target.value
+			
+			},
+			
+			// 核销
+			goHeXiao(){
+				
+					//app交互
+					var standalone = window.navigator.standalone
+					var userAgent = window.navigator.userAgent.toLowerCase()
+					var safari = /safari/.test(userAgent)
+					var ios = /iphone|ipod|ipad|mac/.test(userAgent)
+					var android = /android/.test(userAgent)
+					if (ios) {
+									 if ( true) {//!standalone&& !safari
+									   window.webkit.messageHandlers.goHeXiao.postMessage({"id":this.id?this.id:''})
+									 }
+					} else if (android) {
+									 window.android.postMessage()
+					}
+				
+			},
+			getTuiKuanData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+			
+				this.$http('openH5Indent/getOpenReason', {
+			
+					// id: this.id,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					this.tuicauseList = res.data;
+					
+				})
+			},
 			pay(){
 				this.$http('openMallOrder/unifiedPay', {
 					sheetId:this.id