5.10航天ui交易所pc端,代码jiem-pc
lxf
2025-06-11 b13d4a4289ca95318f10db5eba75310cae0db3d6
src/components/constract/PerpetualContract/createOrder.vue
@@ -2,7 +2,7 @@
  <div>
    <div class="perpeCreateOrder" style="background: #1a1a1a">
      <!-- 开仓+ 平仓 -->
      <div class="titles">
      <!-- <div class="titles">
        <span
          v-for="(item, index) in title"
          :key="index"
@@ -10,7 +10,7 @@
          @click="changeTitle(item, index)"
          >{{ item }}</span
        >
      </div>
      </div> -->
      <!-- 全仓+杠杆 -->
      <div class="crossSettingBox">
        <div class="crossSettingItem" style="margin-right: 20px">
@@ -50,18 +50,18 @@
        v-if="existToken"
        @tab-click="handleTabClick"
      >
        <el-tab-pane :label="$t('message.home.xianjia')" name="limit">
        </el-tab-pane>
        <!-- <el-tab-pane :label="$t('message.home.shijia')" name="opponent">
        <!-- <el-tab-pane :label="$t('message.home.xianjia')" name="limit">
        </el-tab-pane> -->
        <el-tab-pane :label="$t('message.home.shijia')" name="opponent">
        </el-tab-pane>
      </el-tabs>
      <!-- 下单 -->
      <div class="place-order-form-box">
        <div class="common-form-box" id="leftPoForm">
          <div class="avaliable-USD">
          <!-- <div class="avaliable-USD">
            <div>{{ $t("message.jiaoyi.heyuezongzican") }}</div>
            <div>{{ availableMoney }} {{ unit }}</div>
          </div>
          </div> -->
          <!-- 价格输入 -->
          <div class="place-order-input-box" v-show="activeName === 'limit'">
            <div class="input-label-box">
@@ -128,7 +128,7 @@
              </div>
            </div>
            <!-- 做空 -->
            <div class="btn-wrapper" v-show="isActive == 1">
            <div class="btn-wrapper">
              <div class="submit-btn-box">
                <button
                  side="sell"
@@ -236,7 +236,7 @@
      ],
      newPageData: {}, //替代pageData,因为不能修改props的数据
      isActive: 0, //开仓0or平仓1
      activeName: "limit", //限价or市价
      activeName: "opponent", //限价or市价
      directionName: "", //buy Or sell
      price: undefined, //输入的价格
      sessionObj: {}, //
@@ -249,8 +249,8 @@
      initClose: {},
      initOpen: {},
      inputAmount: "0.00",
      availableMoney: "0.00",
      inputAmount: "0.000000",
      availableMoney: "0.000000",
      closeBuyAmount: 0,
      closeSellAmount: 0,
      isNewPrice: 0,
@@ -324,12 +324,12 @@
          data = this.sessionObj?.amount * amount * 1;
        }
      }
      return bigDecimal.round(data, 2);
      return bigDecimal.round(data, 6);
    },
    // 获取保证金,开仓才需要
    getMargin: function () {
      const amount = this.inputAmount;
      let data = "0.00";
      let data = "0.000000";
      console.log(
        "getMargin",
        this.isActive,
@@ -350,15 +350,51 @@
          data = this.sessionObj.amount * amount * 1;
        }
      }
      return bigDecimal.round(data, 2);
      // 校验保证金不能大于余额
      if (
        Number(this.availableMoney) > 0 &&
        Number(data) > Number(this.availableMoney)
      ) {
        // 自动限制为最大可用余额
        data = this.availableMoney;
        // 可选:提示
        this.$nextTick(() => {
          ElMessage.warning(this.$t("message.home.baozhengjinbuzu")); // 保证金不足
        });
      }
      return bigDecimal.round(data, 6);
    },
    // 获取手续费
    getFee: function () {
      // const amount = this.inputAmount;
      // let data = "0.00";
      // if (amount && this.isActive == 0) {
      //   // 每手的数量*多少手(张)*每手的手续费
      //   data = amount * this.sessionObj.fee;
      // }
      // return bigDecimal.round(data);
      const amount = this.inputAmount;
      let data = "0.00";
      let rate = 0;
      // 根据当前杠杆设置费率
      switch (Number(this.current_lever_rate_num)) {
        case 25:
          rate = 0.0375;
          break;
        case 50:
          rate = 0.075;
          break;
        case 100:
          rate = 0.15;
          break;
        case 200:
          rate = 0.3;
          break;
        default:
          rate = 0;
      }
      let data = 0;
      if (amount && this.isActive == 0) {
        // 每手的数量*多少手(张)*每手的手续费
        data = amount * this.sessionObj.fee;
        data = amount * rate * 100; // 乘以100显示百分比
      }
      return bigDecimal.round(data, 2);
    },
@@ -368,7 +404,7 @@
    current_lever_rate(val) {
      this.$refs.sliderRef?.emptyValue();
      this.$refs.sliderRef?.cleanAmount();
      this.inputAmount = "0.00";
      this.inputAmount = "0.000000";
    },
    // 市价单,主动赋值
    clickData(val) {
@@ -427,6 +463,15 @@
      } else {
        if (this.lever_rate.length > 0) {
          return parseInt(amount / this.current_lever_rate_num);
          // const contractSize = 1;
          // const price = this.price || this.newPageData.close || 1;
          // const availableMargin = amount; // 可用保证金
          // const lever = this.current_lever_rate_num;
          // const maxVolume = parseInt(
          //   (availableMargin * lever) / (contractSize * price)
          // );
          // return maxVolume > 0 ? maxVolume : 0;
        } else if (this.lever_rate.length == 0) {
          return parseInt(amount / 1);
        }