You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
830 lines
24 KiB
830 lines
24 KiB
<template>
|
|
<div class="markets-pair-list exchange-store bg-plain">
|
|
<div class="nav nav-pills" style="align-items: center;width:180px;" v-if="0">
|
|
<div class="nav-item" :class="{ active: tab == 1 }">
|
|
<a class="nav-link" :class="{ active: tab == 1 }" @click="tab = 1">{{
|
|
$t("contract.d5")
|
|
}}</a>
|
|
</div>
|
|
<div class="nav-item">
|
|
<a class="nav-link" :class="{ active: tab == 2 }" @click="tab = 2">{{
|
|
$t("contract.d6")
|
|
}}</a>
|
|
</div>
|
|
<div class="flex-fill d-flex align-items-center">
|
|
<el-popover
|
|
placement="bottom"
|
|
width="100"
|
|
v-model="visible"
|
|
trigger="manual"
|
|
>
|
|
<div
|
|
class="rounded border p-1 bg-black pointer"
|
|
slot="reference" style="color: #999;"
|
|
@click="visible = !visible"
|
|
>
|
|
{{ $t("contract.b0") }}
|
|
<span class="fn-16"> {{ form.lever_rate }}X </span>
|
|
<i class="el-icon-edit text-primary"></i>
|
|
</div>
|
|
<div class="list">
|
|
<div
|
|
class="el-select-dropdown__item"
|
|
@click="
|
|
selectLever(item);
|
|
visible = false;
|
|
"
|
|
v-for="item in lever_rage"
|
|
:key="item"
|
|
>
|
|
{{ item }}X
|
|
</div>
|
|
</div>
|
|
</el-popover>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content-box">
|
|
<div class="nav nav-pills">
|
|
<div class="nav-item" :class="{ active: form.type == 2 }" @click="form.type = 2">
|
|
<a style="display:block;padding:5px 0px;">
|
|
{{ $t("contract.d9") }}
|
|
</a>
|
|
</div>
|
|
<div class="nav-item" :class="{ active: form.type == 1 }" @click="form.type = 1">
|
|
<a style="display:block;padding:5px 0px;">
|
|
{{ $t("contract.e0") }}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex align-items-center" style="flex-shrink:0;margin-left:20px;">
|
|
<el-popover
|
|
placement="bottom"
|
|
width="100"
|
|
v-model="visible"
|
|
trigger="manual"
|
|
>
|
|
<div
|
|
class="rounded border p-1 bg-black pointer"
|
|
slot="reference" style="color: #999;"
|
|
@click="visible = !visible"
|
|
>
|
|
{{ $t("contract.b0") }}
|
|
<span class="fn-16"> {{ form.lever_rate }}X </span>
|
|
<i class="el-icon-edit text-primary"></i>
|
|
</div>
|
|
<div class="list">
|
|
<div
|
|
class="el-select-dropdown__item"
|
|
@click="
|
|
selectLever(item);
|
|
visible = false;
|
|
"
|
|
v-for="item in lever_rage"
|
|
:key="item"
|
|
>
|
|
{{ item }}X
|
|
</div>
|
|
</div>
|
|
</el-popover>
|
|
</div>
|
|
</div>
|
|
<div class="ex-s-p-c">
|
|
<!-- 买入 -->
|
|
<div style="width:47%;">
|
|
<div class="usable-box-A">
|
|
<span>{{ $t("contract.a3") }}</span>
|
|
<span style="color: #444;"> {{ accountInfo.usable_balance }} USDT
|
|
<i
|
|
class="el-icon-sort"
|
|
@click="$router.push('/wallet/assets/exchange')"
|
|
></i>
|
|
</span>
|
|
</div>
|
|
<div class="input-group-a">
|
|
<template v-if="form.type == 1">
|
|
<div class="form-control-A">{{ $t('contract.d8') }}</div>
|
|
<input
|
|
type="number"
|
|
v-model="form.entrust_price_buy"
|
|
class="form-control"
|
|
:placeholder="$t('contract.d8')"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</template>
|
|
<template v-if="form.type == 2">
|
|
<div class="form-control-A">{{ $t('contract.d8') }}</div>
|
|
<input
|
|
type="text"
|
|
disabled
|
|
:value="$t('contract.d9')"
|
|
class="form-control"
|
|
placeholder=""
|
|
/>
|
|
</template>
|
|
</div>
|
|
<div class="input-group-a">
|
|
<div class="form-control-A">{{ $t("contract.l2") }}</div>
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="margin_buy"
|
|
:placeholder="tips"
|
|
/>
|
|
</div>
|
|
<div>
|
|
<div class="px-2" v-if="this.tab == 1">
|
|
<el-slider
|
|
:value="activeStep_buy"
|
|
@input="sliderChange($event, 'buy')"
|
|
:format-tooltip="tooltip"
|
|
:marks="marks"
|
|
></el-slider>
|
|
<!-- :step="25" -->
|
|
</div>
|
|
<!-- 开仓 -->
|
|
<div v-if="tab == 1" class="kaicang">
|
|
<div class="d-flex justify-content-between mb-3" style="color: #999;">
|
|
<div>{{ $t("contract.e1") }}:</div>
|
|
<!-- {{$t("contract.e2")}} -->
|
|
<div>{{ amount_buy }}</div>
|
|
</div>
|
|
<!-- <div class="d-flex justify-content-between mb-4">
|
|
<div>{{ $t("contract.a3") }}:</div>
|
|
<div>
|
|
{{ accountInfo.usable_balance }} USDT
|
|
<i
|
|
class="el-icon-sort"
|
|
@click="$router.push('/wallet/assets/exchange')"
|
|
></i>
|
|
</div>
|
|
</div> -->
|
|
</div>
|
|
<!-- 平仓 -->
|
|
<div v-if="tab == 2">
|
|
<div class="d-flex justify-content-between">
|
|
<div>{{ $t("contract.e4") }}:</div>
|
|
<div>{{ multiplePositions }} {{ $t("contract.e2") }}</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between mb-4">
|
|
<div>{{ $t("contract.e5") }}:</div>
|
|
<div>{{ shortPosition }} {{ $t("contract.e2") }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<div class="input-group-a" style="width:49%;">
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="form.tp_trigger_price_buy"
|
|
:placeholder="$t('contract.i7')"
|
|
style="text-align:left;"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</div>
|
|
<div class="input-group-a" style="width:49%;">
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="form.sl_trigger_price_buy"
|
|
:placeholder="$t('contract.i8')"
|
|
style="text-align:left;"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</div>
|
|
</div>
|
|
<div class="px-2 flex-fill">
|
|
<button
|
|
@click="ifOpenPosition(1)"
|
|
type="button"
|
|
class="sub w-24/24 btn-success btn btn-sm mb-2"
|
|
>
|
|
{{ $t("contract.d0") }}
|
|
<!-- <span class="fn-12"> ({{ $t("contract.e6") }}) </span> -->
|
|
</button>
|
|
<div class="text-left" style="white-space: nowrap; color: #999;">
|
|
{{ $t("contract.e7") }} {{ maxNum }}
|
|
<!-- {{ $t("contract.e2") }} -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 卖出 -->
|
|
<div style="width:47%;">
|
|
<div class="usable-box-A">
|
|
<span>{{ $t("contract.a3") }}</span>
|
|
<span style="color: #444;"> {{ accountInfo.usable_balance }} USDT
|
|
<i
|
|
class="el-icon-sort"
|
|
@click="$router.push('/wallet/assets/exchange')"
|
|
></i>
|
|
</span>
|
|
</div>
|
|
<div class="input-group-a">
|
|
<template v-if="form.type == 1">
|
|
<div class="form-control-A">{{ $t('contract.d8') }}</div>
|
|
<input
|
|
type="number"
|
|
v-model="form.entrust_price_sell"
|
|
class="form-control"
|
|
:placeholder="$t('contract.d8')"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</template>
|
|
<template v-if="form.type == 2">
|
|
<div class="form-control-A">{{ $t('contract.d8') }}</div>
|
|
<input
|
|
type="text"
|
|
disabled
|
|
:value="$t('contract.d9')"
|
|
class="form-control"
|
|
placeholder=""
|
|
/>
|
|
</template>
|
|
</div>
|
|
<div class="input-group-a">
|
|
<div class="form-control-A">{{ $t("contract.l2") }}</div>
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="margin_sell"
|
|
:placeholder="tips"
|
|
/>
|
|
</div>
|
|
<div>
|
|
<div class="px-2" v-if="this.tab == 1">
|
|
<el-slider
|
|
:value="activeStep_sell"
|
|
@input="sliderChange($event, 'sell')"
|
|
:format-tooltip="tooltip"
|
|
:marks="marks"
|
|
></el-slider>
|
|
<!-- :step="25" -->
|
|
</div>
|
|
<!-- 开仓 -->
|
|
<div v-if="tab == 1" class="kaicang">
|
|
<div class="d-flex justify-content-between mb-3" style="color: #999;">
|
|
<div>{{ $t("contract.e1") }}:</div>
|
|
<!-- {{$t("contract.e2")}} -->
|
|
<div>{{ amount_sell }}</div>
|
|
</div>
|
|
<!-- <div class="d-flex justify-content-between mb-4">
|
|
<div>{{ $t("contract.a3") }}:</div>
|
|
<div>
|
|
{{ accountInfo.usable_balance }} USDT
|
|
<i
|
|
class="el-icon-sort"
|
|
@click="$router.push('/wallet/assets/exchange')"
|
|
></i>
|
|
</div>
|
|
</div> -->
|
|
</div>
|
|
<!-- 平仓 -->
|
|
<div v-if="tab == 2">
|
|
<div class="d-flex justify-content-between">
|
|
<div>{{ $t("contract.e4") }}:</div>
|
|
<div>{{ multiplePositions }} {{ $t("contract.e2") }}</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between mb-4">
|
|
<div>{{ $t("contract.e5") }}:</div>
|
|
<div>{{ shortPosition }} {{ $t("contract.e2") }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<div class="input-group-a" style="width:49%;">
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="form.tp_trigger_price_sell"
|
|
:placeholder="$t('contract.i7')"
|
|
style="text-align:left;"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</div>
|
|
<div class="input-group-a" style="width:49%;">
|
|
<input
|
|
type="number"
|
|
class="form-control"
|
|
v-model="form.sl_trigger_price_sell"
|
|
:placeholder="$t('contract.i8')"
|
|
style="text-align:left;"
|
|
/>
|
|
<div class="form-control-B">USDT</div>
|
|
</div>
|
|
</div>
|
|
<div class="px-2 flex-fill">
|
|
<button
|
|
@click="ifOpenPosition(2)"
|
|
type="button"
|
|
class="sub w-24/24 btn-danger btn btn-sm mb-2"
|
|
>
|
|
{{ $t("contract.d2") }}
|
|
<!-- <span class="fn-12"> ({{ $t("contract.e8") }}) </span> -->
|
|
</button>
|
|
<!-- <div class="text-center"> -->
|
|
<div class="text-left" style="white-space: nowrap; color: #999;">
|
|
{{ $t("contract.e7") }} {{ maxNum }}
|
|
<!-- {{ $t("contract.e2") }} -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content-box" v-if="0">
|
|
|
|
<div class="line-A"></div>
|
|
<div v-if="type == 2" class="input-group my-4 input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text">{{ $t("contract.d7") }}</span>
|
|
</div>
|
|
<input type="number" class="form-control" placeholder="" />
|
|
<div class="input-group-append">
|
|
<span class="input-group-text">USDT</span>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
|
|
|
|
</div>
|
|
<div class="line-A"></div>
|
|
|
|
<div class="line-A"></div>
|
|
|
|
<div class="line-A"></div>
|
|
<div class="exchange_button" v-if="tab == 1" style="color: #999;">
|
|
|
|
|
|
</div>
|
|
<div class="" v-if="tab == 2">
|
|
<div class="px-2 flex-fill mb-4">
|
|
<button
|
|
@click="ifOpenPosition(1)"
|
|
type="button"
|
|
class="sub w-24/24 btn-success btn btn-sm"
|
|
>
|
|
{{ $t("contract.d3") }}
|
|
</button>
|
|
<div class="text-center">
|
|
{{ $t("contract.e9") }} {{ canMore }} {{ $t("contract.e2") }}
|
|
</div>
|
|
</div>
|
|
<div class="px-2 flex-fill">
|
|
<button
|
|
@click="ifOpenPosition(2)"
|
|
type="button"
|
|
class="sub w-24/24 btn-danger btn btn-sm"
|
|
>
|
|
{{ $t("contract.d1") }}
|
|
</button>
|
|
<div class="text-center">
|
|
{{ $t("contract.e9") }} {{ canEmpty }} {{ $t("contract.e2") }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import Contract from "@/api/contract.js";
|
|
import date from "@/utils/class/date.js";
|
|
import math from "@/utils/class/math.js";
|
|
export default {
|
|
data() {
|
|
return {
|
|
tab: 1,
|
|
type: 1,
|
|
visible: false,
|
|
form: {
|
|
// 1:限价 2:市价
|
|
type: 2,
|
|
entrust_price: undefined,
|
|
entrust_price_buy: undefined,
|
|
entrust_price_sell: undefined,
|
|
amount:"",
|
|
amount_buy:"",
|
|
amount_sell:"",
|
|
lever_rate: "",
|
|
sl_trigger_price_sell:'',//止损
|
|
sl_trigger_price_buy:'',//止损
|
|
tp_trigger_price_sell:'',//止盈
|
|
tp_trigger_price_buy:'',//止盈
|
|
},
|
|
// 最多可开张数
|
|
maxNum: 0,
|
|
lever_rage: [],
|
|
accountInfo: {},
|
|
_time: null,
|
|
unit_amount:0,
|
|
marks:{
|
|
25:'',
|
|
50:'',
|
|
75:''
|
|
},
|
|
margin:0,
|
|
margin_buy:0,
|
|
margin_sell:0,
|
|
};
|
|
},
|
|
props: {
|
|
symbol: {
|
|
default: "",
|
|
type: String,
|
|
required: false
|
|
},
|
|
holdPositionList: {
|
|
default: () => [],
|
|
type: Array,
|
|
required: false
|
|
},
|
|
defaultPrice: {
|
|
default: "",
|
|
type: String | Number,
|
|
required: false
|
|
},
|
|
newPriceObj: {
|
|
default: () => {},
|
|
type: Object,
|
|
required: false
|
|
},
|
|
contractOpen: {}
|
|
},
|
|
watch: {
|
|
symbol() {
|
|
this.form.entrust_price = undefined;
|
|
this.form.entrust_price_sell = undefined;
|
|
this.form.entrust_price_buy = undefined;
|
|
this.contractAccount();
|
|
this.getSymbolDetail();
|
|
},
|
|
defaultPrice(n) {
|
|
this.form.entrust_price = n;
|
|
this.form.entrust_price_sell = n;
|
|
this.form.entrust_price_buy = n;
|
|
},
|
|
newPriceObj(n) {
|
|
if (n && this.form.entrust_price_sell === undefined) {
|
|
this.form.entrust_price_sell = n.price;
|
|
}
|
|
if (n && this.form.entrust_price_buy === undefined) {
|
|
this.form.entrust_price_buy = n.price;
|
|
}
|
|
},
|
|
contractOpen(n, o) {
|
|
if (n != o) {
|
|
this.contractAccount();
|
|
}
|
|
}
|
|
},
|
|
destroyed() {
|
|
clearInterval(this._time);
|
|
},
|
|
mounted() {
|
|
if (this.symbol) {
|
|
this.contractAccount();
|
|
|
|
this.getSymbolDetail();
|
|
}
|
|
this._time = setInterval(() => {
|
|
if (this.symbol) {
|
|
// if (this.contractOpen) {
|
|
this.contractAccount(true);
|
|
// }
|
|
}
|
|
}, 3000);
|
|
},
|
|
computed: {
|
|
tips(){
|
|
// return this.unit_amount?(`${this.unit_amount}USDT`):''
|
|
return this.unit_amount?(`USDT`):''
|
|
},
|
|
isLogin() {
|
|
return Boolean(localStorage.token);
|
|
},
|
|
// 多仓持仓
|
|
multiplePositions() {
|
|
let item = this.holdPositionList.find(item => item.side == 1);
|
|
if (!item) return 0;
|
|
return item.hold_position;
|
|
},
|
|
// 可平多
|
|
canMore() {
|
|
let item = this.holdPositionList.find(item => item.side == 1);
|
|
if (!item) return 0;
|
|
return item.avail_position;
|
|
},
|
|
// 空仓持仓
|
|
shortPosition() {
|
|
let item = this.holdPositionList.find(item => item.side == 2);
|
|
if (!item) return 0;
|
|
return item.hold_position;
|
|
},
|
|
// 可以平空
|
|
canEmpty() {
|
|
let item = this.holdPositionList.find(item => item.side == 2);
|
|
if (!item) return 0;
|
|
return item.avail_position;
|
|
},
|
|
activeStep_buy() {
|
|
if (!this.form.amount_buy || !this.maxNum) return 0;
|
|
let num = (this.form.amount_buy / this.maxNum) * 100;
|
|
return num;
|
|
},
|
|
activeStep_sell() {
|
|
if (!this.form.amount_sell || !this.maxNum) return 0;
|
|
let num = (this.form.amount_sell / this.maxNum) * 100;
|
|
return num;
|
|
},
|
|
// 保证金
|
|
// margin() {
|
|
// if (!this.form.lever_rate) return '';
|
|
// return math.omitTo(this.form.amount*this.unit_amount / this.form.lever_rate, 4);
|
|
// },
|
|
amount_buy(){
|
|
console.info(this.form.lever_rate)
|
|
console.info(this.margin_buy)
|
|
if (!this.form.lever_rate || !this.margin_buy) return 0;
|
|
// let p=this.margin_buy*this.form.lever_rate;
|
|
let p=this.margin_buy;
|
|
|
|
this.form.amount_buy=p;
|
|
return p
|
|
},
|
|
amount_sell(){
|
|
console.info(this.form.lever_rate)
|
|
console.info(this.margin_sell)
|
|
if (!this.form.lever_rate || !this.margin_sell) return 0;
|
|
// let p=this.margin_sell*this.form.lever_rate;
|
|
let p=this.margin_sell;
|
|
|
|
this.form.amount_sell=p;
|
|
return p
|
|
}
|
|
},
|
|
methods: {
|
|
// 获取合约账户信息
|
|
contractAccount(boo) {
|
|
if (!this.isLogin) return;
|
|
// if (!this.contractOpen) return;
|
|
let data = {
|
|
symbol: this.symbol
|
|
};
|
|
Contract.contractAccount(data).then(res => {
|
|
this.accountInfo = res;
|
|
this.$emit("accountInfo", res);
|
|
if (!this.form.lever_rate) {
|
|
this.form.lever_rate = res.lever_rate;
|
|
}
|
|
if (this.form.lever_rate && !boo) {
|
|
this.openNum();
|
|
}
|
|
});
|
|
},
|
|
// 获取可开启张数
|
|
openNum() {
|
|
if (!this.isLogin) return;
|
|
let data = {
|
|
symbol: this.symbol, //ETH
|
|
lever_rate: this.form.lever_rate //10
|
|
};
|
|
Contract.openNum(data).then(res => {
|
|
this.maxNum = res;
|
|
});
|
|
},
|
|
// 获取合约详情
|
|
getSymbolDetail() {
|
|
let data = {
|
|
symbol: this.symbol
|
|
};
|
|
Contract.getSymbolDetail(data).then(res => {
|
|
this.lever_rage = res.lever_rage;
|
|
this.unit_amount = res.unit_amount
|
|
this.$emit('getSymbolDetail',res)
|
|
if (!this.form.lever_rate) {
|
|
this.form.lever_rate = res.default_lever;
|
|
}
|
|
});
|
|
},
|
|
// 设置数量
|
|
sliderChange($ev, operate) {
|
|
|
|
if(operate=='sell'){
|
|
this.form.amount_sell = Math.round((this.maxNum * $ev) / 100)||'';
|
|
console.info(this.form)
|
|
this.margin_sell=this.form.amount_sell/this.form.lever_rate || 0
|
|
}else if (operate == 'buy'){
|
|
this.form.amount_buy = Math.round((this.maxNum * $ev) / 100)||'';
|
|
console.info(this.form)
|
|
this.margin_buy=this.form.amount_buy/this.form.lever_rate || 0
|
|
}
|
|
},
|
|
// 选择杠杆
|
|
selectLever(idx) {
|
|
this.form.lever_rate = idx;
|
|
this.openNum();
|
|
},
|
|
tooltip($ev) {
|
|
return Math.round($ev) + "%";
|
|
},
|
|
// 提示
|
|
ifOpenPosition(side) {
|
|
if (this.tab == 1) {
|
|
this.openPosition(side);
|
|
} else {
|
|
this.closePosition(side);
|
|
}
|
|
|
|
// let typeStr =
|
|
// this.form.type == 1
|
|
// ? `${this.form.entrust_price}${this.$t("contract.f0")}`
|
|
// : this.$t("contract.d9");
|
|
// let decStr =
|
|
// this.tab == 1
|
|
// ? `${this.$t("contract.d5")}${this.form.amount}${this.$t(
|
|
// "contract.e2"
|
|
// )}${side == 1 ? this.$t("contract.f1") : this.$t("contract.f2")}`
|
|
// : `${this.$t("contract.d6")}${this.form.amount}${this.$t(
|
|
// "contract.e2"
|
|
// )}`;
|
|
|
|
|
|
// `${this.$t("contract.f3")}${typeStr}${this.form.lever_rate}${this.$t(
|
|
// "contract.f4"
|
|
// )}${decStr}?`
|
|
// this.$confirm(
|
|
// `${this.$t("contract.f3")}${typeStr}${this.form.lever_rate}
|
|
// ${this.$t("contract.f4")}${this.$t("contract.d5")}?`
|
|
// )
|
|
// .then(res => {
|
|
// if (this.tab == 1) {
|
|
// this.openPosition(side);
|
|
// } else {
|
|
// this.closePosition(side);
|
|
// }
|
|
// })
|
|
// .catch(res => {});
|
|
},
|
|
// 开仓
|
|
openPosition(side) {
|
|
// side ,1--buy,2--sell
|
|
let data = {
|
|
// side,
|
|
// symbol: this.symbol,
|
|
// ...this.form
|
|
};
|
|
if(side==1){
|
|
data = {
|
|
amount: this.form.amount_buy,
|
|
entrust_price: this.form.entrust_price_buy,
|
|
lever_rate: this.form.lever_rate,
|
|
side: 1,
|
|
symbol: this.symbol,
|
|
type: this.form.type,
|
|
sl_trigger_price: this.form.sl_trigger_price_buy,//止损
|
|
tp_trigger_price: this.form.tp_trigger_price_buy,//止盈
|
|
}
|
|
}else if(side==2){
|
|
data = {
|
|
amount: this.form.amount_sell,
|
|
entrust_price: this.form.entrust_price_sell,
|
|
lever_rate: this.form.lever_rate,
|
|
side: 2,
|
|
symbol: this.symbol,
|
|
type: this.form.type,
|
|
sl_trigger_price: this.form.sl_trigger_price_sell,//止损
|
|
tp_trigger_price: this.form.tp_trigger_price_sell,//止盈
|
|
}
|
|
}
|
|
if(this.form.type==2){
|
|
// data.entrust_price = this.margin;
|
|
data.entrust_price = this.newPriceObj.price;
|
|
if(side==1){
|
|
data.amount = this.amount_buy;
|
|
}else if(side==2){
|
|
data.amount = this.amount_sell;
|
|
}
|
|
|
|
}
|
|
console.log(this.margin, '保证金')
|
|
console.log(data, 111111, this.newPriceObj.price);
|
|
Contract.openPosition(data).then(() => {
|
|
this.contractAccount();
|
|
this.form.amount = 0;
|
|
this.form.amount_buy = 0;
|
|
this.form.amount_sell = 0;
|
|
this.form.sl_trigger_price_sell = 0;
|
|
this.form.sl_trigger_price_buy = 0;
|
|
this.form.tp_trigger_price_sell = 0;
|
|
this.form.tp_trigger_price_buy = 0;
|
|
this.$message.success(this.$t("contract.f5"));
|
|
this.$emit("position");
|
|
});
|
|
},
|
|
// 平仓
|
|
closePosition(side) {
|
|
let data = {
|
|
side: side == 1 ? 2 : 1,
|
|
type: this.form.type,
|
|
symbol: this.symbol,
|
|
entrust_price: this.form.entrust_price || 0,
|
|
amount: this.form.amount
|
|
};
|
|
Contract.closePosition(data).then(() => {
|
|
this.form.amount = "";
|
|
this.contractAccount();
|
|
this.$message.success(this.$t("contract.f6"));
|
|
this.$emit("position");
|
|
});
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style scoped="scoped">
|
|
.exchange_button{
|
|
display: flex;
|
|
font-size: 16px !important;
|
|
}
|
|
.btn,.kaicang{
|
|
font-size: 0.9rem;
|
|
}
|
|
/* /deep/ .el-slider__stop{
|
|
background-color: ;
|
|
} */
|
|
.markets-pair-list{
|
|
padding: 5px 12px;
|
|
}
|
|
.content-box{
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.nav-item{
|
|
padding: 4px 19px;
|
|
text-align-last: center;
|
|
background-color: #FFF;
|
|
border-radius: 3px;
|
|
margin-right: 10px;
|
|
cursor: pointer;
|
|
}
|
|
.nav-item.active{
|
|
background-color: #F7D558;
|
|
}
|
|
.nav-item a{
|
|
color: #333 !important;
|
|
}
|
|
.ex-s-p-c{
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 10px 0px;
|
|
}
|
|
.usable-box-A{
|
|
color: #666;
|
|
white-space: nowrap;
|
|
margin-bottom: 10px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
.ex-s-p-c .input-group-a {
|
|
position: relative;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
-ms-flex-align: center;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background-color: #fafafa;
|
|
margin-bottom: 10px;
|
|
}
|
|
.form-control{
|
|
border: none;
|
|
font-size: 14px;
|
|
text-align: right;
|
|
flex: 1;
|
|
color: #000;
|
|
}
|
|
.form-control-A{
|
|
color: #666;
|
|
text-align: center;
|
|
padding: 0px 10px;
|
|
}
|
|
.form-control-B{
|
|
color: #000;
|
|
text-align: center;
|
|
padding: 0px 10px;
|
|
}
|
|
.btn-success{
|
|
background-color: #9ED889;
|
|
background-image: none;
|
|
padding: 10px;
|
|
}
|
|
.btn-danger{
|
|
background-color: #D5444E;
|
|
background-image: none;
|
|
padding: 10px;
|
|
}
|
|
.line-A{
|
|
width: 1px;
|
|
height: 40px;
|
|
background-color: #f5f5f5;
|
|
margin: 0px 10px;
|
|
}
|
|
</style>
|
|
|