1
PC-20250623MANY\Administrator
2025-07-19 6bf742b19037b59da70f2bc4119c9c0c68430870
src/page/trading/buy.vue
@@ -19,7 +19,10 @@
          <div class="cot">
            <div class="lefts">
              <div class="top_new">
                <span>MX${{ nowPrice | _toLocaleString }}</span>
                <span>
                  {{ bayType | currencySymbol }}
                  {{ nowPrice | _toLocaleString }}
                </span>
              </div>
              <div class="bottom_es">
                <span>{{ $t("hj98") }}</span>
@@ -27,11 +30,19 @@
            </div>
            <div class="rights">
              <div class="ese">
                <div class="mc" @click="handleTradingClick(0)" :class="tabsCurrentIndex === 0 ? 'actives' : ''">
                <div
                  class="mc"
                  @click="handleTradingClick(0)"
                  :class="tabsCurrentIndex === 0 ? 'actives' : ''"
                >
                  <span>Short</span>
                </div>
                <div class="mr" @click="handleTradingClick(1)" :class="tabsCurrentIndex === 1 ? 'active' : ''">
                <div
                  class="mr"
                  @click="handleTradingClick(1)"
                  :class="tabsCurrentIndex === 1 ? 'active' : ''"
                >
                  <span>Long</span>
                </div>
              </div>
@@ -42,8 +53,13 @@
      <div class="price_tabs">
        <div class="tabs">
          <div class="tab_item" v-for="(item, index) in priceTabs" :key="index" @click="handleTabsClick(item, index)"
            :class="priceTabsCurrentIndex === index ? 'active' : ''">
          <div
            class="tab_item"
            v-for="(item, index) in priceTabs"
            :key="index"
            @click="handleTabsClick(item, index)"
            :class="priceTabsCurrentIndex === index ? 'active' : ''"
          >
            <span>{{ item }}</span>
          </div>
        </div>
@@ -60,11 +76,14 @@
                <img src="@/assets/img/ic_number_jian.png" alt />
              </div>
              <div class="addorj"></div>
              <div class="addorj" @click="
              <div
                class="addorj"
                @click="
                  typeof nums == 'string'
                    ? (nums = Number(Number(nums) + 1).toFixed(2))
                    : (nums = (Number(nums) + 1).toFixed(2))
                ">
                "
              >
                <img src="@/assets/img/ic_number_add.png" />
              </div>
            </div>
@@ -74,7 +93,12 @@
          </div>
          <div class="tr_es flexJy">
            <div class="top_input">
              <input type="number" onkeyup="value=value.replace(/[^\d]/g,'')" v-model="num" @input="numInput" />
              <input
                type="number"
                onkeyup="value=value.replace(/[^\d]/g,'')"
                v-model="num"
                @input="numInput"
              />
            </div>
            <div class="right_sw flexJy" style="width: auto">
              <div class="addorj" @click="jyslJian">
@@ -94,20 +118,24 @@
          </div>
          <div class="tr_rs">
            <div class="top_bzz" style="padding-bottom: 0.2rem">
              <span style="text-align: left">
                {{ $t("交易总额") }}(MX$)
              </span>
              <span style="text-align: right">
                {{ $t("hj103") }}(MX$)
              </span>
              <span style="text-align: left"> {{ $t("交易总额") }}() </span>
              <span style="text-align: right"> {{ $t("hj103") }}() </span>
            </div>
            <div class="bottom_bzz">
              <span>
                MX${{
                  ((nowPrice * selectCycle.replace("X", "")) * num)
                {{ bayType | currencySymbol }}
                {{
                  (nowPrice * selectCycle.replace("X", "") * num)
                    | _toLocaleString
                }}
                <span v-if="bayType == 'US'">
                  ≈ MX$
                  {{
                    (nowPrice * selectCycle.replace("X", "") * num * utm)
                      | _toLocaleString
                  }}
                </span>
              </span>
              <span style="white-space: nowarp">
                MX${{ moneyData.availableBalance | _toLocaleString }}
@@ -116,20 +144,26 @@
          </div>
          <div class="tr_rs">
            <div class="top_bzz" style="padding-bottom: 0.2rem">
              <span style="text-align: left">
                {{ $t("hj44") }}(MX$)
              </span>
              <span style="text-align: right">
              </span>
              <span style="text-align: left"> {{ $t("hj44") }}() </span>
              <span style="text-align: right"> </span>
            </div>
            <div class="bottom_bzz">
              <span>
                MX${{(
                  ((nowPrice * selectCycle.replace("X", "")) * num)*sxf).toFixed(2)}}
                {{
                  (nowPrice * selectCycle.replace("X", "") * num * sxf).toFixed(
                    2
                  )
                }}
                <span v-if="bayType == 'US'">
                  ≈ MX$
                  {{
                    (nowPrice * selectCycle.replace("X", "") * num * sxf * utm)
                      | _toLocaleString
                  }}
              </span>
              <span style="white-space: nowarp">
              </span>
              <span style="white-space: nowarp"> </span>
            </div>
          </div>
        </div>
@@ -190,19 +224,25 @@
        </div>
      </div>
    </div>
    <van-action-sheet v-model="showGg" :actions="siteLeverList" :cancel-text="$t('hj106')" :description="$t('hj107')"
      close-on-click-action @select="onSelect" />
    <van-action-sheet
      v-model="showGg"
      :actions="siteLeverList"
      :cancel-text="$t('hj106')"
      :description="$t('hj107')"
      close-on-click-action
      @select="onSelect"
    />
  </div>
</template>
<script>
  import * as api from "@/axios/api";
  import {
    mapActions
  } from "vuex";
import { mapActions } from "vuex";
import { myMixin } from "@/mixins/myMixin";
  export default {
    name: "trBuy",
  mixins: [myMixin],
    created() {
      if (this.$route.query.t) {
        this.tabsCurrentIndex = Number(this.$route.query.t);
@@ -260,9 +300,10 @@
        profitTarget: 0,
        if_us: 0,
        bayType: "",
        sxf:'',
      sxf: "",
        id: "",
        actions: [{
      actions: [
        {
            name: "100X",
            subname: this.$t("hj102")
          },
@@ -273,23 +314,24 @@
          {
            name: "300X",
            subname: this.$t("hj102")
          },
        }
        ],
        profitArr: [{
      profitArr: [
        {
            name: this.$t("hj104"),
            checked: false,
          checked: false
          },
          {
            name: this.$t("hj105"),
            checked: false,
          checked: false
          },
          {
            name: this.$t("hj110"),
            checked: false,
          },
          checked: false
        }
        ],
        moneyData: {},
        gid: "",
      gid: ""
      };
    },
@@ -304,7 +346,7 @@
      this.setUseInfo();
      this.getMoneyData();
      this.getSettingInfo();
      this.queryStockConfig()
    this.queryStockConfig();
    },
    watch: {
      checkedZy(val) {
@@ -318,21 +360,20 @@
          // 支持
          navigator.vibrate([55]);
        }
      },
    }
    },
    methods: {
      async queryStockConfig(){
        let data = await api.queryStockConfig();
        if (data.status === 0) {
          this.sxf=data.data.cValue
        this.sxf = data.data.cValue;
        }
      },
      zSjian(){
        var newzishu = (Number(this.zhisun)-1).toFixed(2)
      var newzishu = (Number(this.zhisun) - 1).toFixed(2);
        if(Number(newzishu)<1){
        }else{
          this.zhisun = newzishu
        this.zhisun = newzishu;
        }
      },
      ...mapActions(["setUseInfo"]),
@@ -358,9 +399,11 @@
        let data = await api.getMoney();
        let type = this.bayType === "SZHB" ? "US" : this.bayType;
        if (data.status === 0) {
          const newArr = data.data.filter((item) => item.accectType === type);
        // const newArr = data.data.filter(item => item.accectType === type);
        // this.moneyData = newArr[0] || {};
          this.moneyData = newArr[0] || {};
        this.moneyData = data.data[0];
          // console.log(this.bayType, newArr);
          // 判断是否登录
          // this.moneyList = data.data;
@@ -381,9 +424,9 @@
          this.nowPrice /
          this.selectCycle.replace("X", "")
        );
        typeof this.num == "string" ?
          (this.num = Number(Number(this.num) + 1)) :
          (this.num = Number(Number(this.num) + 1));
      typeof this.num == "string"
        ? (this.num = Number(Number(this.num) + 1))
        : (this.num = Number(Number(this.num) + 1));
        console.log(this.num, numbs);
        if (this.num >= numbs) {
@@ -417,11 +460,10 @@
        }
      },
      zYjian() {
      var newzishu = (Number(this.profitTarget)-1).toFixed(2)
      var newzishu = (Number(this.profitTarget) - 1).toFixed(2);
      if(Number(newzishu)<1){
      }else{
        this.profitTarget = newzishu
        this.profitTarget = newzishu;
      }
        // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
        // if(this.tabsCurrentIndex==0){
@@ -439,8 +481,6 @@
        //     this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
        //   }
        // }
      },
      zSjia() {
        this.zhisun++;
@@ -474,10 +514,8 @@
      },
      gdOrSetBuy() {
        if (this.priceTabsCurrentIndex == 0) {
          this.setBuy();
        } else {
          this.gdBuy();
        }
        if (navigator.vibrate) {
@@ -495,7 +533,7 @@
          stockId: this.code,
          buyNum: this.num,
          lever: this.selectLever,
          targetPrice: this.nums,
        targetPrice: this.nums
        };
        console.log(this.selectLever, "this.selectLever ");
@@ -517,14 +555,15 @@
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
            elAlertType: "success",
          elAlertType: "success"
          });
          this.getUserInfo();
          this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
        } else {
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
          elAlertText: data.msg
          });
        }
      },
@@ -533,7 +572,7 @@
        if (this.$store.state.userInfo.isActive !== 2) {
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: this.$t("hj111"),
          elAlertText: this.$t("hj111")
          });
          this.$router.push("/authentications");
          return;
@@ -554,7 +593,7 @@
          // 买入是买涨buyType:0, 卖出是买跌buyType:1,卖出的状态是0,买入的状态是1
          buyNum: this.num, // 单位为手
          // buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
          lever: this.selectLever,
        lever: this.selectLever
        };
        console.log(this.selectLever, "this.selectLever ");
        if (this.tabsCurrentIndex == 0) {
@@ -590,7 +629,7 @@
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
            elAlertType: "success",
          elAlertType: "success"
          });
          this.getUserInfo();
          var buyType = "";
@@ -599,17 +638,18 @@
          } else {
            buyType = 0;
          }
          this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
        } else {
          if (data.msg.indexOf("不在交易时段内") > -1) {
            this.$store.commit("elAlertShow", {
              elAlertShow: true,
              elAlertText: this.$t("hj113"),
            elAlertText: this.$t("hj113")
            });
          } else {
            this.$store.commit("elAlertShow", {
              elAlertShow: true,
              elAlertText: data.msg,
            elAlertText: data.msg
            });
          }
        }
@@ -623,14 +663,15 @@
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
            elAlertType: "success",
          elAlertType: "success"
          });
          this.getUserInfo();
          this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        // this.$router.push("/warehouse?index=1&buyType=" + this.bayType);
        this.$router.push("/tradeNew?index=1&buyType=" + this.bayType);
        } else {
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
          elAlertText: data.msg
          });
        }
      },
@@ -644,7 +685,7 @@
        } else {
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
          elAlertText: data.msg
          });
        }
        this.$store.state.user = this.user;
@@ -669,7 +710,9 @@
            this.siteLeverList = [];
            for (
              let i = 0; i < this.$store.state.userInfo.siteLever.split("/").length; i++
            let i = 0;
            i < this.$store.state.userInfo.siteLever.split("/").length;
            i++
            ) {
              let val = this.$store.state.userInfo.siteLever.split("/")[i];
              let item = {
@@ -683,10 +726,10 @@
        } else {
          this.$store.commit("elAlertShow", {
            elAlertShow: true,
            elAlertText: data.msg,
          elAlertText: data.msg
          });
        }
      },
    }
    },
    filters: {
      getName(name) {
@@ -695,8 +738,8 @@
        } else {
          return name;
        }
      },
    },
    }
  }
  };
</script>