Merge branch 'master' of http://120.25.162.35:82/hucan/exchange_vue
This commit is contained in:
@ -43,10 +43,11 @@ export function delLineApiGroup(data) {
|
|||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function getUser() {
|
export function getUser(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/v1/line-api-user/getUser',
|
url: '/api/v1/line-api-user/getUser',
|
||||||
method: 'post'
|
method: 'post',
|
||||||
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function userbind(data) {
|
export function userbind(data) {
|
||||||
|
|||||||
@ -121,7 +121,24 @@
|
|||||||
<!-- 添加或修改对话框 -->
|
<!-- 添加或修改对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px">
|
<el-dialog :title="title" :visible.sync="open" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
|
||||||
|
<el-form-item label="交易所" prop="exchangeType">
|
||||||
|
<el-select
|
||||||
|
v-model="form.exchangeType"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="请选择交易所"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
@change="onChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in exchangeTypes"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="用户组名称" prop="groupName">
|
<el-form-item label="用户组名称" prop="groupName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.groupName"
|
v-model="form.groupName"
|
||||||
@ -151,7 +168,6 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { delLineApiGroup, getLineApiGroup, listLineApiGroup, updateLineApiGroup, getUser, userbind } from '@/api/admin/line-api-group'
|
import { delLineApiGroup, getLineApiGroup, listLineApiGroup, updateLineApiGroup, getUser, userbind } from '@/api/admin/line-api-group'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LineApiGroup',
|
name: 'LineApiGroup',
|
||||||
components: {
|
components: {
|
||||||
@ -183,7 +199,7 @@ export default {
|
|||||||
queryParams: {
|
queryParams: {
|
||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
groupName: undefined,
|
groupName: undefined
|
||||||
},
|
},
|
||||||
accounts: [],
|
accounts: [],
|
||||||
// 表单参数
|
// 表单参数
|
||||||
@ -193,10 +209,12 @@ export default {
|
|||||||
sid: undefined,
|
sid: undefined,
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
|
exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }],
|
||||||
groupName: [{ required: true, message: '用户组名称不能为空', trigger: 'blur' }],
|
groupName: [{ required: true, message: '用户组名称不能为空', trigger: 'blur' }],
|
||||||
pid: [{ required: true, message: '主账号不能为空', trigger: 'blur' }],
|
pid: [{ required: true, message: '主账号不能为空', trigger: 'blur' }],
|
||||||
sid: [{ required: true, message: '副账号不能为空', trigger: 'blur' }]
|
sid: [{ required: true, message: '副账号不能为空', trigger: 'blur' }]
|
||||||
}
|
},
|
||||||
|
exchangeTypes: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -206,11 +224,23 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList()
|
||||||
getUser().then(response => {
|
// 获取交易所字典数据
|
||||||
this.accounts = response.data
|
this.getDicts('exchange_type').then(response => {
|
||||||
|
this.exchangeTypes = response.data
|
||||||
|
this.apiGetUser(this.exchangeTypes.length ? this.exchangeTypes[0].value : '')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
onChange() {
|
||||||
|
this.exchangeTypes = []
|
||||||
|
this.apiGetUser()
|
||||||
|
},
|
||||||
|
// 获取用户
|
||||||
|
apiGetUser(exchangeType) {
|
||||||
|
getUser({ exchangeType: exchangeType || this.form.exchangeType }).then(response => {
|
||||||
|
this.accounts = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
/** 查询参数列表 */
|
/** 查询参数列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
@ -229,7 +259,7 @@ export default {
|
|||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
id: undefined,
|
id: undefined,
|
||||||
groupName: undefined,
|
groupName: undefined,
|
||||||
apiUserId: undefined,
|
apiUserId: undefined,
|
||||||
@ -263,9 +293,6 @@ export default {
|
|||||||
this.open = true
|
this.open = true
|
||||||
this.title = '添加用户绑定从属关系表'
|
this.title = '添加用户绑定从属关系表'
|
||||||
this.isEdit = false
|
this.isEdit = false
|
||||||
getUser().then(response => {
|
|
||||||
this.accounts = response.data
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -301,8 +328,8 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { groupName, pid, sid } = this.form
|
const { groupName, pid, sid, exchangeType } = this.form
|
||||||
userbind({ group_name: groupName, user_id_str: `${pid},${sid}` }).then(response => {
|
userbind({ group_name: groupName, user_id_str: `${pid},${sid}`, exchangeType }).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.msgSuccess(response.msg)
|
this.msgSuccess(response.msg)
|
||||||
this.open = false
|
this.open = false
|
||||||
|
|||||||
@ -357,7 +357,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
exchangeTypeFormat(row) {
|
exchangeTypeFormat(row) {
|
||||||
return this.selectDictLabel(this.exchangeTypes, row.exchangeType)
|
return this.selectDictLabel(this.exchangeTypes || [], row.exchangeType)
|
||||||
},
|
},
|
||||||
/** 查询参数列表 */
|
/** 查询参数列表 */
|
||||||
getList() {
|
getList() {
|
||||||
@ -403,10 +403,10 @@ export default {
|
|||||||
this.fileOpen = false
|
this.fileOpen = false
|
||||||
},
|
},
|
||||||
userIdFormat(row) {
|
userIdFormat(row) {
|
||||||
return this.selectItemsLabel(this.userIdOptions, row.userId)
|
return this.selectItemsLabel(this.userIdOptions || [], row.userId)
|
||||||
},
|
},
|
||||||
groupIdFormat(row) {
|
groupIdFormat(row) {
|
||||||
return this.selectItemsLabel(this.groupIdOptions, row.groupId)
|
return this.selectItemsLabel(this.groupIdOptions || [], row.groupId)
|
||||||
},
|
},
|
||||||
// 关系
|
// 关系
|
||||||
getLineUserItems() {
|
getLineUserItems() {
|
||||||
|
|||||||
@ -131,14 +131,14 @@
|
|||||||
>平仓
|
>平仓
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="onStore"
|
@click="onStore"
|
||||||
>加仓
|
>加仓
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="warning"
|
type="warning"
|
||||||
@ -308,16 +308,29 @@
|
|||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
>
|
>
|
||||||
<template #default="{row}">
|
<template #default="{row}">
|
||||||
{{ orderTypes[row.orderType-1] ? orderTypes[row.orderType-1].l : '' }}
|
{{ orderTypes[row.orderType] ? orderTypes[row.orderType].l : '' }}
|
||||||
|
<!-- {{ orderTypes[row.orderType-1] ? orderTypes[row.orderType-1].l : '' }} -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
label="交易对类型"
|
||||||
|
align="center"
|
||||||
|
prop="symbolType"
|
||||||
|
min-width="90"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ ['现货','合约'][row.symbolType-1] }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column
|
||||||
label="补仓百分比"
|
label="补仓百分比"
|
||||||
align="center"
|
align="center"
|
||||||
prop="coverRate"
|
prop="coverRate"
|
||||||
width="100"
|
width="100"
|
||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
/><el-table-column
|
/> -->
|
||||||
|
<el-table-column
|
||||||
label="状态"
|
label="状态"
|
||||||
align="center"
|
align="center"
|
||||||
prop="status"
|
prop="status"
|
||||||
@ -334,7 +347,7 @@
|
|||||||
prop="desc"
|
prop="desc"
|
||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
label="对冲状态"
|
label="对冲状态"
|
||||||
align="center"
|
align="center"
|
||||||
prop="status"
|
prop="status"
|
||||||
@ -359,7 +372,7 @@
|
|||||||
{{ ['未加仓','已加仓'][row.addPositionStatus] }}
|
{{ ['未加仓','已加仓'][row.addPositionStatus] }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="计价货币"
|
label="计价货币"
|
||||||
align="center"
|
align="center"
|
||||||
@ -367,11 +380,21 @@
|
|||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
label="交易所"
|
||||||
|
align="center"
|
||||||
|
prop="exchangeType"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ exchangeTypeFormat(row) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column
|
||||||
label="预估方向"
|
label="预估方向"
|
||||||
align="center"
|
align="center"
|
||||||
prop="direction"
|
prop="direction"
|
||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
/>
|
/> -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="订单号"
|
label="订单号"
|
||||||
align="center"
|
align="center"
|
||||||
@ -424,7 +447,7 @@
|
|||||||
slot="reference"
|
slot="reference"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
:disabled="scope.row.status!=='5'"
|
:disabled="scope.row.status!=5"
|
||||||
>取消委托
|
>取消委托
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
@ -476,18 +499,18 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单类型" prop="order_type">
|
<el-form-item label="订单类型" prop="symbol_type">
|
||||||
<el-radio-group v-model="form.order_type">
|
<el-radio-group v-model="form.symbol_type">
|
||||||
<el-radio label="1">现货</el-radio>
|
<el-radio :label="1">现货</el-radio>
|
||||||
<el-radio label="2">合约</el-radio>
|
<el-radio :label="2">合约</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="对冲类型" prop="cover_type">
|
<el-form-item label="对冲类型" prop="cover_type">
|
||||||
<el-radio-group v-model="form.cover_type">
|
<el-radio-group v-model="form.cover_type">
|
||||||
<el-radio :label="0">无对冲</el-radio>
|
<el-radio :label="0">无对冲</el-radio>
|
||||||
<el-radio :label="1" :disabled="form.order_type==2">现货对合约</el-radio>
|
<el-radio :label="1" :disabled="form.symbol_type==2">现货对合约</el-radio>
|
||||||
<el-radio :label="2" :disabled="form.order_type==1">合约对合约</el-radio>
|
<el-radio :label="2" :disabled="form.symbol_type==1">合约对合约</el-radio>
|
||||||
<!-- <el-radio :label="3" :disabled="form.order_type==1">合约对现货</el-radio> -->
|
<!-- <el-radio :label="3" :disabled="form.symbol_type==1">合约对现货</el-radio> -->
|
||||||
</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">
|
||||||
@ -624,6 +647,36 @@
|
|||||||
placeholder="亏损百分比"
|
placeholder="亏损百分比"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<template v-if="form.cover_type!=0">
|
||||||
|
<el-form-item label="对冲单购买类型" prop="hedge_buy_type">
|
||||||
|
<el-radio-group v-model="form.hedge_buy_type">
|
||||||
|
<el-radio :label="1">百分比</el-radio>
|
||||||
|
<el-radio :label="2">实际金额</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="对冲总购买金额" prop="HedgeBuyTotal">
|
||||||
|
<el-input
|
||||||
|
v-model.number="form.HedgeBuyTotal"
|
||||||
|
type="number"
|
||||||
|
placeholder="对冲总购买金额"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="对冲止盈百分比" prop="HedgeTakeProfit">
|
||||||
|
<el-input
|
||||||
|
v-model.number="form.HedgeTakeProfit"
|
||||||
|
type="number"
|
||||||
|
placeholder="对冲止盈百分比"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="对冲止损百分比" prop="HedgeStopLoss">
|
||||||
|
<el-input
|
||||||
|
v-model.number="form.HedgeStopLoss"
|
||||||
|
type="number"
|
||||||
|
placeholder="对冲止损百分比
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
<!-- <el-form-item label="对冲百分比" prop="cover_rate">
|
<!-- <el-form-item label="对冲百分比" prop="cover_rate">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.cover_rate"
|
v-model="form.cover_rate"
|
||||||
@ -723,9 +776,27 @@
|
|||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 社会杠杆 保证金模式 -->
|
<!-- 设置杠杆 保证金模式 -->
|
||||||
<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-select
|
||||||
|
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-select>
|
||||||
|
</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">
|
||||||
@ -759,7 +830,7 @@
|
|||||||
clearable
|
clearable
|
||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
:remote-method="(e)=>getSymbol(e,2)"
|
:remote-method="(e)=>getSymbol(e,2,modeForm.exchangeType)"
|
||||||
:loading="searchLoding"
|
:loading="searchLoding"
|
||||||
remote
|
remote
|
||||||
size="small"
|
size="small"
|
||||||
@ -778,7 +849,7 @@
|
|||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:page.sync="symbol.pageIndex"
|
:page.sync="symbol.pageIndex"
|
||||||
:limit.sync="symbol.pageSize"
|
:limit.sync="symbol.pageSize"
|
||||||
@pagination="getSymbol($event,2)"
|
@pagination="getSymbol($event,2,modeForm.exchangeType)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -832,6 +903,23 @@
|
|||||||
<!-- 加仓 -->
|
<!-- 加仓 -->
|
||||||
<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-select
|
||||||
|
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-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="api用户" prop="api_id">
|
<el-form-item label="api用户" prop="api_id">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="storeForm.api_id"
|
v-model="storeForm.api_id"
|
||||||
@ -870,7 +958,7 @@
|
|||||||
clearable
|
clearable
|
||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
:remote-method="(e)=>getSymbol(e,storeForm.symbol_type)"
|
:remote-method="(e)=>getSymbol(e,storeForm.symbol_type,storeForm.exchangeType)"
|
||||||
:loading="searchLoding"
|
:loading="searchLoding"
|
||||||
remote
|
remote
|
||||||
size="small"
|
size="small"
|
||||||
@ -889,7 +977,7 @@
|
|||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:page.sync="symbol.pageIndex"
|
:page.sync="symbol.pageIndex"
|
||||||
:limit.sync="symbol.pageSize"
|
:limit.sync="symbol.pageSize"
|
||||||
@pagination="getSymbol($event,2)"
|
@pagination="getSymbol($event,storeForm.symbol_type,storeForm.exchangeType)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -939,6 +1027,24 @@
|
|||||||
<!-- 平仓 -->
|
<!-- 平仓 -->
|
||||||
<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="exchangeType">
|
||||||
|
<el-select
|
||||||
|
v-model="positionForm.exchangeType"
|
||||||
|
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-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="订单类型" prop="close_type">
|
<el-form-item label="订单类型" prop="close_type">
|
||||||
<el-radio-group v-model="positionForm.close_type">
|
<el-radio-group v-model="positionForm.close_type">
|
||||||
<el-radio :label="1">现货</el-radio>
|
<el-radio :label="1">现货</el-radio>
|
||||||
@ -980,7 +1086,7 @@
|
|||||||
placeholder="请选择交易对"
|
placeholder="请选择交易对"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
:remote-method="(e)=>getSymbol(e,positionForm.close_type)"
|
:remote-method="(e)=>getSymbol(e,positionForm.close_type,positionForm.exchangeType)"
|
||||||
:loading="searchLoding"
|
:loading="searchLoding"
|
||||||
remote
|
remote
|
||||||
size="small"
|
size="small"
|
||||||
@ -999,7 +1105,7 @@
|
|||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:page.sync="symbol.pageIndex"
|
:page.sync="symbol.pageIndex"
|
||||||
:limit.sync="symbol.pageSize"
|
:limit.sync="symbol.pageSize"
|
||||||
@pagination="getSymbol($event,2)"
|
@pagination="getSymbol($event,positionForm.close_type,positionForm.exchangeType)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -1018,6 +1124,24 @@
|
|||||||
<!-- 取消委托 -->
|
<!-- 取消委托 -->
|
||||||
<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" :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-select>
|
||||||
|
</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
|
<el-select
|
||||||
v-model="cancelForm.api_id"
|
v-model="cancelForm.api_id"
|
||||||
@ -1035,7 +1159,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单类型" prop="close_type">
|
<el-form-item label="订单类型" prop="order_type">
|
||||||
<el-radio-group v-model="cancelForm.order_type">
|
<el-radio-group v-model="cancelForm.order_type">
|
||||||
<el-radio :label="1">现货</el-radio>
|
<el-radio :label="1">现货</el-radio>
|
||||||
<el-radio :label="2">合约</el-radio>
|
<el-radio :label="2">合约</el-radio>
|
||||||
@ -1073,18 +1197,22 @@ export default {
|
|||||||
],
|
],
|
||||||
// :1=现货;2=合约;3=合约止盈;4=合约止损;5=现货止盈;6=现货止损;7=止损补仓;8=现货加仓;9=现货平仓;10 = 合约止损补仓,11=合约加仓;12=合约平仓
|
// :1=现货;2=合约;3=合约止盈;4=合约止损;5=现货止盈;6=现货止损;7=止损补仓;8=现货加仓;9=现货平仓;10 = 合约止损补仓,11=合约加仓;12=合约平仓
|
||||||
orderTypes: [
|
orderTypes: [
|
||||||
{ v: 1, l: '现货' },
|
{ v: 1, l: '主单' },
|
||||||
{ v: 2, l: '合约' },
|
{ v: 2, l: '止盈' },
|
||||||
{ v: 3, l: '合约止盈' },
|
{ v: 3, l: '止损' },
|
||||||
{ v: 4, l: '合约亏损' },
|
{ v: 4, l: '平仓' }
|
||||||
{ v: 5, l: '现货止盈' },
|
// { v: 1, l: '现货' },
|
||||||
{ v: 6, l: '现货亏损' },
|
// { v: 2, l: '合约' },
|
||||||
{ v: 7, l: '现货对冲' },
|
// { v: 3, l: '合约止盈' },
|
||||||
{ v: 8, l: '现货加仓' },
|
// { v: 4, l: '合约亏损' },
|
||||||
{ v: 9, l: '现货平仓' },
|
// { v: 5, l: '现货止盈' },
|
||||||
{ v: 10, l: '合约对冲' },
|
// { v: 6, l: '现货亏损' },
|
||||||
{ v: 11, l: '合约加仓' },
|
// { v: 7, l: '现货对冲' },
|
||||||
{ v: 12, l: '合约平仓' }
|
// { v: 8, l: '现货加仓' },
|
||||||
|
// { v: 9, l: '现货平仓' },
|
||||||
|
// { v: 10, l: '合约对冲' },
|
||||||
|
// { v: 11, l: '合约加仓' },
|
||||||
|
// { v: 12, l: '合约平仓' }
|
||||||
],
|
],
|
||||||
buyer: [
|
buyer: [
|
||||||
{ v: 'BUY', l: '买(多)' },
|
{ v: 'BUY', l: '买(多)' },
|
||||||
@ -1095,17 +1223,27 @@ export default {
|
|||||||
{ v: 0, l: '待触发' },
|
{ v: 0, l: '待触发' },
|
||||||
{ v: 1, l: '已触发' },
|
{ v: 1, l: '已触发' },
|
||||||
{ v: 2, l: '下单失败' },
|
{ v: 2, l: '下单失败' },
|
||||||
{ v: 3, l: '已记录' },
|
{ v: 3, l: '未知' },
|
||||||
{ v: 4, l: '已取消' },
|
{ v: 4, l: '已取消' },
|
||||||
{ v: 5, l: '委托中' },
|
{ v: 5, l: '委托中' },
|
||||||
{ v: 6, l: '已平仓' },
|
{ v: 6, l: '已成交' },
|
||||||
{ v: 7, l: '已补单' },
|
{ v: 7, l: '未知' },
|
||||||
{ v: 8, l: '补单失败' },
|
{ v: 8, l: '未知' },
|
||||||
{ v: 9, l: '现货已成交' },
|
{ v: 9, l: '已平仓' }
|
||||||
{ v: 10, l: '合约已补单' },
|
// { v: 0, l: '待触发' },
|
||||||
{ v: 11, l: '合约补单失败' },
|
// { v: 1, l: '已触发' },
|
||||||
{ v: 12, l: '合约已成交' },
|
// { v: 2, l: '下单失败' },
|
||||||
{ v: 13, l: '已开仓' }
|
// { v: 3, l: '已记录' },
|
||||||
|
// { v: 4, l: '已取消' },
|
||||||
|
// { v: 5, l: '委托中' },
|
||||||
|
// { v: 6, l: '已平仓' },
|
||||||
|
// { v: 7, l: '已补单' },
|
||||||
|
// { v: 8, l: '补单失败' },
|
||||||
|
// { v: 9, l: '现货已成交' },
|
||||||
|
// { v: 10, l: '合约已补单' },
|
||||||
|
// { v: 11, l: '合约补单失败' },
|
||||||
|
// { v: 12, l: '合约已成交' },
|
||||||
|
// { v: 13, l: '已开仓' }
|
||||||
],
|
],
|
||||||
statuss: [
|
statuss: [
|
||||||
{ v: '0', l: '待触发' },
|
{ v: '0', l: '待触发' },
|
||||||
@ -1184,6 +1322,7 @@ export default {
|
|||||||
symbolGroups: [],
|
symbolGroups: [],
|
||||||
modeForm: {},
|
modeForm: {},
|
||||||
modeRules: {
|
modeRules: {
|
||||||
|
exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }],
|
||||||
api_user_ids: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }]
|
api_user_ids: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }]
|
||||||
},
|
},
|
||||||
mode: {
|
mode: {
|
||||||
@ -1195,6 +1334,7 @@ export default {
|
|||||||
storeOpen: false,
|
storeOpen: false,
|
||||||
storeForm: {},
|
storeForm: {},
|
||||||
storeRules: {
|
storeRules: {
|
||||||
|
exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }],
|
||||||
api_id: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }],
|
api_id: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }],
|
||||||
symbols: [{ required: true, message: '加仓交易对不能为空', trigger: 'blur' }],
|
symbols: [{ required: true, message: '加仓交易对不能为空', trigger: 'blur' }],
|
||||||
value: [{ required: true, message: '加仓数值不能为空', trigger: 'blur' }]
|
value: [{ required: true, message: '加仓数值不能为空', trigger: 'blur' }]
|
||||||
@ -1202,6 +1342,7 @@ export default {
|
|||||||
positionOpen: false,
|
positionOpen: false,
|
||||||
positionForm: {},
|
positionForm: {},
|
||||||
positionRules: {
|
positionRules: {
|
||||||
|
exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }],
|
||||||
api_id: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }]
|
api_id: [{ required: true, message: 'api用户不能为空', trigger: 'blur' }]
|
||||||
// symbol: [{ required: true, message: '交易对不能为空', trigger: 'blur' }]
|
// symbol: [{ required: true, message: '交易对不能为空', trigger: 'blur' }]
|
||||||
},
|
},
|
||||||
@ -1209,6 +1350,7 @@ export default {
|
|||||||
// 取消委托
|
// 取消委托
|
||||||
cancelOpen: false,
|
cancelOpen: false,
|
||||||
cancelForm: {
|
cancelForm: {
|
||||||
|
exchangeType: '',
|
||||||
api_id: undefined,
|
api_id: undefined,
|
||||||
order_type: 1,
|
order_type: 1,
|
||||||
symbol: undefined,
|
symbol: undefined,
|
||||||
@ -1229,7 +1371,7 @@ export default {
|
|||||||
return { color: '#f56c6c' }
|
return { color: '#f56c6c' }
|
||||||
} else if (['已触发', '已平仓', '委托中'].includes(s)) {
|
} else if (['已触发', '已平仓', '委托中'].includes(s)) {
|
||||||
return { color: '#67c23a' }
|
return { color: '#67c23a' }
|
||||||
} else if (['现货已成交', '已开仓'].includes(s)) {
|
} else if (['现货已成交', '已开仓', '已成交'].includes(s)) {
|
||||||
return { color: '#e6a23c' }
|
return { color: '#e6a23c' }
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
@ -1238,8 +1380,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'form.order_type'(newValue) {
|
'form.symbol_type'(newValue) {
|
||||||
if (newValue === '1') {
|
if (newValue === 1) {
|
||||||
this.form.cover_type = 1
|
this.form.cover_type = 1
|
||||||
} else {
|
} else {
|
||||||
this.form.cover_type = 2
|
this.form.cover_type = 2
|
||||||
@ -1247,7 +1389,7 @@ export default {
|
|||||||
this.form.symbol_group_id = undefined
|
this.form.symbol_group_id = undefined
|
||||||
this.form.symbol = undefined
|
this.form.symbol = undefined
|
||||||
this.getSymbol({})
|
this.getSymbol({})
|
||||||
this.getSymbolGroup(this.form.cover_type)
|
this.getSymbolGroup(this.form.cover_type, this.form.exchange_type)
|
||||||
},
|
},
|
||||||
'form.cover_type'(newValue) {
|
'form.cover_type'(newValue) {
|
||||||
if (newValue === 3) {
|
if (newValue === 3) {
|
||||||
@ -1282,6 +1424,23 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
exchangeTypeFormat(row) {
|
||||||
|
return this.selectDictLabel(this.exchangeTypes || [], row.exchangeType)
|
||||||
|
},
|
||||||
|
onChangePosition() {
|
||||||
|
this.getLineApiUserItems(this.positionForm.exchangeType)
|
||||||
|
this.$set(this.positionForm, 'symbol', undefined)
|
||||||
|
this.getSymbol({}, this.positionForm.close_type, this.positionForm.exchangeType)
|
||||||
|
},
|
||||||
|
onChangeCancel() {
|
||||||
|
this.cancelForm.api_id = undefined
|
||||||
|
this.getLineApiUserItems(this.cancelForm.exchangeType)
|
||||||
|
},
|
||||||
|
onchangeMode() {
|
||||||
|
this.getListLineApiUser(this.modeForm.exchangeType)
|
||||||
|
this.getSymbol({}, 2, this.modeForm.exchangeType)
|
||||||
|
this.getSymbolGroup(2, this.modeForm.exchangeType)
|
||||||
|
},
|
||||||
onSelectAll() {
|
onSelectAll() {
|
||||||
if (this.form.api_id && this.form.api_id.length > 0) {
|
if (this.form.api_id && this.form.api_id.length > 0) {
|
||||||
this.form.api_id = []
|
this.form.api_id = []
|
||||||
@ -1297,19 +1456,19 @@ export default {
|
|||||||
this.modeForm.api_user_ids = this.lineUsers.map(item => item.id)
|
this.modeForm.api_user_ids = this.lineUsers.map(item => item.id)
|
||||||
},
|
},
|
||||||
// 获取杠杆api用户
|
// 获取杠杆api用户
|
||||||
getListLineApiUser() {
|
getListLineApiUser(exchangeType) {
|
||||||
listLineApiUser({ pageIndex: 1, pageSize: 999, exchangeType: this.form.exchangeType }).then(response => {
|
listLineApiUser({ pageIndex: 1, pageSize: 999, exchangeType: exchangeType || this.form.exchange_type }).then(response => {
|
||||||
this.lineUsers = response.data.list
|
this.lineUsers = response.data.list
|
||||||
this.lineTotal = response.data.count
|
this.lineTotal = response.data.count
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 交易对列表
|
// 交易对列表
|
||||||
getSymbol(e, type) {
|
getSymbol(e, type, exchangeType) {
|
||||||
this.searchLoding = true
|
this.searchLoding = true
|
||||||
const { pageIndex } = this.symbol
|
const { pageIndex } = this.symbol
|
||||||
const symbol = typeof e === 'object' ? '' : e
|
const symbol = typeof e === 'object' ? '' : e
|
||||||
const apiCall = this.title === '添加委托管理' && ([1, 3].includes(this.form.cover_type)) ? getSameSymbol : listLineSymbol
|
const apiCall = this.title === '添加委托管理' && ([1, 3].includes(this.form.cover_type)) ? getSameSymbol : listLineSymbol
|
||||||
apiCall({ pageIndex, pageSize: 6, type: type || this.form.order_type, symbol, exchangeType: this.form.exchangeType }).then(res => {
|
apiCall({ pageIndex, pageSize: 6, type: type || this.form.order_type, symbol, exchangeType: exchangeType || this.form.exchange_type }).then(res => {
|
||||||
this.symbol.total = res.data.count
|
this.symbol.total = res.data.count
|
||||||
this.symbol.symbolList = res.data.list
|
this.symbol.symbolList = res.data.list
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
@ -1317,8 +1476,9 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 获取交易对组
|
// 获取交易对组
|
||||||
getSymbolGroup(type = 2) {
|
getSymbolGroup(type = 2, exchangeType) {
|
||||||
listLineSymbolGroup({ pageIndex: 1, pageSize: 999, beginTime: undefined, endTime: undefined, type, exchangeType: this.form.exchangeType }).then(res => {
|
console.log(type, exchangeType, '??')
|
||||||
|
listLineSymbolGroup({ pageIndex: 1, pageSize: 999, beginTime: undefined, endTime: undefined, type, exchangeType: exchangeType || this.form.exchange_type }).then(res => {
|
||||||
this.symbolGroups = res.data.list
|
this.symbolGroups = res.data.list
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -1400,6 +1560,7 @@ export default {
|
|||||||
onPosition() {
|
onPosition() {
|
||||||
this.title = ''
|
this.title = ''
|
||||||
this.positionForm = {
|
this.positionForm = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
api_id: undefined,
|
api_id: undefined,
|
||||||
symbol: undefined,
|
symbol: undefined,
|
||||||
rate: '0',
|
rate: '0',
|
||||||
@ -1412,6 +1573,7 @@ export default {
|
|||||||
positionCancel() {
|
positionCancel() {
|
||||||
this.positionOpen = false
|
this.positionOpen = false
|
||||||
this.positionForm = {
|
this.positionForm = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
api_id: undefined,
|
api_id: undefined,
|
||||||
symbol: undefined,
|
symbol: undefined,
|
||||||
rate: '0',
|
rate: '0',
|
||||||
@ -1437,6 +1599,7 @@ export default {
|
|||||||
onStore() {
|
onStore() {
|
||||||
this.title = ''
|
this.title = ''
|
||||||
this.storeForm = {
|
this.storeForm = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
api_id: undefined,
|
api_id: undefined,
|
||||||
cover_account: 1,
|
cover_account: 1,
|
||||||
symbol_type: 1,
|
symbol_type: 1,
|
||||||
@ -1455,6 +1618,7 @@ export default {
|
|||||||
storeCancel() {
|
storeCancel() {
|
||||||
this.storeOpen = false
|
this.storeOpen = false
|
||||||
this.storeForm = {
|
this.storeForm = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
api_id: undefined,
|
api_id: undefined,
|
||||||
cover_account: 1,
|
cover_account: 1,
|
||||||
symbol_type: 1,
|
symbol_type: 1,
|
||||||
@ -1492,8 +1656,9 @@ export default {
|
|||||||
this.title = ''
|
this.title = ''
|
||||||
this.mode.modeTitle = title
|
this.mode.modeTitle = title
|
||||||
this.resetMode()
|
this.resetMode()
|
||||||
this.getSymbol({}, 2)
|
this.getListLineApiUser(this.modeForm.exchangeType)
|
||||||
this.getSymbolGroup(2)
|
this.getSymbol({}, 2, this.modeForm.exchangeType)
|
||||||
|
this.getSymbolGroup(2, this.modeForm.exchangeType)
|
||||||
this.mode.modeOpen = true
|
this.mode.modeOpen = true
|
||||||
},
|
},
|
||||||
modeCancel() {
|
modeCancel() {
|
||||||
@ -1503,6 +1668,7 @@ export default {
|
|||||||
// 表单重置
|
// 表单重置
|
||||||
resetMode() {
|
resetMode() {
|
||||||
this.modeForm = {
|
this.modeForm = {
|
||||||
|
exchangeType: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
api_user_ids: undefined,
|
api_user_ids: undefined,
|
||||||
symbol: undefined,
|
symbol: undefined,
|
||||||
group_id: undefined,
|
group_id: undefined,
|
||||||
@ -1566,7 +1732,7 @@ export default {
|
|||||||
buy_price: undefined,
|
buy_price: undefined,
|
||||||
site: 'BUY',
|
site: 'BUY',
|
||||||
order_sn: undefined,
|
order_sn: undefined,
|
||||||
order_type: '1',
|
order_type: 0,
|
||||||
cover_rate: undefined,
|
cover_rate: undefined,
|
||||||
desc: undefined,
|
desc: undefined,
|
||||||
status: undefined,
|
status: undefined,
|
||||||
@ -1575,6 +1741,11 @@ export default {
|
|||||||
close_type: undefined,
|
close_type: undefined,
|
||||||
direction: undefined,
|
direction: undefined,
|
||||||
|
|
||||||
|
symbol_type: 1,
|
||||||
|
hedge_buy_type: 1,
|
||||||
|
HedgeBuyTotal: undefined,
|
||||||
|
HedgeTakeProfit: undefined,
|
||||||
|
HedgeStopLoss: undefined,
|
||||||
exchange_type: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
exchange_type: this.exchangeTypes.length ? this.exchangeTypes[0].value : '',
|
||||||
scale_type: 2,
|
scale_type: 2,
|
||||||
main_order_type: 'LIMIT',
|
main_order_type: 'LIMIT',
|
||||||
@ -1612,9 +1783,9 @@ export default {
|
|||||||
return this.selectItemsLabel(this.apiIdOptions, row.apiId)
|
return this.selectItemsLabel(this.apiIdOptions, row.apiId)
|
||||||
},
|
},
|
||||||
// 关系
|
// 关系
|
||||||
getLineApiUserItems() {
|
getLineApiUserItems(exchangeType) {
|
||||||
this.getItems(getMainUser, undefined).then(res => {
|
this.getItems(getMainUser, { pageSize: 10000, exchangeType: exchangeType || this.form.exchange_type }).then(res => {
|
||||||
this.apiIdOptions = this.setItems(res, 'id', 'apiName')
|
this.apiIdOptions = this.setItems(res || [], 'id', 'apiName')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 文件
|
// 文件
|
||||||
@ -1703,6 +1874,7 @@ export default {
|
|||||||
onCancel() {
|
onCancel() {
|
||||||
this.cancelOpen = true
|
this.cancelOpen = true
|
||||||
this.$refs.formCancel?.resetFields()
|
this.$refs.formCancel?.resetFields()
|
||||||
|
this.cancelForm.exchangeType = this.exchangeTypes.length ? this.exchangeTypes[0].value : ''
|
||||||
},
|
},
|
||||||
handleCancel(row) {
|
handleCancel(row) {
|
||||||
if (typeof row === 'string') {
|
if (typeof row === 'string') {
|
||||||
|
|||||||
Reference in New Issue
Block a user