flx
This commit is contained in:
@ -8,11 +8,21 @@
|
|||||||
<el-option v-for="dict in lineUsersAll" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
<el-option v-for="dict in lineUsersAll" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="交易对" prop="symbol"><el-input v-model="queryParams.symbol" placeholder="请输入交易对" clearable
|
<el-form-item label="交易对" prop="symbol"><el-input
|
||||||
size="small" @keyup.enter.native="handleQuery" />
|
v-model="queryParams.symbol"
|
||||||
|
placeholder="请输入交易对"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="计价货币" prop="quoteSymbol"><el-input v-model="queryParams.quoteSymbol"
|
<el-form-item label="计价货币" prop="quoteSymbol"><el-input
|
||||||
placeholder="请输入计价货币" clearable size="small" @keyup.enter.native="handleQuery" />
|
v-model="queryParams.quoteSymbol"
|
||||||
|
placeholder="请输入计价货币"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="对标价类型" prop="signPriceType"><el-select
|
<!-- <el-form-item label="对标价类型" prop="signPriceType"><el-select
|
||||||
v-model="queryParams.signPriceType"
|
v-model="queryParams.signPriceType"
|
||||||
@ -28,23 +38,39 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="购买方向" prop="site"><el-select v-model="queryParams.site" placeholder="请选择购买方向" clearable
|
<el-form-item label="购买方向" prop="site"><el-select
|
||||||
size="small">
|
v-model="queryParams.site"
|
||||||
<el-option v-for="dict in buyer" :key="dict.k" :label="dict.l" :value="dict.v" />
|
placeholder="请选择购买方向"
|
||||||
</el-select>
|
clearable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
<el-option v-for="dict in buyer" :key="dict.k" :label="dict.l" :value="dict.v" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单号" prop="orderSn"><el-input v-model="queryParams.orderSn" placeholder="请输入订单号"
|
<el-form-item label="订单号" prop="orderSn"><el-input
|
||||||
clearable size="small" @keyup.enter.native="handleQuery" />
|
v-model="queryParams.orderSn"
|
||||||
|
placeholder="请输入订单号"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单类型" prop="symbolType"><el-select v-model="queryParams.symbolType" placeholder="请选择订单类型"
|
<el-form-item label="订单类型" prop="symbolType"><el-select
|
||||||
clearable size="small">
|
v-model="queryParams.symbolType"
|
||||||
<el-option v-for="dict in [{ l: '现货', v: 1 }, { l: '合约', v: 2 }]" :key="dict.k" :label="dict.l" :value="dict.v" />
|
placeholder="请选择订单类型"
|
||||||
</el-select>
|
clearable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
<el-option v-for="dict in [{ l: '现货', v: 1 }, { l: '合约', v: 2 }]" :key="dict.k" :label="dict.l" :value="dict.v" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status"><el-select v-model="queryParams.status" placeholder="请选择状态"
|
<el-form-item label="状态" prop="status"><el-select
|
||||||
size="small">
|
v-model="queryParams.status"
|
||||||
<el-option v-for="dict in statuss" :key="dict.k" :label="dict.l" :value="dict.v" />
|
placeholder="请选择状态"
|
||||||
</el-select>
|
size="small"
|
||||||
|
>
|
||||||
|
<el-option v-for="dict in statuss" :key="dict.k" :label="dict.l" :value="dict.v" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
@ -54,8 +80,13 @@
|
|||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button v-permisaction="['admin:linePreOrder:add']" type="primary" icon="el-icon-plus" size="mini"
|
<el-button
|
||||||
@click="handleAdd('')">新增
|
v-permisaction="['admin:linePreOrder:add']"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd('')"
|
||||||
|
>新增
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
@ -109,28 +140,59 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" icon="el-icon-delete" size="mini" :disabled="linePreOrderList.length === 0"
|
<el-button
|
||||||
@click="handleDeleteAll">一键清除数据
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="linePreOrderList.length === 0"
|
||||||
|
@click="handleDeleteAll"
|
||||||
|
>一键清除数据
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" icon="el-icon-delete" size="mini" :disabled="linePreOrderList.length === 0"
|
<el-button
|
||||||
@click="handleTrigger">清除待触发交易对
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="linePreOrderList.length === 0"
|
||||||
|
@click="handleTrigger"
|
||||||
|
>清除待触发交易对
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button v-permisaction="['admin:linePreOrder:remove']" type="danger" icon="el-icon-delete" size="mini"
|
<el-button
|
||||||
:disabled="multiple" @click="handleDelete">批量删除
|
v-permisaction="['admin:linePreOrder:remove']"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
>批量删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table ref="table" v-loading="loading" :data="linePreOrderList" row-key="id" lazy :load="onLoadChild"
|
<el-table
|
||||||
:tree-props="{ children: 'children', hasChildren: 'hasChildren', checkStrictly: true }" height="560"
|
ref="table"
|
||||||
@selection-change="handleSelectionChange" @expand-change="onExpand">
|
v-loading="loading"
|
||||||
|
:data="linePreOrderList"
|
||||||
|
row-key="id"
|
||||||
|
lazy
|
||||||
|
:load="onLoadChild"
|
||||||
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren', checkStrictly: true }"
|
||||||
|
height="560"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
@expand-change="onExpand"
|
||||||
|
>
|
||||||
<el-table-column type="selection" width="55" align="center" :selectable="(row) => row.pid === 0" />
|
<el-table-column type="selection" width="55" align="center" :selectable="(row) => row.pid === 0" />
|
||||||
<el-table-column label="交易对" align="left" prop="symbol" width="150" :show-overflow-tooltip="true"
|
<el-table-column
|
||||||
fixed="left">
|
label="交易对"
|
||||||
|
align="left"
|
||||||
|
prop="symbol"
|
||||||
|
width="150"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
fixed="left"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span v-if="row.pid === 0">({{ row.child_num }})</span>
|
<span v-if="row.pid === 0">({{ row.child_num }})</span>
|
||||||
<span v-else-if="row.child_num">({{ row.child_num }})</span>
|
<span v-else-if="row.child_num">({{ row.child_num }})</span>
|
||||||
@ -138,22 +200,56 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="api用户名" align="center" prop="api_name" :show-overflow-tooltip="true" />
|
<el-table-column label="api用户名" align="center" prop="api_name" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="对标价" align="center" prop="signPrice" min-width="120"
|
<el-table-column
|
||||||
:show-overflow-tooltip="true" /><el-table-column label="对标价类型" align="center" prop="signPriceType"
|
label="对标价"
|
||||||
width="100" :show-overflow-tooltip="true">
|
align="center"
|
||||||
|
prop="signPrice"
|
||||||
|
min-width="120"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/><el-table-column
|
||||||
|
label="对标价类型"
|
||||||
|
align="center"
|
||||||
|
prop="signPriceType"
|
||||||
|
width="100"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ { new: '最新价', mixture: '标记价', aicoin: 'aicoin' }[row.signPriceType] }}
|
{{ { new: '最新价', mixture: '标记价', aicoin: 'aicoin' }[row.signPriceType] }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="下单百分比" align="center" prop="rate" min-width="100"
|
<el-table-column
|
||||||
:show-overflow-tooltip="true" /><el-table-column label="触发价格" align="center" prop="price" min-width="120"
|
label="下单百分比"
|
||||||
:show-overflow-tooltip="true" /><el-table-column label="购买数量" align="center" prop="num" min-width="120"
|
align="center"
|
||||||
:show-overflow-tooltip="true" /><el-table-column label="购买金额" align="center" prop="buyPrice" min-width="120"
|
prop="rate"
|
||||||
:show-overflow-tooltip="true" /><el-table-column label="购买方向" align="center" prop="site"
|
min-width="100"
|
||||||
:show-overflow-tooltip="true">
|
:show-overflow-tooltip="true"
|
||||||
|
/><el-table-column
|
||||||
|
label="触发价格"
|
||||||
|
align="center"
|
||||||
|
prop="price"
|
||||||
|
min-width="120"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/><el-table-column
|
||||||
|
label="购买数量"
|
||||||
|
align="center"
|
||||||
|
prop="num"
|
||||||
|
min-width="120"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/><el-table-column
|
||||||
|
label="购买金额"
|
||||||
|
align="center"
|
||||||
|
prop="buyPrice"
|
||||||
|
min-width="120"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/><el-table-column
|
||||||
|
label="购买方向"
|
||||||
|
align="center"
|
||||||
|
prop="site"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag size="mini" :type="row.site === 'BUY' ? 'success' : 'danger'">{{ { BUY: '买(多)', SELL: '卖(空)' }[row.site]
|
<el-tag size="mini" :type="row.site === 'BUY' ? 'success' : 'danger'">{{ { BUY: '买(多)', SELL: '卖(空)' }[row.site]
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="订单类型" align="center" prop="orderType" :show-overflow-tooltip="true">
|
<el-table-column label="订单类型" align="center" prop="orderType" :show-overflow-tooltip="true">
|
||||||
@ -185,8 +281,13 @@
|
|||||||
['未减仓', '已减仓'][row.reduce_status] }}</el-tag>
|
['未减仓', '已减仓'][row.reduce_status] }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="加仓状态" align="center" prop="add_position_status" width="100"
|
<el-table-column
|
||||||
:show-overflow-tooltip="true">
|
label="加仓状态"
|
||||||
|
align="center"
|
||||||
|
prop="add_position_status"
|
||||||
|
width="100"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag v-if="row.pid === 0" size="mini" :type="['danger', 'success'][row.add_position_status]">{{
|
<el-tag v-if="row.pid === 0" size="mini" :type="['danger', 'success'][row.add_position_status]">{{
|
||||||
['未加仓', '已加仓'][row.add_position_status] }}</el-tag>
|
['未加仓', '已加仓'][row.add_position_status] }}</el-tag>
|
||||||
@ -258,32 +359,63 @@
|
|||||||
>修改
|
>修改
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-popconfirm> -->
|
</el-popconfirm> -->
|
||||||
<el-popconfirm class="delete-popconfirm" title="确认要取消委托吗?" confirm-button-text="确定"
|
<el-popconfirm
|
||||||
@confirm="handleCancel(scope.row)">
|
class="delete-popconfirm"
|
||||||
|
title="确认要取消委托吗?"
|
||||||
|
confirm-button-text="确定"
|
||||||
|
@confirm="handleCancel(scope.row)"
|
||||||
|
>
|
||||||
<el-button slot="reference" size="mini" type="text" :disabled="scope.row.status != 5">取消委托
|
<el-button slot="reference" size="mini" type="text" :disabled="scope.row.status != 5">取消委托
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
<el-popconfirm class="delete-popconfirm" title="确认要删除吗?" confirm-button-text="删除"
|
<el-popconfirm
|
||||||
@confirm="handleDelete(scope.row)">
|
class="delete-popconfirm"
|
||||||
<el-button slot="reference" v-permisaction="['admin:linePreOrder:remove']" size="mini" type="text"
|
title="确认要删除吗?"
|
||||||
style="color: #ff6d6d;" icon="el-icon-delete">删除
|
confirm-button-text="删除"
|
||||||
|
@confirm="handleDelete(scope.row)"
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
slot="reference"
|
||||||
|
v-permisaction="['admin:linePreOrder:remove']"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
style="color: #ff6d6d;"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
>删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageIndex"
|
<pagination
|
||||||
:limit.sync="queryParams.pageSize" @pagination="getList" />
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageIndex"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改对话框 -->
|
<!-- 添加或修改对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="1300px" :close-on-click-modal="false">
|
<el-dialog :title="title" :visible.sync="open" width="1300px" :close-on-click-modal="false">
|
||||||
<div v-loading="formLoading">
|
<div v-loading="formLoading">
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="180px"
|
<el-form
|
||||||
style="height: 600px;overflow: hidden auto;">
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="180px"
|
||||||
|
style="height: 600px;overflow: hidden auto;"
|
||||||
|
>
|
||||||
<el-form-item label="交易所" prop="exchange_type">
|
<el-form-item label="交易所" prop="exchange_type">
|
||||||
<el-select v-model="form.exchange_type" style="width: 100%;" placeholder="请选择交易所" clearable filterable
|
<el-select
|
||||||
size="small" @change="onchangeForm">
|
v-model="form.exchange_type"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
@change="onchangeForm"
|
||||||
|
>
|
||||||
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -304,8 +436,15 @@
|
|||||||
<el-form-item label="api用户" prop="api_id">
|
<el-form-item label="api用户" prop="api_id">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="21">
|
<el-col :span="21">
|
||||||
<el-select v-model="form.api_id" multiple style="width: 100%;" placeholder="请选择api用户" clearable
|
<el-select
|
||||||
filterable size="small">
|
v-model="form.api_id"
|
||||||
|
multiple
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择api用户"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -321,20 +460,47 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item v-if="title === '批量添加'" label="交易对组" prop="symbol_group_id">
|
<el-form-item v-if="title === '批量添加'" label="交易对组" prop="symbol_group_id">
|
||||||
<el-select v-if="title === '批量添加'" v-model="form.symbol_group_id" style="width: 100%;"
|
<el-select
|
||||||
placeholder="请选择交易对组" clearable size="small" filterable>
|
v-if="title === '批量添加'"
|
||||||
|
v-model="form.symbol_group_id"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易对组"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
filterable
|
||||||
|
>
|
||||||
<el-option v-for="dict in comSymbols" :key="dict.id" :label="dict.groupName" :value="dict.id" />
|
<el-option v-for="dict in comSymbols" :key="dict.id" :label="dict.groupName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-else label="交易对" prop="symbol">
|
<el-form-item v-else label="交易对" prop="symbol">
|
||||||
<el-select v-model="form.symbol" style="width: 100%;" placeholder="请选择交易对" clearable filterable
|
<el-select
|
||||||
:remote-method="getSymbol" :loading="searchLoding" remote size="small" @change="onchangeSymbol">
|
v-model="form.symbol"
|
||||||
<el-option v-for="dict in comSymbols" :key="dict.id || dict.symbol" :label="dict.symbol"
|
style="width: 100%;"
|
||||||
:value="dict.symbol" />
|
placeholder="请选择交易对"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
:remote-method="getSymbol"
|
||||||
|
:loading="searchLoding"
|
||||||
|
remote
|
||||||
|
size="small"
|
||||||
|
@change="onchangeSymbol"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in comSymbols"
|
||||||
|
:key="dict.id || dict.symbol"
|
||||||
|
:label="dict.symbol"
|
||||||
|
:value="dict.symbol"
|
||||||
|
/>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<pagination v-show="symbol.total > 0" :background="false" :total="symbol.total"
|
<pagination
|
||||||
layout="prev, pager, next" :page.sync="symbol.pageIndex" :limit.sync="symbol.pageSize"
|
v-show="symbol.total > 0"
|
||||||
@pagination="getSymbol" />
|
:background="false"
|
||||||
|
:total="symbol.total"
|
||||||
|
layout="prev, pager, next"
|
||||||
|
:page.sync="symbol.pageIndex"
|
||||||
|
:limit.sync="symbol.pageSize"
|
||||||
|
@pagination="getSymbol"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -345,7 +511,9 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="购买金额(U)" prop="buy_price">
|
<el-form-item label="购买金额(U)" prop="buy_price">
|
||||||
<el-input v-model="form.buy_price" placeholder="购买金额(U)" />
|
<el-input v-model="form.buy_price" placeholder="购买金额(U)">
|
||||||
|
<template slot="append">USDT</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="价格模式" prop="price_pattern">
|
<el-form-item label="价格模式" prop="price_pattern">
|
||||||
<el-radio-group v-model="form.price_pattern">
|
<el-radio-group v-model="form.price_pattern">
|
||||||
@ -355,17 +523,28 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.price_pattern === 'percentage'" label="下单百分比" prop="price">
|
<el-form-item v-if="form.price_pattern === 'percentage'" label="下单百分比" prop="price">
|
||||||
<el-input v-model="form.price" placeholder="下单百分比" />
|
<el-input v-model="form.price" placeholder="下单百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row v-else type="flex">
|
<el-row v-else type="flex">
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="下单价(实际价格)" prop="price">
|
<el-form-item label="下单价(实际价格)" prop="price">
|
||||||
<el-input v-model="form.price" placeholder="下单价(实际价格)">
|
<el-input v-model="form.price" placeholder="下单价(实际价格)">
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
<el-select v-if="form.price_pattern === 'aicoin'" v-model="aicoinPrice" placeholder="请选择"
|
<el-select
|
||||||
style="width: 150px;" @change="onchangeAicoin">
|
v-if="form.price_pattern === 'aicoin'"
|
||||||
<el-option v-for="o in JSON.stringify(aicoins) !== '{}' ? options : []" :key="o.label"
|
v-model="aicoinPrice"
|
||||||
:label="o.label" :value="aicoins[o.value] || ''">
|
placeholder="请选择"
|
||||||
|
style="width: 150px;"
|
||||||
|
@change="onchangeAicoin"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="o in JSON.stringify(aicoins) !== '{}' ? options : []"
|
||||||
|
:key="o.label"
|
||||||
|
:label="o.label"
|
||||||
|
:value="aicoins[o.value] || ''"
|
||||||
|
>
|
||||||
<span style="float: left">{{ o.label }}</span>
|
<span style="float: left">{{ o.label }}</span>
|
||||||
<span style="float: right">{{ aicoins[o.value] || 0 }}</span>
|
<span style="float: right">{{ aicoins[o.value] || 0 }}</span>
|
||||||
</el-option>
|
</el-option>
|
||||||
@ -379,7 +558,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="计算百分比">
|
<el-form-item label="计算百分比">
|
||||||
<el-inputNumber v-model="percenter" controls-position="right" :min="0" style="width: 100px;" />
|
<el-inputNumber v-model="percenter" controls-position="right" :min="0" style="width: 100px;">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-inputNumber>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
@ -387,16 +568,24 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="止盈百分比" prop="profit">
|
<el-form-item label="止盈百分比" prop="profit">
|
||||||
<el-input v-model="form.profit" placeholder="止盈百分比" />
|
<el-input v-model="form.profit" placeholder="止盈百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
||||||
<el-input v-model="form.profit_num_ratio" placeholder="止盈数量百分比" />
|
<el-input v-model="form.profit_num_ratio" placeholder="止盈数量百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="止盈后止盈价百分比" prop="profit_tp_tp_price_ratio">
|
<el-form-item label="止盈后止盈价百分比" prop="profit_tp_tp_price_ratio">
|
||||||
<el-input v-model="form.profit_tp_tp_price_ratio" placeholder="止盈后止盈价百分比" />
|
<el-input v-model="form.profit_tp_tp_price_ratio" placeholder="止盈后止盈价百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="止盈后止损价百分比" prop="profit_tp_sl_price_ratio">
|
<el-form-item label="止盈后止损价百分比" prop="profit_tp_sl_price_ratio">
|
||||||
<el-input v-model="form.profit_tp_sl_price_ratio" placeholder="止盈后止损价百分比" />
|
<el-input v-model="form.profit_tp_sl_price_ratio" placeholder="止盈后止损价百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="亏损百分比" prop="stop_price">
|
<!-- <el-form-item label="亏损百分比" prop="stop_price">
|
||||||
<el-input
|
<el-input
|
||||||
@ -505,36 +694,47 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="主单亏损百分比" prop="reduce_price">
|
<el-form-item label="主单亏损百分比" prop="reduce_price">
|
||||||
<el-input v-model.number="form.reduce_price" min="0" max="99.9" type="number" placeholder="主单亏损百分比" />
|
<el-input v-model.number="form.reduce_price" min="0" max="99.9" type="number" placeholder="主单亏损百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="主单减仓数量百分比" prop="reduce_num">
|
<el-form-item label="主单减仓数量百分比" prop="reduce_num">
|
||||||
<el-input v-model.number="form.reduce_num" type="number" placeholder="主单减仓数量百分比" />
|
<el-input v-model.number="form.reduce_num" type="number" placeholder="主单减仓数量百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="主单减仓后止盈价百分比" prop="reduce_take_profit">
|
<el-form-item label="主单减仓后止盈价百分比" prop="reduce_take_profit">
|
||||||
<el-input v-model.number="form.reduce_take_profit" type="number" placeholder="主单减仓后止盈价百分比">
|
<el-input v-model.number="form.reduce_take_profit" type="number" placeholder="主单减仓后止盈价百分比">
|
||||||
<template v-if="title !== '批量添加'" #append>{{ re_take_profit_ratio }}</template>
|
<template v-if="title !== '批量添加'" #append>回本百分比:{{ re_take_profit_ratio }}%</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="主单减仓后止损价百分比" prop="reduce_stop_price">
|
<el-form-item label="主单减仓后止损价百分比" prop="reduce_stop_price">
|
||||||
<el-input v-model.number="form.reduce_stop_price" type="number" placeholder="主单减仓后止损价百分比" />
|
<el-input v-model.number="form.reduce_stop_price" type="number" placeholder="主单减仓后止损价百分比">
|
||||||
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="4"><el-form-item label="主单加仓配置" /></el-col>
|
<el-col :span="4"><el-form-item label="主单加仓配置" /></el-col>
|
||||||
<el-col :span="2"><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 :span="2"><el-button type="primary" size="mini" @click="onAddExt(2)">新增减仓</el-button></el-col>
|
<el-col :span="2"><el-button type="primary" size="mini" @click="onAddExt(2)">新增减仓</el-button></el-col>
|
||||||
<el-col v-if="title !== '批量添加'" :span="2"><el-button type="primary" size="mini"
|
<el-col v-if="title !== '批量添加'" :span="2"><el-button
|
||||||
:disabled="form.ext && form.ext.length === 0" @click="onCalculate">计算</el-button></el-col>
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
:disabled="form.ext && form.ext.length === 0"
|
||||||
|
@click="onCalculate"
|
||||||
|
>计算</el-button></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div v-for="(item, index) in form.ext" :key="index" class="exts">
|
<div v-for="(item, index) in form.ext" :key="index" class="exts">
|
||||||
|
<h3 style="margin-bottom: 8px;">{{ item.addType===1?'加仓:':'减仓:' }}</h3>
|
||||||
<el-row v-if="item.addType === 1" :gutter="20" style="margin-bottom: 20px;">
|
<el-row v-if="item.addType === 1" :gutter="20" style="margin-bottom: 20px;">
|
||||||
<el-col :span="4">
|
<el-col style="margin-bottom: 14px;" :span="6">
|
||||||
<div style="margin-bottom: 8px;">{{ item.addType === 1 ? '加仓类型' : '减仓类型' }}</div>
|
<div style="margin-bottom: 8px;">{{ item.addType === 1 ? '加仓类型' : '减仓类型' }}</div>
|
||||||
<el-radio-group v-model="item.orderType" size="mini">
|
<el-radio-group v-model="item.orderType" size="mini">
|
||||||
<el-radio label="LIMIT">限价</el-radio>
|
<el-radio label="LIMIT">限价</el-radio>
|
||||||
<el-radio label="MARKET">市价</el-radio>
|
<el-radio label="MARKET">市价</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col style="margin-bottom: 14px;" :span="6">
|
||||||
<div style="margin-bottom: 8px;">{{ item.addType === 1 ? '加仓方式' : '减仓方式' }}</div>
|
<div style="margin-bottom: 8px;">{{ item.addType === 1 ? '加仓方式' : '减仓方式' }}</div>
|
||||||
<el-radio-group v-model="item.addPositionType" size="mini">
|
<el-radio-group v-model="item.addPositionType" size="mini">
|
||||||
<el-radio :label="1">百分比</el-radio>
|
<el-radio :label="1">百分比</el-radio>
|
||||||
@ -544,47 +744,53 @@
|
|||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="3">{{ item.addType === 1 ? '加仓下跌百分比' : '减仓下跌百分比' }}
|
<el-col style="margin-bottom: 14px;" :span="6">{{ item.addType === 1 ? '加仓下跌百分比' : '减仓下跌百分比' }}
|
||||||
<el-input v-model.number="item.priceRatio" min="0" size="mini" type="number"
|
<el-input v-model.number="item.priceRatio" min="0" size="mini" type="number" :placeholder="item.addType === 1 ? '加仓下跌百分比' : '减仓下跌百分比'">
|
||||||
:placeholder="item.addType === 1 ? '加仓下跌百分比' : '减仓下跌百分比'" /></el-col>
|
<template slot="append">%</template>
|
||||||
<el-col :span="3">{{ item.addType === 1 ? '加仓数值' : '减仓数值' }}
|
</el-input>
|
||||||
<el-input v-model.number="item.addPositionVal" min="0" size="mini" type="number"
|
|
||||||
:placeholder="item.addType === 1 ? '加仓数值' : '减仓数值'" />
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col style="margin-bottom: 14px;" :span="6">{{ item.addType === 1 ? '加仓数值' : '减仓数值' }}
|
||||||
|
<el-input v-model.number="item.addPositionVal" min="0" size="mini" type="number" :placeholder="item.addType === 1 ? '加仓数值' : '减仓数值'">
|
||||||
|
<template slot="append">{{ item.addPositionType == 1 ? '%' : 'USDT' }}</template>
|
||||||
|
</el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col style="margin-bottom: 14px;" :span="12">
|
||||||
<span>止盈/止损百分比</span>
|
<span>止盈/止损百分比</span>
|
||||||
<div>
|
<div>
|
||||||
<el-input v-model.number="item.takeProfitRatio" min="0" style="width:50%;" size="mini"
|
<el-input v-model.number="item.takeProfitRatio" min="0" style="width:50%;" size="mini" type="number" placeholder="止盈百分比">
|
||||||
type="number" placeholder="止盈百分比">
|
|
||||||
<template v-if="title !== '批量添加'" #append>{{ ext[index] ? ext[index].reTakeProfitRatio : 0
|
<template v-if="title !== '批量添加'" #append>{{ ext[index] ? ext[index].reTakeProfitRatio : 0
|
||||||
}}</template>
|
}}</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
—
|
—
|
||||||
<el-input v-model.number="item.stopLossRatio" style="width:42%;" size="mini" type="number"
|
<el-input v-model.number="item.stopLossRatio" style="width:42%;" size="mini" type="number" placeholder="止损百分比">
|
||||||
placeholder="止损百分比" />
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="3">止损百分比<el-input v-model.number="item.stopLossRatio" size="mini" type="number" placeholder="止损百分比" /></el-col> -->
|
<!-- <el-col :span="3">止损百分比<el-input v-model.number="item.stopLossRatio" size="mini" type="number" placeholder="止损百分比" /></el-col> -->
|
||||||
|
|
||||||
<template v-if="item.addType === 1">
|
<template v-if="item.addType === 1">
|
||||||
<el-col :span="3">
|
<el-col style="margin-bottom: 14px;" :span="6">
|
||||||
止盈数量百分比<el-input v-model.number="item.takeProfitNumRatio" size="mini" type="number"
|
止盈数量百分比<el-input v-model.number="item.takeProfitNumRatio" size="mini" type="number" placeholder="止盈数量百分比">
|
||||||
placeholder="止盈数量百分比" />
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col style="margin-bottom: 14px;" :span="12">
|
||||||
<span>第二止盈/止损百分比</span>
|
<span>第二止盈/止损百分比</span>
|
||||||
<div>
|
<div>
|
||||||
<el-input v-model.number="item.tpTpPriceRatio" min="0" style="width:42%" size="mini"
|
<el-input v-model.number="item.tpTpPriceRatio" min="0" style="width:42%" size="mini" type="number" placeholder="止盈后止盈价百分比">
|
||||||
type="number" placeholder="止盈后止盈价百分比" />
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
—
|
—
|
||||||
<el-input v-model.number="item.tpSlPriceRatio" min="0" style="width:42%" size="mini"
|
<el-input v-model.number="item.tpSlPriceRatio" min="0" style="width:42%" size="mini" type="number" placeholder="止盈后止损价百分比">
|
||||||
type="number" placeholder="止盈后止损价百分比" />
|
<template slot="append">%</template>
|
||||||
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<el-col :span="3">
|
<el-col :span="12">
|
||||||
<div style="margin-bottom: 14px;" /><el-button size="mini" type="danger"
|
<div style="margin-bottom: 14px;" />
|
||||||
@click="onAddExt(1, index)">删除</el-button>
|
<el-button size="mini" type="danger" @click="onAddExt(1, index)">删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
@ -610,16 +816,30 @@
|
|||||||
<el-dialog :title="mode.modeTitle" :visible.sync="mode.modeOpen" width="700px" :close-on-click-modal="false">
|
<el-dialog :title="mode.modeTitle" :visible.sync="mode.modeOpen" width="700px" :close-on-click-modal="false">
|
||||||
<el-form ref="formMode" :model="modeForm" :rules="modeRules" label-width="100px">
|
<el-form ref="formMode" :model="modeForm" :rules="modeRules" label-width="100px">
|
||||||
<el-form-item label="交易所" prop="exchangeType">
|
<el-form-item label="交易所" prop="exchangeType">
|
||||||
<el-select v-model="modeForm.exchangeType" style="width: 100%;" placeholder="请选择交易所" clearable filterable
|
<el-select
|
||||||
size="small" @change="onchangeMode">
|
v-model="modeForm.exchangeType"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
@change="onchangeMode"
|
||||||
|
>
|
||||||
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="api用户" prop="api_user_ids">
|
<el-form-item label="api用户" prop="api_user_ids">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="21">
|
<el-col :span="21">
|
||||||
<el-select v-model="modeForm.api_user_ids" multiple style="width: 100%;" placeholder="请选择api用户"
|
<el-select
|
||||||
clearable filterable size="small">
|
v-model="modeForm.api_user_ids"
|
||||||
|
multiple
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择api用户"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -629,20 +849,41 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="交易对" prop="symbol">
|
<el-form-item label="交易对" prop="symbol">
|
||||||
<el-select v-model="modeForm.symbol" style="width: 100%;" placeholder="请选择交易对" clearable multiple
|
<el-select
|
||||||
filterable :remote-method="(e) => getSymbol(e, 2, modeForm.exchangeType)" :loading="searchLoding" remote
|
v-model="modeForm.symbol"
|
||||||
size="small">
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易对"
|
||||||
|
clearable
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
:remote-method="(e) => getSymbol(e, 2, modeForm.exchangeType)"
|
||||||
|
:loading="searchLoding"
|
||||||
|
remote
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<pagination v-show="symbol.total > 0" :background="false" :total="symbol.total"
|
<pagination
|
||||||
layout="prev, pager, next" :page.sync="symbol.pageIndex" :limit.sync="symbol.pageSize"
|
v-show="symbol.total > 0"
|
||||||
@pagination="getSymbol($event, 2, modeForm.exchangeType)" />
|
:background="false"
|
||||||
|
:total="symbol.total"
|
||||||
|
layout="prev, pager, next"
|
||||||
|
:page.sync="symbol.pageIndex"
|
||||||
|
:limit.sync="symbol.pageSize"
|
||||||
|
@pagination="getSymbol($event, 2, modeForm.exchangeType)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="交易对组" prop="group_id">
|
<el-form-item label="交易对组" prop="group_id">
|
||||||
<el-select v-model="modeForm.group_id" style="width: 100%;" placeholder="请选择交易对组" clearable filterable
|
<el-select
|
||||||
size="small">
|
v-model="modeForm.group_id"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易对组"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in symbolGroups" :key="dict.id" :label="dict.groupName" :value="dict.id" />
|
<el-option v-for="dict in symbolGroups" :key="dict.id" :label="dict.groupName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -656,16 +897,20 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="全部交易对" prop="is_all">
|
<el-form-item label="全部交易对" prop="is_all">
|
||||||
<el-radio-group v-model="modeForm.is_all"
|
<el-radio-group
|
||||||
:disabled="!!modeForm.group_id || !!(modeForm.symbol && modeForm.symbol.length)">
|
v-model="modeForm.is_all"
|
||||||
|
:disabled="!!modeForm.group_id || !!(modeForm.symbol && modeForm.symbol.length)"
|
||||||
|
>
|
||||||
<el-radio :label="0">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
<el-radio :label="1"> 是</el-radio>
|
<el-radio :label="1"> 是</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<span v-if="modeForm.is_all === 1" style="color: red;margin-left: 20px;">耗时比较久,请耐心等待</span>
|
<span v-if="modeForm.is_all === 1" style="color: red;margin-left: 20px;">耗时比较久,请耐心等待</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div style="color: red;"><i class="el-icon-warning-outline"
|
<div style="color: red;"><i
|
||||||
style="margin-right: 4px;" />请保证该操作下的交易对无仓位,否则会直接失败</div>
|
class="el-icon-warning-outline"
|
||||||
|
style="margin-right: 4px;"
|
||||||
|
/>请保证该操作下的交易对无仓位,否则会直接失败</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" :loading="btnLoading" @click="modeConfirm">确 定</el-button>
|
<el-button type="primary" :loading="btnLoading" @click="modeConfirm">确 定</el-button>
|
||||||
<el-button @click="modeCancel">取 消</el-button>
|
<el-button @click="modeCancel">取 消</el-button>
|
||||||
@ -675,14 +920,26 @@
|
|||||||
<el-dialog title="加仓" :visible.sync="storeOpen" width="700px" :close-on-click-modal="false">
|
<el-dialog title="加仓" :visible.sync="storeOpen" width="700px" :close-on-click-modal="false">
|
||||||
<el-form ref="formStore" :model="storeForm" :rules="storeRules" label-width="120px">
|
<el-form ref="formStore" :model="storeForm" :rules="storeRules" label-width="120px">
|
||||||
<el-form-item label="交易所" prop="exchangeType">
|
<el-form-item label="交易所" prop="exchangeType">
|
||||||
<el-select v-model="storeForm.exchangeType" style="width: 100%;" placeholder="请选择交易所" clearable filterable
|
<el-select
|
||||||
size="small">
|
v-model="storeForm.exchangeType"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="api用户" prop="api_id">
|
<el-form-item label="api用户" prop="api_id">
|
||||||
<el-select v-model="storeForm.api_id" style="width: 100%;" placeholder="请选择api用户" clearable filterable
|
<el-select
|
||||||
size="small">
|
v-model="storeForm.api_id"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择api用户"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -700,14 +957,29 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="加仓交易对" prop="symbols">
|
<el-form-item label="加仓交易对" prop="symbols">
|
||||||
<el-select v-model="storeForm.symbols" style="width: 100%;" placeholder="请选择加仓交易对" clearable multiple
|
<el-select
|
||||||
filterable :remote-method="(e) => getSymbol(e, storeForm.symbol_type, storeForm.exchangeType)"
|
v-model="storeForm.symbols"
|
||||||
:loading="searchLoding" remote size="small">
|
style="width: 100%;"
|
||||||
|
placeholder="请选择加仓交易对"
|
||||||
|
clearable
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
:remote-method="(e) => getSymbol(e, storeForm.symbol_type, storeForm.exchangeType)"
|
||||||
|
:loading="searchLoding"
|
||||||
|
remote
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<pagination v-show="symbol.total > 0" :background="false" :total="symbol.total"
|
<pagination
|
||||||
layout="prev, pager, next" :page.sync="symbol.pageIndex" :limit.sync="symbol.pageSize"
|
v-show="symbol.total > 0"
|
||||||
@pagination="getSymbol($event, storeForm.symbol_type, storeForm.exchangeType)" />
|
:background="false"
|
||||||
|
:total="symbol.total"
|
||||||
|
layout="prev, pager, next"
|
||||||
|
:page.sync="symbol.pageIndex"
|
||||||
|
:limit.sync="symbol.pageSize"
|
||||||
|
@pagination="getSymbol($event, storeForm.symbol_type, storeForm.exchangeType)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -748,8 +1020,15 @@
|
|||||||
<el-dialog title="平仓" :visible.sync="positionOpen" width="700px" :close-on-click-modal="false">
|
<el-dialog title="平仓" :visible.sync="positionOpen" width="700px" :close-on-click-modal="false">
|
||||||
<el-form ref="formPosition" :model="positionForm" :rules="positionRules" label-width="120px">
|
<el-form ref="formPosition" :model="positionForm" :rules="positionRules" label-width="120px">
|
||||||
<el-form-item label="交易所" prop="exchange_type">
|
<el-form-item label="交易所" prop="exchange_type">
|
||||||
<el-select v-model="positionForm.exchange_type" style="width: 100%;" placeholder="请选择交易所" clearable
|
<el-select
|
||||||
filterable size="small" @change="onChangePosition">
|
v-model="positionForm.exchange_type"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
@change="onChangePosition"
|
||||||
|
>
|
||||||
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -760,8 +1039,14 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="api用户" prop="api_id">
|
<el-form-item label="api用户" prop="api_id">
|
||||||
<el-select v-model="positionForm.api_id" style="width: 100%;" placeholder="请选择api用户" clearable filterable
|
<el-select
|
||||||
size="small">
|
v-model="positionForm.api_id"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择api用户"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -774,14 +1059,28 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
<el-select v-model="positionForm.symbol" style="width: 100%;" placeholder="请选择交易对" clearable filterable
|
<el-select
|
||||||
|
v-model="positionForm.symbol"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易对"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
:remote-method="(e) => getSymbol(e, positionForm.close_type, positionForm.exchange_type)"
|
:remote-method="(e) => getSymbol(e, positionForm.close_type, positionForm.exchange_type)"
|
||||||
:loading="searchLoding" remote size="small">
|
:loading="searchLoding"
|
||||||
|
remote
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
<el-option v-for="dict in symbol.symbolList" :key="dict.id" :label="dict.symbol" :value="dict.symbol" />
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<pagination v-show="symbol.total > 0" :background="false" :total="symbol.total"
|
<pagination
|
||||||
layout="prev, pager, next" :page.sync="symbol.pageIndex" :limit.sync="symbol.pageSize"
|
v-show="symbol.total > 0"
|
||||||
@pagination="getSymbol($event, positionForm.close_type, positionForm.exchange_type)" />
|
:background="false"
|
||||||
|
:total="symbol.total"
|
||||||
|
layout="prev, pager, next"
|
||||||
|
:page.sync="symbol.pageIndex"
|
||||||
|
:limit.sync="symbol.pageSize"
|
||||||
|
@pagination="getSymbol($event, positionForm.close_type, positionForm.exchange_type)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -789,8 +1088,10 @@
|
|||||||
<el-input v-model="positionForm.rate" placeholder="平仓行情百分比" />
|
<el-input v-model="positionForm.rate" placeholder="平仓行情百分比" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div style="color: red;"><i class="el-icon-warning-outline"
|
<div style="color: red;"><i
|
||||||
style="margin-right: 4px;" />该功能仅适用于本系统内的下单数据,且交易对为空时代表全部平仓</div>
|
class="el-icon-warning-outline"
|
||||||
|
style="margin-right: 4px;"
|
||||||
|
/>该功能仅适用于本系统内的下单数据,且交易对为空时代表全部平仓</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="positionConfirm">确 定</el-button>
|
<el-button type="primary" @click="positionConfirm">确 定</el-button>
|
||||||
<el-button @click="positionCancel">取 消</el-button>
|
<el-button @click="positionCancel">取 消</el-button>
|
||||||
@ -800,16 +1101,32 @@
|
|||||||
<!-- 取消委托 -->
|
<!-- 取消委托 -->
|
||||||
<el-dialog title="取消委托" :visible.sync="cancelOpen" width="700px" :close-on-click-modal="false">
|
<el-dialog title="取消委托" :visible.sync="cancelOpen" width="700px" :close-on-click-modal="false">
|
||||||
<el-form ref="formCancel" :model="cancelForm" label-width="80px">
|
<el-form ref="formCancel" :model="cancelForm" label-width="80px">
|
||||||
<el-form-item label="交易所" prop="exchangeType"
|
<el-form-item
|
||||||
:rules="[{ required: true, message: '交易所不能为空', trigger: 'blur' }]">
|
label="交易所"
|
||||||
<el-select v-model="cancelForm.exchangeType" style="width: 100%;" placeholder="请选择交易所" clearable
|
prop="exchangeType"
|
||||||
filterable size="small" @change="onChangeCancel">
|
:rules="[{ required: true, message: '交易所不能为空', trigger: 'blur' }]"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="cancelForm.exchangeType"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
@change="onChangeCancel"
|
||||||
|
>
|
||||||
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in exchangeTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="api用户" prop="api_id" :rules="[{ required: true, message: 'api用户不能为空', trigger: 'blur' }]">
|
<el-form-item label="api用户" prop="api_id" :rules="[{ required: true, message: 'api用户不能为空', trigger: 'blur' }]">
|
||||||
<el-select v-model="cancelForm.api_id" style="width: 100%;" placeholder="请选择api用户" clearable filterable
|
<el-select
|
||||||
size="small">
|
v-model="cancelForm.api_id"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择api用户"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="Number(dict.id)" />
|
<el-option v-for="dict in lineUsers" :key="dict.id" :label="dict.apiName" :value="Number(dict.id)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -1538,10 +1855,10 @@ export default {
|
|||||||
}
|
}
|
||||||
this.resetForm('form')
|
this.resetForm('form')
|
||||||
},
|
},
|
||||||
getImgList: function () {
|
getImgList: function() {
|
||||||
this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl
|
this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl
|
||||||
},
|
},
|
||||||
fileClose: function () {
|
fileClose: function() {
|
||||||
this.fileOpen = false
|
this.fileOpen = false
|
||||||
},
|
},
|
||||||
apiIdFormat(row) {
|
apiIdFormat(row) {
|
||||||
@ -1595,7 +1912,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function () {
|
submitForm: function() {
|
||||||
this.$refs['form'].validate(valid => {
|
this.$refs['form'].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.formLoading = true
|
this.formLoading = true
|
||||||
@ -1694,7 +2011,7 @@ export default {
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(function () {
|
}).then(function() {
|
||||||
return cancelOpenOrder({ order_type: Number(orderType), order_sn: orderSn, api_id: apiId, symbol, exchangeType })
|
return cancelOpenOrder({ order_type: Number(orderType), order_sn: orderSn, api_id: apiId, symbol, exchangeType })
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
@ -1703,7 +2020,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.msgError(response.msg)
|
this.msgError(response.msg)
|
||||||
}
|
}
|
||||||
}).catch(function () { })
|
}).catch(function() { })
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
@ -1712,7 +2029,7 @@ export default {
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(function () {
|
}).then(function() {
|
||||||
return delLinePreOrder({ 'ids': Ids })
|
return delLinePreOrder({ 'ids': Ids })
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
@ -1722,7 +2039,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.msgError(response.msg)
|
this.msgError(response.msg)
|
||||||
}
|
}
|
||||||
}).catch(function () {
|
}).catch(function() {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleTrigger() {
|
handleTrigger() {
|
||||||
@ -1730,7 +2047,7 @@ export default {
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(function () {
|
}).then(function() {
|
||||||
return clearUnTriggered()
|
return clearUnTriggered()
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
@ -1739,7 +2056,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.msgError(response.msg)
|
this.msgError(response.msg)
|
||||||
}
|
}
|
||||||
}).catch(function () {
|
}).catch(function() {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 一键清除所有
|
// 一键清除所有
|
||||||
@ -1748,7 +2065,7 @@ export default {
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(function () {
|
}).then(function() {
|
||||||
return clearAll()
|
return clearAll()
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
@ -1757,7 +2074,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.msgError(response.msg)
|
this.msgError(response.msg)
|
||||||
}
|
}
|
||||||
}).catch(function () {
|
}).catch(function() {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 计算需要回本利润
|
// 计算需要回本利润
|
||||||
|
|||||||
Reference in New Issue
Block a user