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