From b4c4556a5eddf6708ec55b07e3edc15b2217842e Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 30 Apr 2025 18:35:59 +0800
Subject: [PATCH] 0430号修改
---
src/page/trading/buy.vue | 146 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 115 insertions(+), 31 deletions(-)
diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index aa6ca39..3b86e18 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -1,4 +1,5 @@
<template>
+ <!-- 挂单 买入 卖出 -->
<div class="buy_page">
<div class="content">
<div class="top_cny">
@@ -20,14 +21,14 @@
<div class="cot">
<div class="lefts">
<div class="top_new">
- <span>₹{{ nowPrice | _toLocaleString }}</span>
+ <span> {{ nowPrice }}</span>
</div>
<div class="bottom_es">
<span>{{ $t("hj98") }}</span>
</div>
</div>
- <div class="rights" v-if="KLine.type != 'HJ'">
- <div class="ese">
+ <div class="rights">
+ <div class="ese" v-if="!isSell && KLine.type == 'HJ'">
<div
class="mc"
@click="handleTradingClick(0)"
@@ -63,7 +64,7 @@
</div>
<div class="tabs_content">
<div class="num" v-show="priceTabsCurrentIndex == 1">
- <span>{{ $t("hj99") }}</span>
+ <span>{{ isSell ? $t("当价格满足条件时卖出") : $t("hj99") }}</span>
</div>
<div class="tr_es flexJy" v-show="priceTabsCurrentIndex == 1">
<div class="top_input">
@@ -108,7 +109,7 @@
</div>
</div>
</div>
- <div class="tr_rs gg" @click="showGg = true">
+ <!-- <div class="tr_rs gg" @click="showGg = true">
<div class="top_bzz">
<span>{{ $t("hj101") }}</span>
<span>{{
@@ -117,34 +118,31 @@
: selectCycle
}}</span>
</div>
- </div>
+ </div> -->
<div class="tr_rs">
<div class="top_bzz" style="padding-bottom: 0.2rem">
- <span style="text-align: left"> {{ $t("交易总额") }}(₹) </span>
- <span style="text-align: right"> {{ $t("hj103") }}(₹) </span>
+ <span style="text-align: left"> {{ $t("交易总额") }} </span>
+ <span style="text-align: right"> {{ $t("hj103") }} </span>
</div>
<div class="bottom_bzz">
<span>
- ₹{{
- (nowPrice * selectCycle.replace("X", "") * num)
- | _toLocaleString
- }}
+ {{ nowPrice * selectCycle.replace("X", "") * num }}
</span>
<span style="white-space: nowarp">
- ₹{{ moneyData.availableBalance | _toLocaleString }}
+ {{ moneyData.availableBalance }}
</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: left"> {{ $t("hj44") }} </span>
<span style="text-align: right"> </span>
</div>
<div class="bottom_bzz">
<span>
- ₹{{
+ {{
(nowPrice * selectCycle.replace("X", "") * num * sxf).toFixed(
2
)
@@ -204,10 +202,18 @@
</div>
</div>
</div> -->
- <div class="btn_buy" @click="gdOrSetBuy()">
+ <div
+ class="btn_buy"
+ @click="gdOrSetBuy()"
+ :disabled="isSell && !positiontionData.orderNum"
+ :class="{ 'disabled-btn': isSell && !positiontionData.orderNum }"
+ >
<!-- <div :class="tabsCurrentIndex == 0 ? 'maichu' : ''">#3b82f6 -->
<div class="maichu" style="background-color:#3b82f6">
- <span>{{ tabsCurrentIndex == 0 ? $t("hj84") : $t("gm") }}</span>
+ <span v-if="isSell">{{ $t("hj78") }}</span>
+ <span v-else>{{
+ tabsCurrentIndex == 0 ? $t("hj84") : $t("gm")
+ }}</span>
</div>
</div>
</div>
@@ -224,6 +230,7 @@
<script>
import * as api from "@/axios/api";
+import { number } from "echarts/lib/export";
import { mapActions } from "vuex";
export default {
@@ -231,8 +238,10 @@
created() {
if (this.$route.query.t) {
this.tabsCurrentIndex = Number(this.$route.query.t);
- console.log(this.tabsCurrentIndex);
+
+ console.log("tabsCurrentIndex: ", this.tabsCurrentIndex);
}
+
if (this.$route.query.m) {
this.nowPrice = Number(this.$route.query.m);
this.profitTarget = Number(this.$route.query.m);
@@ -260,10 +269,11 @@
},
data() {
return {
+ isSell: false,
tradingArr: [this.$t("hj84"), this.$t("hj85")],
tabsCurrentIndex: 0,
- // priceTabs: [this.$t("hj108"), this.$t("hj109")],
- priceTabs: [this.$t("hj108")],
+ priceTabs: [this.$t("hj108"), this.$t("hj109")],
+ // priceTabs: [this.$t("hj108")],
priceTabsCurrentIndex: 0,
num: 1,
nums: 1,
@@ -317,14 +327,37 @@
],
moneyData: {},
gid: "",
- KLine: {}
+ KLine: {},
+ positiontionData: {
+ orderNum: 0
+ }
};
},
- mounted() {
+ async mounted() {
this.bayType = this.$route.query.bayType;
this.gid = this.$route.query.gid;
this.KLine = JSON.parse(window.localStorage.getItem("kLine"));
+ if (this.tabsCurrentIndex === 0) {
+ this.isSell = true;
+ // stockType 1黄金原油 2 股票
+ const data = await api.getPosition({
+ stock: this.$route.query.code || this.$route.query.name,
+ stockType: this.KLine.type === "HJ" ? 1 : 2
+ });
+ if (data.data) {
+ this.positiontionData = data.data;
+ } else {
+ if (data.status !== 0) {
+ this.$store.commit("elAlertShow", {
+ elAlertShow: true,
+ elAlertText: data.msg,
+ elAlertType: "warning"
+ });
+ }
+ }
+ }
+
if (this.bayType == "in") {
this.priceTabs = [this.$t("hj108"), this.$t("hj109")];
} else if (this.bayType == "qh") {
@@ -498,6 +531,9 @@
this.selectLever = val.label;
},
gdOrSetBuy() {
+ // 无持仓的时候不能下单
+ if (this.isSell && !this.positiontionData.orderNum) return;
+
if (this.priceTabsCurrentIndex == 0) {
this.setBuy();
} else {
@@ -515,7 +551,7 @@
}
this.buying = true;
let opts = {
- stockId: this.code,
+ stockId: this.id,
buyNum: this.num,
lever: this.selectLever,
targetPrice: this.nums
@@ -534,7 +570,31 @@
if (this.checkedZs) {
opts.stopTarget = this.zhisun;
}
- let data = await api.guadan(opts);
+ let data;
+ if (this.KLine.type === "HJ") {
+ opts.name = this.KLine.name;
+ opts.lever = 100;
+ }
+ if (this.isSell) {
+ let sellDate = {
+ positionSn: this.positiontionData.positionSn,
+ number: this.num,
+ name: opts.name
+ };
+ if (this.priceTabsCurrentIndex == 1) {
+ sellDate.targetPrice = this.nums;
+ sellDate.lever = opts.lever;
+ }
+ // 挂单 卖出
+ data = await api.sell(sellDate);
+ } else {
+ if (this.KLine.type === "HJ") {
+ data = await api.hjyyAddOrder(opts);
+ } else {
+ data = await api.guadan(opts);
+ }
+ }
+
this.buying = false;
if (data.status === 0) {
this.$store.commit("elAlertShow", {
@@ -579,9 +639,9 @@
// buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
lever: this.selectLever
};
- if (this.KLine.type === "HJ") {
- opts.lever = this.selectLever * 100;
- }
+ // if (this.KLine.type === "HJ") {
+ // opts.lever = this.num * 100;
+ // }
console.log(this.selectLever, "this.selectLever ");
if (this.tabsCurrentIndex == 0) {
opts.buyType = 1;
@@ -612,14 +672,32 @@
opts.stockId = this.id;
let data;
- console.log("bayType: ", this.KLine);
-
+ console.log("bayType: ", this.KLine, this.isSell);
if (this.KLine.type == "HJ") {
opts.name = this.KLine.name;
+ opts.lever = this.num * 100;
+ }
- data = await api.goldCrudeOilbuy(opts);
+ if (this.isSell) {
+ let sellDate = {
+ positionSn: this.positiontionData.positionSn,
+ number: this.num,
+ name: opts.name
+ };
+ if (this.priceTabsCurrentIndex == 1) {
+ sellDate.targetPrice = this.nums;
+ sellDate.lever = opts.lever;
+ }
+ // 卖出
+ data = await api.sell(sellDate);
} else {
- data = await api.buy(opts);
+ if (this.KLine.type == "HJ") {
+ opts.name = this.KLine.name;
+ opts.lever = 100;
+ data = await api.goldCrudeOilbuy(opts);
+ } else {
+ data = await api.buy(opts);
+ }
}
this.buying = false;
@@ -1154,4 +1232,10 @@
/deep/.van-popup {
z-index: 10001 !important;
}
+
+.disabled-btn {
+ opacity: 0.5;
+ pointer-events: none;
+ cursor: not-allowed;
+}
</style>
--
Gitblit v1.9.3