|
@@ -12,84 +12,81 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 底部 -->
|
|
|
- <div class="footer">
|
|
|
+ <div class="footer" v-show="state.data.mysteryBoxImagePath">
|
|
|
<!-- 首页 -->
|
|
|
<div class="mark">
|
|
|
<div class="sold">SOLD: {{ state.data.itemSoldCount || 0 }}/{{ state.data.itemTotalCount || 0 }} </div>
|
|
|
<div class="limit">Buy Limit: {{ state.data.userBuyCount || 0 }}/{{ state.data.perUserBuyLimit || 0 }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <div class="buy1">
|
|
|
- <btn-loading :color="'while'"></btn-loading>
|
|
|
- </div> -->
|
|
|
- <template v-for="item in state.data.salePlans.splice(0, 2)">
|
|
|
- <div class="buy5"
|
|
|
- v-show="item.itemCount == 5 && (state.data.perUserBuyLimit - state.data.userBuyCount) >= 5"
|
|
|
- @click="clickJump(item)">
|
|
|
- <div class="left">Buy {{ item.itemCount }}</div>
|
|
|
- <div class="right" v-if="(item.price.length + item.currencyCode) > 10">
|
|
|
- <div class="usdt">{{ item.price }} {{ item.currencyCode }}</div>
|
|
|
- <div class="off">{{ item.discount }} OFF</div>
|
|
|
+ <div class="btn-area">
|
|
|
+ <template v-for="item in state.data.salePlans.splice(0, 2).reverse()">
|
|
|
+ <div class="buy1" @click="clickJump(item)"
|
|
|
+ v-if="item.itemCount == 1 && (state.data.perUserBuyLimit - state.data.userBuyCount) >= 1">
|
|
|
+ <template v-if="(item.price.length + item.currencyCode.length) > 30">
|
|
|
+ <div class="left">Buy 1</div>
|
|
|
+ <div class="right">
|
|
|
+ <p>{{ item.price }}</p>
|
|
|
+ <p>{{ item.currencyCode }}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="left">Buy 1</div>
|
|
|
+ <div class="right">
|
|
|
+ {{ item.price }}
|
|
|
+ {{ item.currencyCode }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="right" v-else>
|
|
|
- <div class="usdt">
|
|
|
- <p>{{ item.price }}</p>
|
|
|
- <p>{{ item.currencyCode }}</p>
|
|
|
- </div>
|
|
|
- <div class="off">
|
|
|
- <p>{{ item.discount }} OFF</p>
|
|
|
- </div>
|
|
|
+ <div class="buy1 grey"
|
|
|
+ v-if="item.itemCount == 1 && (state.data.perUserBuyLimit - state.data.userBuyCount) <= 0">
|
|
|
+ <template v-if="(item.price.length + item.currencyCode.length) > 30">
|
|
|
+ <div class="left">Buy 1</div>
|
|
|
+ <div class="right">
|
|
|
+ <p>{{ item.price }}</p>
|
|
|
+ <p>{{ item.currencyCode }}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="left">Buy 1</div>
|
|
|
+ <div class="right">
|
|
|
+ {{ item.price }}
|
|
|
+ {{ item.currencyCode }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- <!-- <btn-loading></btn-loading> -->
|
|
|
- <div class="buy1" @click="clickJump(item)"
|
|
|
- v-show="item.itemCount == 1 && (state.data.perUserBuyLimit - state.data.userBuyCount) >= 1">
|
|
|
- <template v-if="(item.price.length + item.currencyCode) > 30">
|
|
|
- <div class="left">Buy 1</div>
|
|
|
- <div class="right">
|
|
|
- <p>{{ item.price }}</p>
|
|
|
- <p>{{ item.currencyCode }}</p>
|
|
|
+
|
|
|
+ <div class="buy5"
|
|
|
+ v-if="item.itemCount == 5 && (state.data.perUserBuyLimit - state.data.userBuyCount) >= 5"
|
|
|
+ @click="clickJump(item)">
|
|
|
+ <div class="left">Buy {{ item.itemCount }}</div>
|
|
|
+
|
|
|
+ <div class="right" v-if="(item.price.length + item.currencyCode.length) > 30">
|
|
|
+ <div class="usdt">
|
|
|
+ <p>{{ item.price }}</p>
|
|
|
+ <p>{{ item.currencyCode }}</p>
|
|
|
+ </div>
|
|
|
+ <div class="off">
|
|
|
+ <p>{{ item.discount }} OFF</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <div class="left">Buy 1</div>
|
|
|
- <div class="right">
|
|
|
- {{ item.price }}
|
|
|
- {{ item.currencyCode }}
|
|
|
+ <div class="right" v-else>
|
|
|
+ <div class="usdt">{{ item.price }} {{ item.currencyCode }}</div>
|
|
|
+ <div class="off">{{ item.discount }} OFF</div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <div class="buy1 grey"
|
|
|
- v-show="item.itemCount == 1 && (state.data.perUserBuyLimit - state.data.userBuyCount) <= 0">
|
|
|
- <template v-if="(item.price.length + item.currencyCode) > 30">
|
|
|
- <div class="left">Buy 1</div>
|
|
|
- <div class="right">
|
|
|
- <p>{{ item.price }}</p>
|
|
|
- <p>{{ item.currencyCode }}</p>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <div class="left">Buy 1</div>
|
|
|
- <div class="right">
|
|
|
- {{ item.price }}
|
|
|
- {{ item.currencyCode }}
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
import router from "@/router/buy-nft.js";
|
|
|
-import { onMounted, reactive, inject } from "vue";
|
|
|
+import { onMounted, reactive, inject, } from "vue";
|
|
|
import { getNftMysteryBoxSaleInfo } from "@/http/nft";
|
|
|
import BtnLoading from '../components/btn-loading.vue'
|
|
|
import { getQueryString } from "@/uilts/help";
|
|
|
let pay_info = inject('pay_info');
|
|
|
-
|
|
|
let state = reactive({
|
|
|
data: {
|
|
|
salePlans: [
|
|
@@ -182,8 +179,6 @@ onMounted(() => {
|
|
|
|
|
|
.footer {
|
|
|
border-top: 1px solid #D9D9D9;
|
|
|
- min-height: 80px;
|
|
|
- padding: 15px 0;
|
|
|
width: 100%;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
@@ -197,9 +192,8 @@ onMounted(() => {
|
|
|
.mark {
|
|
|
position: absolute;
|
|
|
left: 20px;
|
|
|
- .sold {
|
|
|
-
|
|
|
- }
|
|
|
+
|
|
|
+ .sold {}
|
|
|
|
|
|
.limit {
|
|
|
color: #AF934E;
|
|
@@ -207,87 +201,93 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .buy5 {
|
|
|
- border: 1px solid #1D9BF0;
|
|
|
- background: rgba(29, 155, 240, 0.01);
|
|
|
- border-radius: 100px;
|
|
|
- color: #1D9BF0;
|
|
|
- min-width: 217px;
|
|
|
- height: 50px;
|
|
|
+ .btn-area {
|
|
|
+ height: 100%;
|
|
|
display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- padding: 0 15px 0 20px;
|
|
|
- font-weight: 700;
|
|
|
- font-size: 14px;
|
|
|
- cursor: pointer;
|
|
|
- margin-right: 12px;
|
|
|
+ padding: 15px 0;
|
|
|
|
|
|
- .left {
|
|
|
- margin-right: 20px;
|
|
|
- }
|
|
|
+ .buy5 {
|
|
|
+ border: 1px solid #1D9BF0;
|
|
|
+ background: rgba(29, 155, 240, 0.01);
|
|
|
+ border-radius: 100px;
|
|
|
+ color: #1D9BF0;
|
|
|
+ min-width: 217px;
|
|
|
+ min-height: 50px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 10px 15px 10px 20px;
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 14px;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-right: 12px;
|
|
|
+
|
|
|
+ .left {
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
|
|
|
- .right {
|
|
|
- text-align: right;
|
|
|
+ .right {
|
|
|
+ text-align: right;
|
|
|
|
|
|
- p {
|
|
|
- margin: 0;
|
|
|
- padding: 0;
|
|
|
- line-height: 17px;
|
|
|
+ p {
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+ line-height: 17px;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
- .off {
|
|
|
- color: #AF934E;
|
|
|
- font-weight: 700;
|
|
|
- font-size: 14px;
|
|
|
+ .off {
|
|
|
+ color: #AF934E;
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 14px;
|
|
|
|
|
|
- letter-spacing: 0.3px;
|
|
|
+ letter-spacing: 0.3px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .usdt {
|
|
|
+ color: #1D9BF0;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .usdt {
|
|
|
- color: #1D9BF0;
|
|
|
+ .buy1 {
|
|
|
+ cursor: pointer;
|
|
|
+ background: #1D9BF0;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 100px;
|
|
|
+ min-width: 217px;
|
|
|
+ min-height: 50px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
font-size: 14px;
|
|
|
font-weight: 700;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 0 15px 0 20px;
|
|
|
+ margin-right: 25px;
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .buy1 {
|
|
|
- cursor: pointer;
|
|
|
- background: #1D9BF0;
|
|
|
- color: #fff;
|
|
|
- border-radius: 100px;
|
|
|
- min-width: 217px;
|
|
|
- height: 50px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- font-size: 14px;
|
|
|
- font-weight: 700;
|
|
|
- justify-content: space-between;
|
|
|
- padding: 0 15px 0 20px;
|
|
|
- margin-right: 25px;
|
|
|
-
|
|
|
- .left {
|
|
|
- margin-right: 20px;
|
|
|
- }
|
|
|
+ .left {
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
|
|
|
- .right {
|
|
|
- text-align: right;
|
|
|
+ .right {
|
|
|
+ text-align: right;
|
|
|
|
|
|
- p {
|
|
|
- margin: 0;
|
|
|
- padding: 0;
|
|
|
- line-height: 17px;
|
|
|
+ p {
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+ line-height: 17px;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- .grey {
|
|
|
- background: #CDCDCD;
|
|
|
- cursor: auto;
|
|
|
+ .grey {
|
|
|
+ background: #CDCDCD;
|
|
|
+ cursor: not-allowed;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|