From 16cfa24c67682909a1e810e206ee8a6655e859ed Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Mon, 11 Aug 2025 18:08:14 +0800
Subject: [PATCH] 1
---
src/page/trading/buy.vue | 351 +++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 211 insertions(+), 140 deletions(-)
diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index cde6f52..3440e2b 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -8,10 +8,10 @@
</div>
<div class="right_title">
<div class="t_t" style="white-space: nowrap">
- <span>{{ name | getName }}</span>
+ <span>{{ name }}({{ gid }})</span>
</div>
<div class="b_t">
- <span>{{ code }}</span>
+ <span>{{ spell }}</span>
</div>
</div>
</div>
@@ -19,7 +19,10 @@
<div class="cot">
<div class="lefts">
<div class="top_new">
- <span>{{ nowPrice }}</span>
+ <span>
+ {{ bayType | currencySymbol }}
+ {{ nowPrice | _toLocaleString }}
+ </span>
</div>
<div class="bottom_es">
<span>{{ $t("hj98") }}</span>
@@ -32,7 +35,7 @@
@click="handleTradingClick(0)"
:class="tabsCurrentIndex === 0 ? 'actives' : ''"
>
- <span>{{ $t("hj84") }}</span>
+ <span>Short</span>
</div>
<div
@@ -40,7 +43,7 @@
@click="handleTradingClick(1)"
:class="tabsCurrentIndex === 1 ? 'active' : ''"
>
- <span>{{ $t("hj85") }}</span>
+ <span>Long</span>
</div>
</div>
</div>
@@ -94,6 +97,7 @@
type="number"
onkeyup="value=value.replace(/[^\d]/g,'')"
v-model="num"
+ @input="numInput"
/>
</div>
<div class="right_sw flexJy" style="width: auto">
@@ -101,14 +105,7 @@
<img src="@/assets/img/ic_number_jian.png" />
</div>
<div class="addorj"></div>
- <div
- class="addorj"
- @click="
- typeof num == 'string'
- ? (num = Number(Number(num) + 1))
- : (num = Number(Number(num) + 1))
- "
- >
+ <div class="addorj" @click="jjjisua">
<img src="@/assets/img/ic_number_add.png" />
</div>
</div>
@@ -116,35 +113,49 @@
<div class="tr_rs gg" @click="showGg = true">
<div class="top_bzz">
<span>{{ $t("hj101") }}</span>
- <span>{{ selectCycle + "X" }}</span>
+ <span>{{ selectCycle }}</span>
</div>
- <!-- <div class="bottom_bzz">
- <span>{{ }}</span>
- <span>{{ }}</span>
- </div> -->
</div>
<div class="tr_rs">
<div class="top_bzz" style="padding-bottom: 0.2rem">
- <span style="text-align: left">
- {{ $t("hj102") }}({{ moneyData.symbol || "$" }})
- </span>
- <span style="text-align: right">
- {{ $t("hj103") }}({{ moneyData.symbol || "$" }})
- </span>
+ <span style="text-align: left"> {{ $t("交易总额") }}() </span>
+ <span style="text-align: right"> {{ $t("hj103") }}() </span>
</div>
<div class="bottom_bzz">
- <span>{{ ((nowPrice / selectCycle) * num).toFixed(2) }}</span>
- <span style="white-space: nowarp">
- <!-- moneyData.symbol + " " + -->
-
- {{ moneyData.availableBalance || "0.00" }}
+ <span>
+ {{ bayType | currencySymbol }}
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num)
+ | _toLocaleString
+ }}
</span>
+ <span style="white-space: nowarp">
+ {{ bayType | currencySymbol }}
+ {{ moneyData.availableBalance | _toLocaleString }}
+ </span>
+ </div>
+ </div>
+ <div class="tr_rs">
+ <div class="top_bzz" style="padding-bottom: 0.2rem">
+ <span style="text-align: left"> {{ $t("hj44") }}() </span>
+ <span style="text-align: right"> </span>
+ </div>
+
+ <div class="bottom_bzz">
+ <span>
+ {{
+ (nowPrice * selectCycle.replace("X", "") * num * sxf).toFixed(
+ 2
+ )
+ }}
+ </span>
+ <span style="white-space: nowarp"> </span>
</div>
</div>
</div>
</div>
- <div class="switchs">
+ <!-- <div class="switchs">
<div class="zy">
<div class="left_zy">
<span>{{ $t("hj104") }}</span>
@@ -155,21 +166,16 @@
</div>
<div class="zy" v-show="checkedZy">
<div class="left_zy">
- <input
- v-model="profitTarget"
- onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
- @input="zyInt"
- />
+ <input v-model="profitTarget" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
+ @input="zyInt" />
</div>
<div class="right_sw" style="width: auto">
<div class="addorj" @click="zYjian">
<img src="@/assets/img/ic_number_jian.png" />
</div>
<div class="addorj"></div>
- <div
- class="addorj"
- @click="profitTarget = (Number(profitTarget) + 1).toFixed(2)"
- >
+ <div class="addorj"
+ @click="tabsCurrentIndex==0?profitTarget = (Number(profitTarget) + 1).toFixed(2):profitTarget = (Number(profitTarget) + 1).toFixed(2)">
<img src="@/assets/img/ic_number_add.png" />
</div>
</div>
@@ -184,14 +190,11 @@
</div>
<div class="zy" v-show="checkedZs">
<div class="left_zy">
- <input
- v-model="zhisun"
- onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
- @input="zsInt"
- />
+ <input v-model="zhisun" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" @input="zsInt" />
</div>
<div class="right_sw" style="width: auto">
- <div class="addorj" @click="zhisun--">
+ <div class="addorj"
+ @click="zSjian">
<img src="@/assets/img/ic_number_jian.png" />
</div>
<div class="addorj"></div>
@@ -200,18 +203,11 @@
</div>
</div>
</div>
- <!-- <div class="zy">
- <div class="left_zy">
- <span>追踪止损</span>
- </div>
- <div class="right_sw">
- <van-switch v-model="profitArr[2].checked" />
- </div>
- </div> -->
- </div>
+ </div> -->
<div class="btn_buy" @click="gdOrSetBuy()">
- <div :class="tabsCurrentIndex == 0 ? 'maichu' : ''">
- <span>{{ tabsCurrentIndex == 0 ? $t("hj84") : $t("hj85") }}</span>
+ <!-- <div :class="tabsCurrentIndex == 0 ? 'maichu' : ''">#c4d600 -->
+ <div class="maichu" style="background-color:#c4d600">
+ <span>{{ tabsCurrentIndex == 0 ? $t("hj84") : $t("gm") }}</span>
</div>
</div>
</div>
@@ -228,9 +224,12 @@
<script>
import * as api from "@/axios/api";
+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);
@@ -250,6 +249,9 @@
}
if (this.$route.query.name) {
this.name = this.$route.query.name;
+ }
+ if (this.$route.query.spell) {
+ this.spell = this.$route.query.spell;
}
if (this.$route.query.type) {
this.type = this.$route.query.type;
@@ -272,8 +274,10 @@
type: 0,
code: "",
name: "",
+ spell: "",
settingInfo: [],
- selectCycle: 1,
+ selectCycle: "1X",
+ selectLever: 1,
siteLeverList: [],
checkedZy: false,
checkedZs: false,
@@ -283,39 +287,62 @@
profitTarget: 0,
if_us: 0,
bayType: "",
+ sxf: "",
id: "",
actions: [
- { name: "100X", subname: this.$t("hj102") },
- { name: "200X", subname: this.$t("hj102") },
- { name: "300X", subname: this.$t("hj102") },
+ {
+ name: "100X",
+ subname: this.$t("hj102")
+ },
+ {
+ name: "200X",
+ subname: this.$t("hj102")
+ },
+ {
+ name: "300X",
+ subname: this.$t("hj102")
+ }
],
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: ""
};
+ },
+ computed: {
+ // 计算当前汇率
+ rate() {
+ let rate = 1;
+ if (this.bayType == "HK") rate = this.htu;
+ else if (this.bayType == "IN") rate = this.itu;
+ else if (this.bayType == "TW") rate = this.ttu;
+ return rate;
+ }
},
mounted() {
this.bayType = this.$route.query.bayType;
+ this.gid = this.$route.query.gid;
if (this.bayType == "in") {
this.priceTabs = [this.$t("hj108"), this.$t("hj109")];
} else if (this.bayType == "qh") {
this.priceTabs = [this.$t("hj108")];
}
- this.getUserInfo();
+ this.setUseInfo();
this.getMoneyData();
this.getSettingInfo();
+ this.queryStockConfig();
},
watch: {
checkedZy(val) {
@@ -329,19 +356,48 @@
// 支持
navigator.vibrate([55]);
}
- },
+ }
},
methods: {
+ async queryStockConfig() {
+ let data = await api.queryStockConfig();
+ if (data.status === 0) {
+ this.sxf = data.data.cValue;
+ }
+ },
+ zSjian() {
+ var newzishu = (Number(this.zhisun) - 1).toFixed(2);
+ if (Number(newzishu) < 1) {
+ } else {
+ this.zhisun = newzishu;
+ }
+ },
+ ...mapActions(["setUseInfo"]),
+ numInput(e) {
+ // this.nowPrice / this.selectCycle.replace("X", "")
+ // this.moneyData.availableBalance
+ let numbs = Math.floor(
+ this.moneyData.availableBalance /
+ this.nowPrice /
+ this.selectCycle.replace("X", "")
+ );
+ if (e.target.value >= numbs) {
+ this.num = numbs;
+ }
+ // if()
+ console.log(e.target.value);
+ },
+ handleDoubleClick(event) {
+ console.log(1);
+ // console.log('Input field was double-clicked', event);
+ },
async getMoneyData() {
let data = await api.getMoney();
- let type = this.bayType === "SZHB" ? "US" : this.bayType;
+ // let type = this.bayType === "SZHB" ? "US" : this.bayType;
if (data.status === 0) {
- const newArr = data.data.filter((item) => item.accectType === type);
-
- this.moneyData = newArr[0] || {};
- // console.log(this.bayType, newArr);
- // 判断是否登录
- // this.moneyList = data.data;
+ data.data.forEach(i => {
+ if (i.accectType == this.bayType) this.moneyData = i;
+ });
}
},
handleBack() {
@@ -352,6 +408,21 @@
},
handleTabsClick(item, index) {
this.priceTabsCurrentIndex = index;
+ },
+ jjjisua() {
+ let numbs = Math.floor(
+ this.moneyData.availableBalance /
+ this.nowPrice /
+ this.selectCycle.replace("X", "")
+ );
+ 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) {
+ this.num = numbs;
+ }
},
jyslJian() {
if (typeof this.num === "string") {
@@ -380,18 +451,35 @@
}
},
zYjian() {
- if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
- this.profitTarget = this.nowPrice;
+ var newzishu = (Number(this.profitTarget) - 1).toFixed(2);
+ if (Number(newzishu) < 1) {
} else {
- this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ this.profitTarget = newzishu;
}
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // if(this.tabsCurrentIndex==0){
+ // console.log( this.nowPrice);
+ // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // } else {
+ // this.profitTarget = this.nowPrice;
+ // }
+ // }else{
+ // console.log(123);
+ // if ((Number(this.profitTarget) - 1).toFixed(2) < this.nowPrice) {
+ // this.profitTarget = this.nowPrice;
+ // } else {
+ // this.profitTarget = (Number(this.profitTarget) - 1).toFixed(2);
+ // }
+ // }
},
zSjia() {
- if ((Number(this.zhisun) + 1).toFixed(2) > this.nowPrice) {
- this.zhisun = this.nowPrice;
- } else {
- this.zhisun++;
- }
+ this.zhisun++;
+ // if ((Number(this.zhisun) + 1).toFixed(2) > this.nowPrice) {
+ // this.zhisun = this.nowPrice;
+ // } else {
+ // this.zhisun++;
+ // }
},
zsInt(e) {
if (typeof e.target.value === "string") {
@@ -412,7 +500,8 @@
}
},
onSelect(val) {
- this.selectCycle = val.gg;
+ this.selectCycle = val.name;
+ this.selectLever = val.label;
},
gdOrSetBuy() {
if (this.priceTabsCurrentIndex == 0) {
@@ -434,9 +523,11 @@
let opts = {
stockId: this.code,
buyNum: this.num,
- lever: this.selectCycle ? this.selectCycle : 0,
- targetPrice: this.nums,
+ lever: this.selectLever,
+ targetPrice: this.nums
};
+ console.log(this.selectLever, "this.selectLever ");
+
if (this.tabsCurrentIndex == 0) {
opts.buyType = 1;
} else {
@@ -455,36 +546,29 @@
this.$store.commit("elAlertShow", {
elAlertShow: true,
elAlertText: data.msg,
- elAlertType: "success",
+ elAlertType: "success"
});
this.getUserInfo();
- this.$router.push("/warehouse?index=1");
+ // 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
});
}
},
// 买卖
setBuy() {
- if (!this.$store.state.userInfo.idCard) {
+ 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;
}
- // if (!this.agree) {
- // Toast('需同意合作协议才能交易!')
- // } else if (isNull(this.selectNumber) && isNull(this.autoNumber)) {
- // Toast('请选择购买手数')
- // } else if (isNull(this.selectType)) {
- // Toast('请选择买卖方向')
- // } else if(isNull(this.subaccountNumber)) {
- // Toast('请选择子账户')
- // } else {}
+
if (this.buying) {
return;
}
@@ -494,14 +578,15 @@
// stockId: this.detail.id,
// buyNum: this.selectNumber ? this.selectNumber * 100 : 0, // 单位为手
// buyType: this.selectType,
- // lever: this.selectCycle ? this.selectCycle : 0,
+ lever: this.selectCycle ? this.selectCycle : 0,
// subaccountNumber:this.subaccountNumber
// 买入是买涨buyType:0, 卖出是买跌buyType:1,卖出的状态是0,买入的状态是1
buyNum: this.num, // 单位为手
// buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
- lever: this.selectCycle ? this.selectCycle : 0,
+ lever: this.selectLever
};
+ console.log(this.selectLever, "this.selectLever ");
if (this.tabsCurrentIndex == 0) {
opts.buyType = 1;
} else {
@@ -535,33 +620,27 @@
this.$store.commit("elAlertShow", {
elAlertShow: true,
elAlertText: data.msg,
- elAlertType: "success",
+ elAlertType: "success"
});
this.getUserInfo();
- var buyType = ''
+ var buyType = "";
if (this.tabsCurrentIndex == 0) {
buyType = 1;
} else {
buyType = 0;
}
- if(this.bayType=='US'){
-
- this.$router.push("/warehouse?index=1&buyType="+buyType);
- }else if(this.bayType=='MAS'){
- this.$router.push("/warehouse?index=0&buyType="+buyType);
- }else {
- this.$router.push("/warehouse");
- }
+ // 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
});
}
}
@@ -575,14 +654,15 @@
this.$store.commit("elAlertShow", {
elAlertShow: true,
elAlertText: data.msg,
- elAlertType: "success",
+ elAlertType: "success"
});
this.getUserInfo();
- this.$router.push("/warehouse?index=0");
+ // 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
});
}
},
@@ -596,7 +676,7 @@
} else {
this.$store.commit("elAlertShow", {
elAlertShow: true,
- elAlertText: data.msg,
+ elAlertText: data.msg
});
}
this.$store.state.user = this.user;
@@ -611,14 +691,14 @@
// data.data.siteLever根据/分割成数组
// this.siteLeverList = data.data.siteLever.split('/')
- this.selectCycle = data.data.siteLever;
if (
this.$store.state.userInfo !== undefined &&
this.$store.state.userInfo !== null &&
- this.$store.state.userInfo.phone !== "" &&
this.$store.state.userInfo.siteLever != null
) {
- this.selectCycle = this.$store.state.userInfo.siteLever.split("/")[0];
+ this.selectCycle =
+ this.$store.state.userInfo.siteLever.split("/")[0] + "X";
+
this.siteLeverList = [];
for (
let i = 0;
@@ -626,42 +706,31 @@
i++
) {
let val = this.$store.state.userInfo.siteLever.split("/")[i];
- let item = { label: val + this.$t("hj112"), value: val };
- this.siteLeverList.push(item);
- }
- } else {
- this.selectCycle = data.data.siteLever.split("/")[0];
- this.siteLeverList = [];
- for (let i = 0; i < data.data.siteLever.split("/").length; i++) {
- let val = data.data.siteLever.split("/")[i];
- var ccet = (Number(this.nowPrice) / Number(val)).toFixed(2);
- // let item = { label: val + '倍', value: val ,bzj:ccet}
let item = {
- name: val + "X",
- subname: this.$t("hj102") + ":" + (ccet * 100).toFixed(2),
- gg: val,
- bzj: ccet,
+ label: val,
+ name: val + "X"
};
this.siteLeverList.push(item);
}
+ console.log(this.siteLeverList, " this.selectCycle");
}
} else {
this.$store.commit("elAlertShow", {
elAlertShow: true,
- elAlertText: data.msg,
+ elAlertText: data.msg
});
}
- },
+ }
},
filters: {
getName(name) {
if (name.length > 15) {
- return name.substring(0, 14);
+ return name;
} else {
return name;
}
- },
- },
+ }
+ }
};
</script>
@@ -957,6 +1026,7 @@
.btn_buy {
width: 100%;
height: auto;
+ bottom: 0;
background: #fff;
padding: 0.8rem 0.8rem;
display: flex;
@@ -969,7 +1039,7 @@
display: flex;
justify-content: center;
align-items: center;
- background: rgb(68, 155, 84);
+ // background: rgb(68, 155, 84);
color: #fff;
font-size: 0.3846rem;
border-radius: 0.15rem;
@@ -1027,7 +1097,7 @@
}
.maichu {
- background-color: rgb(225, 59, 69) !important;
+ // background-color: rgb(225, 59, 69) !important;
}
.mr {
@@ -1071,6 +1141,7 @@
transform: skew(-10deg, 0deg);
}
}
+
/deep/.van-overlay {
z-index: 10000 !important;
}
--
Gitblit v1.9.3