From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/modules/robot/robot-buy-add-or-update.vue | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 348 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/robot/robot-buy-add-or-update.vue b/src/views/modules/robot/robot-buy-add-or-update.vue
new file mode 100644
index 0000000..26ffc43
--- /dev/null
+++ b/src/views/modules/robot/robot-buy-add-or-update.vue
@@ -0,0 +1,348 @@
+<template>
+ <el-dialog
+ :title="dataForm.add ? '新增机器人' : '修改机器人'"
+ :close-on-click-modal="false"
+ :visible.sync="visible"
+ width='800px'>
+ <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="120px">
+
+ <el-form-item label="交易对" label-width="120px" style="background-color: white;" prop="symbol">
+ <el-select v-model="dataForm.symbol" placeholder="请选择">
+ <el-option label="NEEQ/USD" value="NEEQ/USD"></el-option>
+ <el-option label="BTC/USDT" value="BTC/USDT"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="机器人ID" label-width="120px" prop="uuid">
+ <el-input v-model="dataForm.uuid" placeholder=""></el-input>
+ </el-form-item>
+
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="机器人账号" prop="username">
+ <el-input v-model="dataForm.username" placeholder="" :disabled="!dataForm.add"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="机器人密码" prop="password">
+ <el-input v-model="dataForm.password" placeholder="" :disabled="!dataForm.add"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="机器人资金" prop="money">
+ <el-input v-model="dataForm.money" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-form-item label="机器人状态"
+ size="mini"
+ label-width="120px" prop="runningStatus">
+ <el-radio-group v-model="dataForm.runningStatus">
+ <el-radio :label="1">启动</el-radio>
+ <el-radio :label="0">停止</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ <el-form-item label="最低交易量" label-width="120px" prop="minmuanAmount">
+ <el-input v-model="dataForm.minmuanAmount" placeholder=""></el-input>
+ </el-form-item>
+
+
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random1">
+ <el-input v-model="dataForm.random1" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random2">
+ <el-input v-model="dataForm.random2" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random3">
+ <el-input v-model="dataForm.random3" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random4">
+ <el-input v-model="dataForm.random4" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random5">
+ <el-input v-model="dataForm.random5" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="交易量随机因子" prop="random6">
+ <el-input v-model="dataForm.random6" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-form-item label="价格精度要求" prop="priceDecimals">
+ <el-input v-model="dataForm.priceDecimals" placeholder=""></el-input>
+ </el-form-item>
+ <el-form-item label="数量精度要求" prop="numDecimals">
+ <el-input v-model="dataForm.numDecimals" placeholder=""></el-input>
+ </el-form-item>
+ <el-form-item label="买卖盘最高差价" prop="maxumPriceDiff">
+ <el-input v-model="dataForm.maxumPriceDiff" placeholder=""></el-input>
+ </el-form-item>
+
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="买单挂单数量" prop="buyNum">
+ <el-input v-model="dataForm.buyNum" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="卖单挂单数量" prop="sellNum">
+ <el-input v-model="dataForm.sellNum" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-form-item label="价格变化步长(%)" prop="step">
+ <el-input v-model="dataForm.step" placeholder=""></el-input>
+ </el-form-item>
+
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="最大下单间隔(秒)" prop="maxmunInterval">
+ <el-input v-model="dataForm.maxmunInterval" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="最小下单间隔(秒)" prop="minmunInterval">
+ <el-input v-model="dataForm.minmunInterval" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="最大下单数量(手)" prop="maxmunNum">
+ <el-input v-model="dataForm.maxmunNum" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="最小下单数量(手)" prop="minmunNum">
+ <el-input v-model="dataForm.minmunNum" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="高频量比" prop="highFrequency">
+ <el-input v-model="dataForm.highFrequency" placeholder=""></el-input>
+ </el-form-item>
+
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="低频量比" prop="lowFrequency">
+ <el-input v-model="dataForm.lowFrequency" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="涨幅权重" prop="weight">
+ <el-input v-model="dataForm.weight" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="大盘增长幅度(%)" prop="marketIncrease">
+ <el-input v-model="dataForm.marketIncrease" placeholder=""></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="大盘" prop="followMarket">
+ <el-select v-model="dataForm.followMarket" placeholder="请选择">
+ <el-option label="道琼斯" value="道琼斯"></el-option>
+ <el-option label="纳斯达克" value="纳斯达克"></el-option>
+ <el-option label="标普500" value="标普500"></el-option>
+ <el-option label="上证指数" value="上证指数"></el-option>
+ <el-option label="深证指数" value="深证指数"></el-option>
+ <el-option label="恒生指数" value="恒生指数"></el-option>
+ <el-option label="国企指数" value="国企指数"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="visible = false">取消</el-button>
+ <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+ </span>
+ </el-dialog>
+</template>
+
+<script>
+ import { treeDataTranslate } from '@/utils'
+ import { Debounce } from '@/utils/debounce'
+ export default {
+ data () {
+ return {
+ visible: false,
+ menuList: [],
+ menuListTreeProps: {
+ label: 'name',
+ children: 'children'
+ },
+ dataForm: {
+ id: 0,
+ roleName: '',
+ remark: ''
+ },
+ dataRule: {
+ symbol:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ uuid:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ username:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ password:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ money:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ minmuanAmount:[{ required: true, message: '不能为空', trigger: 'blur' },],
+
+ random1:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ random2:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ random3:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ random4:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ random5:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ random6:[{ required: true, message: '不能为空', trigger: 'blur' },],
+
+ priceDecimals:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ numDecimals:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ maxumPriceDiff:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ buyNum:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ sellNum:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ step:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ maxmunInterval:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ minmunInterval:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ maxmunNum:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ minmunNum:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ highFrequency:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ lowFrequency:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ weight:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ marketIncrease:[{ required: true, message: '不能为空', trigger: 'blur' },],
+
+ runningStatus:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ followMarket:[{ required: true, message: '不能为空', trigger: 'blur' },],
+ },
+ tempKey: -666666 // 临时key, 用于解决tree半选中状态项不能传给后台接口问题. # 待优化
+ }
+ },
+ methods: {
+ init (row) {
+ if(row==null){
+ this.dataForm = {}
+ this.dataForm.add = true;
+ }else{
+ this.dataForm = {...row} || {}
+ }
+ if(this.$refs['dataForm']){
+ this.$refs['dataForm'].clearValidate();
+ }
+
+ this.visible = true
+ },
+ // 表单提交
+ dataFormSubmit: Debounce(function () {
+ this.$refs['dataForm'].validate((valid) => {
+ if (valid) {
+ // if(this.dataForm.add){
+ // delete this.dataForm.add
+ // this.$parent.AddData(this.dataForm);
+ // }
+
+ // this.$message({
+ // message: '操作成功',
+ // type: 'success',
+ // duration: 1500,
+ // onClose: () => {
+ // this.visible = false
+ // this.$emit('refreshDataList')
+ // }
+ // })
+ //--------------------------------------------------------------------------
+ this.$http({
+ url: this.$http.adornUrl(`/etf/robot/save`),
+ method: 'post',
+ data: this.$http.adornData({
+ 'symbol': this.dataForm.symbol, //交易对
+ 'uuid': this.dataForm.uuid, //机器人ID
+ 'username': this.dataForm.username, //机器人账号
+ 'password': this.dataForm.password, //机器人密码
+ 'money': this.dataForm.money, //机器人资金
+ 'runningStatus': this.dataForm.runningStatus, //机器人状态
+ 'minmuanAmount': this.dataForm.minmuanAmount, //最低交易量
+
+ 'priceDecimals': this.dataForm.priceDecimals, //价格精度要求
+ 'numDecimals': this.dataForm.numDecimals, //数量精度要求
+ 'maxumPriceDiff': this.dataForm.maxumPriceDiff, //买卖盘最高差价
+ 'buyNum': this.dataForm.buyNum, //买单挂单数量
+ 'sellNum': this.dataForm.sellNum, //卖单挂单数量
+ 'step': this.dataForm.step, //价格变化步长(%)
+
+ 'maxmunInterval': this.dataForm.maxmunInterval, //最大下单间隔(秒)
+ 'minmunInterval': this.dataForm.minmunInterval, //最小下单间隔(秒)
+ 'maxmunNum': this.dataForm.maxmunNum, //最大下单数量(手)
+ 'minmunNum': this.dataForm.minmunNum, //最小下单数量(手)
+ 'highFrequency': this.dataForm.highFrequency, //高频量比
+ 'lowFrequency': this.dataForm.lowFrequency, //低频量比
+
+ 'weight': this.dataForm.weight, //涨幅权重
+ 'marketIncrease': this.dataForm.marketIncrease, //大盘增长幅度(%)
+
+ 'followMarket':this.dataForm.followMarket,
+
+ 'random1':this.dataForm.random1,
+ 'random2':this.dataForm.random2,
+ 'random3':this.dataForm.random3,
+ 'random4':this.dataForm.random4,
+ 'random5':this.dataForm.random5,
+ 'random6':this.dataForm.random6,
+ })
+ }).then(({data}) => {
+ if(data.code == 0){
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.visible = false
+ this.$emit('refreshDataList')
+ }
+ })
+ }else{
+ this.$message({
+ message: data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ }
+ })
+ }
+
+ })
+
+ }
+ })
+ })
+ }
+ }
+</script>
+
+<style>
+ .customWidth{
+ width:700px;
+ }
+</style>
--
Gitblit v1.9.3