Commit 07c3dd6f authored by 潘永坪's avatar 潘永坪

联票电子门票开发

parent a70ce975
......@@ -28,8 +28,26 @@
</view>
</view>
</view>
<!-- 只有等于全部退货退款时才显示 -->
<view class="product-refund" v-if="item.orderStatus==8">
<view class="product-refund-detail" @click="refundDetailChange(item)">
<view style="color: #FE6600;">退订详情</view>
<view style="display: flex;">
查看详情
<u-icon name='arrow-up' v-if="item.showRefundDetail"></u-icon>
<u-icon name='arrow-down' v-else></u-icon>
</view>
</view>
<view class="product-refund-list" v-if="item.showRefundDetail" v-for="(item2,a) in item.orderRefundList" :key='a'>
<view>{{item2.refundStatusName}}</view>
<view>{{item2.refundReason}}</view>
<view style="color: #666666;">{{item2.refundDate}}</view>
</view>
</view>
<template v-else>
<!-- 等于1为需要排号的景区 -->
<view class="product-number" v-if="item.isFetch=='1'" v-for="(item2,a) in item.sorts" :key='a'>
<view class="product-number" v-if="item.showSortInfo==true" v-for="(item2,a) in item.sorts" :key='a'>
<!-- 1可进入等候区 -->
<view v-if="item2.sortFair==1" style="background: #31AA6B;color: #ffffff;">
<view class="my-number" >
......@@ -185,13 +203,16 @@
<u-icon name='arrow-up' v-else></u-icon>
</view>
</view>
</template>
</view>
<view class="rufundRule">
<!-- 等于3退票规则以子订单为准 -->
<view v-for="(item,index) in orderInfo.childs" :key="index" v-if="orderInfo.isRefund==3">
<template v-if="orderInfo.isRefund==3">
<view v-for="(item,index) in orderInfo.childs" :key="index" >
<view class="rule-title">
退改规则
{{item.productName}}退改规则
</view>
<view class="rule-type">
<text v-if="item.isRefund==0">不可退</text>
......@@ -229,8 +250,9 @@
</view>
</view>
</view>
</template>
<!-- 不等于3退票规则以主订单为准 -->
<view v-else>
<template v-else>
<view class="rule-title">
退改规则
</view>
......@@ -269,7 +291,7 @@
</view>
</view>
</view>
</template>
<view class="rule-service" @click="makePhone('4000720368')">
<u-icon name='kefu-ermai'></u-icon>
联系客服
......@@ -282,10 +304,10 @@
<view class="order-middle">
<view>
<text style="flex-shrink: 0;">订单编号</text>
<text class="order-id">
<text class="one-txt-cut">{{orderInfo.id}}</text>
<view class="order-id">
<text class="one-txt-cut" style="flex: 1;">{{orderInfo.id?orderInfo.id.substr(0,8)+"****"+orderInfo.id.substr(orderInfo.id.length-8,8):''}}</text>
<text class="order-btn">复制</text>
</text>
</view>
</view>
<view>
......@@ -308,10 +330,10 @@
</view>
<view class="bottom">
<!-- 等于3退票以子订单为准 -->
<text v-if="orderInfo.isRefund==3" @click="ticketRefund()">申请退票</text>
<!-- 不等于3退票以主订单为准 -->
<text v-else @click="ticketRefund()">申请退票</text>
<!-- 以主订单为准 -->
<text v-if="mainRefundBtn" @click="mainRefund(orderInfo.id)">申请退票</text>
<!-- 以子订单为准 -->
<text v-if="subRefundBtn" @click="showSubRefund()">申请退票</text>
<text>再次预订</text>
</view>
<!-- 是否重新排号 -->
......@@ -322,6 +344,21 @@
showCancelButton
:title="sortAgainData.config.paPassedNumTakeTypeHint||'是否重新排号'" >
</u-modal>
<!-- 子产品退票列表弹窗 -->
<u-popup :show="refundPop" :round="20" @close="refundPop=false" closeable>
<view class="subtitle">
申请退票
</view>
<radio-group @change="radioChange">
<label class="subradio" v-if="item.isRefund" v-for="(item,index) in orderInfo.childs" :key="index">
<text>{{item.productName}}</text>
<radio :value="item.id" :checked="refundOrderId==item.id"/>
</label>
</radio-group>
<view class="subBottom" @click="subRefund()">
<text>确定</text>
</view>
</u-popup>
</view>
</template>
......@@ -345,9 +382,9 @@ export default {
break
case 6:return '退款中'
break
case 7:return '部分退退货退款'
case 7:return '部分退货退款'
break
case 8:return '全部退退货退款'
case 8:return '全部退货退款'
break
case 9:return '取消'
break
......@@ -379,10 +416,14 @@ export default {
canTakeNumber:false,//返程或者第一次取号时,是否可以显示取号按钮
minute:'',//倒计时分钟
second:'',//倒计时秒
mainRefundBtn:false,//以主订单为准
subRefundBtn:false,//以子订单为准
refundPop:false,//子订单产品退票列表弹窗
refundOrderId:'',//退款订单Id
}
},
onLoad(option) {
this.orderId = 'z001719974044044b044d613e9af6f19'// option.orderId
this.orderId = 'z00172007364838382490e8a499c273f'// option.orderId
},
onShow() {
this.getDetail()
......@@ -484,11 +525,14 @@ export default {
if(res.code=='00'){
this.orderInfo=res.data
let orderInfo=res.data
let arr=orderInfo.childs||[]
arr.forEach(item=>{
this.orderInfo.childs.forEach(item=>{
//默认不显示使用须知
item.showUseknow=false
//默认不显示退票详情
item.showRefundDetail=false
if(item.isFetch=='1'){
//为了提高性能,游玩时间等于今天才获取排号信息
if(item.playDate.substr(0,10)==this.$commonjs.today()){
//获取排号信息
this.getSortInfo(item)
//每两分钟刷新一次
......@@ -496,11 +540,11 @@ export default {
this.getSortInfo(item)
},120*1000)
}
}
//subOrderType 子订单类型(0-胖丁分销,1-扫码购,2-自助机,3-组合,4-扫码牌,5-预订,6-反扫,7-收银机,8-码同步,9-押金,94-公众号,96-胖丁分销,99-酒店自营)
//exchangeMode 验证方式:1胖丁二维码,2第三方二维码,3短信,4身份证
if(item.subOrderType!=4&&item.subOrderType!=5){
if(item.playDate.substr(0,10)==this.$commonjs.today()){
//游玩时间等于今天才进行动态二维码渲染
if(item.exchangeMode==4||item.exchangeMode==5){
//多个二维码
this.getCodeList(item)
......@@ -511,14 +555,110 @@ export default {
this.getCode(item)
}
}
//根据退款状态修改退款列表的退款名称
item.orderRefundList.forEach((item2,index)=>{
if(item2.refundStatus==0){
item2['refundStatusName'] = '退款中'
}else if(item2.refundStatus==1){
item2['refundStatusName'] = '退款成功'
}else if(item2.refundStatus==2){
item2['refundStatusName'] = '退款失败'
}else if(item2.refundStatus==3){
item2['refundStatusName'] = '退票中'
}else if(item2.refundStatus==4){
item2['refundStatusName'] = '退票确认'
}else if(item2.refundStatus==5){
item2['refundStatusName'] = '退货完成'
}else if(item2.refundStatus==6){
item2['refundStatusName'] = '退票审核中'
}else if(item2.refundStatus==7){
item['refundStatusName'] = '退票失败'
}
})
})
if(orderInfo.isRefund==3){
// 退票规则以子订单为准
this.orderInfo.childs.forEach(item=>{
if(item.orderStatus==2||item.orderStatus==7){
//等于2出票成功,7部分退货退款
if(item.isRefund==2){
//随时可退
this.subRefundBtn=true
//增加字段用于弹窗展示该产品是否可退
item.ifRefund=true
}
if(item.isRefund==1){
//1为条件退
item.orderRefundRuleList.forEach(item2=>{
//refundVisitorApply游客是否能自己申请退(0不能1可以)
if(item2.refundVisitorApply==1){
//当前时间戳
let nowTimeNumber=new Date().getTime()
//退票时间戳
let refundTime=''
if(item2.refundDay){
//1使用日期前
if(item2.refundTimeRule==1){
let playDate = this.getNewDate(orderInfo.playDate,-item2.refundDay)
refundTime = playDate+' '+item2.refundTime
}
//2过期后
if(item2.refundTimeRule==2){
let playDate = this.getNewDate(orderInfo.playDate,item2.refundDay)
refundTime = playDate+' '+item2.refundTime
}
}else{
refundTime = orderInfo.playDate+' '+item2.refundTime
}
let refundTimeNumber=new Date(refundTime.replace(/-/g, '/')).getTime()
//refundDateType退款时间0之前1之后2至(用于区间)
if(item2.refundDateType==0){
if(nowTimeNumber<refundTimeNumber){
this.subRefundBtn=true
//增加字段用于弹窗展示该产品是否可退
item.ifRefund=true
}else{
this.subRefundBtn=false
}
}
if(item2.refundDateType==1){
if(nowTimeNumber>refundTimeNumber){
this.subRefundBtn=true
//增加字段用于弹窗展示该产品是否可退
item.ifRefund=true
}else{
this.subRefundBtn=false
}
}
if(item2.refundDateType==2){
let refundEndTime=''
if(item2.refundDay){
let playDate = this.getNewDate(orderInfo.playDate,-item2.refundDay)
refundEndTime = playDate+' '+item2.refundEndTime
}else{
refundEndTime = orderInfo.playDate+' '+item2.refundEndTime
}
if(refundTime<nowTime<refundEndTime){
this.subRefundBtn=true
//增加字段用于弹窗展示该产品是否可退
item.ifRefund=true
}else{
this.subRefundBtn=false
}
}
}
})
}
}
})
}else{
// 退票规则以主订单为准
if(orderInfo.orderStatus==2||orderInfo.orderStatus==7){
//等于2出票成功,7部分退货退款
if(orderInfo.isRefund==2){
//随时可退
this.mainRefundBtn=true
}
if(orderInfo.isRefund==1){
//1为条件退
orderInfo.orderRefundRuleList.forEach(item=>{
......@@ -528,32 +668,37 @@ export default {
let nowTimeNumber=new Date().getTime()
//退票时间戳
let refundTime=''
if(item.refundDay){
//1使用日期前
if(item.refundTimeRule==1){
if(item.refundDay){
let playDate = this.getNewDate(orderInfo.playDate,-item.refundDay)
refundTime = playDate+' '+item.refundTime
}
//2过期后
if(item.refundTimeRule==2){
let playDate = this.getNewDate(orderInfo.playDate,item.refundDay)
refundTime = playDate+' '+item.refundTime
}
}else{
refundTime = orderInfo.playDate+' '+item.refundTime
}
}
refundTimeNumber=new Date(refundTime.replace(/-/g, '/')).getTime()
//退款时间0之前1之后2至(用于区间)
if(item.refundTimeRule==0){
let refundTimeNumber=new Date(refundTime.replace(/-/g, '/')).getTime()
//refundDateType退款时间0之前1之后2至(用于区间)
if(item.refundDateType==0){
if(nowTimeNumber<refundTimeNumber){
this.showxxx=true
this.mainRefundBtn=true
}else{
this.showxxx=false
this.mainRefundBtn=false
}
}
if(item.refundTimeRule==1){
if(item.refundDateType==1){
if(nowTimeNumber>refundTimeNumber){
this.showxxx=true
this.mainRefundBtn=true
}else{
this.showxxx=false
this.mainRefundBtn=false
}
}
if(item.refundTimeRule==2){
if(item.refundDateType==2){
let refundEndTime=''
if(item.refundDay){
let playDate = this.getNewDate(orderInfo.playDate,-item.refundDay)
......@@ -562,28 +707,14 @@ export default {
refundEndTime = orderInfo.playDate+' '+item.refundEndTime
}
if(refundTime<nowTime<refundEndTime){
this.showxxx=true
this.mainRefundBtn=true
}else{
this.showxxx=false
this.mainRefundBtn=false
}
}
// let nowTime=new Date().getTime()//当前时间
// if(item.refundDay){
// var itemDay = -item.refundDay//将天数改为负数
// var orderEndPlayDate = this.getNextDate(this.orderInfo.playDate,itemDay)//最迟退票天数
// playdateTimer = orderEndPlayDate+' '+item.refundTime
// }else{
// playdateTimer = orderInfo.playDate+' '+item.refundTime
// }
}
})
}
//随时可退
if(orderInfo.isRefund==2){
//按钮显示
this.showxxx=true
}
}
}
}else{
......@@ -705,6 +836,8 @@ export default {
this.$request('distribution/distribution/getNewFetchInfo',data).then((res)=>{
if(res.code=='00'){
if(res.data.length>0){
//显示排号信息
item.showSortInfo=true
let dataObj=res.data[0]
//子产品获取公司Id,用于重排号传参
if(dataObj.pays.length>0){
......@@ -775,10 +908,13 @@ export default {
}
})
},
//使用须知切换
//---使用须知切换
useknowChange(item){
item.showUseknow=!item.showUseknow
this.$forceUpdate()
},
//---退票详情切换
refundDetailChange(item){
item.showRefundDetail=!item.showRefundDetail
},
//---复制内容
copyText(value){
......@@ -798,9 +934,34 @@ export default {
phoneNumber
})
},
//---点击申请退票
ticketRefund(){
//---主订单点击申请退票
mainRefund(orderId){
uni.navigateTo({
url: '/pages/my/order/afterSale/applyAfterSale/applyAfterSale?orderId='+orderId
})
},
//---子订单弹窗显示
showSubRefund(){
this.refundPop=true
this.refundOrderId=''
},
//---子订单单选框变化
radioChange(e){
this.refundOrderId=e.detail.value
},
//---子订单为准点击退票
subRefund(){
if(!this.refundOrderId){
uni.showToast({
title: '请选择退票产品',
icon: 'none'
})
return
}
this.refundPop=false
uni.navigateTo({
url: '/pages/my/order/afterSale/applyAfterSale/applyAfterSale?orderId='+this.refundOrderId
})
}
},
......@@ -833,6 +994,15 @@ export default {
border-radius: 16rpx;
padding: 40rpx 32rpx 32rpx 32rpx;
}
.product-refund-detail{
display: flex;
justify-content: space-between;
padding: 20rpx 0;
border-bottom: 1px solid #EDEDED;
}
.product-refund-list view{
margin-top: 10rpx;
}
.product-name{
display: flex;
justify-content: space-between;
......@@ -1005,7 +1175,7 @@ export default {
}
.order-middle{
color: #666666;
view{
>view{
padding:32rpx;
display: flex;
justify-content: space-between;
......@@ -1017,9 +1187,7 @@ export default {
margin-left: 40rpx;
display: flex;
}
.one-txt-cut{
flex: 1;
}
.order-btn{
display: inline-block;
text-align: center;
......@@ -1054,5 +1222,30 @@ export default {
color: #666666;
}
}
.subtitle{
font-size: 32rpx;
font-weight: bold;
text-align: center;
padding: 20rpx;
}
.subradio{
display: flex;
justify-content: space-between;
padding: 20rpx;
border-bottom: 1px solid #EBEEF5;
}
.subBottom{
padding: 40rpx 32rpx 20rpx 32rpx;
text{
display: inline-block;
width: 100%;
height: 88rpx;
text-align: center;
line-height: 85rpx;
background: $red;
color: #ffffff;
font-size: 32rpx;
border-radius: 44rpx;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment