Commit 7a7e3a5b authored by 潘永坪's avatar 潘永坪

单产品下单,优惠券开发

parent 470be20f
...@@ -68,7 +68,6 @@ export default { ...@@ -68,7 +68,6 @@ export default {
<style scoped="scoped"> <style scoped="scoped">
.son-wrap{ .son-wrap{
position: relative;
height:80vh; height:80vh;
display: flex; display: flex;
flex-direction:column; flex-direction:column;
......
<template> <template>
<!----------------适用于订单选择券的时候展示券列表--------------------------> <!-- -----------------------适用于下单页面选择券的时候展示券列表-------------------------- -->
<u-popup :show="show" :round="20" closeable @close="show=false"> <u-popup :show="showPop" :round="20" closeable @close="showPop=false">
<view class="title"> <view class="son-wrap">
<view class="titleContent" v-for="(item,index) of navTitle" :key="index" :class="{on:active==index}" @click="navClick(index)"> <view class="head">
<view style="position: relative;top:15rpx;">{{item}}</view> <view class="headlist" v-for="(item,index) of navTitle" :key="index" :class="{on:active==index}" @click="navClick(index)">
<view v-show="active==index"> <text>
<text></text> {{item}}
</text>
</view> </view>
</view> </view>
</view> <!------------------------------------可用-------------------------------------->
<!----------------------------------------------------可用------------------------------------------> <view class="middle" v-if="active==0">
<view v-show="active==0"> <checkbox-group @change="checkboxChange" v-if="masterSlaveCouponList&&masterSlaveCouponList.length>0">
<view class="middle"> <view v-for="(item,index) of masterSlaveCouponList" :key="index" class="list-box">
<checkbox-group @change="checkboxChange" v-if="couponList.masterSlaveCouponList&&couponList.masterSlaveCouponList.length>0"> <label>
<view v-for="(item,index) of couponList.masterSlaveCouponList" :key="index" class="listBox">
<label class="listLabel">
<view> <view>
{{item.couponName}} {{item.couponName}}
<checkbox :value="item.couponId" :checked="item.couponId==chooseCoupon.couponId" /> <checkbox :value="JSON.stringify(item)" :checked="item.couponId==chooseCoupon.couponId" class="blue" />
</view> </view>
<view> <view>
{{item.couponRule}} {{item.couponRule}}
...@@ -33,36 +31,37 @@ ...@@ -33,36 +31,37 @@
</label> </label>
</view> </view>
</checkbox-group> </checkbox-group>
<view class="empty" v-else>
空空如也...
</view>
</view> </view>
<!-- -------------------------------不可用-------------------------------- -->
<view class="empty" v-if="!couponList.masterSlaveCouponList||couponList.masterSlaveCouponList.length==0"> <view v-if="active==1" class="middle">
空空如也... <view v-if="unusableCouponList&&unusableCouponList.length>0">
</view> <view v-for="(item,index) of unusableCouponList" :key="index" class="list-box">
</view> <view>
{{item.couponName}}
<!--------------------------------------不可用------------------------------------------------------------> </view>
<view v-show="active==1"> <view>
<view class="middle" v-if="couponList.unusableCouponList&&couponList.unusableCouponList.length>0"> {{item.couponRule}}
<view v-for="(item,index) of couponList.unusableCouponList" :key="index" class="listBox"> <text v-if="item.savedMoney">
<view> <text>¥</text>{{parseFloat(item.savedMoney.toFixed(2))}}
{{item.couponName}} </text>
</view> </view>
<view>
{{item.couponRule}} <view>
<text v-if="item.savedMoney"> {{item.useStartDate}}-{{item.useEndDate}}
<text>¥</text>{{parseFloat(item.savedMoney.toFixed(2))}} </view>
</text>
</view>
<view>
{{item.useStartDate}}-{{item.useEndDate}}
</view> </view>
</view> </view>
<view class="empty" v-else>
空空如也...
</view>
</view> </view>
<view class="empty" v-if="!couponList.unusableCouponList||couponList.unusableCouponList.length==0"> </view>
空空如也... <view class="bottom-sure" @click="showPop=false">
</view> 确定
</view> </view>
</u-popup> </u-popup>
</template> </template>
...@@ -72,16 +71,25 @@ ...@@ -72,16 +71,25 @@
export default{ export default{
props:['couponData','chooseCouponObj'], props:['couponData','chooseCouponObj'],
watch: { watch: {
couponData:{// couponData:{//劵列表
handler(newValue, oldValue){ handler(newValue, oldValue){
if(newValue){ if(newValue){
this.couponList=this.couponData //可用优惠券去重
this.masterSlaveCouponList=[]
if(newValue.masterSlaveCouponList){
newValue.masterSlaveCouponList.forEach(item=>{
if(!this.masterSlaveCouponList.find(item2=>item2.couponId==item.couponId)){
this.masterSlaveCouponList.push(item)
}
})
}
this.unusableCouponList=newValue.unusableCouponList
} }
}, },
deep:true, deep:true,
immediate:true immediate:true
}, },
chooseCouponObj:{// chooseCouponObj:{//选中的券
handler(newValue, oldValue){ handler(newValue, oldValue){
if(newValue){ if(newValue){
this.chooseCoupon=this.chooseCouponObj this.chooseCoupon=this.chooseCouponObj
...@@ -94,36 +102,26 @@ export default{ ...@@ -94,36 +102,26 @@ export default{
data(){ data(){
return{ return{
active:0,//导航栏下标 active:0,//导航栏下标
show:false,//控制弹窗显示隐藏 showPop:false,//控制弹窗显示隐藏
current:0,//控制选项卡默认显示第几个 masterSlaveCouponList:[],//可用优惠券列表
couponList:'',//券列表 unusableCouponList:[],//不可用优惠券列表
chooseCoupon:'',//选中的劵 chooseCoupon:'',//选中的劵
navTitle:['可用','不可用'],//导航标题 navTitle:['可用','不可用'],//导航标题
} }
}, },
methods:{ methods:{
navClick(index){//------------------------------------------导航栏点击 //---导航栏点击
navClick(index){
this.active=index this.active=index
}, },
showCoupon(){//----------------------------------------展示弹窗
this.show=true
},
//---多选框值变化 //---多选框值变化
checkboxChange(evt){ checkboxChange(e){
if(evt.detail.value.length==2){ let value=e.detail.value
//删除第一个 if(value.length>0){
evt.detail.value.splice(0,1) let obj=JSON.parse(value[value.length-1])
//获取选中券,传值给父组件 this.$emit('couponChoose',obj)
this.chooseCoupon=this.couponList.masterSlaveCouponList.find((item)=>{ }
return item.couponId==evt.detail.value[0] if(value.length==0){
})
this.$emit('couponChoose',this.chooseCoupon)
}else if(evt.detail.value.length==1){
this.chooseCoupon=this.couponList.masterSlaveCouponList.find((item)=>{
return item.couponId==evt.detail.value[0]
})
this.$emit('couponChoose',this.chooseCoupon)
}else if(evt.detail.value.length==0){
this.$emit('couponChoose','') this.$emit('couponChoose','')
} }
} }
...@@ -133,19 +131,80 @@ export default{ ...@@ -133,19 +131,80 @@ export default{
</script> </script>
<style scoped="scoped" lang="scss"> <style scoped="scoped" lang="scss">
.title{display: flex;height: 80rpx;} .son-wrap{
.titleContent{flex:1;text-align: center;font-size:30rpx;} height:80vh;
.titleContent.on{color: $theme;font-weight: bold;} display: flex;
.titleContent view text{width: 40rpx;height: 6rpx;background:$theme;border-radius:6rpx;display:inline-block;position: relative;top:-10rpx;} flex-direction:column;
.middle{padding:24rpx;background:#f5f5f5;} }
.listBox{background: #FFFFFF;padding:24rpx;border-radius:10rpx;} .head{
.middle .listBox:not(:first-child){margin-top:20rpx;} display: flex;
.middle view view:not(:first-child){margin-top:20rpx;} }
.middle view view{display: flex;justify-content: space-between;} .headlist{
.middle view view:first-child{font-weight: bold;} width: 50%;
.middle view view:nth-child(2){font-size:24rpx;} height: 90rpx;
.middle view view:last-child{color: #666666;font-size:24rpx;} line-height: 90rpx;
.middle view text{color:#f9690e;font-size:30rpx;font-weight: bolder;} text-align: center;
.middle view text text{font-size:24rpx;font-weight: 400;} font-size:30rpx;
.empty{padding:100rpx 0;text-align: center;background: #f5f5f5;} }
.headlist.on text{
border-bottom: 6rpx solid $theme;
color: $theme;
font-weight: bold;
}
.middle{
padding:24rpx 24rpx 100rpx 24rpx;
background:#f5f5f5;
flex: 1;
overflow-y: scroll;
}
.list-box{
background: #FFFFFF;
padding:24rpx;
border-radius:10rpx;
}
.middle .list-box:not(:first-child){
margin-top:20rpx;
}
.list-box view:not(:first-child){
margin-top:20rpx;
}
.list-box view{
display: flex;
justify-content: space-between;
}
.list-box view:first-child{
font-weight: bold;
}
.list-box view:last-child{
color: #999999;
font-size:24rpx;
}
.list-box text{
color:#f9690e;
font-size:32rpx;
font-weight: bold;
}
.list-box text text{
font-size:24rpx;
font-weight: 400;
}
.empty{
padding:160rpx 0;
text-align: center;
color: $red;
}
.bottom-sure{
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
background:$theme;
font-size:32rpx;
font-weight: bold;
color: #ffffff;
}
</style> </style>
...@@ -364,7 +364,7 @@ export default { ...@@ -364,7 +364,7 @@ export default {
}, },
showCoupon() { showCoupon() {
//---展示券列表 //---展示券列表
this.$refs.orderCoupon.showCoupon() this.$refs.orderCoupon.showPop=true
}, },
//---初始化获取商家名称,大商家 //---初始化获取商家名称,大商家
initMerchant() { initMerchant() {
......
...@@ -257,7 +257,7 @@ export default { ...@@ -257,7 +257,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: #3688ff; background:$theme;
font-size:32rpx; font-size:32rpx;
font-weight: bold; font-weight: bold;
color: #ffffff; color: #ffffff;
......
...@@ -83,7 +83,6 @@ export default { ...@@ -83,7 +83,6 @@ export default {
display: flex; display: flex;
flex-direction:column; flex-direction:column;
} }
.time-title{ .time-title{
text-align: center; text-align: center;
font-size: 32rpx; font-size: 32rpx;
...@@ -91,44 +90,32 @@ export default { ...@@ -91,44 +90,32 @@ export default {
padding: 30rpx 24rpx; padding: 30rpx 24rpx;
border-radius: 20rpx 20rpx 0 0; border-radius: 20rpx 20rpx 0 0;
} }
.time-content { .time-content {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.time-list { .time-list {
width: 30%; width:30%;
height: 80rpx; height: 90rpx;
text-align: center;
line-height: 30rpx; line-height: 30rpx;
color: #666666; text-align: center;
background: rgb(242, 242, 242); margin-right:5%;
border-radius: 16rpx; border-radius: 15rpx;
margin-right: 5%; display: inline-block;
margin-top: 30rpx; background:#f2f2f2;
} position: relative;
padding-bottom: 8rpx;
.time-list view:first-child {
margin-top: 10rpx;
} }
.time-list view { .time-list view {
width: 100%; margin-top: 10rpx;
text-align: center;
} }
.time-content view:nth-child(3n) { .time-content view:nth-child(3n) {
margin-right: 0; margin-right: 0;
} }
.time-list.on { .time-list.on {
background: none;
color: $theme;
border: 1px solid $theme; border: 1px solid $theme;
box-sizing: border-box; background: #DAE6F6;
} }
.time-sure{ .time-sure{
margin-top:60rpx; margin-top:60rpx;
text-align: center; text-align: center;
......
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
<view class="orderBox"> <view class="orderBox">
<view class="head"> </view> <view class="head"> </view>
<view class="middle"> <view class="middle">
<!-- --------------------------------------------产品信息部分----------------------------------- --> <view class="middle-top">
<view class="middle1"> <!-- --------------------------------------------产品信息部分------------------------------------- -->
<view class="middle1Product"> <view class="middle-Product">
<view class="merchantName"> <view class="merchantName">
<text> <text class="title-text">
{{ productIfo.merchantName || '' }} {{ productIfo.merchantName || '' }}
</text> </text>
<text> <text>
{{ productIfo.name || '' }} {{ productIfo.name || '' }}
</text> </text>
</view> </view>
<view @click="showBuyKnow()" class="buyKnow"> <view @click="showBuyKnow()" class="buyKnow">
<view> <view>
<text v-if="productIfo.backChangeRule == 0">不可退换</text> <text v-if="productIfo.backChangeRule == 0">不可退换</text>
...@@ -23,18 +23,18 @@ ...@@ -23,18 +23,18 @@
</view> </view>
<view> <view>
购买须知 购买须知
<u-icon name="arrow-right"></u-icon> <u-icon name="arrow-right" color='#FC6703'></u-icon>
</view> </view>
</view> </view>
</view> </view>
<!--需要排队并且站点数大于1--> <!--需要排队并且站点数大于1-->
<view class="middle-place" @click="openArea()" v-if="productIfo.isFetch == 1 && productIfo.productAreaList.length > 1 && showOpenArea"> <view class="middle-place" @click="openArea()" v-if="productIfo.isFetch == 1 && productIfo.productAreaList.length > 1 && showOpenArea">
<view> 出发站点 </view> <view> 出发站点 </view>
<view> <view>
{{ areaObj.areaName || '请选择站点' }} {{ areaObj.areaName || '请选择站点' }}
</view> </view>
<view> <view>
<u-icon name="arrow-right" color="#3688FF"></u-icon> <u-icon name="arrow-right" color="#3688FF"></u-icon>
</view> </view>
...@@ -42,74 +42,92 @@ ...@@ -42,74 +42,92 @@
<!--需要排队并且为一个站点--> <!--需要排队并且为一个站点-->
<!-- <view class="middle-place" v-if="productIfo.isFetch == 1 && productIfo.productAreaList.length == 1 && showOpenArea" @click="getSortInfor()"> <!-- <view class="middle-place" v-if="productIfo.isFetch == 1 && productIfo.productAreaList.length == 1 && showOpenArea" @click="getSortInfor()">
<view> 获取排队信息 </view> <view> 获取排队信息 </view>
<view> <view>
{{ areaObj.areaName }} {{ areaObj.areaName }}
</view> </view>
<view> <view>
<u-icon name="arrow-right" color="#3688FF"></u-icon> <u-icon name="arrow-right" color="#3688FF"></u-icon>
</view> </view>
</view> --> </view> -->
<view class="middle1Date">
<text>游玩日期</text> <view class="middle-Date">
<scroll-view class="date-content" scroll-x="true" :scroll-left="dateScroll" v-if="dateList.length > 0"> <view class="title-text">游玩日期</view>
<view class="date-list" v-for="(item, index) of dateList" :class="{ on: active == index }" @click="dateChoose(index)" :key="index"> <view class="middle-Datelist">
<view class="date-time"> <scroll-view class="date-content" scroll-x="true" :scroll-left="dateScroll" v-if="dateList.length > 0">
<text v-if="item.week"> <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> <text v-if="item.week != '今天' && item.week != '明天' && item.week != '后天'"></text>
{{ item.week }} {{ item.week }}
</text> </view>
{{ item.startTime ? item.startTime.substr(5, 5) : '' }} <view>
{{ item.startTime ? item.startTime.substr(5, 5) : '' }}
</view>
<view class="date-price">
¥<text style="font-weight: bold;">{{ item.sellingPrice }}</text>
</view>
<view v-if="active == index" class="date-icon">
<u-icon name="checkmark" color="#ffffff"></u-icon>
</view>
</view> </view>
</scroll-view>
<view class="date-price"> <text v-else class="no-date"> 不可购买 </text>
<text>¥</text><text>{{ item.sellingPrice }}</text> <view class="dateMore" @click="showCalendar()">
<view class="date-more-content">
<view>更多</view>
<view>日期</view>
</view> </view>
<u-icon name="arrow-right"></u-icon>
<view v-if="active == index" class="date-icon">
<u-icon name="checkmark" color="#ffffff"></u-icon>
</view>
</view>
</scroll-view>
<text v-else class="no-date"> 不可购买 </text>
<view class="dateMore" @click="showCalendar()">
<view class="date-more-content">
<view>更多</view>
<view>日期</view>
</view> </view>
<u-icon name="arrow-right" color="#3688FF"></u-icon>
</view> </view>
</view> </view>
<view class="middle1Time" v-if="productIfo.productType == 3"> <view class="middle-time" v-if="productIfo.productType == 3">
<text> 游玩时间 </text> <view class="title-text"> 场次 </view>
<scroll-view class="time-content" scroll-x="true" :scroll-left="timeScroll" v-if="timeList.length> 0"> <view class="middle-timelist">
<view class="time-list" v-for="(item, index) of timeList" @click="chooseTime(index)" :class="{ on: timeActive == index }" :key="index"> <scroll-view class="time-content" scroll-x="true" :scroll-left="timeScroll" v-if="timeList.length> 0">
<view> <view class="time-list" v-for="(item, index) of timeList" @click="chooseTime(index)" :class="{ on: timeActive == index }" :key="index">
{{ item.startPlanTime ? item.startPlanTime.substr(0, 5) : '' }} <view>
<text v-if="item.endPlanTime">-</text> {{ item.startPlanTime ? item.startPlanTime.substr(0, 5) : '' }}
{{ item.endPlanTime ? item.endPlanTime.substr(0, 5) : '' }} <text v-if="item.endPlanTime">-</text>
{{ item.endPlanTime ? item.endPlanTime.substr(0, 5) : '' }}
</view>
<view> 剩余:{{ item.last }} </view>
<view v-if="timeActive == index" class="date-icon">
<u-icon name="checkmark" color="#ffffff"></u-icon>
</view>
</view> </view>
<view> 剩余:{{ item.last }} </view> </scroll-view>
</view> <text class="no-time" v-if="startDate && endDate && timeList.length == 0"> 该日票种已售罄,请选择其他日期 </text>
</scroll-view> <text class="no-time" v-if="!startDate || !endDate"> 请先选游玩日期 </text>
<text class="no-time" v-if="startDate && endDate && timeList.length == 0"> 该日票种已售罄,请选择其他日期 </text> <view class="timeMore" @click="showTime()">
<text class="no-time" v-if="!startDate || !endDate"> 请先选游玩日期 </text> <view class="time-more-content">
<view class="timeMore" @click="showTime()"> <view>更多</view>
<view class="time-more-content"> <view>场次</view>
<view>更多</view> </view>
<view>时间</view> <u-icon name="arrow-right"></u-icon>
</view> </view>
<u-icon name="arrow-right" color="#3688FF"></u-icon>
</view> </view>
</view> </view>
<view class="middle-divider">
<view class="middle1Number">
<view style="font-size: 32rpx; font-weight: bolder"> 购买数量 </view> </view>
<view class="middle-Number">
<view class="title-text"> 购买数量 </view>
<view> <view>
<u-number-box <u-number-box v-model="buyNum">
<view slot="minus" class="number-minus" >
<u-icon name="minus" color="#FFFFFF" size="32"></u-icon>
</view>
<text slot="input" class="number-input">{{buyNum}}</text>
<view slot="plus" class="number-plus">
<u-icon name="plus" color="#FFFFFF" size="32"></u-icon>
</view>
</u-number-box>
<!-- <u-number-box
@change='buyNumChange' @change='buyNumChange'
v-model="buyNum" v-model="buyNum"
bg-color='#3688FF' bg-color='#3688FF'
...@@ -119,86 +137,100 @@ ...@@ -119,86 +137,100 @@
input-width="100" input-width="100"
:min="1" :min="1"
:max="maxBookNum"> :max="maxBookNum">
</u-number-box> </u-number-box> -->
</view> </view>
</view> </view>
</view> <view class=" middle-coupon" v-if="couponData.length>0" @click="showCoupon()">
<!-- -----------------------------有可用优惠券,并且未选中----------------------------------------------------- --> <view>
<!-- <div class="middle1Coupon" v-if="couponData.masterSlaveCouponList&&couponData.masterSlaveCouponList.length>0&&chooseCouponObj==''" @click="showCoupon()">
<span> </view>
<!-- 有可用优惠券,并且未选中 -->
</span> <template v-if="couponData.masterSlaveCouponList&&couponData.masterSlaveCouponList.length>0&&!chooseCouponObj">
<span>
{{couponData.masterSlaveCouponList[0].couponName}}
</span>
<span>
未选优惠券
<svg class="icon" aria-hidden="true" style="font-size: 0.24rem;color: #666666;">
<use xlink:href="#iconyou"></use>
</svg>
</span>
</div> -->
<!-- -----------------------------有可用优惠券----------------------------------------------------- -->
<!-- <div class="middle1Coupon" v-if="chooseCouponObj!=''&&savedMoney>0" @click="showCoupon()">
<span>
</span>
<span>
<b>{{chooseCouponObj.couponName}}</b>
</span>
<span>
<i></i><i>{{parseFloat(savedMoney.toFixed(2))}}</i>
<svg class="icon" aria-hidden="true" style="font-size: 0.24rem;color: #666666;">
<use xlink:href="#iconyou"></use>
</svg>
</span>
</div> -->
<!-- -----------------------------------------------可用优惠券条件--------------------------------------- -->
<!-- <div class="middle1Coupon" v-if="ableConpon!=''" @click="showCoupon()">
<span>
</span>
<span>
<b>{{ableConpon.couponName}}</b>
</span>
<span>
{{ableConpon.couponRule}}
<svg class="icon" aria-hidden="true">
<use xlink:href="#iconyou"></use>
</svg>
</span>
</div> -->
<!-- --------------------------------------------额外服务部分-------------------------------------------- -->
<view class="extraService" v-if="serviceList.length>0&&showErmai">
<checkbox-group @change="extraChange">
<view v-for="(item,index) of serviceList" :key="item.id">
<label>
<view> <view>
<text>{{item.name}}</text> {{couponData.masterSlaveCouponList[0].couponName}}
<text style="font-size:20rpx;color: #666666;" v-if="item.deposit">(押金:¥{{item.deposit}})</text>
</view> </view>
<view >
未使用优惠券
</view>
</template>
<!-- 有可用优惠券 -->
<template v-if="chooseCouponObj&&savedMoney>0">
<view> <view>
<text style="font-size: 24rpx;">¥</text> {{chooseCouponObj.couponName}}
<text style="font-size: 32rpx;margin-right: 20rpx;">{{item.sellingPrice}}</text> </view>
<checkbox class="blue" :value="JSON.stringify(item)" style="transform: scale(0.7);" :checked="item.ifChoose" />
<view style="font-size: 32rpx;">
<text style="font-size: 24rpx;position: relative;top: 6rpx;">¥</text>
{{parseFloat(savedMoney.toFixed(2))}}
</view> </view>
</label> </template>
<!-- 可用优惠券条件-->
<template v-if="ableConpon">
<view>
{{ableConpon.couponName}}
</view>
<view>
{{ableConpon.couponRule}}
</view>
</template>
<u-icon name="arrow-right" color="#3688FF"></u-icon>
</view>
<!-- --------------------------------------------额外服务部分-------------------------------------------- -->
<view class="extraService" v-if="serviceList.length>0&&showErmai">
<checkbox-group @change="extraChange">
<view v-for="(item,index) of serviceList" :key="item.id">
<label>
<view>
<text>{{item.name}}</text>
<text style="font-size:20rpx;color: #666666;" v-if="item.deposit">(押金:¥{{item.deposit}})</text>
</view>
<view>
<text style="font-size: 24rpx;">¥</text>
<text style="font-size: 32rpx;font-weight: bold;">{{item.sellingPrice}}</text>
<checkbox class="blue" :value="JSON.stringify(item)" style="transform: scale(0.7);position: relative;left: 10rpx;" :checked="item.ifChoose" />
</view>
</label>
</view>
</checkbox-group>
</view>
<!-- -----------------------------------支付之后有额外服务,没有选额外服务的弹窗------------------------- -->
<u-popup :show="showExtraPop" :round="20" @close="showExtraPop = false" closeable>
<view class="extra-wrap">
<view style="font-weight: bold;font-size: 32rpx;">
云智能导览耳机
</view>
<view style="color: #666666;margin:40rpx 0;">
深度了解索道典故由来,周边攻略推荐
</view>
<view>
<text @click="extraNo()" class="btn" style="background: #fff;color: #333;border: 1px solid #c0c0c0;">
不需要
</text>
<text @click="extraYes()" class="btn" style="margin-left: 40rpx;">
需要
</text>
</view>
</view> </view>
</checkbox-group>
</u-popup>
</view>
<view class="middle-divider">
</view> </view>
<!-- ----------------------------------------------游客信息----------------------------------------- --> <!-- ---------------------------------------------游客信息-------------------------------------------- -->
<view class="middle2" v-if="productIfo.tripTemplateFlag != 2"> <view class="middle-bottom" v-if="productIfo.tripTemplateFlag != 2">
<view class="middle2Visitor"> <view class="middle-visitor">
<view class="visitorTitle"> <view class="visitorTitle">
<text> 游客信息 </text> <text class="title-text"> 用户信息 </text>
<text> <text>
需填<text class="title-bold">{{ contactNum }}</text>位出行人 需填<text class="title-bold">{{ contactNum }}</text>位出行人
<text class="title-bold" v-if="contactNum - chooseContact.length > 0">,还需{{ contactNum - chooseContact.length }}</text> <!-- <text class="title-bold" v-if="contactNum - chooseContact.length > 0">,还需{{ contactNum - chooseContact.length }}位</text> -->
</text> </text>
</view> </view>
<view class="visitorPlus" v-if="contactTotal.length>0"> <view class="visitorPlus" v-if="contactTotal.length>0">
...@@ -247,47 +279,21 @@ ...@@ -247,47 +279,21 @@
</view> </view>
</view> </view>
<view class="middle2Phone" v-if="productIfo.tripTemplateFlag != 2"> <view class="middle-phone" v-if="productIfo.tripTemplateFlag != 2">
<view class="phoneTitle"> 联系信息 </view> <text> 联系电话: </text>
<input type="number" maxlength="11" placeholder="请输入联系电话" v-model.trim="ticketPhone" />
<view class="phoneNumber">
<text> 联系电话: </text>
<input type="number" maxlength="11" placeholder="请输入联系电话" v-model.trim="ticketPhone" />
</view>
</view> </view>
</view> </view>
<!-- --------------------------------------------------------产品押金部分-------------------------------------------------- --> <!-- ---------------------------------------------产品押金部分---------------------------------------- -->
<view class="productDeposit" v-if="productIfo.deposit"> <view class="productDeposit" v-if="productIfo.deposit">
<text> <view>
{{ productIfo.name }} {{ productIfo.name }}
押金 <text style="color: #FC6703;margin-left: 10rpx;">押金</text>
</text> </view>
<text style="color: #ff0000"> {{ productIfo.deposit }}</text> <view style="color: #FC6703"> {{ productIfo.deposit }}元 </view>
</view> </view>
<!-- -----------------------------------支付之后有额外服务,没有选额外服务的弹窗------------------------------------- -->
<u-popup :show="showExtraPop" :round="20" @close="showExtraPop = false" closeable>
<view class="extra-wrap">
<view style="font-weight: bold;font-size: 32rpx;">
云智能导览耳机
</view>
<view style="color: #666666;margin:40rpx 0;">
深度了解索道典故由来,周边攻略推荐
</view>
<view>
<text @click="extraNo()" class="btn" style="background: #fff;color: #333;border: 1px solid #c0c0c0;">
不需要
</text>
<text @click="extraYes()" class="btn" style="margin-left: 40rpx;">
需要
</text>
</view>
</view>
</u-popup>
</view> </view>
<view class="bottom"> <view class="bottom">
...@@ -429,7 +435,7 @@ export default { ...@@ -429,7 +435,7 @@ export default {
endPlayTime: '', //结束时间 endPlayTime: '', //结束时间
areaObj: '', //区域组件的传值 areaObj: '', //区域组件的传值
templateList: [], //该产品联系人必须要填写的信息 templateList: [], //该产品联系人必须要填写的信息
flag: '', //setTimeout函数 timeFlag: '', //setTimeout函数
savedMoney: 0, //优惠价格 savedMoney: 0, //优惠价格
serviceList: [], //所有额外服务 serviceList: [], //所有额外服务
chooseService: [], //选中的额外服务 chooseService: [], //选中的额外服务
...@@ -446,8 +452,9 @@ export default { ...@@ -446,8 +452,9 @@ export default {
dateScroll: '', //日期滚动值 dateScroll: '', //日期滚动值
timeScroll: '' ,//时间滚动值 timeScroll: '' ,//时间滚动值
openid:uni.getStorageSync('openid') || '',//openid openid:uni.getStorageSync('openid') || '',//openid
couponData: '', //所有劵数据 couponData:[], //所有劵数据
chooseCouponObj: '', //默认选中最优价格优惠券 chooseCouponObj: '', //默认选中最优价格优惠券
ableConpon: '', //没有可用优惠券时,达到一定条件可用,显示达到的条件
} }
}, },
onLoad(option) { onLoad(option) {
...@@ -540,6 +547,10 @@ export default { ...@@ -540,6 +547,10 @@ export default {
//选择了南站不显示耳麦 //选择了南站不显示耳麦
this.showErmai = false this.showErmai = false
this.chooseService = [] this.chooseService = []
//多选框状态设置成未选中
this.serviceList.forEach(item=>{
item.ifChoose=false
})
} else { } else {
this.showErmai = true this.showErmai = true
} }
...@@ -576,6 +587,7 @@ export default { ...@@ -576,6 +587,7 @@ export default {
this.timeActive = 10000 this.timeActive = 10000
uni.$u.throttle(this.getTimeStock, 3000) uni.$u.throttle(this.getTimeStock, 3000)
} }
this.initCoupon()
}, },
//---日历确认事件 //---日历确认事件
dateConfig(data) { dateConfig(data) {
...@@ -685,6 +697,10 @@ export default { ...@@ -685,6 +697,10 @@ export default {
//非实名制 //非实名制
this.contactNum = 1 this.contactNum = 1
} }
clearTimeout(this.timeFlag)
this.timeFlag = setTimeout(()=>{
this.initCoupon()
}, 1500)
}, },
//---展示购票须知 //---展示购票须知
showBuyKnow() { showBuyKnow() {
...@@ -809,6 +825,7 @@ export default { ...@@ -809,6 +825,7 @@ export default {
//如果为班次票,请求班次票接口 //如果为班次票,请求班次票接口
this.getTimeStock() this.getTimeStock()
} }
this.initCoupon() //获取优惠券
} }
} else { } else {
uni.showToast({ uni.showToast({
...@@ -962,23 +979,24 @@ export default { ...@@ -962,23 +979,24 @@ export default {
} }
}) })
}, },
//---加载优惠券(暂未开发) //---加载优惠券
initCoupon() { initCoupon() {
let savedMoneyList = [] let savedMoneyList = []
this.chooseCouponObj = '' this.chooseCouponObj = ''
this.ableConpon = '' this.ableConpon = ''
this.couponData=[]
let data = { let data = {
productId: this.productId, //产品id productId: this.productId, //产品id
tickets: this.buyNum, //房间数量 tickets: this.buyNum, //房间数量
singleMoney: this.sellingPrice, //单价 singleMoney: this.sellingPrice, //单价
money: parseFloat((this.buyNum * this.sellingPrice).toFixed(2)), //订单总价,不算券,和现金红包 money: parseFloat((this.buyNum * this.sellingPrice).toFixed(2)), //订单总价,不算券,和现金红包
merchantId: this.merchantId, //商户Id merchantId: this.merchantId, //商户Id
openid:this.$store.state.openId openid:this.openid
} }
this.axios.post(this.wechatUserJs.usableCouponList(), data).then((res) => { this.$request('wechatUser/myPage/usableCouponList', data).then((res) => {
if (res.data.code == '00') { if (res.code == '00') {
this.couponData = res.data.data this.couponData = res.data
let masterSlaveCouponList=res.data.data.masterSlaveCouponList let masterSlaveCouponList=res.data.masterSlaveCouponList
if (masterSlaveCouponList&&masterSlaveCouponList.length>0) { if (masterSlaveCouponList&&masterSlaveCouponList.length>0) {
masterSlaveCouponList.forEach((item) => { //获取最优券 masterSlaveCouponList.forEach((item) => { //获取最优券
savedMoneyList.push(item.savedMoney) savedMoneyList.push(item.savedMoney)
...@@ -1001,8 +1019,8 @@ export default { ...@@ -1001,8 +1019,8 @@ export default {
} }
this.savedMoney=this.chooseCouponObj.savedMoney this.savedMoney=this.chooseCouponObj.savedMoney
} else { } else {
if (res.data.data.unusableCouponList.length > 0) { if (res.data.unusableCouponList.length > 0) {
res.data.data.unusableCouponList.forEach((item, i) => { //没有可用优惠券,有达到条件可以用的优惠券,先显示条件,达到条件时显示可用优惠券 res.data.unusableCouponList.forEach((item, i) => { //没有可用优惠券,有达到条件可以用的优惠券,先显示条件,达到条件时显示可用优惠券
if (item.isProduct == 1) { if (item.isProduct == 1) {
this.ableConpon = item this.ableConpon = item
} }
...@@ -1034,7 +1052,7 @@ export default { ...@@ -1034,7 +1052,7 @@ export default {
}, },
//---展示券列表 //---展示券列表
showCoupon() { showCoupon() {
this.$refs.orderCoupon.showCoupon() this.$refs.orderCoupon.showPop=true
}, },
//---额外服务多选框变化 //---额外服务多选框变化
extraChange(e) { extraChange(e) {
...@@ -1047,6 +1065,14 @@ export default { ...@@ -1047,6 +1065,14 @@ export default {
value.forEach(item=>{ value.forEach(item=>{
this.chooseService.push(JSON.parse(item)) this.chooseService.push(JSON.parse(item))
}) })
//获取选中的多选框为选中状态
this.serviceList.forEach(item=>{
this.chooseService.forEach(item2=>{
if(item.id==item2.id){
item.ifChoose=true
}
})
})
}, },
//---不需要享受耳麦服务 //---不需要享受耳麦服务
extraNo() { extraNo() {
...@@ -1217,7 +1243,7 @@ export default { ...@@ -1217,7 +1243,7 @@ export default {
let couponList = [] let couponList = []
if (this.chooseCouponObj) { if (this.chooseCouponObj) {
if(this.chooseCouponObj.slaveList.length>0){//有从卷取值从卷,没有从卷取值主劵 if(this.chooseCouponObj.slaveList.length>0){//有从券取值从券,没有从券取值主劵
couponList=[//券列表 couponList=[//券列表
{ {
couponId:this.chooseCouponObj.slaveCouponId,//券id couponId:this.chooseCouponObj.slaveCouponId,//券id
...@@ -1325,49 +1351,30 @@ export default { ...@@ -1325,49 +1351,30 @@ export default {
height: 160rpx; height: 160rpx;
background: linear-gradient(to bottom, #2984ef, #d8eaf6); background: linear-gradient(to bottom, #2984ef, #d8eaf6);
} }
.orderBox { .orderBox {
min-height: 100%; min-height: 100%;
background: #f5f5f5; background: #f5f5f5;
} }
.middle { .middle {
position: relative; position: relative;
top: -100rpx; top: -100rpx;
padding: 0 20rpx; padding: 30rpx 20rpx;
padding-bottom: 20rpx;
}
/*中间第一部分*/
.middle1 {
padding: 32rpx 20rpx 0 20rpx;
background: #ffffff; background: #ffffff;
border-radius: 10rpx;
}
.middle1 > view:not(:last-child) {
border-bottom: 1px solid #e5e5e5;
} }
.title-text{
.middle1Product { font-size: 32rpx;
padding-bottom: 20rpx; font-weight: bold;
} }
/*中间上面部分*/
.merchantName { .merchantName {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.merchantName text:first-child {
font-size: 36rpx;
font-weight: bolder;
}
.merchantName text:nth-child(2) { .merchantName text:nth-child(2) {
color: #666666; color: #666666;
margin-left: 20rpx; margin-left: 20rpx;
} }
.buyKnow { .buyKnow {
margin-top: 20rpx; margin-top: 20rpx;
background: #fef0e6; background: #fef0e6;
...@@ -1378,97 +1385,69 @@ export default { ...@@ -1378,97 +1385,69 @@ export default {
padding-left: 10rpx; padding-left: 10rpx;
align-items: center; align-items: center;
border-radius: 5rpx; border-radius: 5rpx;
color:$red;
} }
.buyKnow view:first-child {
color: #f9690e;
}
.buyKnow view:nth-child(2) { .buyKnow view:nth-child(2) {
color: #6d4d00;
display: flex; display: flex;
} }
.middle-place { .middle-place {
height: 100rpx; height: 100rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.middle-place view:nth-child(2) { .middle-place view:nth-child(2) {
flex: 1; flex: 1;
margin-left: 20rpx; margin-left: 20rpx;
color: #f9690e; color: $theme;
font-size: 28rpx; font-size: 28rpx;
font-weight: bolder; font-weight: bolder;
} }
.middle-Date{
.middle1Date { margin-top: 40rpx;
}
.middle-Datelist {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 30rpx 0; margin-top: 30rpx;
}
.middle1Date > text:first-child {
flex-shrink: 0;
} }
.date-content { .date-content {
flex: 1; flex: 1;
margin-left: 20rpx;
overflow-x: scroll; overflow-x: scroll;
white-space: nowrap; white-space: nowrap;
height: 90rpx;
} }
.date-content::-webkit-scrollbar { .date-content::-webkit-scrollbar {
display: none; display: none;
} }
.date-list { .date-list {
width: 130rpx; width: 140rpx;
height: 90rpx;
text-align: center; text-align: center;
border: 1px solid #cccccc; margin-right:12rpx;
margin-right: 8rpx;
border-radius: 10rpx; border-radius: 10rpx;
position: relative; position: relative;
display: inline-block; display: inline-block;
background: #f2f2f2;
padding-bottom: 8rpx;
} }
.date-list.on { .date-list.on {
border: 1px solid $theme; border: 1px solid $theme;
background: #DAE6F6;
} }
.no-date { .date-list>view{
color: #ff0000; margin-top: 6rpx;
flex: 1;
margin-left: 30rpx;
font-weight: bolder;
} }
.date-time {
font-size: 24rpx;
margin-top: 8rpx;
}
.date-price { .date-price {
margin-top: 8rpx; font-size: 32rpx;
color: #f9690e; color: $red;
} }
.no-date {
.date-price text { color: $red;
flex: 1;
margin-left: 30rpx;
font-weight: bolder; font-weight: bolder;
font-size: 30rpx;
}
.date-price text:first-child {
font-weight: 400;
font-size: 24rpx;
} }
.date-icon { .date-icon {
position: absolute; position: absolute;
right: -1px; right: -1px;
...@@ -1479,126 +1458,138 @@ export default { ...@@ -1479,126 +1458,138 @@ export default {
background:$theme; background:$theme;
border-radius: 10rpx 0; border-radius: 10rpx 0;
} }
.dateMore { .dateMore {
flex-shrink: 0; flex-shrink: 0;
width: 100rpx; padding: 20rpx 0;
height: 90rpx; width: 120rpx;
border: 1px solid $theme;
border-radius: 10rpx;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.date-more-content { .date-more-content {
margin: 0 4rpx; margin-right:8rpx;
color: $theme;
} }
.middle-time{
.middle1Time { margin-top: 40rpx;
}
.middle-timelist {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 30rpx 0; margin-top: 30rpx;
}
.middle1Time > text:first-child {
flex-shrink: 0;
} }
.time-content { .time-content {
flex: 1; flex: 1;
margin-left: 20rpx;
overflow-x: scroll; overflow-x: scroll;
white-space: nowrap; white-space: nowrap;
height: 90rpx; height: 90rpx;
} }
.time-content::-webkit-scrollbar { .time-content::-webkit-scrollbar {
display: none; display: none;
} }
.time-list { .time-list {
width: 180rpx; width: 200rpx;
height: 90rpx; height: 90rpx;
line-height: 30rpx; line-height: 30rpx;
text-align: center; text-align: center;
margin-right: 8rpx; margin-right: 8rpx;
border-radius: 15rpx; border-radius: 15rpx;
display: inline-block; display: inline-block;
background: rgb(242, 242, 242); background:#f2f2f2;
position: relative;
padding-bottom: 8rpx;
} }
.time-list view { .time-list view {
margin-top: 10rpx; margin-top: 10rpx;
} }
.time-list.on { .time-list.on {
background: none;
color: $theme;
border: 1px solid $theme; border: 1px solid $theme;
box-sizing: border-box; background: #DAE6F6;
} }
.timeMore { .timeMore {
flex-shrink: 0; flex-shrink: 0;
width: 100rpx; width: 120rpx;
height: 90rpx;
border: 1px solid $theme;
border-radius: 10rpx;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.time-more-content { .time-more-content {
margin: 0 4rpx; margin-right:8rpx;
color: $theme;
} }
.no-time { .no-time {
color: #ff0000; color:$red;
flex: 1; flex: 1;
margin-left: 30rpx;
font-weight: bolder; font-weight: bolder;
} }
.middle-divider{
.middle1Number { height: 2rpx;
background:$divider;
margin: 40rpx 0;
}
.middle-Number {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 36rpx 0;
align-items: center; align-items: center;
} }
.number-minus {
/*中间第二部分*/ width: 52rpx;
.middle2 { height: 52rpx;
padding: 40rpx 20rpx; background:#ccc;
background: #ffffff; border-radius: 50%;
border-radius: 10rpx; display: flex;
margin-top: 20rpx; justify-content: center;
align-items: center;
} }
.number-input {
.middle2Visitor { padding:0 20rpx;
padding-bottom: 40rpx; width: 100rpx;
border-bottom: 1px solid #e5e5e5; text-align: center;
font-size: 40rpx;
} }
.number-plus{
.visitorTitle { width: 52rpx;
position: relative; height: 52rpx;
background:$theme;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
} }
.middle-coupon{
.visitorTitle > text:first-child { display: flex;
font-size: 32rpx; justify-content: space-between;
font-weight: bolder; align-items: center;
padding:30rpx 0;
}
.middle-coupon view:first-child{
width: 36rpx;
height: 36rpx;
background: $theme;
color: #FFFFFF;
text-align: center;
line-height:32rpx;
border-radius:4rpx;
}
.middle-coupon view:nth-child(2){
flex: 1;
margin-left: 10rpx;
}
.middle-coupon view:nth-child(3){
display: flex;
color: $theme;
font-weight: bold;
} }
/*中间下面部分*/
.middle-visitor {
padding-bottom: 40rpx;
border-bottom: 1px solid $divider;
}
.visitorTitle > text:nth-child(2) { .visitorTitle > text:nth-child(2) {
font-size: 24rpx; font-size: 24rpx;
color: #666666; color: #666666;
margin-left: 10rpx; margin-left: 10rpx;
} }
.title-bold { .title-bold {
color: #f9690e; color: #f9690e;
font-weight: bolder; font-weight: bolder;
...@@ -1616,11 +1607,10 @@ export default { ...@@ -1616,11 +1607,10 @@ export default {
border-radius:20rpx; border-radius:20rpx;
} }
.visitorPlus { .visitorPlus {
margin-top: 30rpx; margin-top: 20rpx;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.plus-list { .plus-list {
height: 70rpx; height: 70rpx;
display: flex; display: flex;
...@@ -1630,43 +1620,35 @@ export default { ...@@ -1630,43 +1620,35 @@ export default {
padding: 5rpx 0; padding: 5rpx 0;
width: 145rpx; width: 145rpx;
text-align: center; text-align: center;
color: #999999; background: #f2f2f2;
border: 1px solid #999999;
margin-right: 15rpx;
border-radius: 5rpx; border-radius: 5rpx;
position: relative; position: relative;
margin-top: 20rpx; margin: 20rpx 15rpx 0 0;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.plus-list-last { .plus-list-last {
color: $theme; color: $theme;
background: #efefef; background: #efefef;
width: 170rpx; width: 170rpx;
border: none; border: none;
} }
.plus-list.on { .plus-list.on {
border: 1px solid $theme; border: 1px solid $theme;
color: $theme; background: #DAE6F6;
} }
.visitorEdit { .visitorEdit {
margin-top: 40rpx; margin-top: 40rpx;
} }
.visitorEdit > view:not(first-child) { .visitorEdit > view:not(first-child) {
margin-top: 25rpx; margin-top: 25rpx;
} }
.edit-list { .edit-list {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.edit-list view:nth-child(2) { .edit-list view:nth-child(2) {
display: inline-block; display: inline-block;
width: 120rpx; width: 120rpx;
...@@ -1675,29 +1657,17 @@ export default { ...@@ -1675,29 +1657,17 @@ export default {
overflow: hidden; overflow: hidden;
margin-left: 30rpx; margin-left: 30rpx;
} }
.edit-list view:nth-child(3) { .edit-list view:nth-child(3) {
flex: 1; flex: 1;
} }
.middle-phone {
.phoneTitle {
font-size: 28rpx;
font-weight: bolder;
margin-top: 30rpx;
}
.phoneNumber {
margin-top: 30rpx; margin-top: 30rpx;
border-bottom: 1px solid #e6e6e6;
display: flex; display: flex;
align-items: center; align-items: center;
padding-bottom: 10rpx;
} }
.middle-phone input {
.phoneNumber input {
flex: 1; flex: 1;
} }
/*押金部分*/ /*押金部分*/
.productDeposit { .productDeposit {
padding: 40rpx 15rpx; padding: 40rpx 15rpx;
...@@ -1706,14 +1676,15 @@ export default { ...@@ -1706,14 +1676,15 @@ export default {
margin-top: 20rpx; margin-top: 20rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center;
} }
/*额外服务部分*/ /*额外服务部分*/
.extraService { .extraService {
padding: 30rpx 20rpx; padding: 20rpx;
background: #ffffff; background:#DAE6F6;
margin-top: 30rpx;
border-radius: 10rpx; border-radius: 10rpx;
margin-top: 20rpx;
} }
.extraService label { .extraService label {
width: 100%; width: 100%;
...@@ -1744,32 +1715,26 @@ export default { ...@@ -1744,32 +1715,26 @@ export default {
box-sizing: border-box; box-sizing: border-box;
box-shadow: 0 0 3rpx #666666; box-shadow: 0 0 3rpx #666666;
} }
.bottom-left > text:first-child { .bottom-left > text:first-child {
font-size: 28rpx; font-size: 28rpx;
text-decoration: line-through; text-decoration: line-through;
margin-right: 16rpx; margin-right: 16rpx;
} }
.bottom-left text:nth-child(2) { .bottom-left text:nth-child(2) {
font-size: 40rpx; font-size: 40rpx;
font-weight: bolder; font-weight: bolder;
color: #f45803; color: #f45803;
} }
.bottom-left text:nth-child(2) text { .bottom-left text:nth-child(2) text {
font-size: 32rpx; font-size: 32rpx;
} }
.bottom-right { .bottom-right {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.bottom-detail { .bottom-detail {
display: flex; display: flex;
} }
.bottom-btn { .bottom-btn {
position: relative; position: relative;
width: 240rpx; width: 240rpx;
...@@ -1782,7 +1747,6 @@ export default { ...@@ -1782,7 +1747,6 @@ export default {
background: $red; background: $red;
text-align: center; text-align: center;
} }
.bottom-btn text { .bottom-btn text {
position: absolute; position: absolute;
width: 100%; width: 100%;
......
...@@ -34,6 +34,6 @@ $red:#FC6703; ...@@ -34,6 +34,6 @@ $red:#FC6703;
$grey:#999; $grey:#999;
// 分割线颜色 // 分割线颜色
$divider:#DBDBDB; $divider:#f3f3f3;
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