From 916757dbb9d08ef2875fd3a8bd7a16ebe6d8f97c Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Tue, 24 Jun 2025 20:13:07 +0800
Subject: [PATCH] feat
---
src/components/perpetual-open/index.vue | 102 ++++++++++++++++++++++++++++----------------------
1 files changed, 57 insertions(+), 45 deletions(-)
diff --git a/src/components/perpetual-open/index.vue b/src/components/perpetual-open/index.vue
index 24caf67..0f20263 100644
--- a/src/components/perpetual-open/index.vue
+++ b/src/components/perpetual-open/index.vue
@@ -197,44 +197,8 @@
<!-- {{ initFutrue.amount }} // 余额 -->
</span>
<!-- {{ form.lever_rate }} -->
- <span
- class="font-22 font-400 textColor"
- v-if="form.lever_rate == 25"
- >
- {{
- Math.floor(initFutrue.amount / (initData.amount + 0.0375)) *
- form.lever_rate
- }}
- {{ $t("手数") }}
- </span>
- <span
- class="font-22 font-400 textColor"
- v-if="form.lever_rate == 50"
- >
- {{
- Math.floor(initFutrue.amount / (initData.amount + 0.075)) *
- form.lever_rate
- }}
- {{ $t("手数") }}
- </span>
- <span
- class="font-22 font-400 textColor"
- v-if="form.lever_rate == 100"
- >
- {{
- Math.floor(initFutrue.amount / (initData.amount + 0.15)) *
- form.lever_rate
- }}
- {{ $t("手数") }}
- </span>
- <span
- class="font-22 font-400 textColor"
- v-if="form.lever_rate == 200"
- >
- {{
- Math.floor(initFutrue.amount / (initData.amount + 0.3)) *
- form.lever_rate
- }}
+ <span class="font-22 font-400 textColor">
+ {{ maxItems }}
{{ $t("手数") }}
</span>
</div>
@@ -253,10 +217,10 @@
<span class="flex-1 text-right">75%</span>
<span class="flex-1 text-right">100%</span>
</div> -->
- <!-- 张数输入 -->
+ <!-- 张数 滑块 -->
<amount-slider
ref="sliderRef"
- :maxAmount="getVolumnByLever()"
+ :maxAmount="maxItems"
@getAmount="getAmount"
></amount-slider>
</template>
@@ -271,9 +235,7 @@
<div class="flex justify-between mt-30">
<div class="text-grey">{{ $t("保证金") }}</div>
<div class="textColor">
- {{
- ((form.amount * initData.amount) / form.lever_rate).toFixed(4)
- }}
+ {{ margin.toFixed(4) }}
USDT
</div>
</div>
@@ -284,7 +246,7 @@
? initData.fee * (form.amount / 1)
: (initData.fee * (form.amount / 1) * form.lever_rate) | nan
}} -->
- <div class="textColor">{{ calculatedFee.toFixed(4) }} USDT</div>
+ <div class="textColor">{{ fee.toFixed(4) }} USDT</div>
</div>
</template>
<div
@@ -750,6 +712,52 @@
// 可买数量
return Math.floor(this.initOpen.volume / 1 / this.form.lever_rate);
},
+ // 每份保证金
+ perItemMargin() {
+ console.log(
+ this.initData,
+ ": 每份保证金",
+ this.initData.amount / this.form.lever_rate
+ );
+ return this.initData.amount / this.form.lever_rate;
+ },
+ // 每份手续费(基于保证金)
+ perItemFee() {
+ const rateMap = {
+ 25: 0.0375,
+ 50: 0.075,
+ 100: 0.15,
+ 200: 0.3,
+ };
+ const rate = rateMap[this.form.lever_rate];
+ return this.perItemMargin * rate;
+ },
+ // 每份总支出
+ perItemTotalCost() {
+ return this.perItemMargin + this.perItemFee;
+ },
+ // 最大可购买整数份数
+ maxItems() {
+ console.log(this.initFutrue.amount, ": initFutrue.amount");
+ if (this.perItemTotalCost <= 0) return 0;
+ return Math.floor(this.initFutrue.amount / this.perItemTotalCost);
+ },
+ // 实际交易金额
+ actualTradeValue() {
+ return this.form.amount * this.initData.amount;
+ },
+ // 总保证金
+ margin() {
+ return this.form.amount * this.perItemMargin;
+ },
+ // 总手续费
+ fee() {
+ return this.form.amount * this.perItemFee;
+ },
+ // 总支出
+ totalExpenditure() {
+ return this.margin + this.fee;
+ },
calculatedFee() {
const rateMap = {
25: 0.0375,
@@ -758,7 +766,10 @@
200: 0.3,
};
const rate = rateMap[this.form.lever_rate];
- return (this.form.amount * rate) / this.form.lever_rate;
+ console.log(this.initData.amount, ": initData.amount");
+ return (
+ (this.form.amount * this.initData.amount * rate) / this.form.lever_rate
+ );
// : this.initData.amount * (this.form.amount / 1) * rate;
},
},
@@ -857,6 +868,7 @@
methods: {
//获取张数
getAmount(val) {
+ console.log(val, "获取张数");
this.form.amount = val || 0;
// if(this.form.lever_rate==25){
// this.form.amount = Math.floor((this.initFutrue.amount-(this.initFutrue.amount * 0.0375))/this.initData.amount)
--
Gitblit v1.9.3