Commit 603a4119 authored by qipeng's avatar qipeng

兑换票

parent 8693c8c2
......@@ -183,7 +183,7 @@
{
"path": "exchangeCode/exchangeIndex/exchangeIndex",
"style": {
"navigationBarTitleText": "兑换",
"navigationBarTitleText": "胖丁旅游",
"enablePullDownRefresh": false
}
}, {
......@@ -273,6 +273,20 @@
"navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#F7F8FA"
}
},
{
"path" : "exchangeCode/exchangePage/exchangePage",
"style" :
{
"navigationBarTitleText" : "兑换票"
}
},
{
"path" : "exchangeCode/exchangeComplete/exchangeComplete",
"style" :
{
"navigationBarTitleText" : "兑换结果"
}
}
]
},
......
<template>
<view class="bigBox">
<u-icon name="checkmark-circle-fill"></u-icon>
<view class="exchange-name">兑换成功</view>
<view class="exchange-text">可在胖丁旅行“我的-我的订单”中查找您的电子门票</view>
<view class="exchange-btn">完成</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad(option) {
},
methods: {
}
}
</script>
<style scoped lang="scss">
.bigBox{
height: 100vh;
background-color: #F7F8FA;
overflow-y: auto;
}
/deep/ .u-icon{
margin-top: 272rpx;
margin-bottom: 46rpx;
}
/deep/ .u-icon__icon{
margin: 0 auto;
font-size: 112rpx !important;
line-height: 112rpx !important;
color: #00B42B !important;
}
.exchange-name{
font-weight: 600;
font-size: 40rpx;
color: #333333;
line-height: 56rpx;
text-align: center;
margin-bottom: 12rpx;
}
.exchange-text{
font-weight: 400;
font-size: 28rpx;
color: #999999;
line-height: 40rpx;
text-align: center;
padding: 0 24rpx;
margin-bottom: 254rpx;
}
.exchange-btn{
width: 380rpx;
height: 88rpx;
background: #FFFFFF;
border: 2rpx solid #EDEDED;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 84rpx;
border-radius: 50rpx;
text-align: center;
margin: 0 auto;
}
</style>
<template>
<view>
<web-view :src="outUrl"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
outUrl:'',//跳出页面路由
}
},
onLoad(option) {
let merchantId=option.merchantId||''
let pdOpenid=uni.getStorageSync('openid')||''//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
let pdToken=uni.getStorageSync('token')||''
let pdCreateUserId=uni.getStorageSync('createUserId')||''
let pdUserId=uni.getStorageSync('userId')||''
let baseUrl=this.$wxurl+'exchangeIndex?merchantId='+merchantId
this.outUrl=baseUrl+'&pdOpenid='+pdOpenid+'&pdToken='+pdToken+'&pdCreateUserId='+pdCreateUserId+'&pdUserId='+pdUserId
},
methods: {
}
}
</script>
<style>
</style>
<template>
<view>
<web-view :src="outUrl"></web-view>
<view class="bigBox">
<view class="exchange-btn exchange-btnTop" @click="distributionCombiChooseFun()">
<image class="btn-img" src="../../static/exchangeCode/GIbuyTicket.png"></image>
<view class="btn-name">立即购票</view>
<view class="btn-ENname">BUY TICKETS NOW</view>
</view>
<view class="exchange-btn" @click="exchangeCodeChoose()">
<image class="btn-img" src="../../static/exchangeCode/GIExchange.png"></image>
<view class="btn-name">兑换票</view>
<view class="btn-ENname">EXCHANGE TICKETS</view>
</view>
<view class="exchange-btn" @click="orderListFun()">
<image class="btn-img" src="../../static/exchangeCode/GIOrder.png"></image>
<view class="btn-name">查看订单</view>
<view class="btn-ENname">VIEW ORDERS</view>
</view>
<view class="exchange-mask" v-if="maskType==true">
<view class="mask-case">
<view class="mask-list">
<view class="list-box" :class="active == index?'list-boxAct':''" @click="listNumFun(index)" v-for="(item,index) in stringProduct" :key="index">
{{item.productName}}
</view>
</view>
<view class="mask-btn"></view>
</view>
</view>
</view>
</template>
......@@ -8,24 +32,221 @@
export default {
data() {
return {
outUrl:'',//跳出页面路由
productId:'',
merchantId:'',
ticketCode:'',
userId:'',
companyMess:{},//公司信息
companyId:'',//公司ID
fromOrderId: '', //历史ID
pdFromOrderId: '',
stringProduct: [], //可兑换产品列表
maskType:true,
active:0,
}
},
onLoad(option) {
let merchantId=option.merchantId||''
let pdOpenid=uni.getStorageSync('openid')||''//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
let pdToken=uni.getStorageSync('token')||''
let pdCreateUserId=uni.getStorageSync('createUserId')||''
let pdUserId=uni.getStorageSync('userId')||''
let baseUrl=this.$wxurl+'exchangeIndex?merchantId='+merchantId
this.outUrl=baseUrl+'&pdOpenid='+pdOpenid+'&pdToken='+pdToken+'&pdCreateUserId='+pdCreateUserId+'&pdUserId='+pdUserId
//this.userId = ''//uni.getStorageSync('openid')
//this.productId = option.productId||'z001700015788731bfffd2581156dcfa'
this.ticketCode = this.$commonjs.getKey(option.ticketCode)||'85729040864674'
this.merchantId = this.$commonjs.getKey(option.merchantId)||'z001666149446146aaaf63f524961e53'
this.loadMerchantInfo()
},
methods: {
listNumFun(index){//当可选产品>1时 选择的产品是
this.active = index
},
loadMerchantInfo(){//景区详情
var data = {
id:this.merchantId,
isDetail :1
}
this.$request('scenic/newMerchant/loadMerchantInfo',data).then((res)=>{
if(res.code=='00'){
this.companyMess= res.data
this.companyId = res.data.productCompanyId
this.productListFun(res.data.productCompanyId)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
productListFun(productCompanyId){//可兑换的产品列表
var data = {
companyId: productCompanyId,
}
this.$request('scenic/exchangeProduct/loadExchangeList',data).then((res)=>{
if(res.code=='00'){
this.stringProduct = res.data
this.stringProduct.forEach((item, index) => {
var productNameGroup = JSON.parse(JSON.stringify(item.productName)).split('(')
item.productNameGroup =JSON.parse(JSON.stringify(productNameGroup))
})
console.log(this.stringProduct)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
exchangeCodeChoose(){//大于1出现遮罩 等于1跳转
if(this.stringProduct.length>1){
this.maskType = true
}else{
this.exchangeCode()
}
},
exchangeCode(){//订单查询
var data = {
ticketCode : this.ticketCode,
//userId : this.userId,//上线之前注销 此为普通票
//productId : this.productId,
//orderStatus : 2,//上线之前注销 此为普通票
}
this.$request('order/userOrder/findExchangeOrderList',data).then((res)=>{
if(res.code=='00'){
if (res.data.list.length > 0) {
this.checkExchangeFun(
res.data.list[0].id,
res.data.list[0].productId,
res.data.list[0].userId
)
this.fromOrderId = res.data.list[0].thirdOrderId
this.pdFromOrderId = res.data.list[0].id
} else {
this.$toast.fail('未查询到相应订单')
}
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
checkExchangeFun(id, productId, userId){//兑换检测
var data = {
fromOrderId: id,
}
this.$request('order/exchange/checkExchange',data).then((res)=>{
if(res.code=='00'){
if (res.data.exchangeStatus == 0) {
uni.navigateTo({
url: '/pages/my/exchangeCode/exchangePage/exchangePage?productId='+this.productId+'&id='+id+'&userId='+userId+'&merchantId='+this.merchantId+'&fromOrderId='+this.fromOrderId+'&pdFromOrderId='+this.pdFromOrderId+'&ticketCode='+this.ticketCode
})
}else{
uni.showToast({
title: '当前兑换码已兑换,若需兑换其他兑换码,请扫描对应门票二维码进行兑换。',
icon: 'none'
})
}
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
orderListFun(){//跳转订单列表
uni.navigateTo({
url: '/pages/my/order/orderList/orderList'
})
},
distributionCombiChooseFun(){//跳转立即购票
uni.navigateTo({
url: '/pages/combination/distributionCombiChoose/distributionCombiChoose?channelId=1&merchantId=z0015605022691a5945bbe463141668c&groupId=z0016038113016708b8ad38c637b2f26&groupChannelId=z00160423712018998e6260ffcaf3369'
})
},
}
}
</script>
<style>
<style scoped lang="scss">
.bigBox{
height: 100vh;
background-color: #F4F6F8;
overflow-y: auto;
}
.exchange-btn{
width: 628rpx;
height: 216rpx;
margin: 0 auto;
margin-bottom: 54rpx;
position: relative;
.btn-img{
display: block;
width: 628rpx;
height: 216rpx;
}
.btn-name{
font-weight: 600;
font-size: 40rpx;
color: #FFFFFF;
line-height: 56rpx;
position: absolute;
top: 56rpx;
left: 60rpx;
}
.btn-ENname{
font-weight: 600;
font-size: 24rpx;
color: #FFFFFF;
line-height: 34rpx;
position: absolute;
top: 120rpx;
left: 60rpx;
}
}
.exchange-btnTop{
margin-top: 126rpx;
}
.exchange-mask{
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 998;
background-color: rgba(0,0,0,.3);
.mask-case{
width: 700rpx;
height: 800rpx;
margin: auto;
background-color: #fff;
border-radius: 18rpx;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
.mask-list{
height: 600rpx;
overflow-y: auto;
.list-box{
width: 680rpx;
margin: 0 auto;
padding: 30rpx 20rpx;
border: solid 1px #EEEFF0;
line-height: 30rpx;
font-size: 26rpx;
color: #333333;
}
.list-boxAct{
border: 1px solid #FE6600;
}
}
.mask-btn{
height: 200rpx;
}
}
}
</style>
<template>
<view class="bigBox">
<view class="baseStyleBox baseStyleBoxTop">
<view class="exchange-nav">
<view class="nav-left">
<view class="left-name">{{companyMess.name}}</view>
<view class="left-address">{{companyMess.address}}</view>
</view>
<view class="nav-right">
<view class="right-list">
<view class="list-title">
<image src="../../static/exchangeCode/icon01.png"></image>
</view>
<view class="list-name">导航</view>
</view>
<view class="right-list">
<view class="list-title">
<image src="../../static/exchangeCode/icon02.png"></image>
</view>
<view class="list-name">电话</view>
</view>
</view>
</view>
<view class="exchange-label">
选择日期
<image class="exchange-gif" src="../../static/exchangeCode/timer01.gif"></image>
</view>
<view class="middle-Datelist">
<scroll-view class="date-content" scroll-x="true" :scroll-left="dateScroll" v-if="dateList.length > 0">
<view class="date-list" v-for="(item, index) of dateList" :class="{ on: active == index }" @click="dateChoose(index)" :key="index">
<view v-if="item.week">
<text v-if="item.week != '今天' && item.week != '明天' && item.week != '后天'"></text>
{{ item.week }}
</view>
<view>
{{ item.startTime ? item.startTime.substr(5, 5) : '' }}
</view>
<view class="date-price">
¥<text>{{ item.sellingPrice }}</text>
</view>
</view>
</scroll-view>
<view class="dateMore" @click="showCalendar()" v-if="dateList.length > 0">
<view class="date-more-content">
<view>更多</view>
<view>日期</view>
</view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="exchange-line"></view>
<view class="exchange-number">
<view class="exchange-label">
兑换数量
</view>
<!-- <view class="number-rule">
<view class="rule-text">不可退</view>
<view class="rule-line"></view>
<view class="rule-text">免预约</view>
</view> -->
<view class="number-timer">{{newCheckTime}}</view>
<view class="number-codeNum">1</view>
</view>
</view>
<view class="baseStyleBox">
<view class="exchange-label" style="padding: 40rpx 24rpx 20rpx 24rpx;">
游客信息
</view>
<view class="exchange-tourist">
<view class="tourist-list">
<view class="list-name">兑换码</view>
<view class="list-text">{{ticketCode}}</view>
</view>
<view class="tourist-list">
<view class="list-name">游客姓名</view>
<input class="uni-input" v-model="orderTouristDate.name" placeholder="请输入" />
</view>
<view class="tourist-list">
<view class="list-name">身份证号</view>
<input class="uni-input" v-model="orderTouristDate.credentialNumber" placeholder="请输入" />
</view>
<view class="tourist-list">
<view class="list-name">手机号码</view>
<input class="uni-input" v-model="orderTouristDate.phone" placeholder="请输入" />
</view>
</view>
</view>
<view class="exchange-bottom">
<view class="bottom-btn" @click="createOrderFun()">去兑换</view>
</view>
<calendar ref="calendar" @dateConfig="dateConfig" :dateList="dateList" v-if="dateList.length > 0"></calendar>
</view>
</template>
<script>
import calendar from '@/components/calendar' //日历组件
export default {
components: {
calendar,
},
data() {
return {
ticketCode:'',//兑换码
productId:'',
id:'',
userId:'',
merchantId:'',
fromOrderId:'',//途比达历史订单
pdFromOrderId:'',
exchangeType:1,//默认为1 VIP 测试普通票 exchangeType=0
orderDetail:{},//订单详情
buyNum:null,//购买张数
companyMess:{},//公司信息
companyId:'',//公司ID
orderTouristDate:{
name:'',
credentialNumber:'',
phone:'',
credentialType:1
},//游客信息
stringProduct:[],//兑换产品列表
stringProductType:false,//列表显隐
stringProductMinDate:'',//日历最小时间
stringProductMaxDate:'',//日历最大时间
dateTimer:'',
dateScroll: '', //日期滚动值
dateList: [
], //日期列表
active: 0, //日期下标
docQuery: '', //元素变量
newCheckTime:'加载中',//当前选择的时间
//changeValue: '',
}
},
onLoad(option) {
this.productId = option.productId
this.id = option.id
this.userId = option.userId
this.merchantId = option.merchantId
this.fromOrderId = option.fromOrderId
this.pdFromOrderId = option.pdFromOrderId
this.ticketCode = option.ticketCode
this.findOrderDetail()
this.loadMerchantInfo()
this.docQuery = uni.createSelectorQuery().in(this)
},
methods: {
findOrderDetail(){//产品订单信息
var data = {
orderId:this.id,
userId:this.userId,
}
this.$request('order/userOrder/findOrderDetail',data).then((res)=>{
if(res.code=='00'){
this.orderDetail = res.data
this.buyNum = this.orderDetail.orderNum
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
loadMerchantInfo(){//景区详情
var data = {
id:this.merchantId,
isDetail :1
}
this.$request('scenic/newMerchant/loadMerchantInfo',data).then((res)=>{
if(res.code=='00'){
this.companyMess= res.data
this.companyId = res.data.productCompanyId
this.loadExchangeProductInfoFun()
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
loadExchangeProductInfoFun(){//兑换产品查询
var data = {
companyId:this.companyId,
//productId:this.productId,
exchangeType:1,
//exchangeType:1,//正式环境为VIP票 只需要exchangeType:1 exchangeType、productId需要注释
}
this.$request('scenic/exchangeProduct/loadExchangeList',data).then((res)=>{
if(res.code=='00'){
this.stringProduct = res.data
this.stringProduct.forEach(item=>{
item['interfaceCompanyId']=''//接口编号
item['merchantCode']=''//商户code
item['productCode']=''//产品code
item['minDate']=''//开始时间
item['maxDate']=''//结束时间
item['name']=''//票种名称
item['session']=[]//场次
})
this.stringProduct.forEach((item,index)=>{
this.initData(item.exchangeProductId,index)
})
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
initData(productId,index){// //页面初始化数据,获取产品基本信息
var data = {
id:productId,
}
this.$request('scenic/groupGood/loadProduct',data).then((res)=>{
if(res.code=='00'){
this.stringProduct[index].interfaceCompanyId = res.data.merchantVo.interfaceCompanyId//接口编号
this.stringProduct[index].merchantCode = res.data.merchantVo.code//商户code
this.stringProduct[index].productCode = res.data.code//产品code
this.stringProduct[index].name = res.data.name//产品名称
this.stringProduct[index].merchantId = res.data.merchantId//产品ID
this.dateOfInventory(res.data.id,index)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
dateOfInventory(productId,index){//兑换时间
var data = {
productId: productId, //产品id
isExchange :1
}
this.$request('scenic/user/product/priceStockList',data).then((res)=>{
if(res.code=='00'){
var minData = res.data[0].startTime
var maxDate = res.data[res.data.length-1].startTime
var minDataT = minData.substring(0,10)
var maxDateT = maxDate.substring(0,10)
var mindates = this.getDefaultDate(minDataT)
var maxdates = this.getDefaultDate(maxDateT)
this.stringProduct[index].minDate =new Date(mindates)
this.stringProduct[index].maxDate = new Date(maxdates)
//this.getTimeStock(res.data[0].startTime,res.data[0].endTime,index)
this.dateTimer = res.data[0].startTime
let today = this.$commonjs.today() //今天
let tomorrow = this.$commonjs.tomorrow() //明天
let afterTomorrow = this.$commonjs.afterTomorrow() //后天
this.dateList=res.data
this.dateList.forEach((item,index)=>{
item.week = '日一二三四五六'.charAt(new Date(item.startTime.substr(0, 10)).getDay())
if (item.startTime.substr(0, 10) == today) {
item.week = '今天'
}
if (item.startTime.substr(0, 10) == tomorrow) {
item.week = '明天'
}
if (item.startTime.substr(0, 10) == afterTomorrow) {
item.week = '后天'
}
})
this.newCheckTime = this.dateList[this.active].startTime.substring(0,10)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
getDefaultDate(val) { //获取默认日期
let dates = val.split('-')
let year = parseInt(dates[0])
let month = parseInt(dates[1]) - 1
let day = parseInt(dates[2])
let defaultDate = new Date(year, month, day)
return defaultDate
},
dateChoose(index) {//---日期选择
this.active = index //修改选中样式
this.newCheckTime = this.dateList[this.active].startTime.substring(0,10)
this.$refs.calendar.defaultDate = this.dateList[index].startTime.substr(0, 10) //日历组件选中日期
},
showCalendar() {//---展示日历
this.$refs.calendar.showPop = true
},
dateConfig(data) {//---日历确认事件
let index = this.dateList.findIndex(item => {
return item.startTime.substr(0, 10) == data
})
this.dateChoose(index)
this.docQuery.selectAll('.date-list').boundingClientRect(data => {
this.dateScroll = (data[index].width + 6) * index
}).exec()
},
createOrderFun(){//下单
var data = {
companyId: this.companyId, //公司Id
fromOrderId:this.fromOrderId,//途比达历史订单
buyMethod: 1, // 单品购买,2套票、联票购买,3组合购买
userId:uni.getStorageSync('openid')|| '', //用户id
cash: 0, //现金红包
orderMoney: 0, //订单总价 = 订单原价 - 优惠券价格 - 现金抵扣价格
orderType: 1, //订单类型,景区
orderSource: this.orderDetail.orderSource || 1, //订单来源 1公众号平台、2公众号组合页面1、3公众号组合页面2、4胖丁伙伴app、5第三方自助机、6第三方票房窗口
orderProductList: [], //额外服务不为空,联票购买不为空,带有儿童票,组合购买不为空,单品购买为空
orderProductVo: {//产品信息列表
extendContent:'{"openid":'+'"'+uni.getStorageSync('openid')+'"'+','+'"zr":""}',
productId: this.productId, //产品Id
buyNum: this.buyNum, //购买数量
subOrderType: 0, //产品类型,网络
unitPrice: 0, //产品单价
distributionPrice: 0, //临时用
merchantId: this.merchantId, //商户id
orderTouristList:[], //游客信息
playDate: this.dateList[this.active].startTime, //开始日期
endPlayDate: this.dateList[this.active].endTime, //结束日期
startPlayTime: this.dateList[this.active].startTime.substring(11,19),
endPlayTime: this.dateList[this.active].endTime.substring(11,19),
isMaster: 0, //是否主产品 1 否, 0 是
couponList:[], //券列表
},
}
if(this.orderTouristDate.name==''){
uni.showToast({
title: '请输入用户姓名',
icon: 'none'
})
return false
}
if(this.orderTouristDate.credentialNumber==''){
uni.showToast({
title: '请输入用户身份证号',
icon: 'none'
})
return false
}
if(this.orderTouristDate.phone==''){
uni.showToast({
title: '请输入用户联系电话',
icon: 'none'
})
return false
}
if (!this.$commonjs.phoneReg().test(this.orderTouristDate.phone)) {
//未填写正确手机号码
uni.showToast({
title: '请填写正确的手机号码',
icon: 'none'
})
return false
}
data.orderProductVo.orderTouristList.push(this.orderTouristDate)
data['ticketPhone']=this.orderTouristDate.phone
this.$request('orderc/order/createOrder',data).then((res)=>{
if(res.code=='00'){
let id = res.data.id
if (id) {
this.init(id)
} else {
uni.showToast({
title: '下单失败',
icon: 'none'
})
}
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
init(orderId) {//是否下单成功
var payType= ''
//#ifdef MP-WEIXIN
payType = 42
//#endif
//#ifdef MP-ALIPAY
payType = 33
//#endif
let data = {
'orderId': orderId, //订单Id
'userId': this.userId, //用户Id
'payType': payType, //支付类型
'fromOrderId':this.fromOrderId,
'pdFromOrderId':this.pdFromOrderId
}
this.$request('orderc/order/findOrderInfo',data).then((res)=>{
if(res.code=='00'){
uni.navigateTo({
url: '/pages/my/exchangeCode/exchangeComplete/exchangeComplete?orderId='+res.data.id
})
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
}
}
</script>
<style scoped lang="scss">
.bigBox{
height: 100vh;
background-color: #F7F8FA;
padding-bottom: 120rpx;
overflow-y: auto;
}
.baseStyleBox{
width: 726rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin: 0 auto 20rpx auto;
}
.baseStyleBoxTop{
margin-top: 12rpx;
}
.exchange-nav{
display: flex;
justify-content: space-between;
padding: 24rpx;
border-bottom: solid 2rpx #F5F5F5;
margin-bottom: 36rpx;
.nav-left{
.left-name{
font-weight: 600;
font-size: 32rpx;
color: #333333;
line-height: 44rpx;
margin-bottom: 4rpx;
}
.left-address{
font-weight: 400;
font-size: 24rpx;
color: #999999;
line-height: 34rpx;
}
}
.nav-right{
display: flex;
.right-list{
margin-left: 24rpx;
.list-title{
width: 52rpx;
height: 52rpx;
border: 2rpx solid #F5F5F5;
border-radius: 50%;
margin-bottom: 2rpx;
position: relative;
image{
display: block;
width: 28rpx;
height: 28rpx;
margin: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
}
.list-name{
font-weight: 400;
font-size: 20rpx;
color: #333333;
line-height: 24rpx;
text-align: center;
}
}
}
}
.exchange-label{
display: flex;
font-weight: 600;
font-size: 32rpx;
color: #333333;
line-height: 36rpx;
padding: 0 24rpx 0 24rpx;
}
.exchange-gif{
width: 168rpx;
height: 24rpx;
margin-top: 6rpx;
margin-left: 12rpx;
}
.middle-Datelist {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 38rpx;
padding: 0 24rpx 0 24rpx;
.date-content {
flex: 1;
overflow-x: scroll;
white-space: nowrap;
}
.date-content::-webkit-scrollbar {
display: none;
}
.date-list {
width: 120rpx;
text-align: center;
margin-right:18rpx;
border-radius: 8rpx;
border: 2rpx solid #EEEFF0;
background: #FCFCFC;
position: relative;
display: inline-block;
padding:14rpx 0 12rpx 0;
}
.date-list.on {
border: 1px solid #FE6600;
}
.date-list>view{
line-height: 36rpx;
font-size: 26rpx;
color: #333333;
}
.date-price {
color: #FE6600 !important;
}
.dateMore {
flex-shrink: 0;
padding: 20rpx 0;
width: 120rpx;
display: flex;
justify-content: center;
align-items: center;
}
.date-more-content {
margin-right:8rpx;
}
/deep/ .u-icon__icon{
color: #333333;
}
}
.exchange-line{
height: 2rpx;
background: #F5F5F5;
margin: 30rpx 0 30rpx 0;
}
.exchange-number{
position: relative;
.number-rule{
display: flex;
padding: 0 24rpx 0 24rpx;
margin: 8rpx 0 8rpx 0;
.rule-text{
font-weight: 400;
font-size: 24rpx;
color: #FE6600;
line-height: 36rpx;
}
.rule-line{
width: 2rpx;
height: 18rpx;
background: #DDDDDD;
margin: auto 16rpx auto 16rpx;
justify-content: center;
}
}
.number-timer{
font-weight: 400;
font-size: 24rpx;
color: #999999;
line-height: 36rpx;
padding: 0 24rpx 24rpx 24rpx;
}
.number-codeNum{
font-weight: 600;
font-size: 32rpx;
color: #333333;
line-height: 32rpx;
position: absolute;
top: 10rpx;
right: 38rpx;
}
}
.exchange-tourist{
display: flex;
justify-content: flex-end;
flex-direction: column;
.tourist-list{
display: flex;
height: 100rpx;
border-bottom: 2rpx solid #F5F5F5;
box-sizing: border-box;
margin-left: 40rpx;
padding-right: 52rpx;
.list-name{
flex-shrink: 0;
width: 120rpx;
font-weight: 400;
font-size: 28rpx;
color: #666666;
line-height: 98rpx;
}
.list-text{
flex: 1;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 98rpx;
text-align: right;
}
/deep/ .uni-input{
text-align: right;
flex: 1;
height: 98rpx;
}
}
.tourist-list:nth-last-child(1){
border-bottom: none;
}
}
.exchange-bottom{
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 120rpx;
box-sizing: content-box;
border-top: solid 2rpx #EDEDED;
background-color: #FFFFFF;
position: fixed;
bottom: 0;
left: 0;
.bottom-btn{
width: 670rpx;
height: 80rpx;
background: linear-gradient( 119deg, #FFA000 0%, #FE6600 100%);
border-radius: 40rpx;
font-weight: 600;
font-size: 32rpx;
color: #FFFFFF;
line-height: 80rpx;
text-align: center;
}
}
</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