0510航天交易所ui仿制,代码使用的jiem
lxf
2025-06-24 916757dbb9d08ef2875fd3a8bd7a16ebe6d8f97c
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)