|
|
@@ -1,231 +1,621 @@
|
|
|
<template>
|
|
|
<!-- 旅游 -->
|
|
|
<div class="tourism-box">
|
|
|
- <div class="fs-42 fw-400 text-align-center mt-30 mb-18 wow animate__animated animate__bounceInUp">{{$t('home2.text1')}}</div>
|
|
|
- <div class="justify-content box-sizing-border-box plr-220 row-wrap">
|
|
|
- <div class="class-item text-align-center fs-14 fw-500 box-sizing-border-box hand-cursor "
|
|
|
- v-for="(item,i) in classList" :key="i" :class="id==item.id?'s-class-item':''"
|
|
|
- @click="selectType(item,i)">{{lang == 'cn'?item.class_name:item.class_name_en}}</div>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="box-sizing-border-box plr-220 ">
|
|
|
- <div class="justify-content-space-between goods-box box-sizing-border-box mt-16"
|
|
|
- v-for="(item,i) in goodsList" :key="i">
|
|
|
- <img class="item-img" :src="item.cover_img" alt="">
|
|
|
- <div class="flex-1 box-sizing-border-box ptb-8">
|
|
|
- <div class="fs-24 fw-400 mb-10">{{lang == 'cn'?item.goods_name:item.goods_name_en}}</div>
|
|
|
- <div class="fs-18 fw-400 lh-26 mb-12">
|
|
|
- {{lang == 'cn'?item.contents:item.contents_en}}
|
|
|
+ <img v-if="current == 'goods'" src="@/assets/img/back.png" class="back-img" alt="" @click="handleBack">
|
|
|
+
|
|
|
+ <div class="fs-42 fw-400 text-align-center mt-40 mb-40 fc-f wow animate__animated animate__bounceInUp">
|
|
|
+ {{ $t('home2.text11') }}</div>
|
|
|
+
|
|
|
+ <div v-if="current == 'list'" class="box-sizing-border-box">
|
|
|
+ <div class="goods-list-container">
|
|
|
+ <div class="item" v-for="(item, i) in goodsList" :key="i">
|
|
|
+ <div class="head">
|
|
|
+ <img class="vip-img" src="@/assets/img/vip.png" alt="">
|
|
|
+ <div class="text">{{lang == 'cn'?item.goods_name:item.goods_name_en}}</div>
|
|
|
+ <img class="plane-img" src="@/assets/img/plane.png" alt="">
|
|
|
</div>
|
|
|
- <div class="align-items-center">
|
|
|
- <div class="b-buttom hand-cursor">${{item.price}}</div>
|
|
|
- <div class="b-buttom hand-cursor" @click="pay(item)">Book ticket</div>
|
|
|
+ <div class="content">
|
|
|
+ <img class="goods-img" :src="item.cover_img" alt="">
|
|
|
+ <div class="info">
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text3') }}</div>
|
|
|
+ <div class="val">{{ item.min_num }}USDT~{{ item.man_num }}USDT</div>
|
|
|
+ </div>
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text4') }}</div>
|
|
|
+ <div class="val">{{ $t('other.text8') }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="userInfo.vip_id == item.id" class="operate" @click="handleGoodsItem(item)">{{ $t('other.text5') }}</div>
|
|
|
+ <div v-if="userInfo.vip_id != item.id" class="operate disabled">{{ $t('other.text5') }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="justify-right mt-30 p-b-33">
|
|
|
- <el-pagination
|
|
|
- class="pagination-data"
|
|
|
- background
|
|
|
- layout="prev, pager, next"
|
|
|
- :page-size="20"
|
|
|
- :total="total" :current-page="page" @current-change="currentChange">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
+ <div class="justify-right mt-30 p-b-33">
|
|
|
+ <el-pagination class="pagination-data" background layout="prev, pager, next" :page-size="20" :total="total"
|
|
|
+ :current-page="page" @current-change="currentChange">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 单个商品区域 -->
|
|
|
+ <div v-if="current == 'goods'" class="current-goods-container box-sizing-border-box">
|
|
|
+ <div class="item one">
|
|
|
+ <div class="head">
|
|
|
+ <img class="vip-img" src="@/assets/img/vip.png" alt="">
|
|
|
+ <div class="text">{{lang == 'cn'?item.goods_name:item.goods_name_en}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text6') }}</div>
|
|
|
+ <div class="money">
|
|
|
+ <span>{{(userInfo.money*1).toFixed(6)||"0.000000"}}</span>
|
|
|
+ <span class="unit">USDT</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text7') }}</div>
|
|
|
+ <div class="money">
|
|
|
+ <span>{{(userInfo.day_yield*1).toFixed(6)}}</span>
|
|
|
+ <span class="unit">USDT</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item two">
|
|
|
+ <div class="head">
|
|
|
+ <img class="vip-img" src="@/assets/img/vip.png" alt="">
|
|
|
+ <div class="text">{{lang == 'cn'?item.goods_name:item.goods_name_en}}</div>
|
|
|
+ <img class="plane-img" src="@/assets/img/plane.png" alt="">
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <img class="goods-img" src="@/assets/img/home/2-1.png" alt="">
|
|
|
+ <div class="info">
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text3') }}</div>
|
|
|
+ <div class="val">{{ item.min_num }}USDT~{{ item.man_num }}USDT</div>
|
|
|
+ </div>
|
|
|
+ <div class="i">
|
|
|
+ <div class="label">{{ $t('other.text4') }}</div>
|
|
|
+ <div class="val">{{lang == 'cn'?item.contents:item.contents_en}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="tips">{{ $t('other.text8') }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
+ <!-- 时间、开始抢票 -->
|
|
|
+ <div class="time-or-buy">
|
|
|
+ <div class="time">{{userInfo.order_num}} / {{item.order_num}}</div>
|
|
|
+ <div class="buy" @click="pay">{{ $t('other.text9') }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
- <order-sett ref="orderSett"></order-sett>
|
|
|
+ <order-detail ref="orderDetail"></order-detail>
|
|
|
+ <order-sett ref="orderSett"></order-sett>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import tools from '@/utils/tools';
|
|
|
- import {
|
|
|
- ordercreat
|
|
|
- } from '@/api/order.js';
|
|
|
- import {
|
|
|
- getClass,
|
|
|
- getList
|
|
|
- } from '@/api/goods.js';
|
|
|
- import OrderSett from '@/views/Forestage/Tourism/order-sett.vue'
|
|
|
- export default {
|
|
|
- components: { OrderSett },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- // backgroundImg: require('@/assets/img/home/2-2.png'),
|
|
|
- id: 1,
|
|
|
- classList: [],
|
|
|
- goodsList: [],
|
|
|
- isAJAX: false,
|
|
|
- busy: false,
|
|
|
- lang:'en',
|
|
|
- page:1,
|
|
|
- total:0
|
|
|
+import tools from '@/utils/tools';
|
|
|
+import {
|
|
|
+ ordercreat
|
|
|
+} from '@/api/order.js';
|
|
|
+import {
|
|
|
+ getClass,
|
|
|
+ getList, getVipGoodsList
|
|
|
+} from '@/api/goods.js'
|
|
|
+import OrderSett from '@/views/Forestage/Tourism/order-sett.vue'
|
|
|
+import OrderDetail from '@/views/Forestage/Tourism/order-detail.vue'
|
|
|
+import { userInfo } from '@/api/member'
|
|
|
+export default {
|
|
|
+ components: { OrderSett, OrderDetail },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // backgroundImg: require('@/assets/img/home/2-2.png'),
|
|
|
+ id: 1,
|
|
|
+ classList: [],
|
|
|
+ goodsList: [],
|
|
|
+ isAJAX: false,
|
|
|
+ busy: false,
|
|
|
+ lang: 'en',
|
|
|
+ page: 1,
|
|
|
+ total: 0,
|
|
|
+ current: 'list',
|
|
|
+ item:{},
|
|
|
+ userInfo:{
|
|
|
+ vip_id:0,
|
|
|
+ order_num:0,
|
|
|
+ is_opne:0,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.lang = tools.getLang()
|
|
|
+
|
|
|
+ setInterval(() => {
|
|
|
+ this.lang = tools.getLang()
|
|
|
+
|
|
|
+ }, 500); // 每隔1秒检查一次
|
|
|
+ this.getlist();
|
|
|
+ this.getInfo();
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getInfo(){
|
|
|
+ userInfo().then((res)=>{
|
|
|
+ if(res.code == 1){
|
|
|
+ this.userInfo = res.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ loadMore() {
|
|
|
+ console.log('loadMore---------------------')
|
|
|
+ if (this.busy) return; // 防止重复加载数据
|
|
|
+ this.busy = true; // 设置加载状态为忙碌状态
|
|
|
+ // 模拟从服务器获取数据(替换为你的实际数据获取逻辑)
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getlist()
|
|
|
+ this.busy = false; // 设置加载状态为非忙碌状态,允许再次触发加载更多事件
|
|
|
+ }, 1000); // 模拟网络延迟时间,实际应用中应为异步请求的响应时间
|
|
|
+ },
|
|
|
+ getClass() {
|
|
|
+ getClass().then((res) => {
|
|
|
+ if (res.code == 1) {
|
|
|
+ this.classList = res.data;
|
|
|
+ this.id = this.classList[0].id;
|
|
|
+ this.getlist();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getlist() {
|
|
|
+ getVipGoodsList({
|
|
|
+ class_id: this.id,
|
|
|
+ page: this.page
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 1) {
|
|
|
+ this.total = res.data.total
|
|
|
+ this.goodsList = res.data.list;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ selectType(item, i) {
|
|
|
+ if (this.id != item.id) {
|
|
|
+ this.id = item.id
|
|
|
+ this.getlist();
|
|
|
}
|
|
|
},
|
|
|
- created() {
|
|
|
|
|
|
+ currentChange(val) {
|
|
|
+ this.page = val;
|
|
|
+ this.getlist();
|
|
|
},
|
|
|
- mounted() {
|
|
|
- this.lang = localStorage.getItem('lang')||'en'
|
|
|
-
|
|
|
- setInterval(() => {
|
|
|
- this.lang = localStorage.getItem('lang')||'en'
|
|
|
-
|
|
|
- }, 500); // 每隔1秒检查一次
|
|
|
- this.getClass();
|
|
|
|
|
|
+ handleGoodsItem(item) {
|
|
|
+ if(this.userInfo.is_opne!==1){
|
|
|
+ tools.error(this.lang ==='en'?'Please apply for ticket grabbing permission from the service':'请向服务申请抢票权限')
|
|
|
+ this.getInfo();
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(this.userInfo.vip_id!==item.id){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ this.item=item
|
|
|
+ this.current = 'goods'
|
|
|
},
|
|
|
- methods: {
|
|
|
- loadMore() {
|
|
|
- console.log('loadMore---------------------')
|
|
|
- if (this.busy) return; // 防止重复加载数据
|
|
|
- this.busy = true; // 设置加载状态为忙碌状态
|
|
|
- // 模拟从服务器获取数据(替换为你的实际数据获取逻辑)
|
|
|
- setTimeout(() => {
|
|
|
- this.getlist()
|
|
|
- this.busy = false; // 设置加载状态为非忙碌状态,允许再次触发加载更多事件
|
|
|
- }, 1000); // 模拟网络延迟时间,实际应用中应为异步请求的响应时间
|
|
|
- },
|
|
|
- getClass() {
|
|
|
- getClass().then((res) => {
|
|
|
- if (res.code == 1) {
|
|
|
- this.classList = res.data;
|
|
|
- this.id = this.classList[0].id;
|
|
|
- this.getlist();
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getlist() {
|
|
|
- getList({
|
|
|
- class_id: this.id,
|
|
|
- page:this.page
|
|
|
+
|
|
|
+ pay(item) {
|
|
|
+ let token = localStorage.getItem('userToken')
|
|
|
+ if (token) {
|
|
|
+ if (this.isAJAX) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // this.isAJAX = true;
|
|
|
+ ordercreat({
|
|
|
+ goods_id: item.id
|
|
|
}).then((res) => {
|
|
|
if (res.code == 1) {
|
|
|
- this.total = res.data.total
|
|
|
- this.goodsList = res.data.list;
|
|
|
+ this.isAJAX = false;
|
|
|
+ // tools.success(res.msg)
|
|
|
+ this.$refs.orderSett.setOpen(true)
|
|
|
+ this.getInfo();
|
|
|
+ } else {
|
|
|
+ this.isAJAX = false;
|
|
|
+ tools.error(res.msg)
|
|
|
}
|
|
|
})
|
|
|
- },
|
|
|
- selectType(item, i) {
|
|
|
- if (this.id != item.id) {
|
|
|
- this.id = item.id
|
|
|
- this.getlist();
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- currentChange(val){
|
|
|
- this.page = val;
|
|
|
- this.getlist();
|
|
|
- },
|
|
|
-
|
|
|
- pay(item) {
|
|
|
- let token= localStorage.getItem('userToken')
|
|
|
- if (token){
|
|
|
- if(this.isAJAX){
|
|
|
- return
|
|
|
- }
|
|
|
- this.isAJAX = true;
|
|
|
- ordercreat({
|
|
|
- goods_id: item.id
|
|
|
- }).then((res) => {
|
|
|
- if(res.code == 1){
|
|
|
- this.isAJAX = false;
|
|
|
- // tools.success(res.msg)
|
|
|
- this.$refs.orderSett.setOpen(true)
|
|
|
- }else{
|
|
|
- this.isAJAX = false;
|
|
|
- tools.error(res.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- }else {
|
|
|
- this.$router.push({ path: '/login' })
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ this.$router.push({ path: '/login' })
|
|
|
+ }
|
|
|
|
|
|
- },
|
|
|
},
|
|
|
- }
|
|
|
+
|
|
|
+ handleBack() {
|
|
|
+ this.current = 'list'
|
|
|
+ }
|
|
|
+ },
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
+div,
|
|
|
+span {
|
|
|
+ box-sizing: border-box
|
|
|
+}
|
|
|
+
|
|
|
+.back-img {
|
|
|
+ position: absolute;
|
|
|
+ z-index: 9;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ margin: 50px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.mtb-20 {
|
|
|
+ margin: 20px 0;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .el-pagination {
|
|
|
+ .btn-prev {
|
|
|
+ background-color: #C7AB7B !important;
|
|
|
+ color: #333 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-next {
|
|
|
+ background-color: #C7AB7B !important;
|
|
|
+ color: #333 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .number {
|
|
|
+ opacity: 0.3;
|
|
|
+ }
|
|
|
+
|
|
|
+ .active {
|
|
|
+ background-color: #C7AB7B !important;
|
|
|
+ color: #333 !important;
|
|
|
+ opacity: 0.8 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.tourism-box {
|
|
|
+ padding-top: 70px;
|
|
|
+ min-height: 100vh;
|
|
|
+ background: url('@/assets/img/home/new-travel.png');
|
|
|
+ background-size: 100%;
|
|
|
+
|
|
|
+ .class-item {
|
|
|
+ min-width: 68px;
|
|
|
+ padding: 0 10px;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ opacity: 1;
|
|
|
+ border-radius: 2px;
|
|
|
+ border: 1px solid rgba(255, 255, 255, 1);
|
|
|
+ margin: 0 20px 18px 20px;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .s-class-item {
|
|
|
+ background: rgba(199, 171, 123, 1) !important;
|
|
|
+ border: 1px solid rgba(199, 171, 123, 1) !important;
|
|
|
+ color: #121212;
|
|
|
+ }
|
|
|
+
|
|
|
+ .goods-box {
|
|
|
+ width: 100%;
|
|
|
+ min-height: 184px;
|
|
|
+ background: #E4F7F0FF;
|
|
|
+ padding: 12px 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-img {
|
|
|
+ width: 220px;
|
|
|
+ height: 160px;
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
|
|
|
- .mtb-20{
|
|
|
- margin: 20px 0;
|
|
|
- }
|
|
|
-
|
|
|
- ::v-deep .el-pagination{
|
|
|
- .btn-prev{
|
|
|
- background-color: #C7AB7B !important;
|
|
|
- color: #333 !important;
|
|
|
- }
|
|
|
- .btn-next{
|
|
|
- background-color: #C7AB7B !important;
|
|
|
- color: #333 !important;
|
|
|
- }
|
|
|
- .number{
|
|
|
- opacity: 0.3;
|
|
|
- }
|
|
|
- .active {
|
|
|
- background-color: #C7AB7B !important;
|
|
|
- color: #333 !important;
|
|
|
- opacity: 0.8 !important;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- .tourism-box {
|
|
|
- padding-top: 70px;
|
|
|
- min-height: 100vh;
|
|
|
- background: url('@/assets/img/login-bg.png');
|
|
|
-
|
|
|
- .class-item {
|
|
|
- min-width: 68px;
|
|
|
- padding: 0 10px;
|
|
|
- height: 36px;
|
|
|
- line-height: 36px;
|
|
|
- opacity: 1;
|
|
|
- border-radius: 2px;
|
|
|
- border: 1px solid rgba(255, 255, 255, 1);
|
|
|
- margin: 0 20px 18px 20px;
|
|
|
- color: #fff;
|
|
|
+ .b-buttom {
|
|
|
+ padding: 0 16px;
|
|
|
+ height: 34px;
|
|
|
+ opacity: 1;
|
|
|
+ border-radius: 2px;
|
|
|
+ background: #C7AB7BFF;
|
|
|
+ line-height: 36px;
|
|
|
+ color: #121212;
|
|
|
+ text-align: center;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.goods-list-container {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .item {
|
|
|
+ height: 247px;
|
|
|
+ margin: 0 120px;
|
|
|
+ background-color: #C1B5C5;
|
|
|
+ border-radius: 20px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &:not(:first-child) {
|
|
|
+ margin-top: 20px;
|
|
|
}
|
|
|
|
|
|
- .s-class-item {
|
|
|
- background: rgba(199, 171, 123, 1) !important;
|
|
|
- border: 1px solid rgba(199, 171, 123, 1) !important;
|
|
|
- color: #121212;
|
|
|
+ .head {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 40px;
|
|
|
+ padding-left: 20px;
|
|
|
+
|
|
|
+ .vip-img {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ margin-left: 10px;
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
+
|
|
|
+ .plane-img {
|
|
|
+ position: absolute;
|
|
|
+ top: 20px;
|
|
|
+ right: 200px;
|
|
|
+ width: 40px;
|
|
|
+ height: 37px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .goods-box {
|
|
|
- width: 100%;
|
|
|
- min-height: 184px;
|
|
|
- background: #E4F7F0FF;
|
|
|
- padding: 12px 15px;
|
|
|
+ .content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 187px;
|
|
|
+ padding: 0 20px;
|
|
|
+ background-color: #ffffff;
|
|
|
+
|
|
|
+ .goods-img {
|
|
|
+ width: 220px;
|
|
|
+ height: 147px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .info {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ height: 147px;
|
|
|
+ flex-direction: column;
|
|
|
+ margin-left: 20px;
|
|
|
+ padding: 9px 0 4px;
|
|
|
+
|
|
|
+ .i {
|
|
|
+
|
|
|
+ &:not(:first-child) {
|
|
|
+ margin-top: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .label {
|
|
|
+ color: #707070;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 26px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .val {
|
|
|
+ margin-top: 2px;
|
|
|
+ color: #171717;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 29px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .operate {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 0 64px;
|
|
|
+ height: 42px;
|
|
|
+ font-size: 16px;
|
|
|
+ background-color: #c7ab7b;
|
|
|
+ border-radius: 2px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &.disabled {
|
|
|
+ background-color: #E0E0E0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/* 单个商品区域 */
|
|
|
+.current-goods-container {
|
|
|
+ width: 100%;
|
|
|
+ padding-bottom: 96px;
|
|
|
+
|
|
|
+ .item {
|
|
|
+ margin: 0 120px;
|
|
|
+ border-radius: 20px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .head {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 40px;
|
|
|
+ padding-left: 20px;
|
|
|
+ background-color: #C1B5C5;
|
|
|
+
|
|
|
+ .vip-img {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ margin-left: 10px;
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
+
|
|
|
+ .plane-img {
|
|
|
+ position: absolute;
|
|
|
+ top: 20px;
|
|
|
+ right: 200px;
|
|
|
+ width: 40px;
|
|
|
+ height: 37px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.one {
|
|
|
+
|
|
|
+ .content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ height: 175px;
|
|
|
+ padding: 0 30px 0 20px;
|
|
|
+ background-color: #ffffff;
|
|
|
+
|
|
|
+ .i {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 560px;
|
|
|
+ height: 116px;
|
|
|
+ background-color: #C1B5C5;
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 20px 0 30px 20px;
|
|
|
+
|
|
|
+ &:not(:first-child) {
|
|
|
+ margin-left: 30px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .label {
|
|
|
+ color: #404040;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 23px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .money {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ /* margin-top: 15px; */
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 26px;
|
|
|
+
|
|
|
+ .unit {
|
|
|
+ margin-left: 15px;
|
|
|
+ color: #404040;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.two {
|
|
|
+ margin-top: 20px;
|
|
|
+ background-color: #c1b5c5;
|
|
|
+
|
|
|
+ .content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 187px;
|
|
|
+ padding: 0 20px;
|
|
|
+ background-color: #ffffff;
|
|
|
+
|
|
|
+ .goods-img {
|
|
|
+ width: 220px;
|
|
|
+ height: 147px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .info {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ height: 147px;
|
|
|
+ flex-direction: column;
|
|
|
+ margin-left: 20px;
|
|
|
+ padding: 9px 0 4px;
|
|
|
+
|
|
|
+ .i {
|
|
|
+
|
|
|
+ &:not(:first-child) {
|
|
|
+ margin-top: 28px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .label {
|
|
|
+ color: #707070;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 23px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .val {
|
|
|
+ margin-top: 2px;
|
|
|
+ color: #171717;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 23px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .tips {
|
|
|
+ color: #ED2121;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 20px;
|
|
|
+ margin-top: 134px;
|
|
|
+ align-self: self-start;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 时间、开始抢票 */
|
|
|
+ .time-or-buy {
|
|
|
+ position: relative;
|
|
|
+ width: 597px;
|
|
|
+ height: 154px;
|
|
|
+ margin: 75px auto 0;
|
|
|
+ background: url("@/assets/img/time-box.png") no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
- .item-img {
|
|
|
- width: 220px;
|
|
|
- height: 160px;
|
|
|
- margin-right: 20px;
|
|
|
+ .time {
|
|
|
+ position: absolute;
|
|
|
+ top: 51px;
|
|
|
+ left: 70px;
|
|
|
+ font-size: 36px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 52px;
|
|
|
}
|
|
|
|
|
|
- .b-buttom {
|
|
|
- padding: 0 16px;
|
|
|
- height: 34px;
|
|
|
- opacity: 1;
|
|
|
- border-radius: 2px;
|
|
|
- background: #C7AB7BFF;
|
|
|
- line-height: 36px;
|
|
|
- color: #121212;
|
|
|
- text-align: center;
|
|
|
- margin-right: 10px;
|
|
|
+ .buy {
|
|
|
+ position: absolute;
|
|
|
+ top: 51px;
|
|
|
+ right: 84px;
|
|
|
+ font-size: 36px;
|
|
|
+ font-weight: 700;
|
|
|
+ line-height: 52px;
|
|
|
}
|
|
|
}
|
|
|
+}
|
|
|
</style>
|