You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
996 lines
26 KiB
996 lines
26 KiB
<template>
|
|
<view>
|
|
<!-- 地址 -->
|
|
<navigator url="../../pagesU/address/address?source=1" class="address-section">
|
|
<view class="order-content">
|
|
<text class="yticon icon-shouhuodizhi"></text>
|
|
<view class="cen" v-if="addressData">
|
|
<view class="top">
|
|
<text class="name">{{ addressData.name }}</text>
|
|
<text class="mobile">{{ addressData.phoneNumber }}</text>
|
|
</view>
|
|
<text class="address">{{ addressData.region }}-{{ addressData.detailAddress }}</text>
|
|
</view>
|
|
<view class="cen" v-else>
|
|
<text>请设置收货地址</text>
|
|
<!-- <view class="top">
|
|
<text class="name">{{ addressData.name }}</text>
|
|
<text class="mobile">{{ addressData.phoneNumber }}</text>
|
|
</view>
|
|
<text class="address">{{ addressData.province }}-{{ addressData.city }}-{{ addressData.region }}-{{ addressData.detailAddress }}</text> -->
|
|
</view>
|
|
<text class="yticon icon-you"></text>
|
|
</view>
|
|
|
|
<image class="a-bg"
|
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAAAFCAYAAAAaAWmiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Rjk3RjkzMjM2NzMxMTFFOUI4RkU4OEZGMDcxQzgzOEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Rjk3RjkzMjQ2NzMxMTFFOUI4RkU4OEZGMDcxQzgzOEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGOTdGOTMyMTY3MzExMUU5QjhGRTg4RkYwNzFDODM4RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGOTdGOTMyMjY3MzExMUU5QjhGRTg4RkYwNzFDODM4RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrEOZlQAAAiuSURBVHjazJp7bFvV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">
|
|
</image>
|
|
</navigator>
|
|
|
|
<view class="goods-section">
|
|
<!-- <image class="logo"
|
|
src="http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190807/QQ%E5%9B%BE%E7%89%8720190807191952.jpg">
|
|
</image>
|
|
<text class="name"> 共{{ cartPromotionItemList.length }}件商品</text>
|
|
<text class="name" v-if="groupActivity">团购-{{groupActivity.name}}</text> -->
|
|
<!-- 商品列表 -->
|
|
<view class="g-item" v-for="(item, index) in cartPromotionItemList" :key="index">
|
|
<image :src="item.productPic"></image>
|
|
<view class="right">
|
|
<text class="title clamp">{{ item.productName }}</text>
|
|
<text class="spec" v-if="item.productAttr">{{ item.productAttr }}</text>
|
|
<view class="price-box">
|
|
<text class="price">¥{{ item.price }}</text>
|
|
<text class="number">x {{ item.quantity }}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="hot-floor" v-if="item1.giftsList && item1.giftsList.length > 0"
|
|
v-for="(item1, index1) in basicGiftsList" :key="index1">
|
|
<view class="floor-img-box"> <text class="name">{{ item1.name }}</text></view>
|
|
|
|
<scroll-view class="floor-list" scroll-x>
|
|
<view class="scoll-wrapper">
|
|
<view v-for="(item, index) in item1.giftsList" :key="index" class="floor-item">
|
|
<image :src="item.pic" mode="aspectFill"></image>
|
|
<text class="title clamp">{{ item.name }}</text>
|
|
<text class="price" v-if="item.rule">¥{{ item.price }}</text>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
</view>
|
|
<!-- 优惠明细 -->
|
|
<view class="yt-list">
|
|
<view class="yt-list-cell b-b" v-if="couponList.length > 0" @click="toggleMask('show')">
|
|
<view class="cell-icon">券</view>
|
|
<text class="cell-tit clamp">优惠券</text>
|
|
<text class="cell-tip active">选择优惠券</text>
|
|
<text class="cell-more wanjia wanjia-gengduo-d"></text>
|
|
</view>
|
|
<view class="yt-list-cell b-b" v-if="couponList.length > 0">
|
|
<text class="cell-tit clamp">{{coupon.name}}</text>
|
|
<view class="cell-tip hb" v-if="coupon.minPoint">满{{coupon.minPoint}}减{{coupon.amount}}</view>
|
|
<text class="cell-tip disabled" v-if="!coupon">暂无可用优惠</text>
|
|
</view>
|
|
</view>
|
|
<!-- 金额明细 -->
|
|
<view class="yt-list">
|
|
<view class="yt-list-cell b-b">
|
|
<text class="cell-tit clamp">商品金额</text>
|
|
<text class="cell-tip">¥{{ calcAmount.totalAmount }}</text>
|
|
</view>
|
|
<!-- <view class="yt-list-cell b-b" v-if="groupActivity">
|
|
<text class="cell-tit clamp">活动金额</text>
|
|
<text class="cell-tip">¥{{ groupActivity.price }}</text>
|
|
</view>
|
|
<view class="yt-list-cell b-b" v-if="calcAmount.promotionAmount>0">
|
|
<text class="cell-tit clamp">优惠金额</text>
|
|
<text class="cell-tip red">-¥{{ calcAmount.promotionAmount }}</text>
|
|
</view> -->
|
|
<view class="yt-list-cell b-b" v-if="coupon.amount>0">
|
|
<text class="cell-tit clamp">优惠券抵扣</text>
|
|
<text class="cell-tip red">-¥{{ coupon.amount }}</text>
|
|
</view>
|
|
<!-- <view class="yt-list-cell b-b" v-if="memberIntegration>0">
|
|
<text class="cell-tit clamp">积分抵扣</text>
|
|
<text class="cell-tip red">-¥{{ memberIntegration }}</text>
|
|
</view>-->
|
|
<view class="yt-list-cell b-b">
|
|
<text class="cell-tit clamp">运费</text>
|
|
<text class="cell-tip">{{calcAmount.freightAmount}}</text>
|
|
</view>
|
|
<view class="yt-list-cell desc-cell">
|
|
<text class="cell-tit clamp">备注</text>
|
|
<input class="desc" type="text" v-model="desc" placeholder="请填写备注信息" placeholder-class="placeholder" />
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 底部 -->
|
|
<view class="footer">
|
|
<view class="price-content">
|
|
<text>实付款</text>
|
|
<text class="price-tip">¥</text>
|
|
<text class="price">{{ (calcAmount.payAmount-coupon.amount) | numFilter}}</text>
|
|
</view>
|
|
<text class="submit" @click="submit">提交订单</text>
|
|
</view>
|
|
|
|
<!-- 优惠券面板 -->
|
|
<view class="mask" :class="maskState === 0 ? 'none' : maskState === 1 ? 'show' : ''" @click="toggleMask">
|
|
<view class="mask-content" @click.stop.prevent="stopPrevent">
|
|
<!-- 优惠券页面,仿mt -->
|
|
<view class="coupon-item" v-if="couponList.length > 0" v-for="(item, index) in couponList" :key="index">
|
|
<view class="con" @click="selectCoupon(item)">
|
|
<view class="left">
|
|
<text class="title">{{ item.coupon.name }}</text>
|
|
<text class="time">有效期至{{item.coupon.endTime | formatCreateTime}}</text>
|
|
</view>
|
|
<view class="right">
|
|
<text class="price">{{ item.coupon.amount }}</text>
|
|
<text>满{{item.coupon.minPoint}}可用</text>
|
|
</view>
|
|
|
|
<view class="circle l"></view>
|
|
<view class="circle r"></view>
|
|
</view>
|
|
<text class="tips">限新用户使用</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue';
|
|
import Api from '@/common/api';
|
|
import {
|
|
mapState
|
|
} from 'vuex';
|
|
import {
|
|
formatDate
|
|
} from '@/common/date';
|
|
|
|
export default {
|
|
components: {
|
|
mallplusCopyright
|
|
},
|
|
data() {
|
|
return {
|
|
maskState: 0, //优惠券面板显示状态
|
|
desc: '', //备注
|
|
payType: 1, //1微信 2支付宝
|
|
type: 1,
|
|
groupType: '',
|
|
/* memberIntegration:0, */
|
|
groupActivityId: '',
|
|
basicGiftsVar: '',
|
|
skillId: 0,
|
|
goodsId: 0,
|
|
skuId: 0,
|
|
mgId: 0,
|
|
cartId: '',
|
|
cartIds: '',
|
|
addressId: '',
|
|
couponId: '',
|
|
memberCouponId: '',
|
|
coupon: {
|
|
amount: 0,
|
|
coupon: {
|
|
amount: 0
|
|
}
|
|
},
|
|
groupActivity: null,
|
|
memberReceiveAddressList: [],
|
|
basicGiftsList: [],
|
|
cartPromotionItemList: [],
|
|
calcAmount: {
|
|
totalAmount: 0,
|
|
freightAmount: 0,
|
|
promotionAmount: 0,
|
|
payAmount: 0
|
|
},
|
|
couponList: [],
|
|
addressData: {
|
|
name: null,
|
|
phoneNumber: '',
|
|
detailAddress: '',
|
|
region: ''
|
|
}
|
|
};
|
|
},
|
|
async onLoad(opt) {
|
|
let option = JSON.parse(opt.dataJson);
|
|
console.log(option)
|
|
this.skuId = option.skuId == undefined ? '' : option.skuId;
|
|
this.goodsId = option.goodsId;
|
|
|
|
let data;
|
|
this.type = option.type;
|
|
if (option.groupActivityId) { // 团购
|
|
let params = {
|
|
groupId: option.groupActivityId
|
|
};
|
|
data = await Api.apiCall('get', Api.order.preGroupActivityOrder, params);
|
|
this.groupActivityId = option.groupActivityId;
|
|
this.groupActivity = data.groupActivity;
|
|
this.type = 1;
|
|
} else {
|
|
if (option.groupType) { // 拼团
|
|
this.groupType = option.groupType;
|
|
this.goodsId = option.id;
|
|
this.mgId = option.mgid;
|
|
|
|
this.groupId = option.groupId;
|
|
if (this.skuId) {
|
|
console.log(option)
|
|
let params = {
|
|
orderType: 2,
|
|
groupId: option.groupId,
|
|
goodsId: option.id,
|
|
skuId: this.skuId
|
|
};
|
|
data = await Api.apiCall('post', Api.order.addGroup, params);
|
|
console.log("url1", Api.order.addGroup)
|
|
} else {
|
|
let params = {
|
|
orderType: 2,
|
|
groupId: option.groupId,
|
|
goodsId: option.id
|
|
};
|
|
data = await Api.apiCall('post', Api.order.addGroup, params);
|
|
console.log("url2", Api.order.addGroup)
|
|
}
|
|
} else {
|
|
if (option.type == 1) { // 详情
|
|
this.cartId = option.id;
|
|
let params = {
|
|
goodsId: option.goodsId,
|
|
skuId: this.skuId,
|
|
type: option.type
|
|
};
|
|
data = await Api.apiCall('get', Api.order.preOrder, params);
|
|
console.log("url3", Api.order.preOrder)
|
|
} else if (option.type == 2) { // 购物车
|
|
let params = {
|
|
cartIds: option.cartIds,
|
|
type: option.type
|
|
};
|
|
data = await Api.apiCall('get', Api.order.preOrder, params);
|
|
this.cartIds = option.cartIds;
|
|
console.log("url4", Api.order.preOrder)
|
|
} else if (option.type == 6) { // 秒杀
|
|
let params = {
|
|
skillId: option.skillId,
|
|
type: option.type
|
|
};
|
|
data = await Api.apiCall('get', Api.order.preOrder, params);
|
|
this.skillId = option.skillId;
|
|
console.log("url5", Api.order.preOrder)
|
|
}
|
|
}
|
|
|
|
}
|
|
// if (!data || !data.cartPromotionItemList){
|
|
// uni.switchTab({
|
|
// url: '/pages/index/index'
|
|
// });
|
|
// }
|
|
this.cartPromotionItemList = data.cartPromotionItemList
|
|
console.log('cartPromotionItemList' + this.cartPromotionItemList);
|
|
/* this.memberIntegration=data.memberIntegration; */
|
|
this.basicGiftsList = data.basicGiftsList;
|
|
|
|
if (this.basicGiftsList) {
|
|
let basicGiftsVar = '';
|
|
let basicGiftsVar1 = '';
|
|
this.basicGiftsList.forEach(item => {
|
|
basicGiftsVar1 = basicGiftsVar1 + item.id + ':';
|
|
console.log('1=' + item.giftsList);
|
|
if (item.giftsList) {
|
|
item.giftsList.forEach(item1 => {
|
|
basicGiftsVar1 = basicGiftsVar1 + item1.id + ',';
|
|
});
|
|
}
|
|
basicGiftsVar = basicGiftsVar + basicGiftsVar1.substr(0, basicGiftsVar1.length - 1) + '@';
|
|
basicGiftsVar1 = '';
|
|
});
|
|
this.basicGiftsVar = basicGiftsVar.substr(0, basicGiftsVar.length - 1);
|
|
console.log(this.basicGiftsVar);
|
|
}
|
|
/* this.cartPromotionItemList = data.cartPromotionItemList; */
|
|
this.calcAmount = data.calcAmount;
|
|
this.addressData = data.address;
|
|
if (this.addressData) {
|
|
this.addressId = this.addressData.id;
|
|
}
|
|
console.log("优惠券", data.couponHistoryDetailList);
|
|
this.couponList = data.couponHistoryDetailList;
|
|
|
|
if (this.couponList.length > 0) {
|
|
|
|
this.coupon = this.couponList[0].coupon
|
|
this.couponId = this.couponList[0].couponId;
|
|
this.memberCouponId = this.couponList[0].id;
|
|
|
|
}
|
|
|
|
this.memberReceiveAddressList = data.memberReceiveAddressListaddress;
|
|
|
|
},
|
|
computed: {
|
|
...mapState(['hasLogin', 'userInfo'])
|
|
},
|
|
filters: {
|
|
formatCreateTime(time) {
|
|
let date = new Date(time);
|
|
return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
|
|
},
|
|
numFilter(value) {
|
|
// 截取当前数据到小数点后两位
|
|
let realVal = parseFloat(value).toFixed(2)
|
|
return realVal
|
|
}
|
|
},
|
|
methods: {
|
|
getSource() {
|
|
let source = Api.source;
|
|
return source;
|
|
},
|
|
selectCoupon(item) {
|
|
this.coupon = item.coupon;
|
|
this.couponId = item.couponId;
|
|
this.memberCouponId = item.id;
|
|
console.log(this.coupon);
|
|
this.toggleMask();
|
|
},
|
|
//显示优惠券面板
|
|
toggleMask(type) {
|
|
let timer = type === 'show' ? 10 : 300;
|
|
let state = type === 'show' ? 1 : 0;
|
|
this.maskState = 2;
|
|
setTimeout(() => {
|
|
this.maskState = state;
|
|
}, timer);
|
|
},
|
|
numberChange(data) {
|
|
this.number = data.number;
|
|
},
|
|
changePayType(type) {
|
|
this.payType = type;
|
|
},
|
|
async submit() {
|
|
console.log('submit')
|
|
let data;
|
|
if (!this.addressId) {
|
|
this.$api.msg('请选择收货地址');
|
|
return;
|
|
}
|
|
let params = {};
|
|
|
|
// 拼团
|
|
if (this.groupType) {
|
|
if (!this.mgId) {
|
|
this.mgId = 1;
|
|
}
|
|
|
|
params = {
|
|
mgId: this.mgId,
|
|
groupType: this.groupType,
|
|
type: 1,
|
|
orderType: 2,
|
|
skuId: this.skuId,
|
|
goodsId: this.goodsId,
|
|
groupId: this.groupId,
|
|
addressId: this.addressId,
|
|
couponId: this.couponId,
|
|
memberCouponId: this.memberCouponId,
|
|
content: this.desc
|
|
};
|
|
params.source = this.getSource();
|
|
data = await Api.apiCall('post', Api.order.acceptGroup, params);
|
|
} else {
|
|
// detail
|
|
if (this.type == 1) {
|
|
params = {
|
|
basicGiftsVar: this.basicGiftsVar,
|
|
orderType: 1,
|
|
type: 1,
|
|
goodsId: this.goodsId,
|
|
skuId: this.skuId,
|
|
addressId: this.addressId,
|
|
couponId: this.couponId,
|
|
memberCouponId: this.memberCouponId,
|
|
content: this.desc
|
|
};
|
|
if (this.groupActivityId) {
|
|
params = {
|
|
groupActivityId: this.groupActivityId,
|
|
orderType: 3,
|
|
type: 1,
|
|
goodsId: this.goodsId,
|
|
skuId: this.skuId,
|
|
addressId: this.addressId,
|
|
couponId: this.couponId,
|
|
memberCouponId: this.memberCouponId,
|
|
content: this.desc
|
|
};
|
|
}
|
|
params.source = this.getSource();
|
|
|
|
console.log('params',params)
|
|
|
|
data = await Api.apiCall('post', Api.order.bookOrder, params);
|
|
}
|
|
// 购物车
|
|
if (this.type == 2) {
|
|
params = {
|
|
orderType: 1,
|
|
type: 2,
|
|
cartIds: this.cartIds,
|
|
addressId: this.addressId,
|
|
couponId: this.couponId,
|
|
content: this.desc
|
|
};
|
|
params.source = this.getSource();
|
|
data = await Api.apiCall('post', Api.order.bookOrder, params);
|
|
}
|
|
|
|
// 秒杀
|
|
if (this.type == 6) {
|
|
params = {
|
|
type: 6,
|
|
skillId: this.skillId,
|
|
addressId: this.addressId,
|
|
couponId: this.couponId,
|
|
content: this.desc,
|
|
orderType: 6
|
|
};
|
|
params.source = this.getSource();
|
|
data = await Api.apiCall('post', Api.order.bookOrder, params);
|
|
}
|
|
}
|
|
|
|
if (data && data.order) {
|
|
let id = data.order.id;
|
|
// let url = `/pages/money/pay?id=${id}`;
|
|
let url = '/pages/order/payment/index?order_id=' + data.order.id + '&type=1';
|
|
|
|
uni.redirectTo({
|
|
url: url
|
|
});
|
|
} else {
|
|
this.$api.msg(data);
|
|
}
|
|
},
|
|
stopPrevent() {}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
page {
|
|
background: $page-color-base;
|
|
padding-bottom: 100upx;
|
|
}
|
|
|
|
.address-section {
|
|
padding: 30upx 0;
|
|
background: #fff;
|
|
position: relative;
|
|
|
|
.order-content {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.icon-shouhuodizhi {
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 90upx;
|
|
color: #888;
|
|
font-size: 44upx;
|
|
}
|
|
|
|
.cen {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
font-size: 28upx;
|
|
color: $font-color-dark;
|
|
}
|
|
|
|
.name {
|
|
font-size: 34upx;
|
|
margin-right: 24upx;
|
|
}
|
|
|
|
.address {
|
|
margin-top: 16upx;
|
|
margin-right: 20upx;
|
|
color: $font-color-light;
|
|
}
|
|
|
|
.icon-you {
|
|
font-size: 32upx;
|
|
color: $font-color-light;
|
|
margin-right: 30upx;
|
|
}
|
|
|
|
.a-bg {
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: 0;
|
|
display: block;
|
|
width: 100%;
|
|
height: 5upx;
|
|
}
|
|
}
|
|
|
|
.goods-section {
|
|
margin-top: 16upx;
|
|
background: #fff;
|
|
padding-bottom: 1px;
|
|
|
|
.g-header {
|
|
display: flex;
|
|
align-items: center;
|
|
height: 84upx;
|
|
padding: 0 30upx;
|
|
position: relative;
|
|
}
|
|
|
|
.logo {
|
|
display: block;
|
|
width: 50upx;
|
|
height: 50upx;
|
|
border-radius: 100px;
|
|
}
|
|
|
|
.name {
|
|
font-size: 30upx;
|
|
color: $font-color-base;
|
|
margin-left: 24upx;
|
|
}
|
|
|
|
.g-item {
|
|
display: flex;
|
|
padding-top: 15px;
|
|
margin: 20upx 30upx;
|
|
|
|
image {
|
|
flex-shrink: 0;
|
|
display: block;
|
|
width: 140upx;
|
|
height: 140upx;
|
|
border-radius: 4upx;
|
|
}
|
|
|
|
.right {
|
|
flex: 1;
|
|
padding-left: 24upx;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.title {
|
|
font-size: 30upx;
|
|
color: $font-color-dark;
|
|
}
|
|
|
|
.spec {
|
|
font-size: 26upx;
|
|
color: $font-color-light;
|
|
}
|
|
|
|
.price-box {
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 32upx;
|
|
color: $font-color-dark;
|
|
padding-top: 25upx;
|
|
|
|
.price {
|
|
margin-bottom: 4upx;
|
|
}
|
|
|
|
.number {
|
|
font-size: 26upx;
|
|
color: $font-color-base;
|
|
margin-left: 30upx;
|
|
}
|
|
}
|
|
|
|
.step-box {
|
|
position: relative;
|
|
}
|
|
}
|
|
}
|
|
|
|
.yt-list {
|
|
margin-top: 16upx;
|
|
background: #fff;
|
|
}
|
|
|
|
.yt-list-cell {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 10upx 30upx 10upx 40upx;
|
|
line-height: 70upx;
|
|
position: relative;
|
|
|
|
&.cell-hover {
|
|
background: #fafafa;
|
|
}
|
|
|
|
&.b-b:after {
|
|
left: 30upx;
|
|
}
|
|
|
|
.cell-icon {
|
|
height: 32upx;
|
|
width: 32upx;
|
|
font-size: 22upx;
|
|
color: #fff;
|
|
text-align: center;
|
|
line-height: 32upx;
|
|
background: #f85e52;
|
|
border-radius: 4upx;
|
|
margin-right: 12upx;
|
|
|
|
&.hb {
|
|
background: #ffaa0e;
|
|
}
|
|
|
|
&.lpk {
|
|
background: #3ab54a;
|
|
}
|
|
}
|
|
|
|
.cell-more {
|
|
align-self: center;
|
|
font-size: 24upx;
|
|
color: $font-color-light;
|
|
margin-left: 8upx;
|
|
margin-right: -10upx;
|
|
}
|
|
|
|
.cell-tit {
|
|
flex: 1;
|
|
font-size: 26upx;
|
|
color: $font-color-light;
|
|
margin-right: 10upx;
|
|
}
|
|
|
|
.cell-tip {
|
|
font-size: 26upx;
|
|
color: $font-color-dark;
|
|
|
|
&.disabled {
|
|
color: $font-color-light;
|
|
}
|
|
|
|
&.active {
|
|
color: $base-color;
|
|
}
|
|
|
|
&.red {
|
|
color: $base-color;
|
|
}
|
|
}
|
|
|
|
&.desc-cell {
|
|
.cell-tit {
|
|
max-width: 90upx;
|
|
}
|
|
}
|
|
|
|
.desc {
|
|
flex: 1;
|
|
font-size: $font-base;
|
|
color: $font-color-dark;
|
|
}
|
|
}
|
|
|
|
/* 支付列表 */
|
|
.pay-list {
|
|
padding-left: 40upx;
|
|
margin-top: 16upx;
|
|
background: #fff;
|
|
|
|
.pay-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding-right: 20upx;
|
|
line-height: 1;
|
|
height: 110upx;
|
|
position: relative;
|
|
}
|
|
|
|
.icon-weixinzhifu {
|
|
width: 80upx;
|
|
font-size: 40upx;
|
|
color: #6bcc03;
|
|
}
|
|
|
|
.icon-alipay {
|
|
width: 80upx;
|
|
font-size: 40upx;
|
|
color: #06b4fd;
|
|
}
|
|
|
|
.icon-xuanzhong2 {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 60upx;
|
|
height: 60upx;
|
|
font-size: 40upx;
|
|
color: $base-color;
|
|
}
|
|
|
|
.tit {
|
|
font-size: 32upx;
|
|
color: $font-color-dark;
|
|
flex: 1;
|
|
}
|
|
}
|
|
|
|
.footer {
|
|
position: fixed;
|
|
left: 0;
|
|
bottom: 0;
|
|
z-index: 995;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
height: 90upx;
|
|
justify-content: space-between;
|
|
font-size: 30upx;
|
|
background-color: #fff;
|
|
z-index: 998;
|
|
color: $font-color-base;
|
|
box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
|
|
|
|
.price-content {
|
|
padding-left: 30upx;
|
|
}
|
|
|
|
.price-tip {
|
|
color: $base-color;
|
|
margin-left: 8upx;
|
|
}
|
|
|
|
.price {
|
|
font-size: 36upx;
|
|
color: $base-color;
|
|
}
|
|
|
|
.submit {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 280upx;
|
|
height: 100%;
|
|
color: #fff;
|
|
font-size: 32upx;
|
|
background-color: $base-color;
|
|
}
|
|
}
|
|
|
|
/* 优惠券面板 */
|
|
.mask {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
position: fixed;
|
|
left: 0;
|
|
top: var(--window-top);
|
|
bottom: 0;
|
|
width: 100%;
|
|
background: rgba(0, 0, 0, 0);
|
|
z-index: 9995;
|
|
transition: 0.3s;
|
|
|
|
.mask-content {
|
|
width: 100%;
|
|
min-height: 30vh;
|
|
max-height: 70vh;
|
|
background: #f3f3f3;
|
|
transform: translateY(100%);
|
|
transition: 0.3s;
|
|
overflow-y: scroll;
|
|
}
|
|
|
|
&.none {
|
|
display: none;
|
|
}
|
|
|
|
&.show {
|
|
background: rgba(0, 0, 0, 0.4);
|
|
|
|
.mask-content {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 优惠券列表 */
|
|
.coupon-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin: 20upx 24upx;
|
|
background: #fff;
|
|
|
|
.con {
|
|
display: flex;
|
|
align-items: center;
|
|
position: relative;
|
|
height: 120upx;
|
|
padding: 0 30upx;
|
|
|
|
&:after {
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: 0;
|
|
content: '';
|
|
width: 100%;
|
|
height: 0;
|
|
border-bottom: 1px dashed #f3f3f3;
|
|
transform: scaleY(50%);
|
|
}
|
|
}
|
|
|
|
.left {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
flex: 1;
|
|
overflow: hidden;
|
|
height: 100upx;
|
|
}
|
|
|
|
.title {
|
|
font-size: 32upx;
|
|
color: $font-color-dark;
|
|
margin-bottom: 10upx;
|
|
}
|
|
|
|
.time {
|
|
font-size: 24upx;
|
|
color: $font-color-light;
|
|
}
|
|
|
|
.right {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
font-size: 26upx;
|
|
color: $font-color-base;
|
|
height: 100upx;
|
|
}
|
|
|
|
.price {
|
|
font-size: 44upx;
|
|
color: $base-color;
|
|
|
|
&:before {
|
|
content: '¥';
|
|
font-size: 34upx;
|
|
}
|
|
}
|
|
|
|
.tips {
|
|
font-size: 24upx;
|
|
color: $font-color-light;
|
|
line-height: 60upx;
|
|
padding-left: 30upx;
|
|
}
|
|
|
|
.circle {
|
|
position: absolute;
|
|
left: -6upx;
|
|
bottom: -10upx;
|
|
z-index: 10;
|
|
width: 20upx;
|
|
height: 20upx;
|
|
background: #f3f3f3;
|
|
border-radius: 100px;
|
|
|
|
&.r {
|
|
left: auto;
|
|
right: -6upx;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 分类推荐楼层 */
|
|
.hot-floor {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
margin-bottom: 20upx;
|
|
|
|
.floor-img-box {
|
|
width: 100%;
|
|
height: 220upx;
|
|
position: relative;
|
|
display: flex;
|
|
|
|
&:after {
|
|
padding: 10 30upx;
|
|
content: '';
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(rgba(255, 255, 255, 0.06) 30%, #f8f8f8);
|
|
}
|
|
}
|
|
|
|
.name {
|
|
font-size: 30upx;
|
|
color: $font-color-base;
|
|
margin-left: 24upx;
|
|
}
|
|
|
|
.floor-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.floor-list {
|
|
white-space: nowrap;
|
|
padding: 20upx;
|
|
padding-right: 50upx;
|
|
border-radius: 6upx;
|
|
margin-top: -140upx;
|
|
margin-left: 30upx;
|
|
background: #fff;
|
|
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.scoll-wrapper {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.floor-item {
|
|
width: 180upx;
|
|
margin-right: 20upx;
|
|
font-size: $font-sm + 2upx;
|
|
color: $font-color-dark;
|
|
line-height: 1.8;
|
|
|
|
image {
|
|
width: 180upx;
|
|
height: 180upx;
|
|
border-radius: 6upx;
|
|
}
|
|
|
|
.price {
|
|
color: $uni-color-primary;
|
|
}
|
|
}
|
|
|
|
.more {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
flex-shrink: 0;
|
|
width: 180upx;
|
|
height: 180upx;
|
|
border-radius: 6upx;
|
|
background: #f3f3f3;
|
|
font-size: $font-base;
|
|
color: $font-color-light;
|
|
|
|
text:first-child {
|
|
margin-bottom: 4upx;
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|