This commit is contained in:
shilin
2025-02-18 17:18:31 +08:00
parent f7b5fdefdf
commit 5db097df9a
4 changed files with 62 additions and 25 deletions

Binary file not shown.

View File

@ -151,3 +151,12 @@ export function aicoinSymbol(params) {
})
}
// 获取止盈点
export function calculate(data) {
return request({
url: '/api/v1/line-pre-order/calculate',
method: 'post',
data
})
}

View File

@ -331,7 +331,7 @@
>
<template #prepend>
<el-select v-if="inForm.price_pattern === 'aicoin'" v-model="aicoinPrice" placeholder="请选择" style="width: 150px;" @change="onchangeAicoin">
<el-option v-for="o in options" :key="o.label" :label="o.label" :value="aicoins[o.value]">
<el-option v-for="o in options" :key="o.label" :label="o.label" :value="aicoins[o.value] || ''">
<span style="float: left">{{ o.label }}</span>
<span style="float: right">{{ aicoins[o.value] || 0 }}</span>
</el-option>
@ -441,8 +441,8 @@
<el-radio label="0">直接执行</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="主单减仓价格百分比" prop="reduce_price">
<el-input v-model.number="inForm.reduce_price" type="number" placeholder="主单减仓价格百分比" />
<el-form-item label="主单亏损减仓百分比" prop="reduce_price">
<el-input v-model.number="inForm.reduce_price" type="number" placeholder="主单亏损减仓百分比" />
</el-form-item>
<el-form-item label="主单减仓数量百分比" prop="reduce_num">
<el-input v-model.number="inForm.reduce_num" type="number" placeholder="主单减仓数量百分比" />
@ -455,7 +455,8 @@
</el-form-item>
<el-row>
<el-col :span="4"><el-form-item label="主单加仓配置" /></el-col>
<el-col :span="20"><el-button type="primary" size="mini" @click="onAddExt(0)">新增</el-button></el-col>
<el-col :span="2"><el-button type="primary" size="mini" @click="onAddExt(0)">新增</el-button></el-col>
<el-col v-if="form.type===1" :span="2"><el-button type="primary" size="mini" :disabled="inForm.ext && inForm.ext.length===0" @click="onCalculate">计算</el-button></el-col>
</el-row>
<div v-for="(item,index) in inForm.ext" :key="index" class="exts">
<el-row :gutter="20">
@ -470,18 +471,22 @@
<div style="margin-bottom: 8px;">加仓方式</div>
<el-radio-group v-model="item.addPositionType" size="mini">
<el-radio :label="1">百分比</el-radio>
<el-radio :label="0">实际金额</el-radio>
<el-radio :label="2">实际金额</el-radio>
</el-radio-group>
</el-col>
<el-col :span="5">加仓下跌百分比<el-input v-model.number="item.addPositionPriceRatio" size="mini" type="number" placeholder="加仓价格百分比" /></el-col>
<el-col :span="5">加仓数值<el-input v-model.number="item.addPositionVal" size="mini" type="number" placeholder="加仓数值" /></el-col>
<el-col :span="5">加仓价百分比<el-input v-model.number="item.addPositionPriceRatio" size="mini" type="number" placeholder="加仓价格百分比" /></el-col>
<el-col :span="4">加仓后止盈百分比<el-input v-model.number="item.takeProfitRatio" size="mini" type="number" placeholder="止盈百分比" /></el-col>
<el-col :span="4">加仓后止盈价百分比<el-input v-model.number="item.takeProfitRatio" size="mini" type="number" placeholder="止盈百分比">
<template v-if="form.type===1" #append>{{ ext.length ? ext[index].reTakeProfitRatio : 0 }}</template>
</el-input></el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 10px;">
<el-col :span="5">减仓价格百分比<el-input v-model.number="item.reducePriceRatio" size="mini" type="number" placeholder="减仓价格百分比" /></el-col>
<el-col :span="5">减仓下跌百分比<el-input v-model.number="item.reducePriceRatio" size="mini" type="number" placeholder="减仓价格百分比" /></el-col>
<el-col :span="5">减仓数量百分比<el-input v-model.number="item.reduceNumRatio" size="mini" type="number" placeholder="减仓数量百分比" /></el-col>
<el-col :span="5">减仓后止盈百分比<el-input v-model.number="item.reduceTakeProfitRatio" size="mini" type="number" placeholder="减仓后止盈百分比" /></el-col>
<el-col :span="5">减仓后止损百分比<el-input v-model.number="item.reduceStopLossRatio" size="mini" type="number" placeholder="减仓后止损百分比" /></el-col>
<el-col :span="5">减仓后止盈百分比<el-input v-model.number="item.reduceTakeProfitRatio" size="mini" type="number" placeholder="减仓后止盈百分比">
<template v-if="form.type===1" #append>{{ ext.length ? ext[index].reduceReTakeProfitRatio : 0 }}</template>
</el-input></el-col>
<el-col :span="5">减仓后止损价百分比<el-input v-model.number="item.reduceStopLossRatio" size="mini" type="number" placeholder="减仓后止损百分比" /></el-col>
<el-col :span="4"><div style="margin-bottom: 14px;" /><el-button size="mini" type="danger" @click="onAddExt(1,index)">删除</el-button></el-col>
</el-row>
</div>
@ -522,7 +527,7 @@ import { listLineSymbol, getSameSymbol } from '@/api/admin/line-symbol'
import { addLineOrderTemplateLogs, delLineOrderTemplateLogs, getLineOrderTemplateLogs, listLineOrderTemplateLogs, updateLineOrderTemplateLogs } from '@/api/admin/line-order-template-logs'
import { listLineSymbolGroup } from '@/api/admin/line-symbol-group'
import { getMainUser, listLineApiUser } from '@/api/admin/line-api-user'
import { aicoinSymbol, quickAddPreOrder } from '@/api/admin/line-pre-order'
import { calculate, aicoinSymbol, quickAddPreOrder } from '@/api/admin/line-pre-order'
export default {
name: 'LineOrderTemplateLogs',
components: {
@ -603,7 +608,8 @@ export default {
lineTotal: 0,
exchangeTypes: [],
aicoins: {},
aicoinPrice: undefined
aicoinPrice: undefined,
ext: []
}
},
computed: {
@ -815,6 +821,7 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
this.ext = []
const id =
row.id || this.ids
getLineOrderTemplateLogs(id).then(response => {
@ -825,6 +832,7 @@ export default {
this.onchangePattern(false)
this.getListLineApiUser()
this.form.type === 2 && this.getSymbolGroup(this.inForm.symbol_type)
this.onCalculate()
this.open = true
this.title = '修改委托下单模板'
this.isEdit = true
@ -908,6 +916,12 @@ export default {
}
}).catch(function() {
})
},
// 计算需要回本利润
onCalculate() {
calculate({ ...this.inForm, api_id: this.inForm.api_id.toString() }).then(res => {
this.ext = res?.data?.ext || []
})
}
}
}

View File

@ -630,7 +630,7 @@
>
<template #prepend>
<el-select v-if="form.price_pattern === 'aicoin'" v-model="aicoinPrice" placeholder="请选择" style="width: 150px;" @change="onchangeAicoin">
<el-option v-for="o in options" :key="o.label" :label="o.label" :value="aicoins[o.value]">
<el-option v-for="o in options" :key="o.label" :label="o.label" :value="aicoins[o.value] || ''">
<span style="float: left">{{ o.label }}</span>
<span style="float: right">{{ aicoins[o.value] || 0 }}</span>
</el-option>
@ -770,8 +770,8 @@
<el-radio label="0">直接执行</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="主单减仓价格百分比" prop="reduce_price">
<el-input v-model.number="form.reduce_price" type="number" placeholder="主单减仓价格百分比" />
<el-form-item label="主单亏损减仓百分比" prop="reduce_price">
<el-input v-model.number="form.reduce_price" type="number" placeholder="主单亏损减仓百分比" />
</el-form-item>
<el-form-item label="主单减仓数量百分比" prop="reduce_num">
<el-input v-model.number="form.reduce_num" type="number" placeholder="主单减仓数量百分比" />
@ -784,7 +784,8 @@
</el-form-item>
<el-row>
<el-col :span="4"><el-form-item label="主单加仓配置" /></el-col>
<el-col :span="20"><el-button type="primary" size="mini" @click="onAddExt(0)">新增</el-button></el-col>
<el-col :span="2"><el-button type="primary" size="mini" @click="onAddExt(0)">新增</el-button></el-col>
<el-col v-if="title!=='批量添加'" :span="2"><el-button type="primary" size="mini" :disabled="form.ext && form.ext.length===0" @click="onCalculate">计算</el-button></el-col>
</el-row>
<div v-for="(item,index) in form.ext" :key="index" class="exts">
<el-row :gutter="20">
@ -799,18 +800,22 @@
<div style="margin-bottom: 8px;">加仓方式</div>
<el-radio-group v-model="item.addPositionType" size="mini">
<el-radio :label="1">百分比</el-radio>
<el-radio :label="0">实际金额</el-radio>
<el-radio :label="2">实际金额</el-radio>
</el-radio-group>
</el-col>
<el-col :span="5">加仓下跌百分比<el-input v-model.number="item.addPositionPriceRatio" size="mini" type="number" placeholder="加仓下跌百分比" /></el-col>
<el-col :span="5">加仓数值<el-input v-model.number="item.addPositionVal" size="mini" type="number" placeholder="加仓数值" /></el-col>
<el-col :span="5">加仓价百分比<el-input v-model.number="item.addPositionPriceRatio" size="mini" type="number" placeholder="加仓价格百分比" /></el-col>
<el-col :span="4">加仓后止盈百分比<el-input v-model.number="item.takeProfitRatio" size="mini" type="number" placeholder="止盈百分比" /></el-col>
<el-col :span="4">加仓后止盈价百分比<el-input v-model.number="item.takeProfitRatio" size="mini" type="number" placeholder="止盈百分比">
<template v-if="title!=='批量添加'" #append>{{ ext.length ? ext[index].reTakeProfitRatio : 0 }}</template>
</el-input></el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 10px;">
<el-col :span="5">减仓价格百分比<el-input v-model.number="item.reducePriceRatio" size="mini" type="number" placeholder="减仓价格百分比" /></el-col>
<el-col :span="5">减仓下跌百分比<el-input v-model.number="item.reducePriceRatio" size="mini" type="number" placeholder="减仓下跌百分比" /></el-col>
<el-col :span="5">减仓数量百分比<el-input v-model.number="item.reduceNumRatio" size="mini" type="number" placeholder="减仓数量百分比" /></el-col>
<el-col :span="5">减仓后止盈百分比<el-input v-model.number="item.reduceTakeProfitRatio" size="mini" type="number" placeholder="减仓后止盈百分比" /></el-col>
<el-col :span="5">减仓后止损百分比<el-input v-model.number="item.reduceStopLossRatio" size="mini" type="number" placeholder="减仓后止损百分比" /></el-col>
<el-col :span="5">减仓后止盈百分比<el-input v-model.number="item.reduceTakeProfitRatio" size="mini" type="number" placeholder="减仓后止盈百分比">
<template v-if="title!=='批量添加'" #append>{{ ext.length ? ext[index].reduceReTakeProfitRatio : 0 }}</template>
</el-input></el-col>
<el-col :span="5">减仓后止损价百分比<el-input v-model.number="item.reduceStopLossRatio" size="mini" type="number" placeholder="减仓后止损百分比" /></el-col>
<el-col :span="4"><div style="margin-bottom: 14px;" /><el-button size="mini" type="danger" @click="onAddExt(1,index)">删除</el-button></el-col>
</el-row>
</div>
@ -1237,7 +1242,7 @@
<script>
import { listLineSymbol, getSameSymbol } from '@/api/admin/line-symbol'
import { aicoinSymbol, clearUnTriggered, clearAll, closePosition, manuallyCover, orderMarginType, orderLever, batchAddOrder, addOrder, delLinePreOrder, getLinePreOrder, listLinePreOrder, updateLinePreOrder, getChildOrder, cancelOpenOrder } from '@/api/admin/line-pre-order'
import { calculate, aicoinSymbol, clearUnTriggered, clearAll, closePosition, manuallyCover, orderMarginType, orderLever, batchAddOrder, addOrder, delLinePreOrder, getLinePreOrder, listLinePreOrder, updateLinePreOrder, getChildOrder, cancelOpenOrder } from '@/api/admin/line-pre-order'
import { getMainUser, listLineApiUser } from '@/api/admin/line-api-user'
import { listLineSymbolGroup } from '@/api/admin/line-symbol-group'
export default {
@ -1425,7 +1430,9 @@ export default {
btnLoading: false,
exchangeTypes: [],
aicoins: {},
aicoinPrice: ''
aicoinPrice: '',
// 回本止盈点
ext: []
}
},
computed: {
@ -1922,6 +1929,7 @@ export default {
},
/** 新增按钮操作 */
handleAdd(title) {
this.ext = []
this.title = title || '添加委托管理'
this.reset()
this.getListLineApiUser()
@ -2004,7 +2012,7 @@ export default {
if (typeof row === 'string') {
this.$refs[row].validate((valid) => {
if (valid) {
cancelOpenOrder(this.cancelForm)
cancelOpenOrder({ ...this.cancelForm, exchangeType: row.exchangeType })
.then((response) => {
if (response.code === 200) {
this.msgSuccess(response.msg)
@ -2088,6 +2096,12 @@ export default {
}
}).catch(function() {
})
},
// 计算需要回本利润
onCalculate() {
calculate({ ...this.form, api_id: this.form.api_id.toString() }).then(res => {
this.ext = res?.data?.ext || []
})
}
}
}