twt 3 月之前
父節點
當前提交
ffbc19e624

+ 325 - 1
pages/myOrder/mallOrderDetail.vue

@@ -73,7 +73,7 @@
 			</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="goodsName">
+				<!-- <view class="goodsName">
 					券码信息({{quanMaList.length?quanMaList.length:0}}张可用)
 				</view>
 				<view class="detailedLineBox" v-for="(v,index) in orderData.OpenSheetQRCode">
@@ -103,6 +103,27 @@
 							<view class="writeoffLineTxt">核销门店:{{v.writeoffShopName?v.writeoffShopName:''}}</view>
 						</view>
 					</view>
+				</view> -->
+				<view class="newCodeBox" v-if="quanMaList.length>0">
+					<view class="newQrcode">
+						<swiper class="swiper" style="height: 400rpx;" circular :current='swiperIndex' :autoplay="false" :indicator-dots="true" indicator-color="#CCCCCC" indicator-active-color="#EC0F0A">
+							<swiper-item v-for="(item,index) in quanMaList" style="height: 400rpx;">
+								<view class="swiper-item">
+									
+										<tki-qrcode cid="qrcode1" ref="qrcode" :val="item" :size="300" :unit="unit"
+											:pdground="pdground" :icon="icon" :iconSize="iconsize" :lv="lv" :onval="onval"
+											:loadMake="loadMake" :usingComponents="true" @result="qrR" />
+									
+								</view>
+							</swiper-item>
+							
+							
+						</swiper>
+					</view>
+					<view class="newQrcodeTs"  @click="qmshowFn">
+						待使用<span>{{quanMaList.length?quanMaList.length:0}}</span>份券码
+						<image src="../../static/img/jt.png" mode="" class="jtImg1"></image>
+					</view>
 				</view>
 			</view>
 
@@ -154,6 +175,16 @@
 			<view class="informationNum">实付款:</view>
 			<view class="informationNum" style="color: #FF0000;font-weight: bold;">¥{{orderData.data.realMoney}}</view>
 		</view>
+		
+		<view style="padding-left: 24rpx;padding-right: 24rpx;" >
+			<view class="ysyBox">
+				<view class="ysyLeft" style="font-weight: 500;color: #222222;">已使用({{orderData.writeoff}})·退款({{orderData.refund}})</view>
+				<view class="ysyRgiht" @click="sheetQRCode">
+					<span style="color: #9A9A9A;padding-right: 16rpx;">查看详情</span> 
+					<image src="../../static/img/jt.png" mode="" class="jtImg1"></image>
+				</view>
+			</view>
+		</view>
 
 		<!-- 订单信息 -->
 		<view class="information">
@@ -322,6 +353,102 @@
 			</view>
 		</view>
 
+<view class="tkBox" v-if="qmShow">
+	<view class="tkContBox">
+		<view class="tkTop">
+			<view style="width: 22rpx;"></view>
+			<view class="tkTitle">券码信息({{quanMaList.length?quanMaList.length:0}})</view>
+			<image @click="qmHide" src="../../static/img/chahao2.png" mode="" class="chahaoIMg"></image>
+		</view>
+		<view class="tkLineBox">
+			<view class="tkLine" v-for="(item,index) in quanMaList">
+				<view class="tkLineLeft">
+					<span style="color: #9A9A9A;">券码</span>
+					<span style="color: #222222;padding-left: 66rpx;">{{item}}</span>
+				</view>
+				<view class="tkLineRight" style="color: #576B95;" @click="copy(item)">复制</view>
+			</view>
+		</view>
+	</view>
+</view>
+
+<view class="tkBox" v-if="syShow">
+	<view class="tkContBox2">
+		<view class="tkTop">
+			<view style="width: 22rpx;"></view>
+			<view class="tkTitle">详情</view>
+			<image @click="syHide" src="../../static/img/chahao2.png" mode="" class="chahaoIMg"></image>
+		</view>
+		<view class="tklineBox2">
+			<view class="tkline2" v-for="(item,index) in sheetQRCodeList">
+				<view class="tklineTop2">
+					<view class="tkZt">
+						<span v-if="item.writeoffState==3">已使用</span>
+						<span v-if="item.writeoffState==1">未使用</span>
+						<span v-if="item.refundState==0"></span>
+						<span v-if="item.refundState==1">·退款中</span>
+						<span v-if="item.refundState==2">·退款成功</span>
+						<span v-if="item.refundState==3">·退款拒绝</span>
+						<span v-if="item.refundState==4">·退款失败</span>
+					
+					</view>
+					<view class="tkSeeD" @click="refundDetail(item)" v-if="item.writeoffState==1">
+						<span>退款详情</span>
+						<image src="../../static/img/jt.png" mode="" class="jtImg1"></image>
+					</view>
+					<view class="tkSeeD" @click="goSh(item)" v-if="item.writeoffState==3">
+						<span>申请售后</span>
+						<image src="../../static/img/jt.png" mode="" class="jtImg1"></image>
+					</view>
+				</view>
+				<view class="tkRow">
+					<view class="tlRowLeft" v-if="item.writeoffState==3">使用份数</view>
+					<view class="tlRowLeft" v-else>退款份数</view>
+					<view style="color: #222222;">1份</view>
+				</view>
+				<view class="tkRow">
+					<view class="tlRowLeft">消费门店</view>
+					<view style="color: #222222;">{{item.writeoffShopName?item.writeoffShopName:''}}</view>
+				</view>
+				<view class="tkRow">
+					<view class="tlRowLeft">消费时间</view>
+					<view style="color: #222222;">{{item.writeoffTime?item.writeoffTime:''}}</view>
+				</view>
+				<view class="tkRow">
+					<view class="tlRowLeft">券      号</view>
+					<view style="color: #222222;">{{item.qrCode}}</view>
+				</view>
+			</view>
+			<nodata v-if="sheetQRCodeList.length==0"></nodata>
+		</view>
+	
+	</view>
+</view>
+
+
+<view class="tkBox" v-if="xsShow">
+	<view class="tkContBox">
+		<view class="tkTop">
+			<view style="width: 22rpx;"></view>
+			<view class="tkTitle">申请售后</view>
+			<image @click="xsHide" src="../../static/img/chahao2.png" mode="" class="chahaoIMg"></image>
+		</view>
+		<view class="zxSj">
+			<view class="zxSjleft">
+				<view class="zxTitle">咨询商家</view>
+				<view class="zxTitle2">联系商家,提高退款效率</view>
+			</view>
+			<view class="zxSjRgiht"  @click="call">
+				<image src="/static/timg/wgcall.png" mode="" class="zxCallImg"></image>
+			</view>
+		</view>
+		<view class="zkRefund" @click="goshFn">
+			<span>已与商家协商一致,发起退款</span>
+			<image src="../../static/img/jt.png" mode="" class="jtImg1"></image>
+		</view>
+	</view>
+</view>
+
 
 	</view>
 </template>
@@ -366,6 +493,12 @@
 				iOSInfo:'',
 				swiperIndex:0,
 				back:'',
+				sxNum:'',
+				sx:'',
+				qmShow:false,
+				syShow:false,
+				sheetQRCodeList:[],
+				xsShow:false,
 			}
 		},
 		onLoad(opt) {
@@ -391,6 +524,33 @@
 
 
 		methods: {
+			sheetQRCode(){
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('openOrderManagement/sheetQRCodeList', {
+					 type:2,		
+					 sheetID: this.id,
+				}, 'GET').then(res => {
+				   uni.hideLoading();
+				   this.syShow=true;
+				   this.sheetQRCodeList=res.data
+				})
+			},
+			qmshowFn(){
+				this.qmShow=true
+			},
+			qmHide(){
+				this.qmShow=false
+			},
+			syHide(){
+			  this.syShow=false;
+			},
+			shuaxinFn(){
+				this.sxNum=1
+				this.getData();
+				//this.getTuiKuanData()
+			},
 			getpermission(){
 				this.$http('openH5ShopHelpSheetOrder/permission', {
 					 
@@ -1324,4 +1484,168 @@
 	.detailedLineBox{
 		padding-bottom: 10rpx;
 	}
+	.newQrcode{
+		text-align: center;padding-top: 30rpx;
+	}
+	.newQrcodeTs{
+		font-size: 24rpx;
+		color: #222222;
+	}
+	.jtImg1{
+		width: 20rpx;height: 20rpx;
+	}
+	.newQrcodeTs {
+		text-align: center;
+		padding-top: 10rpx;
+		padding-bottom: 30rpx;
+	}
+	.ysyBox{
+		background: #ffffff;
+		border-radius: 16rpx;
+		display: flex;
+		justify-content: space-between;
+		font-size: 26rpx;
+		padding: 30rpx 24rpx;
+	}
+	.copyIcon{
+		width: 30rpx;height: 30rpx;
+		margin-top: 4rpx;margin-right: 6rpx;
+	}
+	.newQrcode .swiper-item{
+		text-align: center;
+	}
+	.chahaoIMg{
+		width: 22rpx;height: 22rpx;
+		margin-top: 4rpx;
+	}
+	.tkBox{
+		position: fixed;
+		background: rgba(0, 0, 0, 0.4);
+		width: 100%;height: 100%;
+		top: 0;
+		left: 0;
+	}
+	.tkContBox{
+		width: 750rpx;
+		height: 483rpx;
+		background: #F8F8F8;
+		border-radius: 28rpx 28rpx 0rpx 0rpx;
+		position: absolute;
+		left: 0;
+		bottom: 0;
+		padding-bottom: constant(safe-area-inset-bottom);
+		padding-bottom: env(safe-area-inset-bottom);
+	}
+	.tkContBox2{
+		width: 750rpx;
+		height: 60vh;
+		background: #F8F8F8;
+		border-radius: 28rpx 28rpx 0rpx 0rpx;
+		position: absolute;
+		left: 0;
+		bottom: 0;
+		padding-bottom: constant(safe-area-inset-bottom);
+		padding-bottom: env(safe-area-inset-bottom);
+	}
+	.tkTop{
+		display: flex;justify-content: space-between;
+		padding: 25rpx 40rpx 40rpx 40rpx;
+		font-weight: 500;
+		font-size: 28rpx;
+		color: #222222;
+	}
+	.tkLineBox{
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		margin: 0 33rpx;
+	}
+	.tkLine{
+		display: flex;justify-content: space-between;
+		font-size: 26rpx;
+		padding: 24rpx 30rpx;
+		border-bottom: 1px solid #EEEEEE;
+		
+	}
+	.tklineBox2{
+		padding:0 24rpx;
+		height: 55vh;
+		overflow: scroll;
+	}
+	.tkline2{
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		padding: 32rpx 24rpx;
+		margin-bottom: 20rpx;
+	}
+	.tklineTop2{
+		display: flex;justify-content: space-between;
+	}
+	.tkZt{
+		font-weight: 500;
+		font-size: 28rpx;
+		color: #222222;
+		line-height: 40rpx;
+	}
+	.tkSeeD{
+		font-weight: 400;
+		font-size: 26rpx;
+		color: #9A9A9A;
+		line-height: 40rpx;
+	}
+	.tkSeeD .jtImg1{
+		margin-left: 4rpx;
+	}
+	.tkRow{
+		display: flex;
+		font-size: 26rpx;
+		padding-top: 18rpx;
+		
+	}
+	.tlRowLeft{
+		color: #9A9A9A;width: 140rpx;
+		
+	}
+	.zxSj{
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		margin: 0 24rpx;
+		display: flex;justify-content: space-between;
+	}
+	.zxCallImg{
+		width: 34rpx;height: 34rpx;
+	}
+	.zxTitle{
+		font-weight: 500;
+		font-size: 28rpx;
+		color: #222222;
+		line-height: 40rpx;
+	}
+	.zxTitle2{
+		font-size: 24rpx;
+		color: #9A9A9A;
+		padding-top: 12rpx;
+	}
+	.zxSjleft{
+		padding: 32rpx;
+	}
+	.zxSjRgiht{
+		width: 79rpx;
+		height: 79rpx;
+		border: 2rpx solid #EEEEEE;
+		border-radius: 50%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin-top: 32rpx;
+		margin-right: 32rpx;
+	}
+	.zkRefund{
+		display: flex;justify-content: center;
+		font-size: 24rpx;
+		color: #9A9A9A;
+		padding-top: 30rpx;
+	}
+	.zkRefund .jtImg1{
+		margin-left: 6rpx;margin-top: 6rpx;
+	}
 </style>

+ 937 - 0
pages/myOrder/refund.vue

@@ -0,0 +1,937 @@
+<template>
+<view class="box">
+ <view class="cont">
+	 <view class="itemBox flex">
+		 </image>
+		 <image class="itemIMg"  src="../../static/timg/noimg.png" mode=""></image>
+		 <view class="itemRight">
+		 	<view class="itemName">{{orderData.data.sheetContent}}</view>
+		
+		
+			<view class="priceBox">
+				<view class="price" v-if="type==1">¥{{sheetQRCodeList[0].itemRealMoney}}</view>
+				<view class="price" v-if="type==2">¥{{shData.itemRealMoney}}</view>
+			
+			</view>
+			
+		 </view>
+	 </view>
+
+	 <view class="goodsBox">
+	 	 <view class="goodsline flex" >
+	 		 <view class="goodsLeft">退款原因 <span class="xinghao">*</span></view>
+	 		 <view class="goodRight ckLine" @click="reasonS">
+				 <span v-if="!refundReasonTxt">请至少选择一项</span>
+				 <span style="color: #222222;" v-if="refundReasonTxt">{{refundReasonTxt}}</span>
+				 <image src="../../static/timg/icon_arrow_right.png" mode="" class="jtIcon"></image>
+			 </view>
+	 	 </view>
+		 <view class="goodsline flex" v-if="type==1">
+		 		 <view class="goodsLeft">退款份数</view>
+		 		 <view class="goodRight" >
+					 <view class="numJsbox">
+					 	<view class="numJj" @click="calculation(1)">-</view>
+					 	<view class="goodsnum">
+					 	 <input type="number" value="" v-model="goodsnum" class="goodsnumInput"/>
+					 	</view>
+					 	<view class="numJj" @click="calculation(2)">+</view>
+					 </view>
+				 </view>
+		 </view>
+		 <view class="goodsline flex" v-if="type==2">
+		 		 <view class="goodsLeft">退款份数</view>
+		 		 <view class="goodRight" style="color: #666666;">
+		 				1份	 
+		 		 </view>
+		 </view>
+		 
+		  <view class="goodsline flex" >
+			  <view class="tkPrice">
+				  <view class="tkPrice1">退款金额</view>
+				  <view class="tkPrice2">实际退款金额以到账金额为准</view>
+			  </view>
+			  <view class="tkPriceNum">¥{{totalPrice}}</view>
+		  </view>
+	 	 <view class="goodsline flex" >
+	 	 		 <view class="goodsLeft">退款方式</view>
+	 	 		 <view class="goodRight" style="font-size: 26rpx;font-weight: 500;color: #222222;">原路退回</view>
+	 	 </view>
+	 </view>
+	 <view class="goodsBox">
+		
+		 <view class="goodsline flex" v-if="type==2">
+				 <view class="goodsLeft">商品是否已使用 <span class="xinghao">*</span></view>
+				 <view class="goodRight " >
+					 <picker @change="bindPickerChange" :value="index" :range="array">
+						 <view class="ckLine" v-if="index==''">
+							 <span>请选择</span>
+							 <image src="../../static/timg/icon_arrow_right.png" mode="" class="jtIcon"></image>
+						 </view >
+						 <view v-else class="ckLine xuanzhong" ><span>{{array[index]}}</span> 
+						   <image src="../../static/img2/hjt.png" mode="" class="hjtIcon"></image>
+						 </view>
+						
+					 </picker>
+					
+				 </view>
+		 </view>
+	 	<view class="tkSm" style="padding-top: 8rpx;">退款说明</view>
+		<view>
+			<textarea class="tktextarea" v-model="content" name="" placeholder="请输入退款说明" id="" cols="30" rows="10"></textarea>
+		    <view class="textareaNum">{{textareaNum}}/500</view>
+		</view>
+		<!-- 图片 -->
+		<view class="secondView" v-if="type==2">
+			<view class="tkSm">退款凭证</view>
+			<view class="imgBox">
+				<view :class="{img4:(imgindex+1)%4==0}" class="imgLine" v-for="(img,imgindex) in imgArr">
+					<image :src="img" mode="aspectFit" class="itemImg"></image>
+					<image src="../../static/img/icon_del_red.png" mode="aspectFit" class="delImg" @click="delimg(imgindex)">
+					</image>
+				</view>
+				<view class="img4" @click="uploadImg">
+					<image src="../../static/img/btn_pic.png" mode="" class="itemImg"></image>
+				</view>
+			</view>
+		</view>
+		
+	 </view>
+	 
+ </view>
+ 
+<view  class="gaodu"></view>
+ <view class="bottomBox">
+	 <view class="bottomMS">申请退款后不可取消,钱款预期1-3个自然日</view>
+	 <view class="bottom">
+	 	 <view class="bleft">
+	 		 <span>退款金额</span>
+	 		 <span style="color: #EC0F0A;padding-left: 6rpx;">¥</span>
+	 		 <span style="font-weight: 500;font-size: 34rpx;color: #EC0F0A;">{{totalPrice}}</span>
+	 	 </view>
+	 	 <view class="Btn commonBtn" @click="submitFn">提交</view>
+	 </view>
+ </view>
+ 
+ <view class="reasonBox" v-if="reasonShow">
+	 <view class="reasonCont">
+		 <view class="reasonTop">
+			 <view  class="chahao"></view>
+			 <view class="tkTitle">请选择退款原因</view>	
+			 <image @click="qdTkclose" class="chahao" src="../../static/img2/chahao.png" mode=""></image>
+		 </view>
+		 <view class="reasonContLineBox">
+			 <view v-for="(item,index) in refundReasonList" class="jiekouLIne">
+				 <view class="reasonContLineTitle">{{item.reason}}</view>
+				 <view class="reasonContLine" v-for="(i,ix) in item.two" @click="ckLy(i)">
+					 <view class="reasonContLineTxt">{{i.reason}}</view>
+					 <view class="reasonContLineCk" v-if="refundReasonID!=i.id"></view>
+					 <image class="reasonContLineCkImg" src="../../static/timg/icon_checked@2x.png" mode="" v-if="refundReasonID==i.id"></image>
+				 				 
+				 </view>
+			 </view>
+		 </view>
+		 <view style="height: 200rpx;"></view>
+		 <view class="reasonBottom">
+			 <view class="reasonBottomBtn" @click="qdTkclose">确定</view>
+		 </view>
+	 </view>
+ </view>
+
+ 
+</view>
+</template>
+
+<script>
+	export default {
+		components: {
+			
+		},
+		
+		data() {
+			return {
+				themeColor:'',
+				ext:'',
+				goodsnum:1,
+				itemDefault:'',
+				totalPrice:'',
+				sheetDetail:[],
+				userInfo:'',
+				carInfo:'',
+				customerInfo:'',
+				textareaNum:0,
+				reasonShow:false,
+				imgArr: [],
+				array:['未使用','已使用'],
+				index: '',
+				orderData:'',
+				type:'',
+				id:'',
+				refundReasonList:'',
+				sheetQRCodeList:'',
+				maxNum:0,
+				refundReasonID:'',
+				refundReasonTxt:'',
+				hType:'',
+				content:'',
+				couponCodeArr:[],
+				goodsType:'',
+				couponCount:1,
+				shData:'',
+			}
+		},
+		onLoad(opt) {
+			this.ext = this.$common.getExtStoreId();
+			this.themeColor = uni.getStorageSync("themeColor");
+			this.orderData = uni.getStorageSync("orderData");
+			this.type=opt.type
+			
+			this.id=opt.id;
+			if(this.type==1){
+				this.getsheetQRCode()
+				this.sheetRefundReason()
+			}else{
+				this.shData=uni.getStorageSync("shData")
+				this.totalPrice=this.shData.itemRealMoney
+			}
+		},
+		onShow() {
+			
+		},
+		methods: {
+			ckLy(item){
+				this.refundReasonID=item.id
+				this.refundReasonTxt=item.reason
+			},
+			getsheetQRCode(){
+				this.$http('openOrderManagement/sheetQRCodeList', {
+					 type:1,		
+					 sheetID: this.id,
+				}, 'GET').then(res => {
+				     this.sheetQRCodeList=res.data
+					 this.totalPrice= this.sheetQRCodeList[0].itemRealMoney
+					 this.maxNum=this.sheetQRCodeList.length
+					 this.couponCodeArr=[]
+					 this.couponCodeArr.push( this.sheetQRCodeList[0].id)
+				})
+			},
+			sheetRefundReason(){
+				var params={
+					type:1
+				}
+				this.$http('openOrderManagement/sheetRefundReason', params,'GET').then(res => {
+					this.refundReasonList=res.data
+				
+				}) 
+			},
+			sheetRefundReason2(){
+				if(this.goodsType==1){
+					var params={type:3}
+				}
+				if(this.goodsType==2){
+					var params={type:2}
+				}
+				
+				this.$http('openOrderManagement/sheetRefundReason', params,'GET').then(res => {
+					this.refundReasonList=res.data
+					this.reasonShow=true;
+				
+				}) 
+			},
+			bindPickerChange(e){
+			  console.log(e)	
+			  this.index=e.detail.value
+			  if(this.index==0){
+				  this.goodsType=1
+			  }
+			  if(this.index==1){
+			  	this.goodsType=2
+			  }
+			},
+			reasonS(){
+				if(this.type==1){
+					this.reasonShow=true;
+				}else{
+					if(this.goodsType){
+						this.sheetRefundReason2()
+					}else{
+						uni.showToast({
+							title: '请先选择是否使用',
+							icon: 'none',
+							duration: 3000
+						});
+					}
+				}
+				
+			},
+			
+			qdTkclose(){
+				this.reasonShow=false;
+			},
+			calculation(type){
+				if(type==1){
+					if(this.goodsnum>1){
+						this.goodsnum--
+						var Price=0
+						this.couponCodeArr=[]
+						 this.sheetQRCodeList.forEach((item,index)=>{
+							 if( index < this.goodsnum){
+								 Price+=item.itemRealMoney
+								 this.couponCodeArr.push(item.id)
+							 }
+						 })
+						 this.totalPrice=Price
+					}
+				}else{
+					if(this.goodsnum<this.maxNum){
+						this.goodsnum++
+						var Price=0
+						this.couponCodeArr=[]
+						 this.sheetQRCodeList.forEach((item,index)=>{
+							 if( index < this.goodsnum){
+								 Price+=item.itemRealMoney
+								 this.couponCodeArr.push(item.id)
+							 }
+						 })
+						 this.totalPrice=Price
+					}
+						
+				}
+			},
+			addSheetRefund(){
+				if(this.type==1){
+					var params={
+						hType:this.type,
+						couponID:this.couponCodeArr.join(','),
+						money:this.totalPrice,
+						refundReasonID:this.refundReasonID,
+						sheetID:this.orderData.data.id,
+						sheetCode:this.orderData.data.code,
+						content:this.content,
+						goodsType:this.goodsType,
+						couponCount:this.goodsnum,
+					}
+				}
+				if(this.type==2){
+					var params={
+						hType:this.type,
+						couponID:this.shData.id,
+						money:this.totalPrice,
+						refundReasonID:this.refundReasonID,
+						sheetID:this.orderData.data.id,
+						sheetCode:this.orderData.data.code,
+						content:this.content,
+						goodsType:this.goodsType,
+						couponCount:this.couponCount,
+						imgUrl:this.imgArr.join(',')
+					}
+				}
+				console.log(params)
+				//return false
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('openOrderManagement/addSheetRefund', params,'POST').then(res => {
+					uni.hideLoading();
+					if(res.code==0){
+						uni.navigateTo({
+						 	url:'refundDetail?id='+res.data.id
+						 })
+					}else{
+						uni.showToast({
+							title: res.msg,
+							icon: 'none',
+							duration: 3000
+						});
+				}
+				})
+			},
+			submitFn(){
+				var that=this;
+				uni.showModal({
+				    title: '申请退款',
+				    content: '退款申请一旦提交。将不能撤销,是否确认继',
+					confirmText:'确认',
+					cancelText:'取消',
+				    success: function (res) {
+				        if (res.confirm) {
+							that.addSheetRefund()
+				           // console.log('用户点击确定');
+						 /* uni.navigateTo({
+						  	url:'refundDetail'
+						  }) */
+				        } else if (res.cancel) {
+				           
+						   
+				        }
+				    }
+				});
+				
+				
+				/* var params={
+					
+				}
+				uni.showLoading({
+					title: '加载中'
+				})
+				
+				this.$http('openMallOrder/submitOrder', params,'POST').then(res => {
+					uni.hideLoading();
+					if(res.code==0){
+						this.orderData=res.data
+						this.unifiedPay(res.data)
+					}else{
+						uni.showToast({
+							title: res.msg,
+							icon: 'none',
+							duration: 3000
+						});
+					}
+				
+				}) */
+			},
+			unifiedPay(res){
+				this.$http('openMallOrder/unifiedPay', {
+					sheetId:res.id
+				},'POST').then(res => {
+					this.isgo=true;
+					if(res.code==0){
+						
+						this.requestPayment(res.data)
+					}else{
+						uni.showToast({
+							title: res.msg,
+							icon: 'none',
+							duration: 3000
+						});
+					}
+				 })
+			},
+			uploadImg() {
+			
+				var that = this;
+				var length = this.imgArr.length;
+				var num = 5;
+				if (length > 4) {
+					uni.showToast({
+						title: '最多上传5张',
+						icon: 'none',
+						duration: 2000,
+					});
+					return false;
+				}
+				uni.chooseImage({
+					sourceType: ['album', 'camera'],
+					count: num - length,
+					sizeType:['compressed'],
+					success: (chooseImageRes) => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						/* uni.uploadFile({
+				            url: that.$request.baseUrl+'accompany/SuperCheckSheet/uploadFile', //仅为示例,非真实的接口地址
+				            filePath: tempFilePaths[0],
+				            name: 'file',
+				            formData: {
+				                'user': 'test'
+				            },
+				            success: (uploadFileRes) => {
+				                console.log(JSON.parse(uploadFileRes.data).data );
+								that.imgArr=that.imgArr.concat(JSON.parse(uploadFileRes.data).data) ;
+								
+				            }
+				        }); */
+						tempFilePaths.forEach(v => {
+							console.log(that.$request.baseUrl + 'tuhuUploadFile');
+							uni.uploadFile({
+								url: that.$request.baseUrl + 'tuhuUploadFile',
+								filePath: v,
+								name: 'file',
+								formData: {
+									'user': 'test'
+								},
+			
+								success: (uploadFileRes) => {
+			
+									console.log(JSON.parse(uploadFileRes.data).data);
+									that.imgArr = that.imgArr.concat(JSON.parse(
+										uploadFileRes.data).data);
+									console.log('imgArr--',that.imgArr);
+								}
+							});
+						})
+						/* that.$http('accompany/SuperCheckSheet/uploadFile', tempFilePaths[0], 'POST').then(res => {
+							
+						}) */
+					}
+				});
+			},
+			delimg(index) {
+				this.imgArr.splice(index, 1)
+			},
+			requestPayment(res){
+				var payInfo=res;
+				//console.log(payInfo)
+				//console.log(String(Date.now()))
+				var that=this;
+				uni.requestPayment({
+					provider: 'wxpay',
+					//timeStamp: String(Date.now()),
+					timeStamp: payInfo.timeStamp,
+					nonceStr: payInfo.nonceStr,
+					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
+						 });
+						 uni.navigateTo({
+						 	url:'paySuccess?type=1&orderType=1'
+						 })
+						
+						
+				    },
+				    fail: function (err) {
+					  console.log(err)
+				      uni.showToast({
+						 title: '支付失败',
+						 icon:'none',
+						 duration: 2000
+				      });
+					  uni.navigateTo({
+					  	url:'paySuccess?type=2&orderType=1'
+					  })
+					  }
+					 
+				}); 
+			},
+			
+			
+			
+			
+		}
+	}
+</script>
+
+<style scoped lang="less">
+.box {
+	width: 100vw;
+	min-height: 100vh;
+	background: #F4F4F4;
+}
+.reasonTop{
+	display: flex;justify-content: space-between;
+	padding: 32rpx 42rpx;
+}
+.chahao{
+	width: 21rpx;height: 21rpx;
+	padding-top: 10rpx;
+}
+.tkTitle{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+}
+.reasonBox{
+	position: fixed;
+	left: 0;
+	top: 0;
+	height: 100vh;
+	width: 750rpx;
+	background: rgba(0, 0, 0, 0.5);
+	z-index: 11;
+}
+.reasonCont{
+	height: 70vh;
+	width: 750rpx;
+	background: #FFFFFF;
+	border-radius: 28rpx 28rpx 0rpx 0rpx;
+	position: absolute;
+	left: 0;
+	bottom: 0;
+}
+.reasonContLine{
+	display: flex;justify-content: space-between;
+		padding: 15rpx 0;
+}
+.reasonContLineTitle{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+}
+.reasonContLineTxt{
+	font-weight: 400;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+
+}
+.reasonContLineCk{
+	width: 28rpx;
+	height: 28rpx;
+	border: 2rpx solid #9A9A9A;
+	border-radius: 16rpx;
+	margin-top: 6rpx;
+}
+.reasonContLineCkImg{
+	width: 32rpx;margin-top: 6rpx;
+	height: 32rpx;
+}
+.reasonContLineBox{
+	padding: 0 33rpx;
+	height: calc(70vh - 270rpx);
+	overflow-y: scroll;
+}
+.ckLine{
+	display: flex;color: #9A9A9A;
+	font-size: 26rpx;
+}
+.xinghao{
+	color: #EC0F0A;
+}
+.jtIcon{
+	width: 12rpx;height: 20rpx;
+	margin-top: 8rpx;
+	margin-left: 10rpx;
+}
+.hjtIcon{
+	width: 10rpx;height: 20rpx;
+	margin-top: 8rpx;
+	margin-left: 10rpx;
+}
+.tkPrice1{
+	font-size: 26rpx;
+	color: #222222;
+}
+.tkPrice2{
+	font-size: 24rpx;
+	color: #9A9A9A;
+	padding-top: 8rpx;
+}
+.tkPriceNum{
+	font-size: 26rpx;
+	color: #EC0F0A;
+	line-height: 50rpx;
+}
+.textareaNum{
+	padding-bottom: 18rpx;
+}
+.tkSm{
+	font-size: 26rpx;
+	color: #222222;
+	padding-top: 18rpx;
+}
+.tktextarea{
+	font-size: 26rpx;
+	background: #F7F7F7;
+	border-radius: 14rpx;
+	margin-top: 20rpx;
+	width: 610rpx;padding: 24rpx;
+	margin-bottom: 10rpx;
+	line-height: 40rpx;
+}
+.textareaNum{
+	font-size: 24rpx;
+	color: #9A9A9A;
+	display: flex;justify-content: flex-end;
+}
+.cont{
+	padding: 20rpx 24rpx;
+}
+.itemBox{
+	background: #FFFFFF;
+	border-radius: 16rpx;padding: 24rpx;
+}
+.itemIMg{
+	width: 128rpx;
+	height: 128rpx;border-radius: 10rpx;
+}
+.flex{
+	display: flex;
+}
+.itemRight{
+	width: 450rpx;padding-left: 24rpx;
+}
+.itemName{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+}
+.buyType{
+	padding: 0 8rpx;text-align: center;
+	height: 32rpx;line-height: 34rpx;
+	border-radius: 5rpx;
+	border: 1px solid #FF0035;font-size: 22rpx;
+color: #FF0035;
+margin-top: 10rpx;
+}
+.priceBox{
+	display: flex;justify-content: space-between;padding-top: 40rpx;
+}
+.price{
+
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 50rpx;
+}
+.itemNum{
+	font-size: 34rpx;line-height: 50rpx;
+	color: #686868;
+}
+.itemnotes{
+	font-size: 24rpx;padding-top: 12rpx;
+	color: #FFC107;
+}
+.mealBox{
+	background: #FFFFFF;
+	padding: 20rpx 24rpx;
+	margin-top: 20rpx;
+	font-size: 26rpx;
+	color: #666666;
+	    border-radius: 16rpx;
+}
+.fwlcTitle{
+	color: #333333;font-size: 30rpx;font-weight: 500;
+	padding-bottom: 20rpx;
+}
+.mealTop{
+	display: flex;
+	justify-content: space-between;
+	height: 72rpx;
+	line-height: 72rpx;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	font-size: 26rpx;
+	padding: 0 20rpx;
+}
+.mealNum{
+	text-align: center;
+	width: 120rpx;
+}
+.mealexpire{
+	text-align: center;	width: 120rpx;
+}
+.mealName{
+	width: 460rpx;
+}
+.mealTop2{
+	display: flex;
+	justify-content: space-between;
+	height: 72rpx;
+	line-height: 72rpx;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	font-size: 26rpx;
+	padding: 0 20rpx;
+	background: #FFF6DB;
+}
+.mealXj{
+	background: #FFFCF3;
+}
+.xjLine{
+	display: flex;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	padding: 20rpx 20rpx;
+}
+.xjyd{
+	width: 8rpx;
+	height: 8rpx;
+	background: #FABF1B;
+	border-radius: 50rpx;
+	margin-top: 12rpx;
+	margin-right: 10rpx;
+}
+.mealMs{
+	background: #FFFFFF;
+	padding: 20rpx;
+	font-weight: 400;
+	font-size: 24rpx;
+	color: #9A9A9A;
+	line-height: 38rpx;
+}
+.goodsBox{
+	padding:18rpx 24rpx;font-size: 26rpx;
+color: #222222;background: #FFFFFF;margin-top: 20rpx;
+border-radius: 16rpx;
+}
+.goodsline{
+	justify-content: space-between;
+	padding: 18rpx 0;
+}
+.bottom{
+	
+	display: flex;
+	justify-content: space-between;
+	width: 100%;
+	padding:30rpx 0 10rpx 0;
+
+}
+.reasonBottom{
+	position: absolute;
+	left: 0;bottom: 0;
+	padding: 30rpx 0;
+	padding-bottom: constant(safe-area-inset-bottom);
+	padding-bottom: env(safe-area-inset-bottom); 
+	width: 100%;
+	background: #FFFFFF;
+	box-shadow: 0rpx -2rpx 16rpx 0rpx rgba(153, 153, 153, 0.2);
+	
+}
+.reasonBottomBtn{
+	width: 661rpx;
+	height: 86rpx;
+	background: #EC0F0A;
+	border-radius: 43rpx;
+	line-height: 86rpx;
+	text-align: center;
+	font-size: 32rpx;
+	color: #FFFFFF;
+	margin: 0 auto;
+}
+.bottomBox{
+	position: fixed;
+	left: 0;bottom: 0;
+	padding-bottom: constant(safe-area-inset-bottom);
+	padding-bottom: env(safe-area-inset-bottom); 
+	width: 100%;
+	background: #FFFFFF;
+	box-shadow: 0rpx -2rpx 16rpx 0rpx rgba(153, 153, 153, 0.2);
+}
+.bottomMS{
+	font-size: 24rpx;
+	color: #706F77;
+	padding-top: 20rpx;padding-left: 32rpx;
+}
+.bleft{
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	line-height: 86rpx;
+	padding-left: 32rpx;
+}
+.Btn{
+	width: 467rpx;
+	height: 86rpx;text-align: center;
+	line-height: 86rpx;
+	background: #FCD903;
+	border-radius: 43rpx;
+	font-size: 32rpx;
+	color: #110B01;
+	margin-right: 36rpx;
+}
+.mealBox img{
+	width: 100%;
+}
+.mealBox image{
+	width: 100%;
+}
+.numJsbox{
+	display: flex;overflow: hidden;
+}
+.buyCont{
+	position: absolute;
+	left: 0;
+	bottom: 0;
+	width: 750rpx;
+	height: 688rpx;
+	background: #FFFFFF;
+	border-radius: 26rpx 26rpx 0px 0px;
+}
+.buyNumBox{
+	padding: 30rpx;
+    padding-top: 10rpx;
+	padding-bottom: 70rpx;
+}
+.buyContCh{
+	position: absolute;
+	top: 53rpx;
+	right: 36rpx;
+	width: 36rpx;
+	height: 36rpx;
+}
+.goodsnum{
+	width: 44rpx;
+	height: 44rpx;
+	background: #F4F5F7;
+	line-height: 44rpx;
+	text-align: center;
+	font-weight: 500;
+	color: #333333;
+	font-size: 24rpx;
+	margin: 0 4rpx;
+	border-left:1px solid #dddddd;
+	border-right:1px solid #dddddd;
+}
+.goodsnumInput{
+	width: 44rpx;
+	height: 44rpx;
+	background: #FFFFFF;
+	line-height: 44rpx;
+	text-align: center;
+	font-weight: 500;
+	color: #333333;
+	font-size: 24rpx;
+}
+.numJj{
+	width: 44rpx;
+	height: 44rpx;
+	background: #ffffff;
+	border-radius: 0px 6rpx 6rpx 0px;	
+	text-align: center;
+	line-height: 44rpx;
+	font-size: 32rpx;
+	color: #999999;
+}
+.numJsbox{
+	border: 1px solid #dddddd;
+	border-radius: 6rpx;
+}
+.imgBox {
+		display: flex;
+		flex-wrap: wrap;
+		padding-top: 15rpx;
+		
+	}
+
+	.imgLine {
+		position: relative;
+		margin-right: 20.6rpx;
+	}
+	.img4{
+		margin-right: 0rpx;
+	}
+
+	.itemImg {
+		width: 150rpx;
+		height: 150rpx;
+		margin-bottom: 20rpx;
+	}
+
+
+	.delImg {
+		width: 32rpx;
+		height: 32rpx;
+		position: absolute;
+		right: 0rpx;
+		top: 0rpx;
+	}
+.gaodu{
+	height: 200rpx;
+	padding-bottom: constant(safe-area-inset-bottom);
+	padding-bottom: env(safe-area-inset-bottom); 
+}
+.jiekouLIne{
+	padding-bottom: 36rpx;
+}
+.xuanzhong{
+	    color: #222222;
+}
+</style>

+ 588 - 0
pages/myOrder/refundDetail.vue

@@ -0,0 +1,588 @@
+<template>
+<view class="box">
+ <view class="cont">
+	 <view class="topBox goodsBox" v-if="data.openSheetRefund.refundState == 1 || data.openSheetRefund.refundState == 3">
+		 <view class="topState">
+			 <view class="tsTop">
+				 <view class="tsYd"></view>
+				 <view class="tsHx"></view>
+				 <view class="tsYd"></view>
+				 <view class="tsHx tsHx2"></view>
+				 <view class="tsYd tsYd2"></view>
+				 <view class="tsHx tsHx2"></view>
+				 <view class="tsYd tsYd2"></view>
+			 </view>
+			 <view class="tsM">
+				 <view class="tsMline">发起退款</view>
+				 <view class="tsMline">商家处理</view>
+				 <view class="tsMline tsMline2">商家退款</view>
+				 <view class="tsMline tsMline2">退款结束</view>
+			 </view>
+			 <view class="txTxt" v-if="data.openSheetRefund.refundState == 1">
+				 <span>请等待</span><span style="color: #EC0F0A;">商家处理</span>
+			 </view>
+			 <view class="txTxt2"  v-if="data.openSheetRefund.refundState == 1">已发起退款申请</view>
+			 <view class="txTxt" v-if="data.openSheetRefund.refundState == 3">
+			 	<span>商家</span><span style="color: #EC0F0A;">拒绝退款</span>
+			 </view>
+		 </view>
+	 </view>
+	 <view class="goodsBox topBox" v-if="data.openSheetRefund.refundState == 2">
+		 <view class="tkTopTitle">退款成功</view>
+		 <view class="tksuccess">
+			 <view class="tksuccessYx">
+				 <view class="tksuccessTxt">原路退回</view>
+				 <view class="tksuccessPrice">¥<span style="font-size: 36rpx;">{{data.openSheetRefund.money}}</span> </view>
+			 </view>
+			 <view class="tksuccessTime">{{data.openSheetRefund.reAccountTime}}</view>
+		 </view>
+	 </view>
+	 <!-- 退款关闭-->
+	 <view class="goodsBox topBox" v-if="data.openSheetRefund.refundState == 4||data.openSheetRefund.refundState == 5">
+	 	<view class="tkTopTitle">退款关闭</view>
+	 	<view class="tkErr" v-if="data.openSheetRefund.refundState == 4">退款失败</view>	 
+		<view class="tkErr" v-if="data.openSheetRefund.refundState == 5">用户已取消退款</view>	 
+	 </view>
+	 <!-- 退款关闭-->
+	 <view class="itemBox flex">
+		 </image>
+		 <image class="itemIMg"  src="../../static/timg/noimg.png" mode=""></image>
+		 <view class="itemRight">
+		 	<view class="itemName">{{data.openSheetRefund.itemName}}</view>
+			<view class="priceBox">
+				<view class="price">¥{{data.openSheet.realMoney}}</view>
+			</view>
+		 </view>
+	 </view>
+
+	 <view class="goodsBox">
+	 	 <view class="goodsline flex" v-if="data.openSheetRefund.couponCount==1" >
+	 	 		 <view class="goodsLeft">退款券号</view>
+	 	 		 <view class="goodRight" style="display: flex;">
+	 	 				<image src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
+						<span>{{data.openSheetRefund.couponCode}}</span>
+	 	 		 </view>
+	 	 </view>
+		 <view class="goodsline flex" v-if="data.openSheetRefund.couponCount!=1">
+		 		 <view class="goodsLeft">退款券号</view>
+		 		 <view class="goodRight" style="display: flex;" @click="codeFn">
+		 				<span>共两份券号</span>
+		 				<image src="../../static/img2/hjt.png" mode="" class="jtIcon"></image>
+		 		 </view>
+		 </view>
+		 <view class="goodsline flex" >
+		 		 <view class="goodsLeft">退款份数</view>
+		 		 <view class="goodRight" >
+		 				{{data.openSheetRefund.couponCount}}份	 
+		 		 </view>
+		 </view>
+		 
+		  <view class="goodsline flex" >
+			  <view class="tkPrice">
+				  <view class="tkPrice1">退款金额</view>
+				  <view class="tkPrice2">实际退款金额以到账金额为准</view>
+			  </view>
+			  <view class="tkPriceNum">¥{{data.openSheetRefund.money}}</view>
+		  </view>
+	 	 <view class="goodsline flex" >
+	 	 		 <view class="goodsLeft">退款方式</view>
+	 	 		 <view class="goodRight" style="font-size: 26rpx;color: #222222;">原路退回</view>
+	 	 </view>
+		 <view class="goodsline flex" >
+		 		 <view class="goodsLeft">商品是否已使用</view>
+		 		 <view class="goodRight" >{{data.openSheetRefund.hType==1?'未使用':'已使用'}}</view>
+		 </view>
+		 <view class="goodsline flex" >
+		 		 <view class="goodsLeft">退款原因</view>
+		 		 <view class="goodRight" >{{data.openSheetRefund.refundReason}}</view>
+		 </view>
+		 <view class="goodsline flex" >
+		 		 <view class="goodsLeft">退款说明</view>
+		 		 <view class="goodRight" >{{data.openSheetRefund.content}}</view>
+		 </view>
+		 <view class="goodsline flex" >
+		 		 <view class="goodsLeft">退款凭证</view>
+		 		 <view class="goodRight tkImgBox" >
+					 <image class="tkImg" v-for="(item,index) in data.evidenceList" :src="item.url" mode="aspectFit"></image>
+					
+				 </view>
+		 </view>
+	 </view>
+	 <view class="goodsBox">
+		<view class="goodsline flex" >
+				 <view class="goodsLeft">订单编号</view>
+				 <view class="goodRight" style="display: flex;">
+						<image src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
+								<span>{{data.openSheetRefund.code}}</span>
+				 </view>
+		</view>
+	 </view>
+	 
+ </view>
+ 
+ <view class="reasonBox" v-if="codeShow">
+ 	 <view class="codeCont">
+ 		 <view class="reasonTop">
+ 			 <view  class="chahao"></view>
+ 			 <view class="tkTitle">退款券号</view>	
+ 			 <image @click="qdTkclose" class="chahao" src="../../static/img2/chahao.png" mode=""></image>
+ 		 </view>
+ 		 <view class="codeLineBox">
+ 			<view class="codeLine" v-for="(v,i) in 3">
+				<span style="padding-right: 10rpx;">102899992200992</span>
+				<image src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
+					
+			</view>
+ 		 </view>
+ 		
+ 	 </view>
+ </view>
+ 
+ <view style="height: 40rpx;"></view>
+
+</view>
+</template>
+
+<script>
+	export default {
+		components: {
+			
+		},
+		
+		data() {
+			return {
+				themeColor:'',
+				ext:'',
+				userInfo:'',
+				carInfo:'',
+				customerInfo:'',
+				codeShow:false,
+				id:'09ee0273-d2b2-4204-a1db-f0555ec2ea10',
+				data:'',
+			}
+		},
+		onLoad(opt) {
+			if(opt.id){
+				this.id=opt.id
+			}
+			
+			this.userInfo=this.$store.state.userInfo;
+			this.ext=this.$common.getExtStoreId();
+			if(this.userInfo){
+				this.getData()
+			}else{
+				this.$common.automaticlogin().then(val => {
+					this.userInfo=this.$store.state.userInfo;
+					if (this.id) {
+						this.getData();
+					}
+					if(!this.userInfo){
+						//this.authorizShow=true
+					}
+				})
+			}
+			
+		},
+		onShow() {
+			
+		},
+		methods: {
+			getData(){
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('openOrderManagement/openSheetRefundDetail', {
+						
+					 id: this.id,
+				}, 'GET').then(res => {
+				   uni.hideLoading();
+				   this.data=res.data
+				})
+			},
+			qdTkclose(){
+			  this.codeShow=false;	
+			},
+			codeFn(){
+				this.codeShow=true;	
+			}
+			
+			
+		}
+	}
+</script>
+
+<style scoped lang="less">
+.box {
+	width: 100vw;
+	min-height: 100vh;
+	background: #F4F4F4;
+}
+.tkTopTitle{
+	font-weight: 500;
+	font-size: 32rpx;
+	color: #222222;
+	line-height: 50rpx;
+	padding-top: 20rpx;
+}
+.tksuccess{
+	background: #F7F7F7;
+	border-radius: 16rpx;
+	padding: 20rpx;
+	margin-top: 20rpx;
+}
+.tksuccessYx{
+	display: flex;justify-content: space-between;
+}
+.tksuccessTxt{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+}
+.tksuccessPrice{
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #EC0F0A;
+}
+.tksuccessTime{
+	font-size: 26rpx;
+	color: #9A9A9A;
+	
+}
+.tsTop{
+	display: flex;justify-content: center;
+}
+.tsM{
+	display: flex;justify-content: center;
+}
+.tsMline{
+	font-size: 24rpx;
+	color: #666666;
+	line-height: 33rpx;
+	    text-align: center;
+	    width: 210rpx;
+		padding-top: 8rpx;
+}
+.txTxt{
+	font-weight: 500;
+	font-size: 36rpx;
+	color: #222222;
+	line-height: 50rpx;
+	padding-top: 50rpx;
+}
+.txTxt2{
+	font-size: 24rpx;
+	color: #9A9A9A;
+	line-height: 33rpx;
+	padding-top: 8rpx;
+	padding-bottom: 20rpx;
+}
+.tsYd{
+	width: 12rpx;
+	height: 12rpx;
+	border: 3rpx solid #88888A;
+	border-radius: 50%;
+}
+.tsHx{
+	width: 135rpx;
+	height: 4rpx;
+	background: #5B5B5C;
+	border-radius: 2rpx;
+	margin-left: 9rpx;
+	margin-right: 9rpx;
+	margin-top: 6rpx;
+}
+.tsYd2{
+	border: 3rpx solid #eeeeee;
+}
+.tsHx2{
+	background: #eeeeee;
+}
+.tsMline2{
+	color: #9A9A9A;
+}
+.topState{
+	padding-top: 20rpx;
+}
+.topBox{
+	margin-bottom: 20rpx;
+}
+.copyIcon{
+	width: 30rpx;height: 30rpx;
+	margin-top: 4rpx;margin-right: 6rpx;
+}
+.tkImg{
+	width: 148rpx;height: 148rpx;
+	margin-left: 10rpx;
+	margin-bottom: 10rpx;
+}
+.tkImgBox{
+	display: flex;flex-wrap: wrap;
+	width: 484rpx;
+}
+.reasonTop{
+	display: flex;justify-content: space-between;
+	padding: 32rpx 42rpx;
+}
+.chahao{
+	width: 21rpx;height: 21rpx;
+	padding-top: 10rpx;
+}
+.tkTitle{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+}
+.reasonBox{
+	position: fixed;
+	left: 0;
+	top: 0;
+	height: 100vh;
+	width: 750rpx;
+	background: rgba(0, 0, 0, 0.5);
+}
+.codeCont{
+	width: 750rpx;
+	background: #FFFFFF;
+	border-radius: 28rpx 28rpx 0rpx 0rpx;
+	position: absolute;
+	left: 0;
+	bottom: 0;
+	height: 383rpx;
+}
+.reasonCont{
+	height: 70vh;
+	width: 750rpx;
+	background: #FFFFFF;
+	border-radius: 28rpx 28rpx 0rpx 0rpx;
+	position: absolute;
+	left: 0;
+	bottom: 0;
+}
+.reasonContLine{
+	display: flex;justify-content: space-between;
+		padding: 20rpx 0;
+}
+.reasonContLineTitle{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+}
+.reasonContLineTxt{
+	font-weight: 400;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+
+}
+.reasonContLineCk{
+	width: 28rpx;
+	height: 28rpx;
+	border: 2rpx solid #9A9A9A;
+	border-radius: 16rpx;
+	margin-top: 6rpx;
+}
+.reasonContLineBox{
+	padding: 0 33rpx;
+	height: calc(70vh - 270rpx);
+	overflow-y: scroll;
+}
+.ckLine{
+	display: flex;color: #9A9A9A;
+	font-size: 26rpx;
+}
+.xinghao{
+	color: #EC0F0A;
+}
+.jtIcon{
+	width: 10rpx;height: 20rpx;
+	margin-top: 8rpx;
+	margin-left: 10rpx;
+}
+.tkPrice1{
+	font-size: 26rpx;
+	color: #222222;
+}
+.tkPrice2{
+	font-size: 24rpx;
+	color: #9A9A9A;
+	padding-top: 8rpx;
+}
+.tkPriceNum{
+	font-size: 26rpx;
+	color: #222222;
+	line-height: 50rpx;
+}
+.textareaNum{
+	padding-bottom: 18rpx;
+}
+.tkSm{
+	font-size: 26rpx;
+	color: #222222;
+	padding-top: 18rpx;
+}
+.tktextarea{
+	font-size: 26rpx;
+	background: #F7F7F7;
+	border-radius: 14rpx;
+	margin-top: 20rpx;
+	width: 600rpx;padding: 20rpx 30rpx;
+	margin-bottom: 10rpx;
+}
+.textareaNum{
+	font-size: 24rpx;
+	color: #9A9A9A;
+	display: flex;justify-content: flex-end;
+}
+.cont{
+	padding: 20rpx 24rpx;
+}
+.itemBox{
+	background: #FFFFFF;
+	border-radius: 16rpx;padding: 24rpx;
+}
+.itemIMg{
+	width: 128rpx;
+	height: 128rpx;border-radius: 10rpx;
+}
+.flex{
+	display: flex;
+}
+.itemRight{
+	width: 450rpx;padding-left: 24rpx;
+}
+.itemName{
+	font-weight: 500;
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 40rpx;
+}
+.buyType{
+	padding: 0 8rpx;text-align: center;
+	height: 32rpx;line-height: 34rpx;
+	border-radius: 5rpx;
+	border: 1px solid #FF0035;font-size: 22rpx;
+color: #FF0035;
+margin-top: 10rpx;
+}
+.priceBox{
+	display: flex;justify-content: space-between;padding-top: 40rpx;
+}
+.price{
+
+	font-size: 28rpx;
+	color: #222222;
+	line-height: 50rpx;
+}
+.itemNum{
+	font-size: 34rpx;line-height: 50rpx;
+	color: #686868;
+}
+.itemnotes{
+	font-size: 24rpx;padding-top: 12rpx;
+	color: #FFC107;
+}
+.mealBox{
+	background: #FFFFFF;
+	padding: 20rpx 24rpx;
+	margin-top: 20rpx;
+	font-size: 26rpx;
+	color: #666666;
+	    border-radius: 16rpx;
+}
+.fwlcTitle{
+	color: #333333;font-size: 30rpx;font-weight: 500;
+	padding-bottom: 20rpx;
+}
+.mealTop{
+	display: flex;
+	justify-content: space-between;
+	height: 72rpx;
+	line-height: 72rpx;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	font-size: 26rpx;
+	padding: 0 20rpx;
+}
+.mealNum{
+	text-align: center;
+	width: 120rpx;
+}
+.mealexpire{
+	text-align: center;	width: 120rpx;
+}
+.mealName{
+	width: 460rpx;
+}
+.mealTop2{
+	display: flex;
+	justify-content: space-between;
+	height: 72rpx;
+	line-height: 72rpx;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	font-size: 26rpx;
+	padding: 0 20rpx;
+	background: #FFF6DB;
+}
+.mealXj{
+	background: #FFFCF3;
+}
+.xjLine{
+	display: flex;
+	font-weight: 500;
+	font-size: 26rpx;
+	color: #222222;
+	padding: 20rpx 20rpx;
+}
+.xjyd{
+	width: 8rpx;
+	height: 8rpx;
+	background: #FABF1B;
+	border-radius: 50rpx;
+	margin-top: 12rpx;
+	margin-right: 10rpx;
+}
+.mealMs{
+	background: #FFFFFF;
+	padding: 20rpx;
+	font-weight: 400;
+	font-size: 24rpx;
+	color: #9A9A9A;
+	line-height: 38rpx;
+}
+.goodsBox{
+	padding:18rpx 24rpx;font-size: 26rpx;
+color: #222222;background: #FFFFFF;margin-top: 20rpx;
+border-radius: 16rpx;
+}
+.goodsline{
+	justify-content: space-between;
+	padding: 18rpx 0;
+}
+
+
+.mealBox img{
+	width: 100%;
+}
+.mealBox image{
+	width: 100%;
+}
+.tkErr{
+	font-size: 26rpx;
+	color: #9A9A9A;
+	padding-bottom: 10rpx;
+	padding-bottom: 20rpx;
+}
+.codeLine{
+	font-size: 26rpx;
+	color: #222222;
+	display: flex;
+	justify-content: center;
+	padding-bottom: 30rpx;
+}
+
+</style>

+ 443 - 0
pages/myOrder/rescueOrder.vue

@@ -0,0 +1,443 @@
+<template>
+	<view class="box">
+		<homenav :iStatusBarHeight="iStatusBarHeight" :title="'救援订单'" :cj="4"></homenav>
+		<view class="tab">
+			<view class="tabLine" :class="{tabActive:tabIndex==-1}" @click="tabClick(-1)">全部</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==0}" @click="tabClick(0)">待确认</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==1}" @click="tabClick(1)">已接单</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==2}" @click="tabClick(2)">已出发</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==3}" @click="tabClick(3)">已完成</view>
+
+		</view>
+		<view class="main">
+			<view class="itemBg" v-for="(item,index) in items" @click="goDetail(item)">
+				<view class="itemTop">
+					<view class="itemType">救援订单</view>
+                    <view class="itemSheetState redColor" v-if="item.SheetState==0">待确认</view>
+					<view class="itemSheetState redColor" v-if="item.SheetState==1">已接单</view>
+					<view class="itemSheetState orangeColor" v-if="item.SheetState==2">已出发</view>
+					<view class="itemSheetState greenColor" v-if="item.SheetState==3">已完成</view>
+					<view class="itemSheetState" v-if="item.SheetState==4">已取消</view>
+					<view class="itemSheetState greenColor" v-if="item.SheetState==5">已评价</view>
+
+				</view>
+				<view class="itemShopBg">
+					<view class="shopName">
+					 <span v-if="item.HelpType==1">搭电</span>
+					 <span v-if="item.HelpType==2">拖车</span>
+					 <span v-if="item.HelpType==3">换胎</span>
+					 <span v-if="item.HelpType==4">未知原因</span>
+					 -
+					 <span v-if="item.Hscene==1">地面</span>
+					 <span v-if="item.Hscene==2">车库</span>
+					 <span v-if="item.Hscene==3">其他</span>
+					</view>
+					<!-- <view style="color: #333333;font-size: 22rpx;">¥<span class="price">{{item.PayType==1?item.RealMoney:0}}</span></view> -->
+				</view>
+                 <!-- <view class="renBox" v-if="item.SheetType==6">
+					<image src="../../../static/timg/icon_ren.png" mode="" class="renimg"></image> 
+					<view class="renMobilePhone">{{item.MobilePhone}}</view>
+					<view class="renNickName">{{item.NickName?item.NickName:''}}</view>
+				 </view> -->
+				<view class="itemName" v-if="item.orderType==1">立刻</view>
+				<view class="itemName" v-else>{{item.HTime}}</view>
+                <view class="itemName" style="padding-top: 2rpx;padding-bottom: 0;">{{item.ShopName}}</view>
+				
+			</view>
+
+			<nodata v-show="items==''&&isload"></nodata>
+		</view>
+		<!-- 手机号授权 -->
+			<view class="authorizBox" v-if="authorizShow" @click="authorizShow=false">
+				<view class="authorizCont" @click.stop="">
+					<view class="authorizName">{{wxOpenData.miniAppName}}</view>
+					<view class="authorizMs">未注册的手机号登录后将自动创建会员账号,如果您不同意授权获取手机号,会影响您使用我们的产品和服务。</view>
+					<button class="authorizContbutton" type="default" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber">授权</button>
+				</view>
+				<view style="text-align: center;padding-top: 56rpx;">
+					<image src="../../../static/timg/icon_guanbi@2x.png" mode="" class="authorizCloseImg"></image>
+				</view>
+			</view>
+	</view>
+</template>
+
+<script>
+	import nodata from '@/components/nodata/nodata.vue'
+	import homenav from "@/components/homenav/nav.vue"
+	export default {
+		components: {
+			nodata,homenav
+		},
+		data() {
+			return {
+				page: 1,
+				tabIndex: -1,
+				items: [],
+				isload: false,
+                iStatusBarHeight:'',
+				userInfo:'',
+				ext:'',
+				wxOpenData:'',
+				themeColor:'',
+				authorizShow:false,
+				code:'',
+			}
+		},
+		onLoad(opt) {
+            this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+			this.tabIndex = opt.num;
+			this.userInfo=this.$store.state.userInfo;
+			this.ext=this.$common.getExtStoreId();
+			this.themeColor = uni.getStorageSync("themeColor");
+			if(this.userInfo){
+				this.getData()
+			}else{
+				this.$common.automaticlogin().then(val => {
+					this.userInfo=this.$store.state.userInfo;
+					this.wxOpenData=this.$store.state.wxOpenData;
+					this.themeColor = uni.getStorageSync("themeColor");
+					this.getData();
+					if(!this.userInfo){
+						this.authorizShow=true
+					}
+				})
+			}
+			//this.getData()
+		},
+		onShow() {
+			console.log(this.tabIndex)
+			this.getData()
+		},
+		methods: {
+			decryptPhoneNumber: function(e) {
+			  console.log(e);
+			  this.code=e.detail.code
+			  this.wxPhoneLogin()
+			  this.authorizShow=false;
+			},
+			wxPhoneLogin(){
+					 var that=this;
+					 this.$http('miniApp2/sys/wxPhoneLogin', {
+					   appId:this.ext.appId,
+					   unionId:this.ext.unionId,
+					   code:this.code,
+					   openId:this.wxOpenData.openid
+					  },'POST').then(res => {
+						var data = res.data;
+						if(data.loginInfo){
+							this.userInfo=data.loginInfo.openUser;
+							this.wxOpenData=data.loginInfo;
+							this.$store.commit('mutationswxOpenData', data)
+							this.$store.commit('mutationsuserInfo', this.userInfo)
+						    this.getData()
+						}	
+					  })
+			},
+			
+			tabClick(num) {
+				this.tabIndex = num;
+				this.page = 1;
+				this.getData()
+			},
+			goDetail(item) {
+				//SheetType 1 商品2项目3套餐4救援5钣喷6集客
+					uni.navigateTo({
+						url: "rescueOrderOrderDetail?id=" + item.ID
+					})
+				
+			},
+			getData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.isload = false;
+				var padata = {
+					page: this.page,
+					limit: 10,
+					sheetState: this.tabIndex > -1 ? this.tabIndex : ''
+				}
+
+				this.$http('/openShopHelpSheetOrder/getOpenShopHelpSheetOrderList', padata, 'GET').then(res => {
+					uni.hideLoading();
+					this.isload = true;
+
+					var list = res.data.Items;
+
+					if (this.page == 1) {
+						this.items = list
+					} else {
+						this.items = this.items.concat(list)
+					}
+
+				})
+			},
+
+		},
+		onReachBottom() {
+			this.page++;
+
+			this.getData()
+		},
+		onPullDownRefresh() {
+			this.page = 1;
+			this.getData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		}
+	}
+</script>
+
+<style scoped>
+	.box {
+		min-height: 100vh;
+		background: #F4F5F7;
+	}
+   .renBox{
+	   color: #1A1A1A;
+	   background: #F7F7F7;
+	   border-radius: 10rpx;
+	   display: flex;
+	   padding: 20rpx;font-size: 24rpx;
+	   line-height: 30rpx;
+	   margin-top: 16rpx;
+   }
+   .renimg{
+	   width: 30rpx;height: 30rpx;
+   }
+   .renMobilePhone{
+	   padding-left: 13rpx;
+   }
+   .renNickName{
+	   padding-left: 20rpx;
+   }
+	.tab {
+		background: #FFFFFF;
+		display: flex;
+		justify-content: space-between;
+		line-height: 92rpx;
+		position: fixed;
+		width: calc(100vw - 100rpx);
+		padding-left: 50rpx;
+		padding-right: 50rpx;
+		height: 92rpx;
+		z-index: 11;
+	}
+
+	.tabLine {
+
+		font-size: 28rpx;
+		color: #333333;
+		text-align: center;
+	}
+
+	.tabActive {
+		color: #EC0F0A;
+		font-weight: bold;
+		border-bottom: 4rpx solid #EC0F0A;
+
+	}
+
+	.main {
+		padding-top: 92rpx;
+		padding-bottom: 20rpx;
+		background-color: #F4F5F7;
+	}
+
+	.itemBg {
+		margin: 20rpx 24rpx;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+		padding: 20rpx;
+	}
+
+	.itemTop {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.itemType {
+		color: #999999;
+		font-size: 24rpx;
+	}
+
+	.itemSheetState {
+		font-size: 24rpx;
+		color: #999999
+	}
+	.redColor {
+		color: #EC0F0A;
+	}
+	.orangeColor {
+		color: #F19D01;
+	}
+	.greenColor {
+		color: #00A040;
+	}
+	
+
+	.itemShopBg {
+		display: flex;
+		justify-content: space-between;
+		margin-top: 20rpx;
+		
+	}
+
+	.shopName {
+		color: #333333;
+		font-size: 30rpx;
+		font-weight: bold;
+		/* 隐藏文字显示 ...不换行 */
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.price {
+		color: #333333;
+		font-weight: bold;
+		font-size: 32rpx;
+	}
+
+	.itemName {
+		color: #666666;
+		font-size: 24rpx;
+		padding: 16rpx 0;
+		height: 30rpx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.plateBg {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+	}
+
+	.plateNumber {
+		color: #666666;
+		font-size: 24rpx;
+		margin-bottom: 20rpx;
+		display: flex;
+	}
+	.itemLineBottom {
+		display: flex;
+		justify-content: flex-end;
+	}
+	.itemBtn1 {
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #DDDDDD;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #3C3C3C;
+		margin-left: 40rpx;
+	}
+
+	.itemBtn2 {
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #FF4F00;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #FF4F00;
+		margin-left: 40rpx;
+	}
+
+	.orderState {
+		color: #F19D01;
+		font-size: 24rpx;
+		padding-left: 20rpx;
+	}
+	.authorizBox{
+			width: 100vw;
+			height: 100vh;
+			background: rgba(0, 0, 0, 0.5);
+			position: fixed;
+			top: 0;
+			left: 0;
+		}
+		.authorizCont{
+			margin-top: 30vh;
+			width: 564rpx;
+			height: 408rpx;
+			background: #FFFFFF;
+			border-radius: 24rpx;
+			margin-left: 93rpx;
+			position: relative;
+		}
+		.authorizCloseImg{
+			width: 62rpx;
+			height: 62rpx;
+		}
+		.sqLogoBox{
+			width: 180rpx;
+			height: 180rpx;
+			background: #FFFFFF;
+			border-radius: 90rpx;
+			text-align: center;
+			position: absolute;
+			top: -50rpx;
+			left: 192rpx;
+		}
+		.authorizName{
+			color: #333333;
+			line-height: 42rpx;
+			font-size: 30rpx;
+			text-align: center;
+			padding-top: 58rpx;
+		}
+		.authorizMs{
+			color: #999999;
+			line-height: 36rpx;
+			font-size: 26rpx;
+			width: 452rpx;
+			padding-top: 24rpx;
+			text-align: center;
+			margin-left: 56rpx;
+		}
+		.authorizContbutton{
+			width: 422rpx;
+			height: 88rpx;
+			background: #EC0F0A;
+			border-radius: 44rpx;
+			line-height: 88rpx;
+			text-align: center;
+			font-size:30rpx;
+			color: #FFFFFF;
+			margin-top: 62rpx;
+			margin-left:71rpx;
+		}
+		.shopBoxpt{
+			margin-top: 20rpx;
+		}
+		button::after{
+		 	border: none;
+		}
+		button{
+			position: relative;
+			display: block;
+			margin-left: 0;
+			margin-right: 0;
+			padding-left: 0px;
+			padding-right: 0px;
+			box-sizing: border-box;
+			// font-size: 18px;
+			text-align: center;
+			text-decoration: none;
+			// line-height: 1;
+			line-height: 1.35;
+			// border-radius: 5px;
+			-webkit-tap-highlight-color: transparent;
+			overflow: hidden;
+			color: #000000;
+			background-color: #fff;
+			
+			height: 100%;
+			}
+</style>

文件差異過大導致無法顯示
+ 1608 - 0
pages/myOrder/rescueOrderOrderDetail.vue


二進制
static/img/chahao2.png