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