Commit 7f558cc1 authored by 罗超's avatar 罗超

1

parent 9ed4df20
...@@ -764,11 +764,7 @@ ...@@ -764,11 +764,7 @@
"path": "imgList" "path": "imgList"
}, },
{ {
"path": "buyNotice", "path": "policyDetail"
"enablePullDownRefresh": true,
"style": {
"navigationStyle": "custom"
}
} }
] ]
} }
......
<template> <template>
<view style="height: 100vh; overflow: hidden;width:100vw;"> <view class="buyNotice">
<scroll-view scroll-y="true" style="width: 100%;height: 100%;" @scroll="scroll"> <scroll-view scroll-y="true" style="width: 100%;height: 100%; padding: 44rpx 0;" @scroll="scroll">
<view style="height: 700rpx;position: relative;z-index: 1;" :style="{'opacity':(100-boxOption)+'%'}">
<view @click="goback" :style="[titleStyle,{opacity:'100% !important'}]" style="position: fixed;top: 0;left: 0;z-index: 9; padding-left: 6rpx;">
<u-icon name="arrow-left" size="44" color="#000" style="margin-top: 22rpx;"></u-icon>
</view>
<image class="banner-img" :src="imgBaseUrl+details.AllPicList[0].TagPicList[0].Path" mode="aspectFit" @click="goUrl"></image>
</view>
<view class="ticket-title" :style="[titleStyleFix]">
<view @click="goback">
<u-icon name="arrow-left" size="44"></u-icon>
</view>
<view style="flex: 1;margin-left: 30rpx; text-align: left;'background-color':'#000'">{{details.Name}}</view>
</view>
<view class="notice-box"> <view class="notice-box">
<view class="base-info"> <view class="base-info">
<image class="left" :src="imgBaseUrl+details.AllPicList[0].TagPicList[0].Path" mode="aspectFit" ></image> <image class="left" :src="imgBaseUrl+coverImg" mode="aspectFit"></image>
<view class="right"> <view class="right">
<view class="name"> <view class="name">
{{details.Name}} {{TicketData.TicketSubName}}({{TicketData.TicketName}})
</view> </view>
<view class="evaluate"> <view class="evaluate">
<u-rate size="24rpx" inactive-color="#FFF" :current="details.ScoreNum" active-icon="star" disabled active-color="#F8632F"></u-rate> <u-rate size="24rpx" inactive-color="#FFF" :current="score" active-icon="star" disabled active-color="#F8632F"></u-rate>
<view class="rate"> <view class="rate">
{{details.ScoreNum}} {{score}}
<text v-if="details.ScoreNum===1||details.ScoreNum===2||details.ScoreNum===3||details.ScoreNum===4||details.ScoreNum===5">.0</text> <text v-if="score===1||score===2||score===3||score===4||score===5">.0</text>
</view> </view>
<view class="comment"> <view class="comment">
128人评论 {{TicketData.CommentCount}}人评论
<u-icon name="arrow-right" color="#6E6E6E" size="24rpx"></u-icon> <u-icon name="arrow-down" color="#6E6E6E" size="24rpx"></u-icon>
</view> </view>
</view> </view>
<view class="sell"> <view class="sell">
已售1000 已售{{TicketData.SaleCount}}
</view> </view>
</view> </view>
</view> </view>
...@@ -42,7 +29,7 @@ ...@@ -42,7 +29,7 @@
购买须知 购买须知
<text class="ticket-title-bg"></text> <text class="ticket-title-bg"></text>
</view> </view>
<view class="detail-info-item"> <view class="detail-info-item" v-if="TicketData.SubscribeTime">
<view class="item-name"> <view class="item-name">
可订时间 可订时间
</view> </view>
...@@ -50,7 +37,7 @@ ...@@ -50,7 +37,7 @@
可订今日 可订今日
</view> </view>
</view> </view>
<view class="detail-info-item"> <view class="detail-info-item" v-if="TicketData.OutTicket">
<view class="item-name"> <view class="item-name">
出票速度 出票速度
</view> </view>
...@@ -58,7 +45,7 @@ ...@@ -58,7 +45,7 @@
平均2秒出票 平均2秒出票
</view> </view>
</view> </view>
<view class="detail-info-item"> <view class="detail-info-item" v-if="TicketData.ChangeTickets">
<view class="item-name"> <view class="item-name">
无需换票 无需换票
</view> </view>
...@@ -67,17 +54,85 @@ ...@@ -67,17 +54,85 @@
</view> </view>
</view> </view>
<!-- 退票政策 --> <!-- 退票政策 -->
<view class="method"> <view class="method" v-if="TicketData.ReturnPriceList">
<view class="method-title"> <view class="method-title">
<!-- <image src="" mode=""></image> --> <image class="title-bg" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/CustomizedCar/tuipiaozhengce-bg.png"></image>
<view class=""> <view class="title-text">退票政策</view>
</view>
<view v-for="(item,index) in TicketData.ReturnPriceList" :key="index" v-if="TicketData.IsWorryFreeRefund===0"
class="tuipaio-item">
<view class="tuipiao-name">{{item.title}}</view>
<view class="tuipiao-desc">{{item.Dec}}</view>
</view>
<view v-for="(item,index) in TicketData.ConditionPriceList" :key="index" v-if="TicketData.IsWorryFreeRefund===1"
class="tuipaio-item">
<view class="tuipiao-name">{{item.title}}</view>
<view class="tuipiao-desc">{{item.Dec}}</view>
</view>
</view>
<!-- 使用说明 -->
<view class="use-desc" v-if="TicketData.UseInstructionsList.length>0">
<view class="ticket-title">
使用说明
<text class="ticket-title-bg"></text>
</view>
<view v-for="(item,index) in TicketData.UseInstructionsList" :key="index">
<view class="detail-info-item">
<view class="item2-name">
{{item.title}}
</view>
<view class="item-desc">
{{item.Dec}}
</view>
</view>
</view>
</view>
<!-- 费用说明 -->
<view class="cost-desc">
<view class="ticket-title">
费用说明
<text class="ticket-title-bg"></text>
</view>
<view v-for="(item,index) in TicketData.PriceInstructionsList" :key="index">
<view class="detail-info-item">
<view class="item2-name">
{{item.title}}
</view>
<view class="item-desc">
{{item.Dec}}
</view>
</view> </view>
</view> </view>
</view>
<!-- 其他信息 -->
<view class="other-desc">
<view class="ticket-title">
其他信息
<text class="ticket-title-bg"></text>
</view>
<view v-for="(item,index) in TicketData.OtherDescList" :key="index">
<view class="detail-info-item">
<view class="item2-name">
{{item.title}}
</view>
<view class="item-desc">
{{item.Dec}}
</view>
</view>
</view>
</view>
<view class="detail-btn">
<view class="price">
<text class="price-pre"></text>
{{TicketData.HPriceB}}
</view>
<view class="btn">
立即预订
</view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
...@@ -85,65 +140,40 @@ ...@@ -85,65 +140,40 @@
</template> </template>
<script> <script>
let timer
export default { export default {
components: { components: {
},
props: {
coverImg: {
type: String,
default: ""
},
score: {
type: Number,
default: 1
},
TicketData: {
type: Object,
default: {}
},
}, },
data() { data() {
return { return {
ID: 0,
details: {},
typeList: [{
Id: 0,
Name: '视频'
}, {
Id: 1,
Name: '图片'
}],
boxOption: 0,
navsOption: 0,
titleStyle: {},
titleStyleFix:{},
active: 0,
mainColor: '',
controls: false, //显示默认控件
videoContext: '',
checkTicketNavIndex: 1, checkTicketNavIndex: 1,
imgBaseUrl: "" imgBaseUrl: "http://192.168.20.214:8130"
} }
}, },
onLoad(options) { watch: {
let that = this TicketData: {
if (options && options.id) { handler(val) {
this.ID = options.id console.log('购票须知', this.TicketData)
this.Date=options.Date this.$forceUpdate();
this.getDetail() }
} }
this.imgBaseUrl = "http://192.168.20.214:8130"
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0%"
};
that.titleStyleFix = {
height: "45px",
position: 'fixed',
top: '0',
left: '0',
paddingTop: `${res.statusBarHeight}px`,
'background-color': '#f6f6f6',
opacity: "0%"
}
},
});
this.mainColor = this.$uiConfig.mainColor;
}, },
methods: { methods: {
goUrl() { goUrl() {
...@@ -151,61 +181,10 @@ ...@@ -151,61 +181,10 @@
url: "/pages/ticketCoupons/imgList?id=" + this.ID, url: "/pages/ticketCoupons/imgList?id=" + this.ID,
}) })
}, },
//获取详情
getDetail() {
this.request2({
url: '/api/AppletDining/GetTicketCouponsDetails',
data: {
ID: this.ID,
buyDate:this.Date
}
},
res => {
if (res.resultCode == 1) {
res.data.ScenicSpotTag = res.data.ScenicSpotTag.split(',')
res.data.GeographicTag = res.data.GeographicTag.split(',')
this.details = res.data;
console.log(this.details)
if (res.data.VideoUrl == '') {
this.active = 1
};
this.details.imgs = []
// this.details.BannerList.forEach(x=>{
// let obj= {
// name:x
// }
// this.details.imgs.push(obj)
// })
}
}
);
},
changeHandler(i) {
this.active = i;
},
previewImage(i) {
console.log(i)
uni.previewImage({
urls: this.details.BannerList,
current: i,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function(data) {},
fail: function(err) {
console.log(err.errMsg);
},
},
});
},
scroll(e) { scroll(e) {
this.boxOption = Math.floor((e.detail.scrollTop - 50) / 1.5);
this.titleStyle.opacity = ((e.detail.scrollTop - 100) < 0 ? 0 : Math.floor(e.detail.scrollTop - 100)) +
"%";
this.tooltipShow = false
this.titleStyleFix.opacity = ((e.detail.scrollTop - 100) < 0 ? 0 : Math.floor(e.detail.scrollTop - 100)) +
"%";
this.$forceUpdate()
}, },
goback() { goback() {
uni.navigateBack({ uni.navigateBack({
...@@ -221,68 +200,57 @@ ...@@ -221,68 +200,57 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.banner-img { .buyNotice {
width: 750rpx; width: 100vw;
height: 700rpx; height: 70vh;
background-color: #f6f6f6; border-radius: 40rpx 40rpx 0rpx 0rpx;
} overflow: hidden;
.ticket-title {
line-height: 45px !important;
font-size: 16px;
text-align: center;
position: fixed;
left: 0;
top: 0;
width: 100%;
color: #111;
box-sizing: content-box;
z-index: 5;
display: flex;
align-items: center;
background-color: #f6f6f6;
padding-left: 6rpx;
} }
.notice-box { .notice-box {
border-radius: 40rpx 40rpx 0rpx 0rpx; border-radius: 40rpx 40rpx 0rpx 0rpx;
padding: 45rpx 45rpx 0 45rpx; padding: 45rpx 45rpx 0 45rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
height: 900rpx; height: 70vh;
position: relative;
top: -100rpx;
z-index: 10; z-index: 10;
.base-info{
.base-info {
// height: 175rpx; // height: 175rpx;
display: flex; display: flex;
padding-bottom: 35rpx; padding-bottom: 35rpx;
border-bottom: 1rpx solid #E7E7E7; border-bottom: 1rpx solid #E7E7E7;
.left{
.left {
width: 130rpx; width: 130rpx;
height: 130rpx; height: 130rpx;
border-radius: 20rpx; border-radius: 20rpx;
} }
.right{
.right {
margin-left: 50rpx; margin-left: 50rpx;
.name{
.name {
font-size: 34rpx; font-size: 34rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
color: #1B1D1E; color: #1B1D1E;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.evaluate{
margin-bottom:20rpx; .evaluate {
margin-bottom: 20rpx;
display: flex; display: flex;
align-items: center; align-items: center;
.rate{
.rate {
margin: 0 10rpx; margin: 0 10rpx;
font-size: 24rpx; font-size: 24rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
color: #6E6E6E; color: #6E6E6E;
} }
.comment{
.comment {
display: flex; display: flex;
font-size: 24rpx; font-size: 24rpx;
font-family: PingFang SC; font-family: PingFang SC;
...@@ -290,7 +258,8 @@ ...@@ -290,7 +258,8 @@
color: #6E6E6E; color: #6E6E6E;
} }
} }
.sell{
.sell {
width: 150rpx; width: 150rpx;
height: 40rpx; height: 40rpx;
background-color: #ECF1F4; background-color: #ECF1F4;
...@@ -304,7 +273,8 @@ ...@@ -304,7 +273,8 @@
} }
} }
} }
.detail-info{
.detail-info {
.ticket-title { .ticket-title {
// width: 70rpx; // width: 70rpx;
height: 50rpx; height: 50rpx;
...@@ -316,7 +286,7 @@ ...@@ -316,7 +286,7 @@
// line-height: 44rpx; // line-height: 44rpx;
position: relative; position: relative;
margin: 40rpx 0; margin: 40rpx 0;
.ticket-title-bg { .ticket-title-bg {
width: 70rpx; width: 70rpx;
height: 10rpx; height: 10rpx;
...@@ -329,10 +299,12 @@ ...@@ -329,10 +299,12 @@
opacity: 0.6; opacity: 0.6;
} }
} }
.detail-info-item{
.detail-info-item {
display: flex; display: flex;
margin-bottom: 30rpx; margin-bottom: 30rpx;
.item-name{
.item-name {
width: 120rpx; width: 120rpx;
height: 40rpx; height: 40rpx;
background-color: #111111; background-color: #111111;
...@@ -343,24 +315,137 @@ ...@@ -343,24 +315,137 @@
color: #DFBE6E; color: #DFBE6E;
margin-right: 45rpx; margin-right: 45rpx;
text-align: center; text-align: center;
line-height: 40rpx; line-height: 38rpx;
} }
.item-desc{ .item2-name {
width: 120rpx;
height: 40rpx;
background-color: #ECF1F4;
border-radius: 4rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #111111;
margin-right: 45rpx;
text-align: center;
line-height: 38rpx;
}
.item-desc {
width: 500rpx;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 800; font-weight: 800;
color: #111111; color: #111111;
} }
} }
.method{
width: 660rpx; .method {
// width: 660rpx;
height: 225rpx; height: 225rpx;
background-color: #DFBE6E; background-color: #FCF8F0;
opacity: 0.1;
border-radius: 4rpx; border-radius: 4rpx;
position: relative;
margin-top: 40rpx;
padding: 60rpx 0 0 25rpx;
margin-bottom: 50rpx;
.method-title {
width: 120rpx;
height: 60rpx;
position: absolute;
top: -20rpx;
left: 15rpx;
text-align: center;
.title-bg {
width: 120rpx;
height: 60rpx;
position: absolute;
top: 0;
left: 0;
z-index: 0;
}
.title-text {
width: 100%;
text-align: center;
position: absolute;
top: 0;
left: 0;
z-index: 10;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
line-height: 40rpx;
color: #FFF;
}
}
,
.tuipaio-item {
display: flex;
flex-wrap: wrap;
padding-left: 25rpx;
margin-bottom: 25rpx;
.tuipiao-name {
height: 40rpx;
background-color: #FFFFFF;
border: 1rpx solid #DFBE6E;
border-radius: 4rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #DFBE6E;
text-align: center;
margin-right: 25rpx;
padding: 0 10rpx;
line-height: 38rpx;
}
.tuipiao-desc {
height: 40rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #111111;
}
}
}
.detail-btn{
height: 80rpx;
margin: 35rpx 0;
margin-bottom: 80rpx;
padding-right: 55rpx ;
display: flex;
justify-content: flex-end;
align-items: center;
.price{
font-size: 40rpx;
font-family: PingFang SC;
font-weight: 500;
color: #D91818;
.price-pre{
font-size: 22rpx;
}
}
.btn{
width: 300rpx;
height: 80rpx;
background-color: #111111;
border-radius: 20rpx;
margin-left: 45rpx;
text-align: center;
line-height: 78rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
} }
} }
} }
</style> </style>
<template>
<view class="subscribeTicket">
<view>
<calendar ref="calendar" :datePrice="datePrice" :curryear='curryear' :currmonth='currmonth'
howManyMonth="6" mode="2" @changeDate="changeDate" @changeMonth="changeMonth"
:defaultSelect="date"></calendar>
</view>
</view>
</template>
<script>
import calender from './njzz-calendar/njzz-calendar.vue'
export default {
components: {
calender
},
props: {
date: {
type: String,
default: ""
},
id: {
type: Number,
default: 0
}
},
data() {
return {
curryear: 0,
currmonth: 0,
datePrice: [
],
}
},
watch: {
date(val, oldVal) {
console.log(val, oldVal)
let newMonth = val.split('-')[1]
let oldMonth = oldVal.split('-')[1]
if(newMonth!=oldMonth){
console.log(newMonth!=oldMonth)
this.getGoodsDateList()
}
}
},
mounted() {
let year = new Date().getFullYear(); //年
let month = new Date().getMonth() + 1; //月
if(month<10){
month = ('0' + month)
}
this.curryear= year
this.currmonth= month
console.log('sub')
this.getGoodsDateList()
},
methods: {
getGoodsDateList() {
this.request2({
url: '/api/AppletDining/GetMonthTicketList',
data: {
TicketID: this.id,
BuyDate: this.date
}
},
res => {
let data = res.data;
let datePrice = [];
data.forEach(x => {
let obj = {}
obj.date = x.Date;
if(x.IsHavePrice===1){
obj.price = x.HPriceB;
}else{
obj.price = "";
}
datePrice.push(obj)
})
this.datePrice = datePrice
}
);
},
changeMonth(nowMonth){
let Month = nowMonth.year+'-'+nowMonth.month;
this.getGoodsDateList(Month)
},
}
}
</script>
<style lang="scss" scoped>
.subscribeTicket {
height: 70vh;
padding: 45rpx 45rpx 90rpx;
}
</style>
...@@ -2,19 +2,23 @@ ...@@ -2,19 +2,23 @@
<view style="height: 100vh; overflow: hidden;width:100vw;"> <view style="height: 100vh; overflow: hidden;width:100vw;">
<scroll-view scroll-y="true" style="width: 100%;height: 100%;" @scroll="scroll"> <scroll-view scroll-y="true" style="width: 100%;height: 100%;" @scroll="scroll">
<view style="height: 700rpx;position: relative;z-index: 1;" :style="{'opacity':(100-boxOption)+'%'}"> <view style="height: 700rpx;position: relative;z-index: 1;" :style="{'opacity':(100-boxOption)+'%'}">
<view @click="goback" :style="[titleStyle,{opacity:'100% !important'}]" style="position: fixed;top: 0;left: 0;z-index: 9; padding-left: 6rpx;"> <view @click="goback" :style="[titleStyle,{opacity:'100% !important'}]"
style="position: fixed;top: 0;left: 0;z-index: 9; padding-left: 6rpx;">
<u-icon name="arrow-left" size="44" color="#000" style="margin-top: 22rpx;"></u-icon> <u-icon name="arrow-left" size="44" color="#000" style="margin-top: 22rpx;"></u-icon>
</view> </view>
<image class="banner-img" :src="imgBaseUrl+details.AllPicList[0].TagPicList[0].Path" mode="aspectFit" @click="goUrl('/pages/ticketCoupons/imgList')"></image> <image class="banner-img" :src="imgBaseUrl+details.AllPicList[0].TagPicList[0].Path" mode="aspectFit"
@click="goUrl('/pages/ticketCoupons/imgList')"></image>
</view> </view>
<view class="ticket-title" :style="[titleStyleFix]"> <view class="ticket-title" :style="[titleStyleFix]">
<view @click="goback"> <view @click="goback">
<u-icon name="arrow-left" size="44"></u-icon> <u-icon name="arrow-left" size="44"></u-icon>
</view> </view>
<view style="flex: 1;margin-left: 30rpx; text-align: left;'background-color':'#000'">{{details.Name}}</view> <view style="flex: 1;margin-left: 30rpx; text-align: left;'background-color':'#000'">{{details.Name}}
</view>
</view> </view>
<view style="position: relative;z-index: 2;"> <view style="position: relative;z-index: 2;">
<view style="position: relative;top: -70px;border-top-left-radius: 30px;border-top-right-radius: 30px;background-color: #FFF;"> <view
style="position: relative;top: -70px;border-top-left-radius: 30px;border-top-right-radius: 30px;background-color: #FFF;">
<view class="baseinfo"> <view class="baseinfo">
<view class="info1"> <view class="info1">
<view class="name"> <view class="name">
...@@ -22,25 +26,38 @@ ...@@ -22,25 +26,38 @@
</view> </view>
<view class="score"> <view class="score">
{{details.ScoreNum}} {{details.ScoreNum}}
<text v-if="details.ScoreNum===1||details.ScoreNum===2||details.ScoreNum===3||details.ScoreNum===4||details.ScoreNum===5">.0</text> <text
v-if="details.ScoreNum===1||details.ScoreNum===2||details.ScoreNum===3||details.ScoreNum===4||details.ScoreNum===5">.0</text>
</view> </view>
</view> </view>
<view class="info2"> <view class="info2">
0条点评 <view class="BusinessState">
<u-icon name="arrow-down" color="#6E6E6E" size="20rpx" class="icon"></u-icon> <view v-if="details.BusinessState===1">
今日开放
<text class="OpenTimeStr">{{details.OpenTimeStr}}</text>
</view>
<text v-if="details.BusinessState===0">暂未开发</text>
</view>
<view class="commenticon-box">
0条点评
<u-icon name="arrow" color="#6E6E6E" size="20rpx" class="icon"></u-icon>
</view>
</view> </view>
<view class="info3"> <view class="info3">
<view class="tag-box"> <view class="tag-box">
<view v-for="(_item,_index) in details.ScenicSpotTag" :key="_index"> <view v-for="(_item,_index) in details.ScenicSpotTag" :key="_index">
<u-tag :text="_item" bg-color="#FFF" border-color="#DFBE6E" color="#DFBE6E" size="mini" class="tag" v-if="_item"></u-tag> <u-tag :text="_item" bg-color="#FFF" border-color="#DFBE6E" color="#DFBE6E"
size="mini" class="tag" v-if="_item"></u-tag>
</view> </view>
<view v-for="(_item,_index) in details.GeographicTag" :key="_index"> <view v-for="(_item,_index) in details.GeographicTag" :key="_index">
<u-tag :text="_item" bg-color="#FFF" border-color="#DFBE6E" color="#DFBE6E" size="mini" class="tag" v-if="_item"></u-tag> <u-tag :text="_item" bg-color="#FFF" border-color="#DFBE6E" color="#DFBE6E"
size="mini" class="tag" v-if="_item"></u-tag>
</view> </view>
</view> </view>
<view class="policy-detail"> <view class="policy-detail" @click="goUrl('/pages/ticketCoupons/policyDetail')">
政策详情 政策详情
<u-icon name="arrow-down" color="#6E6E6E" size="24rpx" class="icon"></u-icon> <u-icon name="arrow" color="#6E6E6E" size="24rpx" class="icon"></u-icon>
</view> </view>
</view> </view>
<view class="line"></view> <view class="line"></view>
...@@ -63,36 +80,44 @@ ...@@ -63,36 +80,44 @@
<text class="ticket-title-bg"></text> <text class="ticket-title-bg"></text>
</view> </view>
<view class="ticket-navs"> <view class="ticket-navs">
<view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===1}" @click="changeCheckTicketNavIndex(1)"> <view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===1}"
@click="changeCheckTicketNavIndex(1)">
今日票 今日票
</view> </view>
<view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===2}" @click="changeCheckTicketNavIndex(2)"> <view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===2}"
@click="changeCheckTicketNavIndex(2)">
明日票 明日票
</view> </view>
<view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===3}" @click="changeCheckTicketNavIndex(3)"> <view class="ticket-nav" :class="{'check-ticket-nav':checkTicketNavIndex===3}"
@click="changeCheckTicketNavIndex(3)">
其他日期 其他日期
</view> </view>
<calendar ref="calendar" :insert="false" :selected="calendar" @confirm="confirm"></calendar> <calendar ref="calendar" :insert="false" :selected="calendar" @confirm="confirm"></calendar>
</view> </view>
<view> <view>
<view v-for="(item,index) in details.mealList" :key="index" class="ticket-list-box" :class="{'last-item':index==details.mealList.length-1}"> <view v-for="(item,index) in details.mealList" :key="index" class="ticket-list-box"
:class="{'last-item':index==details.mealList.length-1}">
<view class="ticket-key"> <view class="ticket-key">
{{item.Key}} {{item.Key}}
</view> </view>
<view class="ticket-list"> <view class="ticket-list">
<view v-for="(_item,_index) in item.TicketList" :key="_item.Id" class="ticket-list-item" :class="{'last-item':_index==item.TicketList.length-1}"> <view v-for="(_item,_index) in item.TicketList" :key="_item.Id"
class="ticket-list-item"
:class="{'last-item':_index==item.TicketList.length-1}">
<view class="TicketName"> <view class="TicketName">
{{_item.TicketName}} {{_item.TicketName}}
</view> </view>
<view class="price"> <view class="price">
<text class="price-pre"></text>{{_item.HPriceB}}<text class="price-nex"></text> <text class="price-pre"></text>{{_item.HPriceB}}<text
class="price-nex"></text>
</view> </view>
<view class="tag"> <view class="tag">
<image class="tag-img" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/CustomizedCar/likeruyuan.png" <image class="tag-img"
mode="aspectFit" v-if="_item.IsSameDayBuy==1"></image> src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/CustomizedCar/likeruyuan.png"
mode="aspectFit" v-if="_item.IsSameDayBuy==1"></image>
<view class="tag-item" v-if="_item.SubscribeTime||_item.ChangeTickets"> <view class="tag-item" v-if="_item.SubscribeTime||_item.ChangeTickets">
<text>{{_item.SubscribeTime}}</text> <text>{{_item.SubscribeTime}}</text>
<text class="gap">{{_item.ChangeTickets}}</text> <text class="gap">{{_item.ChangeTickets}}</text>
...@@ -104,14 +129,14 @@ ...@@ -104,14 +129,14 @@
<text v-if="_item.IsWorryFreeRefund!=0">有条件退</text> <text v-if="_item.IsWorryFreeRefund!=0">有条件退</text>
</view> </view>
<!-- 预订按钮 --> <!-- 预订按钮 -->
<view class="pre-buy"> <view class="pre-buy" @click="subscribeTicket">
预订 预订
</view> </view>
<!-- 已售 --> <!-- 已售 -->
<view class="ticket-sell"> <view class="ticket-sell">
<view class="sell">已售 {{_item.SaleCount}}</view> <view class="sell">已售 {{_item.SaleCount}}</view>
<view class="vertical-line"></view> <view class="vertical-line"></view>
<view class="buy-know" @click="goUrl('/pages/ticketCoupons/buyNotice')">购买须知</view> <view class="buy-know" @click="openBuyNotice(_item)">购买须知</view>
</view> </view>
</view> </view>
</view> </view>
...@@ -141,19 +166,35 @@ ...@@ -141,19 +166,35 @@
</view> </view>
</view> --> </view> -->
</view> </view>
<!-- 购票须知弹出层 -->
<view>
<u-popup v-model="showPop" mode="bottom" border-radius="40">
<buyNotice :TicketData="curTicketData" :coverImg="details.AllPicList[0].TagPicList[0].Path"
:score="details.ScoreNum"></buyNotice>
</u-popup>
</view>
<!-- 填写订单弹出层 -->
<view>
<u-popup v-model="showSubscribeTicketPop" mode="bottom" border-radius="40">
<subscribeTicket :date="Date" :id="TicketID"></subscribeTicket>
</u-popup>
</view>
</view> </view>
</scroll-view> </scroll-view>
<!-- 弹出日历 -->
</view> </view>
</template> </template>
<script> <script>
let timer
import calendar from "./components/uni-calendar/uni-calendar.vue" import calendar from "./components/uni-calendar/uni-calendar.vue"
import buyNotice from "./components/buyNotice.vue"
import subscribeTicket from "./components/subscribeTicket.vue"
export default { export default {
components: { components: {
calendar calendar,
buyNotice,
subscribeTicket,
}, },
data() { data() {
return { return {
...@@ -175,16 +216,16 @@ ...@@ -175,16 +216,16 @@
mainColor: '', mainColor: '',
controls: false, //显示默认控件 controls: false, //显示默认控件
videoContext: '', videoContext: '',
checkTicketNavIndex: 1, checkTicketNavIndex: 1,
imgBaseUrl: "", imgBaseUrl: "",
calendar: [{ calendar: [{
date:"", date: "",
info: '' info: ''
}], //日历高亮 }], //日历高亮
showPop: false,
curTicketData: {},
showSubscribeTicketPop: false,//订单弹出层
TicketID:0,//门票id
} }
}, },
onLoad(options) { onLoad(options) {
...@@ -217,21 +258,29 @@ ...@@ -217,21 +258,29 @@
let d = new Date(); let d = new Date();
let today = `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()}` let today = `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()}`
this.Date = today this.Date = today
this.calendar.date=today this.calendar.date = today
}, },
methods: { methods: {
//选择其他日期门票 //选择其他日期门票
confirm(e){ confirm(e) {
this.Date=e.fulldate this.Date = e.fulldate
this.calendar[0].date=e.fulldate this.calendar[0].date = e.fulldate
this.getDetail() this.getDetail()
this.$forceUpdate() this.$forceUpdate()
}, },
openBuyNotice(item) {
this.curTicketData = item
this.showPop = true
},
goUrl(url) { goUrl(url) {
uni.navigateTo({ uni.navigateTo({
url: url + "?id=" + this.ID+"&Date="+this.Date, url: url + "?id=" + this.ID,
}) })
}, },
subscribeTicket(item){
this.showSubscribeTicketPop=true
this.TicketID=item.Id
},
//获取详情 //获取详情
getDetail() { getDetail() {
this.request2({ this.request2({
...@@ -246,7 +295,6 @@ ...@@ -246,7 +295,6 @@
res.data.ScenicSpotTag = res.data.ScenicSpotTag.split(',') res.data.ScenicSpotTag = res.data.ScenicSpotTag.split(',')
res.data.GeographicTag = res.data.GeographicTag.split(',') res.data.GeographicTag = res.data.GeographicTag.split(',')
this.details = res.data; this.details = res.data;
console.log(this.details)
if (res.data.VideoUrl == '') { if (res.data.VideoUrl == '') {
this.active = 1 this.active = 1
}; };
...@@ -358,7 +406,6 @@ ...@@ -358,7 +406,6 @@
.banner-img { .banner-img {
width: 750rpx; width: 750rpx;
height: 700rpx; height: 700rpx;
// background-color: #ff0;
} }
.ticket-title { .ticket-title {
...@@ -507,7 +554,24 @@ ...@@ -507,7 +554,24 @@
color: #DFBE6E; color: #DFBE6E;
line-height: 44rpx; line-height: 44rpx;
display: flex; display: flex;
justify-content: flex-end; justify-content: space-between;
.BusinessState {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 800;
color: #DFBE6E;
.OpenTimeStr {
margin-left: 10rpx;
color: #111111;
font-weight: bold;
}
}
.commenticon-box {
display: flex;
}
.icon { .icon {
margin-left: 10rpx; margin-left: 10rpx;
...@@ -807,4 +871,9 @@ ...@@ -807,4 +871,9 @@
} }
} }
} }
.popUp {
width: 750rpx;
height: 100vh;
}
</style> </style>
...@@ -92,6 +92,7 @@ ...@@ -92,6 +92,7 @@
<u-loading mode="flower" size="48"></u-loading> <u-loading mode="flower" size="48"></u-loading>
<Text style="color: #fff; margin-top: 10rpx;">加载中...</Text> <Text style="color: #fff; margin-top: 10rpx;">加载中...</Text>
</view> </view>
</view> </view>
</template> </template>
...@@ -99,7 +100,9 @@ ...@@ -99,7 +100,9 @@
// import rangeSlider from "./components/range-slider.vue" // import rangeSlider from "./components/range-slider.vue"
// import canlendar from "./components/time/index.vue" // import canlendar from "./components/time/index.vue"
// import Cascade from "./components/cascade.vue" // import Cascade from "./components/cascade.vue"
export default { export default {
data() { data() {
return { return {
dataList:[],//列表数据 dataList:[],//列表数据
...@@ -165,6 +168,10 @@ ...@@ -165,6 +168,10 @@
this.getList();// 获取景点门票类型 this.getList();// 获取景点门票类型
}, },
methods: { methods: {
openBuyNotice(){
console.log(1,this.$refs.popup)
this.$refs.popup.open()
},
lower(e) { lower(e) {
if (this.msg.pageIndex < this.page_count) { if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++; this.msg.pageIndex++;
......
<template>
<!-- 政策详情 -->
<view class="policyDetail">
<u-tabs :list="typeList" :current="active" name="Name" :is-scroll="false" @change="changeHandler"
:active-color="mainColor" bg-color="#FFF" bar-height='4' height="100"></u-tabs>
<view class="officialNotice">
<view class="title">
官方公告信息
</view>
<view class="desc">
<rich-text :nodes="details.TicketNotice"></rich-text>
</view>
<view class="title">
开放时间
</view>
<view class="desc">
<view v-for="(item,index) in details.OpenTimeList" :key="index">
<view class="open-date" v-if="item.StartDay&&item.EndDay">
{{item.StartDay}}~<text v-if="item.IsNextYear===1">次年</text>{{item.EndDay}}
</view>
<view class="open-item" v-if="item.StartDay&&item.EndDay">
<view class="BusinessStartWeek">
<text v-if="item.BusinessStartWeek===0">不限</text>
<text v-if="item.BusinessStartWeek===1">周一</text>
<text v-if="item.BusinessStartWeek===2">周二</text>
<text v-if="item.BusinessStartWeek===3">周三</text>
<text v-if="item.BusinessStartWeek===4">周四</text>
<text v-if="item.BusinessStartWeek===5">周五</text>
<text v-if="item.BusinessStartWeek===6">周六</text>
<text v-if="item.BusinessStartWeek===7">周七</text>
</view>~
<view class="BusinessEndWeek">
<text v-if="item.BusinessEndWeek===0">不限</text>
<text v-if="item.BusinessEndWeek===1">周一</text>
<text v-if="item.BusinessEndWeek===2">周二</text>
<text v-if="item.BusinessEndWeek===3">周三</text>
<text v-if="item.BusinessEndWeek===4">周四</text>
<text v-if="item.BusinessEndWeek===5">周五</text>
<text v-if="item.BusinessEndWeek===6">周六</text>
<text v-if="item.BusinessEndWeek===7">周七</text>
</view>
<view class="Businesstime" v-if="item.StartTime&&item.EndTime">
{{item.StartTime}}~{{item.EndTime}},
<text v-if="item.StopTime">{{item.StopTime}}停止入场</text>
</view>
</view>
</view>
</view>
<view class="title">
购票须知
</view>
<view class="desc">
<rich-text :nodes="details.BookingInfo"></rich-text>
</view>
<view class="title">
温馨提示
</view>
<view class="desc">
<rich-text :nodes="details.About"></rich-text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
active: 0,
mainColor: "#DFBE6E",
barStyle: {
width: '30rrpx',
height: '6rpx',
background: '#DFBE6E',
borderRadius: '3rpx'
},
typeList: [{
Id: 0,
Name: '官方公告'
}, {
Id: 1,
Name: '购票须知'
}, {
Id: 2,
Name: '温馨提示'
}],
richText: "",
ID: 0,
details: {},
}
},
onLoad(options) {
console.log(options)
this.ID = options.id
this.getDetail()
},
methods: {
changeHandler(i) {
this.active = i;
},
//获取详情
getDetail() {
this.request2({
url: '/api/AppletDining/GetTicketCouponsDetails',
data: {
ID: this.ID,
}
},
res => {
if (res.resultCode == 1) {
// res.data.ScenicSpotTag = res.data.ScenicSpotTag.split(',')
// res.data.GeographicTag = res.data.GeographicTag.split(',')
this.details = res.data;
}
}
);
},
}
}
</script>
<style lang="scss" scoped>
.policyDetail {
.officialNotice {
padding: 0 45rpx 90rpx;
}
.title {
font-size: 36rpx;
font-family: PingFang SC;
font-weight: 800;
color: #111111;
margin-bottom: 45rpx;
}
.desc {
margin-bottom: 60rpx;
.open-date {
// width: 660rpx;
height: 60rpx;
background-color: #F4F4F4;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #4B4949;
line-height: 58rpx;
padding: 0 30rpx;
}
.open-item {
display: flex;
height: 60rpx;
background-color: #FFFFFF;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #4B4949;
line-height: 58rpx;
padding: 0 30rpx;
border: 1rpx solid #F4F4F4;
.Businesstime {
margin-left: 20rpx;
}
}
}
}
</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