0510航天交易所ui仿制,代码使用的jiem
lxf
2025-06-19 405dc49f690cc53d473acf0db175f524f6cf7417
src/components/perpetual-open/index.vue
@@ -121,7 +121,7 @@
            />
            <span class="ml-20">USDT</span>
          </div>
          <div
          <!-- <div
            class="h-76 lh-76 inputBackground mb-30 flex pr-20 justify-center rounded-lg textColor"
            v-if="selectIndex == 1"
          >
@@ -142,7 +142,7 @@
              v-model="form.stop_price_loss"
            />
            <span class="font-22 font-400 textColor">{{ $t("止损") }}</span>
          </div>
          </div> -->
          <div
            class="w-440 flex items-center inputBackground h-76 lh-76 rounded-lg"
          >
@@ -161,7 +161,7 @@
            <input
              :placeholder="
                selectIndex == 1
                  ? $t('张数')
                  ? $t('手数')
                  : $t('最少') + initFutrue && initFutrue.para
                  ? $t('最小金额') + initFutrue.para[paraIndex].buy_min
                  : ''
@@ -191,12 +191,59 @@
          </div>
          <template v-if="selectIndex == 1">
            <div class="mt-40 mb-30 w-full flex justify-between items-center">
              <span class="font-22 font-400 text-grey">{{
                $t("可开张数")
              }}</span>
              <span class="font-22 font-400 textColor">
                {{ initData.volume }}
                {{ $t("张") }}
              <span class="font-22 font-400 text-grey">
                {{ $t("可开") }}{{ $t("手数") }}
                <!-- {{initFutrue.amount / (initData.amount + 0.0375) * form.lever_rate }}  //  -->
                <!-- {{ 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
                  )
                }}
                {{ $t("手数") }}
              </span>
            </div>
            <!-- <vue-slider v-bind="options" v-model="form.amount"></vue-slider> -->
@@ -225,23 +272,40 @@
            <div class="flex justify-between mt-30">
              <div class="text-grey">{{ $t("合约金额") }}</div>
              <div class="textColor">
                {{ initData.amount * (form.amount / 1) * form.lever_rate }} USDT
                {{ (form.amount * initData.amount).toFixed(4) }}
                USDT
              </div>
            </div>
            <div class="flex justify-between mt-30">
              <div class="text-grey">{{ $t("保证金") }}</div>
              <div class="textColor">
                {{ (initData.amount * (form.amount / 1)) | nan }} USDT
                {{
                  ((form.amount * initData.amount) / form.lever_rate).toFixed(4)
                }}
                USDT
              </div>
            </div>
            <div class="flex justify-between mt-30">
              <div class="text-grey">{{ $t("建仓手续费") }}</div>
              <div class="textColor">
                {{
                  userInfo.perpetual_contracts_status === "1"
                    ? initData.fee * (form.amount / 1)
                    : (initData.fee * (form.amount / 1) * form.lever_rate) | nan
                }}
              <!-- {{
             userInfo.perpetual_contracts_status === "1"
               ? initData.fee * (form.amount / 1)
               : (initData.fee * (form.amount / 1) * form.lever_rate) | nan
           }} -->
              <div class="textColor" v-if="form.lever_rate == 25">
                {{ (initData.amount * (form.amount / 1) * 0.0375).toFixed(4) }}
                USDT
              </div>
              <div class="textColor" v-if="form.lever_rate == 50">
                {{ (initData.amount * (form.amount / 1) * 0.075).toFixed(4) }}
                USDT
              </div>
              <div class="textColor" v-if="form.lever_rate == 100">
                {{ (initData.amount * (form.amount / 1) * 0.15).toFixed(4) }}
                USDT
              </div>
              <div class="textColor" v-if="form.lever_rate == 200">
                {{ ((form.amount * 0.3) / form.lever_rate).toFixed(4) }}
                USDT
              </div>
            </div>
@@ -684,8 +748,8 @@
          // 倍数
          obj.lever = [
            {
              id: 1,
              lever_rate: 1,
              id: 200,
              lever_rate: 200,
            },
          ];
        }
@@ -723,21 +787,21 @@
          title: this.$t("市价"),
          type: "1",
        },
        {
          title: this.$t("限价"),
          type: "2",
        },
        // {
        //   title: this.$t("限价"),
        //   type: "2",
        // },
      ],
      form: {
        symbol: "", // 币种
        session_token: "",
        direction: "buy", // 买or卖
        price_type: "opponent", // 市价or限价
        lever_rate: 1, // 杠杆
        lever_rate: 200, // 杠杆
        stop_price_profit: "",
        stop_price_loss: "",
        price: "",
        amount: "", // 数量
        amount: 0, // 数量
        para_id: "", // 交割周琦id
      },
      focus: false,
@@ -781,10 +845,10 @@
        title: this.$t("市价"),
        type: "1",
      },
      {
        title: this.$t("限价"),
        type: "2",
      },
      // {
      //   title: this.$t("限价"),
      //   type: "2",
      // },
    ];
    this.title = this.selectData[0].title;
    this.type = this.selectData[0].type;
@@ -793,12 +857,50 @@
  methods: {
    //获取张数
    getAmount(val) {
      this.form.amount = 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)
      // }else if(this.form.lever_rate==50){
      //  this.form.amount = Math.floor((this.initFutrue.amount-(this.initFutrue.amount *  0.0375))/this.initData.amount)
      // }else if(this.form.lever_rate==100){
      //  this.form.amount = Math.floor((this.initFutrue.amount-(this.initFutrue.amount *  0.15))/this.initData.amount)
      // }else{
      //  this.form.amount = Math.floor((this.initFutrue.amount-(this.initFutrue.amount *  0.3))/this.initData.amount)
      // }
    },
    // 获取张数,数据转换
    getVolumnByLever() {
      let vol;
      vol = this.initOpen.volume / 1;
      // vol = this.initOpen.volume / 1;
      if (this.form.lever_rate == 25) {
        vol = Math.floor(
          // (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
          //   this.initData.amount
          (this.initFutrue.amount / (this.initData.amount + 0.0375)) *
            this.form.lever_rate
        );
      } else if (this.form.lever_rate == 50) {
        vol = Math.floor(
          // (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
          //   this.initData.amount
          (this.initFutrue.amount / (this.initData.amount + 0.075)) *
            this.form.lever_rate
        );
      } else if (this.form.lever_rate == 100) {
        vol = Math.floor(
          // (this.initFutrue.amount - this.initFutrue.amount * 0.15) /
          //   this.initData.amount
          (this.initFutrue.amount / (this.initData.amount + 0.15)) *
            this.form.lever_rate
        );
      } else {
        vol = Math.floor(
          // (this.initFutrue.amount - this.initFutrue.amount * 0.3) /
          //   this.initData.amount
          (this.initFutrue.amount / (this.initData.amount + 0.3)) *
            this.form.lever_rate
        );
      }
      return Math.floor(vol);
    },