1、策略下单
This commit is contained in:
		| @ -396,6 +396,14 @@ | ||||
|                   <template v-if="inForm.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template> | ||||
|                 </el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss"> | ||||
|                 <el-input | ||||
|                   v-model="inForm.stop_loss" | ||||
|                   min="0" | ||||
|                   type="number" | ||||
|                   :placeholder="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="止盈数量百分比" prop="profit_num_ratio"> | ||||
|                 <el-input v-model="inForm.profit_num_ratio" placeholder="止盈数量百分比" /> | ||||
|               </el-form-item> | ||||
| @ -481,14 +489,6 @@ | ||||
|                   <el-radio label="0">直接执行</el-radio> | ||||
|                 </el-radio-group> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss"> | ||||
|                 <el-input | ||||
|                   v-model="inForm.stop_loss" | ||||
|                   min="0" | ||||
|                   type="number" | ||||
|                   :placeholder="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="减仓策略"> | ||||
|                 <el-select | ||||
|                   v-model="inForm.reduce_strategy_id" | ||||
| @ -821,6 +821,8 @@ export default { | ||||
|         ], | ||||
|         profit: [{ required: true, message: '请输入', trigger: 'blur' }, | ||||
|           { validator: this.validateProfit, trigger: 'blur' }], | ||||
|  | ||||
|         stop_loss: [{ required: true, message: '请输入止损', trigger: 'blur' }, { validator: this.validateStopLoss, trigger: 'blur' }], | ||||
|         reduce_price: [ | ||||
|           { required: true, message: '主单亏损不能为空', trigger: 'blur' }, | ||||
|           { validator: this.validateReducePrice, trigger: 'blur' }], | ||||
| @ -968,6 +970,16 @@ export default { | ||||
|     }) | ||||
|   }, | ||||
|   methods: { | ||||
|     /** 主单止损价 */ | ||||
|     validateStopLoss(rule, value, callback) { | ||||
|       if (value < 0) { | ||||
|         callback(new Error('止损价不能小于0')) | ||||
|       } else if (this.form.price_pattern !== 'mixture' && value > 100) { | ||||
|         callback(new Error('止损价不能大于100')) | ||||
|       } else { | ||||
|         callback() | ||||
|       } | ||||
|     }, | ||||
|     validatePercentage(rule, value, callback) { | ||||
|       if (value <= 0 || value === undefined || value === null || value === '') { | ||||
|         callback(new Error('百分比必须大于0')) | ||||
|  | ||||
| @ -505,11 +505,11 @@ | ||||
|               </el-form-item> | ||||
|               <el-form-item label="策略类型"> | ||||
|                 <el-radio-group v-model="form.strategy_template_type" @input="changeStrategyTemplateType"> | ||||
|                   <!-- :disabled="item.value === 1" --> | ||||
|                   <el-radio | ||||
|                     v-for="(item, index) in strategyTemplateTypeOptions" | ||||
|                     :key="'strategyTemplateType' + index" | ||||
|                     :label="item.value" | ||||
|                     :disabled="item.value === 1" | ||||
|                   >{{ item.label }}</el-radio> | ||||
|                 </el-radio-group> | ||||
|               </el-form-item> | ||||
| @ -597,6 +597,14 @@ | ||||
|                   <template v-if="form.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template> | ||||
|                 </el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="form.price_pattern === 'mixture' ? '止损价格' : '止损百分比'" prop="stop_loss"> | ||||
|                 <el-input | ||||
|                   v-model="form.stop_loss" | ||||
|                   min="0" | ||||
|                   type="number" | ||||
|                   :placeholder="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="止盈数量百分比" prop="profit_num_ratio"> | ||||
|                 <el-input v-model="form.profit_num_ratio" placeholder="止盈数量百分比" /> | ||||
|               </el-form-item> | ||||
| @ -634,14 +642,6 @@ | ||||
|                   <el-radio label="0">直接执行</el-radio> | ||||
|                 </el-radio-group> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss"> | ||||
|                 <el-input | ||||
|                   v-model="form.stop_loss" | ||||
|                   min="0" | ||||
|                   type="number" | ||||
|                   :placeholder="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="减仓策略"> | ||||
|                 <el-select | ||||
|                   v-model="form.reduce_strategy_id" | ||||
|  | ||||
| @ -152,7 +152,7 @@ | ||||
|               :gutter="20" | ||||
|             > | ||||
|               <!-- <el-card shadow="hover"> --> | ||||
|               <el-col :span="7"> | ||||
|               <el-col :span="6"> | ||||
|                 <el-form-item | ||||
|                   label="亏损比例" | ||||
|                   :prop="'items.' + index + '.lossPercent'" | ||||
| @ -161,7 +161,12 @@ | ||||
|                   <el-input v-model="item.lossPercent" size="mini" placeholder="请输入亏损比例" /> | ||||
|                 </el-form-item> | ||||
|               </el-col> | ||||
|               <el-col :span="7"> | ||||
|               <el-col :span="6"> | ||||
|                 <el-form-item label="减仓比例" :prop="'items.' + index + '.quantityPercent'" :rules="rules.quantityPercent"> | ||||
|                   <el-input v-model="item.quantityPercent" size="mini" placeholder="请输入减仓数量比例" /> | ||||
|                 </el-form-item> | ||||
|               </el-col> | ||||
|               <el-col :span="6"> | ||||
|                 <el-form-item | ||||
|                   label="订单类型" | ||||
|                   :prop="'items.' + index + '.orderType'" | ||||
| @ -259,6 +264,9 @@ export default { | ||||
|         lossPercent: [{ required: true, message: '亏损百分比不能为空', trigger: 'blur' }, | ||||
|           { validator: this.validateOrderType, trigger: 'blur' }], | ||||
|         orderType: [{ required: true, message: '订单类型不能为空', trigger: 'blur' } | ||||
|         ], | ||||
|         quantityPercent: [{ required: true, message: '减仓数量百分比不能为空', trigger: 'blur' }, | ||||
|           { validator: this.validateQuantityPercent, trigger: 'blur' } | ||||
|         ] | ||||
|       } | ||||
|     } | ||||
| @ -286,6 +294,21 @@ export default { | ||||
|         callback() | ||||
|       } | ||||
|     }, | ||||
|     validateQuantityPercent(rule, value, callback) { | ||||
|       // const index = rule.fullField.split('.')[1] // 获取索引 | ||||
|  | ||||
|       if (value === '') { | ||||
|         callback(new Error('不能为空')) | ||||
|       } else if (isNaN(value)) { | ||||
|         callback(new Error('必须输入数字')) | ||||
|       } else if (value < 0) { | ||||
|         callback(new Error('百分比不能小于 0')) | ||||
|       } else if (value > 100) { | ||||
|         callback(new Error('百分比不能大于 100')) | ||||
|       } else { | ||||
|         callback() | ||||
|       } | ||||
|     }, | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.loading = true | ||||
|  | ||||
| @ -19,6 +19,11 @@ | ||||
|             align="center" | ||||
|             prop="reducePremium" | ||||
|           /> | ||||
|           <el-table-column | ||||
|             label="减仓策略提前触发百分比" | ||||
|             align="center" | ||||
|             prop="reduceEarlyTriggerPercent" | ||||
|           /> | ||||
|           <!-- <el-table-column | ||||
|             label="主账号加仓溢价百分比" | ||||
|             align="center" | ||||
| @ -143,6 +148,9 @@ | ||||
|             <el-form-item label="限价减仓溢价" prop="reducePremium"> | ||||
|               <el-input v-model="form.reducePremium" placeholder="限价减仓溢价" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="减仓策略提前触发百分比" prop="reduceEarlyTriggerPercent"> | ||||
|               <el-input v-model="form.reduceEarlyTriggerPercent" placeholder="减仓策略提前触发百分比" /> | ||||
|             </el-form-item> | ||||
|             <!-- <el-form-item label="主账号加仓溢价百分比" prop="scaleOrderTypeARate"> | ||||
|               <el-input v-model="form.scaleOrderTypeARate" placeholder="主账号限价加仓买入百分比" /> | ||||
|             </el-form-item> | ||||
| @ -221,7 +229,8 @@ export default { | ||||
|       rules: { | ||||
|         stopLossPremium: [{ required: true, message: '限价止损溢价不能为空', trigger: 'blur' }], | ||||
|         addPositionPremium: [{ required: true, message: '限价加仓溢价不能为空', trigger: 'blur' }], | ||||
|         reducePremium: [{ required: true, message: '限价减仓溢价不能为空', trigger: 'blur' }] | ||||
|         reducePremium: [{ required: true, message: '限价减仓溢价不能为空', trigger: 'blur' }], | ||||
|         reduceEarlyTriggerPercent: [{ required: true, message: '减仓策略提前触发百分比不能为空', trigger: 'blur' }] | ||||
|       } | ||||
|  | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user