Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
robot-monitor
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
汪晓凯
robot-monitor
Commits
ec500278
Commit
ec500278
authored
Dec 13, 2019
by
王奇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
权限与修改
parent
3113ec2e
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1495 additions
and
232 deletions
+1495
-232
package-lock.json
package-lock.json
+60
-22
navLeft.vue
src/components/navLeft.vue
+11
-4
api-config.js
src/config/api-config.js
+4
-0
index.js
src/router/index.js
+6
-0
AdminSet.vue
src/views/AdminSet.vue
+288
-0
Login.vue
src/views/Login.vue
+3
-1
RobotDetails.vue
src/views/RobotDetails.vue
+224
-23
account.vue
src/views/account.vue
+7
-0
coinRecharge.vue
src/views/coinRecharge.vue
+8
-2
currency.vue
src/views/currency.vue
+756
-139
overview.vue
src/views/overview.vue
+128
-41
No files found.
package-lock.json
View file @
ec500278
...
@@ -4109,7 +4109,8 @@
...
@@ -4109,7 +4109,8 @@
"ansi-regex"
:
{
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"aproba"
:
{
"aproba"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
...
@@ -4130,12 +4131,14 @@
...
@@ -4130,12 +4131,14 @@
"balanced-match"
:
{
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"brace-expansion"
:
{
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
"concat-map"
:
"0.0.1"
...
@@ -4150,17 +4153,20 @@
...
@@ -4150,17 +4153,20 @@
"code-point-at"
:
{
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"concat-map"
:
{
"concat-map"
:
{
"version"
:
"0.0.1"
,
"version"
:
"0.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"console-control-strings"
:
{
"console-control-strings"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"core-util-is"
:
{
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
...
@@ -4277,7 +4283,8 @@
...
@@ -4277,7 +4283,8 @@
"inherits"
:
{
"inherits"
:
{
"version"
:
"2.0.3"
,
"version"
:
"2.0.3"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"ini"
:
{
"ini"
:
{
"version"
:
"1.3.5"
,
"version"
:
"1.3.5"
,
...
@@ -4289,6 +4296,7 @@
...
@@ -4289,6 +4296,7 @@
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
"number-is-nan"
:
"^1.0.0"
}
}
...
@@ -4303,6 +4311,7 @@
...
@@ -4303,6 +4311,7 @@
"version"
:
"3.0.4"
,
"version"
:
"3.0.4"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
"brace-expansion"
:
"^1.1.7"
}
}
...
@@ -4310,12 +4319,14 @@
...
@@ -4310,12 +4319,14 @@
"minimist"
:
{
"minimist"
:
{
"version"
:
"0.0.8"
,
"version"
:
"0.0.8"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"minipass"
:
{
"minipass"
:
{
"version"
:
"2.2.4"
,
"version"
:
"2.2.4"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"safe-buffer"
:
"^5.1.1"
,
"safe-buffer"
:
"^5.1.1"
,
"yallist"
:
"^3.0.0"
"yallist"
:
"^3.0.0"
...
@@ -4334,6 +4345,7 @@
...
@@ -4334,6 +4345,7 @@
"version"
:
"0.5.1"
,
"version"
:
"0.5.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"minimist"
:
"0.0.8"
"minimist"
:
"0.0.8"
}
}
...
@@ -4414,7 +4426,8 @@
...
@@ -4414,7 +4426,8 @@
"number-is-nan"
:
{
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"object-assign"
:
{
"object-assign"
:
{
"version"
:
"4.1.1"
,
"version"
:
"4.1.1"
,
...
@@ -4426,6 +4439,7 @@
...
@@ -4426,6 +4439,7 @@
"version"
:
"1.4.0"
,
"version"
:
"1.4.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"wrappy"
:
"1"
"wrappy"
:
"1"
}
}
...
@@ -4511,7 +4525,8 @@
...
@@ -4511,7 +4525,8 @@
"safe-buffer"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.1"
,
"version"
:
"5.1.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"safer-buffer"
:
{
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
...
@@ -4547,6 +4562,7 @@
...
@@ -4547,6 +4562,7 @@
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"code-point-at"
:
"^1.0.0"
,
"code-point-at"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
...
@@ -4566,6 +4582,7 @@
...
@@ -4566,6 +4582,7 @@
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
"ansi-regex"
:
"^2.0.0"
}
}
...
@@ -4609,12 +4626,14 @@
...
@@ -4609,12 +4626,14 @@
"wrappy"
:
{
"wrappy"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"yallist"
:
{
"yallist"
:
{
"version"
:
"3.0.2"
,
"version"
:
"3.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
}
}
}
}
},
},
...
@@ -11719,7 +11738,8 @@
...
@@ -11719,7 +11738,8 @@
"ansi-regex"
:
{
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"aproba"
:
{
"aproba"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
...
@@ -11740,12 +11760,14 @@
...
@@ -11740,12 +11760,14 @@
"balanced-match"
:
{
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"brace-expansion"
:
{
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
"concat-map"
:
"0.0.1"
...
@@ -11760,17 +11782,20 @@
...
@@ -11760,17 +11782,20 @@
"code-point-at"
:
{
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"concat-map"
:
{
"concat-map"
:
{
"version"
:
"0.0.1"
,
"version"
:
"0.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"console-control-strings"
:
{
"console-control-strings"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"core-util-is"
:
{
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
...
@@ -11887,7 +11912,8 @@
...
@@ -11887,7 +11912,8 @@
"inherits"
:
{
"inherits"
:
{
"version"
:
"2.0.3"
,
"version"
:
"2.0.3"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"ini"
:
{
"ini"
:
{
"version"
:
"1.3.5"
,
"version"
:
"1.3.5"
,
...
@@ -11899,6 +11925,7 @@
...
@@ -11899,6 +11925,7 @@
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
"number-is-nan"
:
"^1.0.0"
}
}
...
@@ -11913,6 +11940,7 @@
...
@@ -11913,6 +11940,7 @@
"version"
:
"3.0.4"
,
"version"
:
"3.0.4"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
"brace-expansion"
:
"^1.1.7"
}
}
...
@@ -11920,12 +11948,14 @@
...
@@ -11920,12 +11948,14 @@
"minimist"
:
{
"minimist"
:
{
"version"
:
"0.0.8"
,
"version"
:
"0.0.8"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"minipass"
:
{
"minipass"
:
{
"version"
:
"2.2.4"
,
"version"
:
"2.2.4"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"safe-buffer"
:
"^5.1.1"
,
"safe-buffer"
:
"^5.1.1"
,
"yallist"
:
"^3.0.0"
"yallist"
:
"^3.0.0"
...
@@ -11944,6 +11974,7 @@
...
@@ -11944,6 +11974,7 @@
"version"
:
"0.5.1"
,
"version"
:
"0.5.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"minimist"
:
"0.0.8"
"minimist"
:
"0.0.8"
}
}
...
@@ -12024,7 +12055,8 @@
...
@@ -12024,7 +12055,8 @@
"number-is-nan"
:
{
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"object-assign"
:
{
"object-assign"
:
{
"version"
:
"4.1.1"
,
"version"
:
"4.1.1"
,
...
@@ -12036,6 +12068,7 @@
...
@@ -12036,6 +12068,7 @@
"version"
:
"1.4.0"
,
"version"
:
"1.4.0"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"wrappy"
:
"1"
"wrappy"
:
"1"
}
}
...
@@ -12121,7 +12154,8 @@
...
@@ -12121,7 +12154,8 @@
"safe-buffer"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.1"
,
"version"
:
"5.1.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"safer-buffer"
:
{
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
...
@@ -12157,6 +12191,7 @@
...
@@ -12157,6 +12191,7 @@
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"code-point-at"
:
"^1.0.0"
,
"code-point-at"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
...
@@ -12176,6 +12211,7 @@
...
@@ -12176,6 +12211,7 @@
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
"ansi-regex"
:
"^2.0.0"
}
}
...
@@ -12219,12 +12255,14 @@
...
@@ -12219,12 +12255,14 @@
"wrappy"
:
{
"wrappy"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
},
},
"yallist"
:
{
"yallist"
:
{
"version"
:
"3.0.2"
,
"version"
:
"3.0.2"
,
"bundled"
:
true
,
"bundled"
:
true
,
"dev"
:
true
"dev"
:
true
,
"optional"
:
true
}
}
}
}
},
},
...
...
src/components/navLeft.vue
View file @
ec500278
...
@@ -13,20 +13,23 @@
...
@@ -13,20 +13,23 @@
<template
slot=
"title"
>
网站监控
</
template
>
<template
slot=
"title"
>
网站监控
</
template
>
<el-menu-item
:index=
"`/monitor/${index}`"
v-for=
"(item, index) in platInfo"
:key=
"item.platform"
>
{{item.platform}}
</el-menu-item>
<el-menu-item
:index=
"`/monitor/${index}`"
v-for=
"(item, index) in platInfo"
:key=
"item.platform"
>
{{item.platform}}
</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu
index=
"2"
v-if=
"environment=='inside'"
>
<el-submenu
index=
"2"
v-if=
"environment=='inside'"
v-show=
"permission_read[6]"
>
<
template
slot=
"title"
>
币种监控
</
template
>
<
template
slot=
"title"
>
币种监控
</
template
>
<el-menu-item
index=
"/monitor/BTY"
>
BTY
</el-menu-item>
<el-menu-item
index=
"/monitor/BTY"
>
BTY
</el-menu-item>
<el-menu-item
index=
"/monitor/YCC"
>
YCC
</el-menu-item>
<el-menu-item
index=
"/monitor/YCC"
>
YCC
</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item
index=
"/monitor/account"
v-if=
"environment=='inside'"
>
<el-menu-item
index=
"/monitor/account"
v-if=
"environment=='inside'"
v-show=
"permission_read[6]"
>
<span
slot=
"title"
>
银行账户
</span>
<span
slot=
"title"
>
银行账户
</span>
</el-menu-item>
</el-menu-item>
<el-menu-item
index=
"/monitor/coinRecharge"
v-if=
"environment=='inside'"
>
<el-menu-item
index=
"/monitor/coinRecharge"
v-if=
"environment=='inside'"
v-show=
"permission_read[6]"
>
<span
slot=
"title"
>
币种充提统计
</span>
<span
slot=
"title"
>
币种充提统计
</span>
</el-menu-item>
</el-menu-item>
<el-menu-item
index=
"/monitor/currency"
v-if=
"environment=='inside'"
>
<el-menu-item
index=
"/monitor/currency"
v-if=
"environment=='inside'"
v-show=
"permission_read[6]"
>
<span
slot=
"title"
>
币种波动统计
</span>
<span
slot=
"title"
>
币种波动统计
</span>
</el-menu-item>
</el-menu-item>
<el-menu-item
index=
"/monitor/adminSet"
v-if=
"environment=='inside'"
v-show=
"permission_read[6]"
>
<span
slot=
"title"
>
管理员设置
</span>
</el-menu-item>
</el-menu>
</el-menu>
</div>
</div>
</template>
</template>
...
@@ -36,6 +39,8 @@
...
@@ -36,6 +39,8 @@
export
default
{
export
default
{
data
(){
data
(){
return
{
return
{
permission_read
:[],
permission_control
:[],
active
:
''
,
active
:
''
,
environment
:
sessionStorage
.
getItem
(
'environment'
),
environment
:
sessionStorage
.
getItem
(
'environment'
),
}
}
...
@@ -43,6 +48,8 @@
...
@@ -43,6 +48,8 @@
props
:
[
'platInfo'
],
props
:
[
'platInfo'
],
created
()
{
created
()
{
this
.
active
=
this
.
$route
.
path
.
split
(
'/'
).
splice
(
0
,
3
).
join
(
'/'
);
this
.
active
=
this
.
$route
.
path
.
split
(
'/'
).
splice
(
0
,
3
).
join
(
'/'
);
this
.
permission_read
=
parseInt
(
localStorage
.
getItem
(
"permission_read"
)).
toString
(
2
).
split
(
""
)
this
.
permission_control
=
parseInt
(
localStorage
.
getItem
(
"permission_control"
)).
toString
(
2
).
split
(
""
)
},
},
methods
:
{
methods
:
{
navClick
(
index
)
{
navClick
(
index
)
{
...
...
src/config/api-config.js
View file @
ec500278
...
@@ -23,6 +23,10 @@ const Api = {
...
@@ -23,6 +23,10 @@ const Api = {
UpdateRobotConfig
:
originUrl
+
'/updateRobotConfig'
,
//修改机器人配置接口
UpdateRobotConfig
:
originUrl
+
'/updateRobotConfig'
,
//修改机器人配置接口
transferStatusChange
:
originUrl
+
'/updateTransferStatus'
,
//充提状态开关
transferStatusChange
:
originUrl
+
'/updateTransferStatus'
,
//充提状态开关
changeStatus
:
originUrl
+
'/changeStatus'
,
//修改机器人运行状态
changeStatus
:
originUrl
+
'/changeStatus'
,
//修改机器人运行状态
countWave
:
originUrl
+
'/countWave'
,
//查询波动统计列表
runRobotConfig
:
originUrl
+
'/runRobotConfig'
,
//查询机器人运行配置
countWaveExcel
:
originUrl
+
'/countWaveExcel'
,
//波动导出
CountWaveRange
:
originUrl
+
'/countWaveRange'
,
//查询波动范围统计
}
}
export
default
Api
;
export
default
Api
;
src/router/index.js
View file @
ec500278
...
@@ -30,6 +30,12 @@ const router = new Router({
...
@@ -30,6 +30,12 @@ const router = new Router({
},
},
},
},
{
{
path
:
'/monitor/adminSet'
,
component
:
function
(
resolve
){
require
([
'../views/AdminSet.vue'
],
resolve
);
},
},
{
path
:
'/monitor/account'
,
path
:
'/monitor/account'
,
component
:
function
(
resolve
){
component
:
function
(
resolve
){
require
([
'../views/account.vue'
],
resolve
);
require
([
'../views/account.vue'
],
resolve
);
...
...
src/views/AdminSet.vue
0 → 100644
View file @
ec500278
<
template
>
<div
class=
"divHeader"
>
<div
class=
"lineHeader"
>
<div
class=
"divTitle"
>
所有机器人
</div>
<div
class=
"titleButton"
>
<el-button
type=
"primary"
@
click=
"dialogVisible=true"
>
添加管理员
</el-button>
</div>
</div>
<!-- 主体框 -->
<div
class=
"aminBox"
>
<div>
<!-- 通过机器人搜索框 -->
<div
class=
"emailInput"
>
<el-input
v-model=
"emailMessage"
placeholder=
"通过邮箱搜索"
>
<el-button
@
click=
"searchByEmail"
slot=
"append"
icon=
"el-icon-search"
></el-button>
</el-input>
</div>
<el-table
:header-cell-style=
"
{background:'#EFF1F3',color:'#808080'}"
:data="tableData"
stripe
style="width: 100%">
<el-table-column
width=
"250"
label=
"管理员邮箱"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
email
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"管理权限"
>
<
template
slot-scope=
"scope"
>
<i
class=
"iconfont"
:class=
" 'icon-'+scope.row.coin+'3'"
></i>
<span>
{{
scope
.
row
.
power
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"150"
label=
"设置日期"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
date
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"150"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"editAdminPower(scope.row)"
>
编辑
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页查询 -->
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
:page-sizes=
"[10, 20, 30]"
:page-size=
"pageSize"
layout=
"total, prev, pager, next, sizes"
:total=
"listCount"
>
</el-pagination>
</div>
</div>
<!-- 添加管理员弹窗 -->
<el-dialog
title=
"添加管理员"
:visible
.
sync=
"dialogVisible"
width=
"880px"
:before-close=
"handleClose"
>
<div
class=
"adminDialog"
>
<div
class=
"adminDivOne"
>
管理员邮箱
</div>
<div
class=
"adminDivTwo"
>
<el-input
v-model=
"adminEmail"
placeholder=
"请输入邮箱"
></el-input>
</div>
</div>
<div
class=
"adminPower"
>
<div
class=
"powerOne"
>
管理权限
</div>
<div
class=
"powerTwo"
>
<el-checkbox-group
v-model=
"checkedList"
label=
"机器人总开关"
border
>
<el-checkbox
label=
"机器人总开关"
border
></el-checkbox>
<el-checkbox
label=
"机器人冲提开关"
border
></el-checkbox>
<el-checkbox
label=
"机器人配置"
border
></el-checkbox>
</el-checkbox-group>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
class=
"dialogButton"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
确 定
</el-button>
</div>
</span>
</el-dialog>
<!-- 编辑管理员弹窗 -->
<el-dialog
title=
"编辑管理员"
:visible
.
sync=
"dialogVisible2"
width=
"880px"
:before-close=
"handleClose"
>
<div
class=
"adminDialog"
>
<div
class=
"adminDivOne"
>
管理员邮箱
</div>
<div
class=
"adminDivTwo"
>
<el-input
v-model=
"adminEmailEdit"
label=
"adminEmailEdit"
placeholder=
"请输入邮箱"
></el-input>
</div>
</div>
<div
class=
"adminPower"
>
<div
class=
"powerOne"
>
管理权限
</div>
<div
class=
"powerTwo"
>
<el-checkbox-group
v-model=
"editCheckedList"
label=
"机器人总开关"
border
>
<el-checkbox
label=
"机器人总开关"
border
></el-checkbox>
<el-checkbox
label=
"机器人冲提开关"
border
></el-checkbox>
<el-checkbox
label=
"机器人配置"
border
></el-checkbox>
</el-checkbox-group>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
class=
"dialogButton"
>
<el-button
@
click=
"dialogVisible2 = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible2 = false"
>
确 定
</el-button>
</div>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
axios
from
'axios'
;
import
ApiConfig
from
"../config/api-config"
;
export
default
{
data
()
{
return
{
tableData
:[
{
email
:
"343641834@qq.com"
,
power
:
"机器人总开关,机器人关闭"
,
date
:
"2019-11-11"
}
],
adminEmailEdit
:
"343641834@qq.com"
,
//编辑管理员权限
checkedList
:[
"机器人总开关"
],
editCheckedList
:[],
adminEmail
:
""
,
dialogVisible
:
false
,
dialogVisible2
:
false
,
emailMessage
:
""
,
pageSize
:
10
,
//分页,每页数量
currentPage
:
1
,
//当前页
listCount
:
0
,
};
},
mounted
()
{
},
created
()
{
},
methods
:{
// 编辑管理员权限
editAdminPower
(
rowData
){
this
.
adminEmailEdit
=
rowData
.
email
// this.editCheckedList=rowData.power
console
.
log
(
"行数据"
,
this
.
editCheckedList
)
this
.
dialogVisible2
=
true
},
//弹窗前确认
handleClose
(
done
)
{
this
.
$confirm
(
'确认关闭?'
)
.
then
(
_
=>
{
done
();
})
.
catch
(
_
=>
{});
},
// 通过邮箱搜索
searchByEmail
(){
alert
(
"搜索邮箱"
)
},
//分页
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
currentPage
=
1
;
this
.
getRechargeList
();
},
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
;
this
.
getRechargeList
(
val
+
''
);
},
},
}
</
script
>
<
style
scoped
>
/* 管理员弹窗样式 */
.adminDialog
{
display
:
flex
;
height
:
40px
;
align-items
:
center
;
.adminDivOne{
margin-left
:
60px
;
font-size
:
14px
;
color
:
#333333
;
}
.adminDivTwo
{
margin-left
:
10px
;
width
:
670px
;
}
}
/* 管理员权限 */
.adminPower
{
display
:
flex
;
align-items
:
center
;
margin-top
:
10px
;
.powerOne{
margin-left
:
75px
;
font-size
:
14px
;
color
:
#333333
;
}
.powerTwo
{
margin-left
:
10px
;
}
}
.emailInput
{
float
:
right
;
width
:
260px
;
height
:
40px
;
margin-bottom
:
20px
;
}
.aminBox
{
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
119
,
146
,
167
,
1
);
padding
:
10px
20px
20px
20px
;
height
:
500px
;
}
.lineHeader
{
height
:
80px
;
text-align
:
center
;
}
.divHeader
{
margin
:
20px
20px
20px
20px
;
}
.divTitle
{
height
:
40px
;
line-height
:
40px
;
float
:
left
;
display
:
inline
;
font-size
:
18px
;
color
:
#333333
;
}
.titleButton
{
float
:
right
;
}
</
style
>
<
style
>
/* 饿了么样式覆盖 */
.el-button--primary
{
color
:
#fff
;
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
/* 覆盖弹窗title文字样式 */
.el-dialog__header
{
text-align
:
center
;
}
/* 覆盖多选框样式 */
.el-checkbox__input.is-checked
.el-checkbox__inner
,
.el-checkbox__input.is-indeterminate
.el-checkbox__inner
{
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
.el-checkbox__input.is-checked
+
.el-checkbox__label
{
color
:
#7792A7
;
}
.el-checkbox.is-bordered.is-checked
{
border-color
:
#7792A7
;
}
</
style
>
\ No newline at end of file
src/views/Login.vue
View file @
ec500278
...
@@ -256,8 +256,10 @@ export default {
...
@@ -256,8 +256,10 @@ export default {
localStorage
[
"username"
]
=
this
.
loginEmail
;
localStorage
[
"username"
]
=
this
.
loginEmail
;
localStorage
[
"token"
]
=
res
.
data
.
data
.
token
localStorage
[
"token"
]
=
res
.
data
.
data
.
token
sessionStorage
.
setItem
(
"isLogin"
,
true
);
sessionStorage
.
setItem
(
"isLogin"
,
true
);
console
.
log
(
res
)
console
.
log
(
"登录返回信息"
,
res
)
sessionStorage
.
setItem
(
"environment"
,
res
.
data
.
data
.
class
);
sessionStorage
.
setItem
(
"environment"
,
res
.
data
.
data
.
class
);
localStorage
.
setItem
(
"permission_control"
,
res
.
data
.
data
.
permission_control
)
localStorage
.
setItem
(
"permission_read"
,
res
.
data
.
data
.
permission_read
)
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/monitor/home'
path
:
'/monitor/home'
})
})
...
...
src/views/RobotDetails.vue
View file @
ec500278
...
@@ -5,12 +5,23 @@
...
@@ -5,12 +5,23 @@
<i
class=
"el-icon-arrow-left"
></i>
<i
class=
"el-icon-arrow-left"
></i>
<span>
返回
</span>
<span>
返回
</span>
</div>
</div>
<!-- 机器人配置 -->
<el-button
<el-button
v-show=
"permission_read[1]"
class=
"fr update-button"
class=
"fr update-button"
@
click
.
native
.
prevent=
"clickUpdate"
@
click
.
native
.
prevent=
"clickUpdate"
type=
"primary"
type=
"primary"
size=
"small"
>
size=
"middle"
>
修改配置
机器人配置
</el-button>
<!-- 运行配置 -->
<el-button
v-show=
"permission_read[4]"
class=
"fr update-button"
@
click
.
native
.
prevent=
"runningConfig"
type=
"primary"
size=
"middle"
>
运行配置
</el-button>
</el-button>
</div>
</div>
<el-row
:gutter=
"20"
class=
"operation-area"
>
<el-row
:gutter=
"20"
class=
"operation-area"
>
...
@@ -18,7 +29,7 @@
...
@@ -18,7 +29,7 @@
<div
class=
"dashboard"
<div
class=
"dashboard"
:class=
"[(robotDetailInfo.base_status==='abnormal' ||robotDetailInfo.coin_status==='abnormal' || robotDetailInfo.profit_status === 'abnormal') ? 'abnormal' : robotDetailInfo.status || 'normal']"
>
:class=
"[(robotDetailInfo.base_status==='abnormal' ||robotDetailInfo.coin_status==='abnormal' || robotDetailInfo.profit_status === 'abnormal') ? 'abnormal' : robotDetailInfo.status || 'normal']"
>
<div
class=
"chart-box"
>
<div
class=
"chart-box"
>
<p
class=
"title"
v-if=
"environment=='inside'"
>
今日
盈亏
</p>
<p
class=
"title"
v-if=
"environment=='inside'"
>
今日
波动
</p>
<p
class=
"data"
<p
class=
"data"
:class=
"robotInfo.today_profit && robotInfo.today_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
:class=
"robotInfo.today_profit && robotInfo.today_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
v-if=
"environment=='inside'"
v-if=
"environment=='inside'"
...
@@ -28,12 +39,12 @@
...
@@ -28,12 +39,12 @@
<p
v-show=
"robotInfo.status==='normal'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">正在运行
</p>
<p
v-show=
"robotInfo.status==='normal'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">正在运行
</p>
<p
v-show=
"robotInfo.status==='stop'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">停止运行
</p>
<p
v-show=
"robotInfo.status==='stop'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">停止运行
</p>
<p
v-if=
"environment=='inside'"
>
<p
v-if=
"environment=='inside'"
>
<span
class=
"result"
>
总
盈亏
</span>
<span
class=
"result"
>
总
波动
</span>
<span
class=
"data"
<span
class=
"data"
:class=
"robotInfo.all_profit && robotInfo.all_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
robotInfo
.
all_profit
}}
</span>
:class=
"robotInfo.all_profit && robotInfo.all_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
robotInfo
.
all_profit
}}
</span>
</p>
</p>
</div>
</div>
<div
class=
"switch"
>
<div
class=
"switch"
v-show=
"permission_read[0]"
>
<span
v-show=
"robotInfo.status==='normal'"
>
关闭
</span>
<span
v-show=
"robotInfo.status==='normal'"
>
关闭
</span>
<span
v-show=
"!robotInfo.status==='normal'"
>
开启
</span>
<span
v-show=
"!robotInfo.status==='normal'"
>
开启
</span>
<el-switch
<el-switch
...
@@ -67,7 +78,7 @@
...
@@ -67,7 +78,7 @@
<span>
交易所
</span>
<span>
交易所
</span>
<span>
{{
robotInfo
.
platform
}}
</span>
<span>
{{
robotInfo
.
platform
}}
</span>
</p>
</p>
<p
v-if=
"environment=='inside'"
>
<p
v-if=
"environment=='inside'"
v-show=
"!permission_read[6]"
>
<span>
行情
</span>
<span>
行情
</span>
<span>
{{
ticketInfo
.
price
}}{{
robotDetailInfo
.
base
}}
</span>
<span>
{{
ticketInfo
.
price
}}{{
robotDetailInfo
.
base
}}
</span>
<span
class=
"cny"
>
≈¥
{{
ticketInfo
.
value
}}
</span>
<span
class=
"cny"
>
≈¥
{{
ticketInfo
.
value
}}
</span>
...
@@ -83,9 +94,9 @@
...
@@ -83,9 +94,9 @@
<div
class=
"handle"
>
<div
class=
"handle"
>
<span
class=
"coin-name"
>
{{
robotInfo
.
coin
}}
</span>
<span
class=
"coin-name"
>
{{
robotInfo
.
coin
}}
</span>
<template
v-if=
"environment=='inside'"
>
<template
v-if=
"environment=='inside'"
>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickRecharge(robotInfo.coin)"
>
充币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickRecharge(robotInfo.coin)"
v-show=
"permission_read[2]"
>
充币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickWithdraw(robotInfo.coin)"
>
提币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickWithdraw(robotInfo.coin)"
v-show=
"permission_read[2]"
>
提币
</button>
<div
class=
"switch"
>
<div
class=
"switch"
v-show=
"permission_read[3]"
>
<span
v-show=
"robotInfo.transfer_status==='open'"
>
关闭
</span>
<span
v-show=
"robotInfo.transfer_status==='open'"
>
关闭
</span>
<span
v-show=
"robotInfo.transfer_status==='close'"
>
开启
</span>
<span
v-show=
"robotInfo.transfer_status==='close'"
>
开启
</span>
<el-switch
<el-switch
...
@@ -123,9 +134,9 @@
...
@@ -123,9 +134,9 @@
<div
class=
"handle"
>
<div
class=
"handle"
>
<span
class=
"coin-name"
>
{{robotInfo.base}}
</span>
<span
class=
"coin-name"
>
{{robotInfo.base}}
</span>
<
template
v-if=
"environment=='inside'"
>
<
template
v-if=
"environment=='inside'"
>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickRecharge(robotInfo.base)"
>
充币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickRecharge(robotInfo.base)"
v-show=
"permission_read[1]"
>
充币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickWithdraw(robotInfo.base)"
>
提币
</button>
<button
class=
"button"
:class=
"robotInfo.transfer_status"
:disabled=
"robotInfo.transfer_status==='close'"
@
click=
"clickWithdraw(robotInfo.base)"
v-show=
"permission_read[1]"
>
提币
</button>
<div
class=
"switch"
>
<div
class=
"switch"
v-show=
"permission_read[2]"
>
<span
v-show=
"robotInfo.transfer_status==='open'"
>
关闭
</span>
<span
v-show=
"robotInfo.transfer_status==='open'"
>
关闭
</span>
<span
v-show=
"robotInfo.transfer_status==='close'"
>
开启
</span>
<span
v-show=
"robotInfo.transfer_status==='close'"
>
开启
</span>
<el-switch
<el-switch
...
@@ -294,6 +305,29 @@
...
@@ -294,6 +305,29 @@
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-row>
<!-- 标签-->
<ul
class=
"classify-overview"
>
<li
class=
"normal"
:class=
"{ 'filter' : robotStatus === 'normal'}"
>
<p>
{{robotInfo.coin_wave}}({{robotInfo.coin_wave_percent}})
</p>
<p>
≈¥{{robotInfo.coin_wave*robotInfo.coin_ticker}}
</p>
<p>
目标币今日波动({{robotInfo.coin}})
</p>
</li>
<li
class=
"abnormal"
:class=
"{ 'filter' : robotStatus === 'stop'}"
>
<p>
{{robotInfo.base_wave}}({{robotInfo.base_wave_percent}})
</p>
<p>
≈¥{{robotInfo.base_wave*robotInfo.base_ticker}}
</p>
<p>
基础币今日波动({{robotInfo.base}})
</p>
</li>
<li
class=
"stop"
:class=
"{ 'filter' : robotStatus === 'coin_wave'}"
>
<p>
{{robotInfo.coin_fee}}
</p>
<p>
≈¥{{robotInfo.coin_fee*robotInfo.coin_ticker}}
</p>
<p>
今日手续费({{robotInfo.coin}})
</p>
</li>
<li
class=
"stop"
:class=
"{ 'filter' : robotStatus === 'base_wave'}"
>
<p>
{{robotInfo.base_fee}}
</p>
<p>
≈¥{{robotInfo.base_fee*robotInfo.base_ticker}}
</p>
<p>
今日手续费({{robotInfo.base}})
</p>
</li>
</ul>
<!--充提记录-->
<!--充提记录-->
<div
class=
"record-box"
v-loading=
"Loading"
element-loading-text=
"正在刷新数据"
>
<div
class=
"record-box"
v-loading=
"Loading"
element-loading-text=
"正在刷新数据"
>
<div
class=
"title-box clearfix"
>
<div
class=
"title-box clearfix"
>
...
@@ -526,9 +560,9 @@
...
@@ -526,9 +560,9 @@
:total=
"total"
>
:total=
"total"
>
</el-pagination>
</el-pagination>
</div>
</div>
<!-- 修改配置弹框 -->
<!-- 修改
机器人
配置弹框 -->
<el-dialog
<el-dialog
title=
"
修改
配置"
title=
"
机器人
配置"
:visible
.
sync=
"dialogFormVisible2"
:visible
.
sync=
"dialogFormVisible2"
:before-close=
"handleClose"
:before-close=
"handleClose"
:close-on-click-modal =
"false"
:close-on-click-modal =
"false"
...
@@ -546,10 +580,10 @@
...
@@ -546,10 +580,10 @@
<p>
账户地址:
<span>
{{updateRobotConfig.account}}
</span></p>
<p>
账户地址:
<span>
{{updateRobotConfig.account}}
</span></p>
<p>
目标币种:
<span>
{{updateRobotConfig.coin}}
</span></p>
<p>
目标币种:
<span>
{{updateRobotConfig.coin}}
</span></p>
<p>
基础币种:
<span>
{{updateRobotConfig.base}}
</span></p>
<p>
基础币种:
<span>
{{updateRobotConfig.base}}
</span></p>
<p>
目标币
种
标准:
<span>
{{updateRobotConfig.coin_normal}}
</span></p>
<p>
目标币
余额
标准:
<span>
{{updateRobotConfig.coin_normal}}
</span></p>
<p>
基础币
种
标准:
<span>
{{updateRobotConfig.base_normal}}
</span></p>
<p>
基础币
余额
标准:
<span>
{{updateRobotConfig.base_normal}}
</span></p>
<p>
盈亏范围
:
<span>
{{updateRobotConfig.profit_range}}
</span></p>
<p>
余额范围比例
:
<span>
{{updateRobotConfig.profit_range}}
</span></p>
<p>
币数量范围:
<span>
{{updateRobotConfig.amount
_range}}
</span></p>
<p>
波动范围比例:
<span>
{{updateRobotConfig.wave
_range}}
</span></p>
<p>
交易所:
<span>
{{updateRobotConfig.platform}}
</span></p>
<p>
交易所:
<span>
{{updateRobotConfig.platform}}
</span></p>
<p>
标签:
<span>
{{updateRobotConfig.tag}}
</span></p>
<p>
标签:
<span>
{{updateRobotConfig.tag}}
</span></p>
</el-card>
</el-card>
...
@@ -569,17 +603,17 @@
...
@@ -569,17 +603,17 @@
<el-form-item
label=
"基础币种"
label-width=
"120px"
>
<el-form-item
label=
"基础币种"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.base"
:disabled=
"true"
></el-input>
<el-input
v-model=
"updateRobotConfig.base"
:disabled=
"true"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"目标币
种
标准"
label-width=
"120px"
>
<el-form-item
label=
"目标币
余额
标准"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.coin_normal"
type=
"number"
></el-input>
<el-input
v-model=
"updateRobotConfig.coin_normal"
type=
"number"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"基础币
种
标准"
label-width=
"120px"
>
<el-form-item
label=
"基础币
余额
标准"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.base_normal"
type=
"number"
></el-input>
<el-input
v-model=
"updateRobotConfig.base_normal"
type=
"number"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
盈亏范围
"
label-width=
"120px"
>
<el-form-item
label=
"
余额范围比例
"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.profit_range"
type=
"number"
></el-input>
<el-input
v-model=
"updateRobotConfig.profit_range"
type=
"number"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
币数量范围
"
label-width=
"120px"
>
<el-form-item
label=
"
波动范围比例
"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.
amount
_range"
type=
"number"
></el-input>
<el-input
v-model=
"updateRobotConfig.
wave
_range"
type=
"number"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"交易所"
label-width=
"120px"
>
<el-form-item
label=
"交易所"
label-width=
"120px"
>
<el-input
v-model=
"updateRobotConfig.platform"
:disabled=
"true"
></el-input>
<el-input
v-model=
"updateRobotConfig.platform"
:disabled=
"true"
></el-input>
...
@@ -596,6 +630,24 @@
...
@@ -596,6 +630,24 @@
<el-button
type=
"primary"
@
click=
"sureNext('2')"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"sureNext('2')"
>
确 定
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 修改运行配置 -->
<el-dialog
title=
"运行配置"
:visible
.
sync=
"dialogVisible3"
width=
"50%"
center
:before-close=
"handleClose"
>
<div
class=
"thirdDialog"
>
<!-- <span>{{runConfig.msg}}</span> -->
<div
class=
"thirdDialogInput"
>
<el-input
v-model=
"config_param"
placeholder=
"这里是运行参数配置的内容"
type=
"textarea"
></el-input>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible3 = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"editParamConfig()"
class=
"trueButton"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -607,6 +659,11 @@
...
@@ -607,6 +659,11 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
config_param
:
''
,
robotStatus
:
''
,
//机器人状态
dialogVisible3
:
false
,
permission_read
:[],
permission_control
:[],
environment
:
sessionStorage
.
getItem
(
'environment'
),
environment
:
sessionStorage
.
getItem
(
'environment'
),
robotBankList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotBankList'
)),
robotBankList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotBankList'
)),
robotDetailInfo
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotDetailInfo'
)),
robotDetailInfo
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotDetailInfo'
)),
...
@@ -663,12 +720,26 @@
...
@@ -663,12 +720,26 @@
/*修改配置弹框参数*/
/*修改配置弹框参数*/
dialogFormVisible2
:
false
,
//充值弹框
dialogFormVisible2
:
false
,
//充值弹框
innerVisible2
:
false
,
//确认弹框
innerVisible2
:
false
,
//确认弹框
}
}
},
},
created
()
{
created
()
{
this
.
init
();
this
.
init
();
this
.
permission_read
=
parseInt
(
localStorage
.
getItem
(
"permission_read"
)).
toString
(
2
).
split
(
""
)
this
.
permission_control
=
parseInt
(
localStorage
.
getItem
(
"permission_control"
)).
toString
(
2
).
split
(
""
)
console
.
log
(
"可视权限"
,
this
.
permission_read
)
console
.
log
(
"控制权限"
,
this
.
permission_control
)
},
},
methods
:
{
methods
:
{
// handleClose(done) {
// this.$confirm('确认关闭?')
// .then(_ => {
// done();
// })
// .catch(_ => {});
// },
//页面初始化
//页面初始化
init
()
{
init
()
{
this
.
robotDetailInfo
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotDetailInfo'
));
this
.
robotDetailInfo
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotDetailInfo'
));
...
@@ -711,6 +782,7 @@
...
@@ -711,6 +782,7 @@
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
// console.log(res.data.data);
// console.log(res.data.data);
this
.
robotInfo
=
res
.
data
.
data
[
0
];
this
.
robotInfo
=
res
.
data
.
data
[
0
];
console
.
log
(
"机器人信息"
,
this
.
robotInfo
)
this
.
transfer_status
=
Boolean
(
res
.
data
.
data
[
0
].
transfer_status
===
'open'
)
this
.
transfer_status
=
Boolean
(
res
.
data
.
data
[
0
].
transfer_status
===
'open'
)
}
}
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
...
@@ -732,6 +804,7 @@
...
@@ -732,6 +804,7 @@
axios
.
post
(
ApiConfig
.
GetRobotConfig
,
params
).
then
(
res
=>
{
axios
.
post
(
ApiConfig
.
GetRobotConfig
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
this
.
robotConfig
=
res
.
data
.
data
;
this
.
robotConfig
=
res
.
data
.
data
;
console
.
log
(
"机器人配置"
,
this
.
robotConfig
)
}
}
})
})
},
},
...
@@ -1048,6 +1121,57 @@
...
@@ -1048,6 +1121,57 @@
this
.
updateRobotConfig
=
Object
.
assign
({},
this
.
robotConfig
);
this
.
updateRobotConfig
=
Object
.
assign
({},
this
.
robotConfig
);
this
.
dialogFormVisible2
=
true
;
this
.
dialogFormVisible2
=
true
;
},
},
// 查询运行配置
runningConfig
(){
var
params
=
{
account
:
this
.
robotInfo
.
account
,
coin
:
this
.
robotInfo
.
coin
,
base
:
this
.
robotInfo
.
base
,
control_type
:
"monitor_state"
,
// config_param:,
}
axios
.
post
(
ApiConfig
.
runRobotConfig
,
params
).
then
(
res
=>
{
if
(
res
.
status
===
200
)
{
this
.
runConfig
=
res
.
data
if
(
res
.
data
.
data
){
this
.
config_param
=
res
.
data
.
data
.
config_param
}
this
.
dialogVisible3
=
true
;
// this.robotList = res.data.data;
}
}).
catch
(
error
=>
{
this
.
$notify
({
title
:
'错误'
,
message
:
"服务器崩溃啦,请稍后再试"
,
type
:
'error'
,
duration
:
'2000'
,
});
})
},
//修改运行配置
editParamConfig
(){
var
params
=
{
account
:
this
.
robotInfo
.
account
,
coin
:
this
.
robotInfo
.
coin
,
base
:
this
.
robotInfo
.
base
,
control_type
:
"monitor_action"
,
config_param
:
this
.
config_param
,
}
axios
.
post
(
ApiConfig
.
runRobotConfig
,
params
).
then
(
res
=>
{
if
(
res
.
status
===
200
){
console
.
log
(
"修改配置"
,
res
);
this
.
dialogVisible3
=
false
}
}).
catch
(
error
=>
{
this
.
$notify
({
title
:
'错误'
,
message
:
"服务器崩溃啦,请稍后再试"
,
type
:
'error'
,
duration
:
'2000'
,
});
})
},
//弹框确认修改
//弹框确认修改
sure_recharge1
(){
sure_recharge1
(){
this
.
transferok
=
true
;
this
.
transferok
=
true
;
...
@@ -1216,6 +1340,74 @@
...
@@ -1216,6 +1340,74 @@
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
/* 运行配置弹窗 */
.thirdDialog
{
height
:
400px
;
.thirdDialogInput{
height
:
400px
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
224
,
224
,
224
,
1
);
}
}
/* 顶部标签 */
.classify-overview
{
margin-top
:
20px
;
height
:
100px
;
display
:
flex
;
justify-content
:
space-between
;
li
{
cursor
:
pointer
;
position
:
relative
;
float
:
left
;
width
:
28.8%
;
height
:
100px
;
margin-right
:
1.5%
;
text-align
:
center
;
box-sizing
:
border-box
;
border-radius
:
4px
;
padding-top
:
16px
;
&:last-child
{
margin-right
:
0
;
}
p
{
font-size
:
12px
;
&:first-child
{
font-size
:
24px
;
/* margin-bottom: 13px; */
}
}
}
li
.normal
{
background
:
rgba
(
241
,
250
,
244
,
1
);
border
:
1px
solid
rgba
(
166
,
216
,
186
,
1
);
color
:
rgba
(
76
,
171
,
115
,
1
);
}
li
.stop
{
background
:
rgba
(
239
,
243
,
245
,
1
);
border
:
1px
solid
rgba
(
199
,
217
,
225
,
1
);
color
:
rgba
(
121
,
130
,
134
,
1
);
}
li
.abnormal
{
background
:
rgba
(
248
,
243
,
243
,
1
);
border
:
1px
solid
rgba
(
236
,
184
,
184
,
1
);
color
:
rgba
(
217
,
120
,
120
,
1
);
}
li
.filter
{
height
:
120px
;
top
:
-10px
;
color
:
#fff
;
&.normal
{
background-color
:
rgba
(
76
,
171
,
115
,
1
);
}
&
.stop
{
background-color
:
rgba
(
121
,
130
,
134
,
1
);
}
&
.abnormal
{
background-color
:
rgba
(
217
,
120
,
120
,
1
);
}
}
}
.detail-box
{
.detail-box
{
overflow
:
hidden
;
overflow
:
hidden
;
}
}
...
@@ -1511,8 +1703,17 @@
...
@@ -1511,8 +1703,17 @@
</
style
>
</
style
>
<
style
>
<
style
>
/*select组件样式覆盖*/
/*select组件样式覆盖*/
.el-textarea__inner
{
height
:
400px
;
}
.trueButton
{
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
.detail-box
{
.detail-box
{
.record-box
.el-button,
.el-button.update-button{
.record-box
.el-button,
.el-button.update-button{
margin-left
:
5px
;
background
:
rgba
(
119
,
146
,
167
,
1
);
background
:
rgba
(
119
,
146
,
167
,
1
);
border
:
none
;
border
:
none
;
}
}
...
...
src/views/account.vue
View file @
ec500278
...
@@ -77,12 +77,14 @@
...
@@ -77,12 +77,14 @@
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
v-show=
"permission_read[2]"
@
click
.
native
.
prevent=
"clickRecharge(scope.row.coin)"
@
click
.
native
.
prevent=
"clickRecharge(scope.row.coin)"
type=
"primary"
type=
"primary"
size=
"small"
>
size=
"small"
>
充值
充值
</el-button>
</el-button>
<el-button
<el-button
v-show=
"permission_read[5]"
@
click
.
native
.
prevent=
"clickUpdate(scope.row.coin)"
@
click
.
native
.
prevent=
"clickUpdate(scope.row.coin)"
type=
"primary"
type=
"primary"
size=
"small"
>
size=
"small"
>
...
@@ -326,6 +328,8 @@
...
@@ -326,6 +328,8 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
permission_read
:[],
permission_control
:[],
username
:
localStorage
.
getItem
(
'username'
),
username
:
localStorage
.
getItem
(
'username'
),
robotBankList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotBankList'
)),
robotBankList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotBankList'
)),
robotAdminList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotAdminList'
)),
robotAdminList
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'robotAdminList'
)),
...
@@ -364,6 +368,9 @@
...
@@ -364,6 +368,9 @@
},
},
created
()
{
created
()
{
this
.
init
();
this
.
init
();
this
.
permission_read
=
parseInt
(
localStorage
.
getItem
(
"permission_read"
)).
toString
(
2
).
split
(
""
)
this
.
permission_control
=
parseInt
(
localStorage
.
getItem
(
"permission_control"
)).
toString
(
2
).
split
(
""
)
console
.
log
(
this
.
permission_control
)
},
},
mounted
()
{
mounted
()
{
// prevent click outside event with popupItem.
// prevent click outside event with popupItem.
...
...
src/views/coinRecharge.vue
View file @
ec500278
...
@@ -43,8 +43,8 @@
...
@@ -43,8 +43,8 @@
</div>
</div>
<div
class=
"count-box"
>
<div
class=
"count-box"
>
<div
class=
"fl"
>
<div
class=
"fl"
>
<el-button
type=
"primary"
@
click=
"exportExcel"
size=
"mini"
>
导出当前页
</el-button>
<el-button
type=
"primary"
@
click=
"exportExcel"
size=
"mini"
v-show=
"this.permission_control[5]"
>
导出当前页
</el-button>
<el-button
type=
"primary"
@
click=
"exportExcel('all')"
size=
"mini"
>
导出所有
</el-button>
<el-button
type=
"primary"
@
click=
"exportExcel('all')"
size=
"mini"
v-show=
"this.permission_control[5]"
>
导出所有
</el-button>
</div>
</div>
<!--隐藏的下载表格按钮-->
<!--隐藏的下载表格按钮-->
<a
id=
"download"
href=
""
target=
"blank"
hidden
download
></a>
<a
id=
"download"
href=
""
target=
"blank"
hidden
download
></a>
...
@@ -106,6 +106,8 @@
...
@@ -106,6 +106,8 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
permission_read
:[],
permission_control
:[],
coinRechargeList
:
[],
coinRechargeList
:
[],
listCount
:
0
,
listCount
:
0
,
Loading
:
false
,
Loading
:
false
,
...
@@ -131,6 +133,10 @@
...
@@ -131,6 +133,10 @@
ClickOutside
ClickOutside
},
},
created
()
{
created
()
{
this
.
permission_read
=
parseInt
(
localStorage
.
getItem
(
"permission_read"
)).
toString
(
2
).
split
(
""
)
this
.
permission_control
=
parseInt
(
localStorage
.
getItem
(
"permission_control"
)).
toString
(
2
).
split
(
""
)
console
.
log
(
"可视权限"
,
this
.
permission_read
)
console
.
log
(
"控制权限"
,
this
.
permission_control
)
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
checkedWeb
=
this
.
webs
[
0
];
this
.
checkedWeb
=
this
.
webs
[
0
];
for
(
let
item
of
JSON
.
parse
(
sessionStorage
.
getItem
(
'platInfo'
)))
{
for
(
let
item
of
JSON
.
parse
(
sessionStorage
.
getItem
(
'platInfo'
)))
{
...
...
src/views/currency.vue
View file @
ec500278
<
template
>
<
template
>
<div
class=
"overview"
>
<div
class=
"overview"
>
<div
class=
"overview-title"
>
<div
class=
"overview-title"
>
<span>
币种波动统计
</span>
<span>
所有机器人
</span>
</div>
</div>
<ul
class=
"classify-overview"
>
<ul
class=
"classify-overview"
>
<li
class=
"normal"
:class=
"
{ 'filter' : robotStatus === 'normal'}" @click="statusFilter('normal')">
<li
class=
"normal"
:class=
"
{ 'filter' : robotStatus === 'normal'}" @click="statusFilter('normal')">
...
@@ -12,19 +12,19 @@
...
@@ -12,19 +12,19 @@
<p>
{{
robotStatusList
.
status_stop
}}
</p>
<p>
{{
robotStatusList
.
status_stop
}}
</p>
<p>
停止运行(台)
</p>
<p>
停止运行(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
profit'}" @click="statusFilter('profit')" v-if="environment=='inside'
">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
coin_wave'}" @click="statusFilter('coin_wave')
">
<p>
{{
robotStatusList
.
profit
_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
coin_wave
_status_abnormal
}}
</p>
<p>
目标币今日波动异常(台)
</p>
<p>
目标币今日波动异常(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
coin'}" @click="statusFilter('coin
')">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
base_wave'}" @click="statusFilter('base_wave
')">
<p>
{{
robotStatusList
.
coin
_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
base_wave
_status_abnormal
}}
</p>
<p>
基础币今日波动异常(台)
</p>
<p>
基础币今日波动异常(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
base'}" @click="statusFilter('base
')">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === '
coin'}" @click="statusFilter('coin
')">
<p>
{{
robotStatusList
.
base
_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
coin
_status_abnormal
}}
</p>
<p>
目标币余额异常(台)
</p>
<p>
目标币余额异常(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'ba
lance'}" @click="statusFilter('balanc
e')">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'ba
se'}" @click="statusFilter('bas
e')">
<p>
{{
robotStatusList
.
base_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
base_status_abnormal
}}
</p>
<p>
基础币余额异常(台)
</p>
<p>
基础币余额异常(台)
</p>
</li>
</li>
...
@@ -32,34 +32,65 @@
...
@@ -32,34 +32,65 @@
<!-- 当日波动统计 -->
<!-- 当日波动统计 -->
<div
class=
"record-box"
>
<div
class=
"record-box"
>
<div
class=
"record-title"
>
<span
class=
"subtitle"
>
当日波动统计
</span>
</div>
<div
class=
"boxTitle"
>
<div
class=
"boxTitle"
>
<div
class=
"title-box clearfix"
>
<!-- 三种过滤方式 -->
<span
class=
"title"
>
当日波动统计
</span>
</div>
<!-- 通过机器人搜索框 -->
<!-- 通过机器人搜索框 -->
<div
class=
"robotInput"
>
<div
class=
"robotInput"
>
<el-input
v-model=
"robotAccount"
placeholder=
"通过机器人UID、账户地址搜索"
>
<el-input
v-model=
"robotAccount
One
"
placeholder=
"通过机器人UID、账户地址搜索"
>
<el-button
@
click=
"searchByAccount"
slot=
"append"
icon=
"el-icon-search"
></el-button>
<el-button
@
click=
"searchByAccount
One
"
slot=
"append"
icon=
"el-icon-search"
></el-button>
</el-input>
</el-input>
</div>
</div>
<!-- 交易所筛选 -->
<!-- 交易所筛选 -->
<div>
<div
ref=
"selectBar"
class=
"select-bar clearfix"
v-show=
"!robotStatus"
v-click-outside=
"clickFoldExchange"
>
<div
class=
"select-bar-content exchange"
:class=
"
{'unfold' : !foldExchange}">
<span
class=
"title"
>
交易所
</span>
<div
class=
"fr"
>
<span
class=
"ellipsis"
v-show=
"webs.length>1 && foldExchange"
>
...
</span>
<span
class=
"amount"
>
{{
checkedWebs
.
length
}}
</span>
<i
class=
"fold-button"
:class=
"
{'el-icon-caret-left' : foldExchange, 'el-icon-caret-bottom' : !foldExchange}"
v-show="webs.length>1"
@click="clickFoldExchange('web')">
</i>
</div>
<el-checkbox-button
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
全部
</el-checkbox-button>
<el-checkbox-group
v-model=
"checkedWebs"
@
change=
"handleCheckedChange"
>
<el-checkbox-button
v-for=
"web in webs"
:label=
"web"
:key=
"web"
>
{{
web
}}
</el-checkbox-button>
</el-checkbox-group>
</div>
</div>
<!-- 币种筛选 -->
<!-- 币种筛选 -->
<div>
<div
class=
"select-bar-content currency"
:class=
"
{'unfold' : !foldExchange0}">
<span
class=
"title"
>
币种
</span>
<div
class=
"fr"
>
<span
class=
"ellipsis"
v-show=
"currencies.length>1 && foldExchange0"
>
...
</span>
<span
class=
"amount"
>
{{
checkedCurrencies
.
length
}}
</span>
<i
class=
"fold-button"
:class=
"
{'el-icon-caret-left' : foldExchange0, 'el-icon-caret-bottom' : !foldExchange0}"
v-show="currencies.length>1"
@click="clickFoldExchange('currency')">
</i>
</div>
<el-checkbox-button
:indeterminate=
"isIndeterminate0"
v-model=
"checkAll0"
@
change=
"handleCheckAllChange0"
>
全部
</el-checkbox-button>
<el-checkbox-group
v-model=
"checkedCurrencies"
@
change=
"handleCheckedChange0"
>
<el-checkbox-button
v-for=
"currency in currencies"
:label=
"currency"
:key=
"currency"
>
{{
currency
}}
</el-checkbox-button>
</el-checkbox-group>
</div>
</div>
</div>
</div>
</div>
<!-- 隐藏的下载表格按钮 -->
<a
id=
"download"
href=
""
target=
"blank"
hidden
download
></a>
<!-- 阶段统计和导出以及日期框 -->
<!-- 阶段统计和导出以及日期框 -->
<div>
<div
class=
"threeButton"
>
<el-button
type=
"primary"
>
阶段统计
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible=true"
>
阶段统计
</el-button>
<el-button
type=
"primary"
>
导出当前
</el-button>
<el-button
type=
"primary"
@
click=
"exportCurrency()"
>
导出当前
</el-button>
<el-button
type=
"primary"
>
导出所有
</el-button>
<el-button
type=
"primary"
@
click=
"exportCurrency('all')"
>
导出所有
</el-button>
<el-date-picker
<el-date-picker
v-model=
"selectTime"
v-model=
"selectTime"
type=
"daterange"
type=
"daterange"
value-format=
"yyyy-MM-dd"
align=
"right"
align=
"right"
unlink-panels
unlink-panels
range-separator=
"至"
range-separator=
"至"
...
@@ -68,58 +99,134 @@
...
@@ -68,58 +99,134 @@
</el-date-picker>
</el-date-picker>
</div>
</div>
<el-table
<el-table
v-loading=
"Loading
"
:header-cell-style=
"
{background:'#EFF1F3',color:'#808080'}
"
:data="tableData"
:data="tableData"
stripe
stripe
style="width: 100%">
style="width: 100%">
<el-table-column
<el-table-column
width=
"
1
50"
width=
"
2
50"
label=
"机器人UID"
>
label=
"机器人UID"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
coin_
id
}}
</span>
<span>
{{
scope
.
row
.
u
id
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"目标币当日波动量(比例)"
label=
"目标币当日波动量(比例)"
>
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<i
class=
"iconfont"
:class=
" 'icon-'+scope.row.coin+'3'"
></i>
<span>
{{
scope
.
row
.
coin_wave
}}{{
scope
.
row
.
coin
}}
(
{{
scope
.
row
.
coin_wave_percent
.
slice
(
1
)
}}
)≈¥
{{
Number
(
scope
.
row
.
coin_wave
)
*
Number
(
scope
.
row
.
coin_wave_ticker
)
}}
</span>
<span>
{{
scope
.
row
.
coin
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"基础币当日波动量(比例)"
>
label=
"基础币当日波动量(比例)"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
active
}}
</span>
<span>
{{
scope
.
row
.
base_wave
}}{{
scope
.
row
.
base
}}
(
{{
scope
.
row
.
base_wave_percent
.
slice
(
1
)
}}
)≈¥
{{
Number
(
scope
.
row
.
base_wave
)
*
Number
(
scope
.
row
.
base_wave_ticker
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"当日手续费"
label=
"
目标币
当日手续费"
width=
"1
5
0"
>
width=
"1
8
0"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
records
||
0
}}
</span>
<span>
{{
scope
.
row
.
coin_fee
||
0
}}{{
scope
.
row
.
coin
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"当日手续费"
label=
"
基础币
当日手续费"
width=
"1
5
0"
>
width=
"1
8
0"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
min_amount
}}
</span>
<span>
{{
scope
.
row
.
base_fee
}}{{
scope
.
row
.
base
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"日期"
label=
"日期"
width=
"1
5
0"
>
width=
"1
8
0"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
recharge_amount
}}
</span>
<span>
{{
scope
.
row
.
date_time
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 分页查询 -->
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
currentPage
:page-sizes=
"[10, 20, 30]"
:page-size=
pageSize
layout=
"total, prev, pager, next, sizes"
:total=
"listCount"
>
</el-pagination>
</div>
</div>
<!-- <p v-if="robotList.length<1" class="no-data">暂无数据</p> -->
<p
v-if=
"robotList === null"
class=
"no-data"
>
暂无数据
</p>
<!-- 波动弹窗 -->
<el-dialog
title=
"阶段波动统计"
:visible
.
sync=
"dialogVisible"
width=
"880px"
:before-close=
"handleClose"
>
<div
class=
"dialogTitle"
>
<div
class=
"robotReacher"
>
<el-input
v-model=
"robotAccount"
placeholder=
"通过机器人UID、账户地址搜索"
>
<el-button
@
click=
"searchByAccount"
slot=
"append"
icon=
"el-icon-search"
></el-button>
</el-input>
</div>
<div
class=
"robotDate"
>
<el-date-picker
v-model=
"dilogSelectTime"
value-format=
"yyyy-MM-dd"
type=
"daterange"
align=
"right"
unlink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
<div>
<el-button
type=
"primary"
@
click=
"statisticsMessage"
>
统计
</el-button>
</div>
</div>
<div
class=
"symbolDiv"
v-show=
"haveSymbol.length>0"
>
<div
class=
"symbolTitle"
>
交易对
</div>
<el-radio-group
v-model=
"symbolCheckList"
size=
"small"
>
<el-radio-button
v-for=
"symbolDouble in haveSymbol"
:label=
"symbolDouble"
:key=
"symbolDouble"
>
{{symbolDouble}}
</el-radio-button>
</el-radio-group>
</div>
<div
class=
"statisMessage"
v-show=
"!haveStatistical"
>
请输入你想统计的机器人和时间
</div>
<div
class=
"statisMessageBigDiv"
v-show=
"haveStatistical"
>
<div
class=
"statisMessageDivOne"
>
<div
class=
"firstChild"
>
{{statisticalMessage.coin_wave}}({{statisticalMessage.coin_wave_percent}})
</div>
<div
class=
"secondChild"
>
≈¥{{statisticalMessage.coin_wave*statisticalMessage.coin_wave_ticker}}
</div>
<div
class=
"thirdChild"
>
目标币总波动({{statisticalMessage.coin}})
</div>
</div>
<div
class=
"statisMessageDivTwo"
>
<div
class=
"firstChild"
>
{{statisticalMessage.base_wave}}({{statisticalMessage.base_wave_percent}})
</div>
<div
class=
"secondChild"
>
≈¥{{statisticalMessage.base_wave*statisticalMessage.base_wave_ticker}}
</div>
<div
class=
"thirdChild"
>
基础币总波动({{statisticalMessage.base}})
</div>
</div>
</div>
<div
class=
"statisMessageBigDiv"
v-show=
"haveStatistical"
>
<div
class=
"statisMessageDivThree"
>
<div
class=
"firstChild"
>
{{statisticalMessage.coin_fee}}
</div>
<div
class=
"secondChild"
>
≈¥{{statisticalMessage.coin_fee*statisticalMessage.coin_fee_ticker}}
</div>
<div
class=
"thirdChild"
>
总手续费({{statisticalMessage.coin}})
</div>
</div>
<div
class=
"statisMessageDivFour"
>
<div
class=
"firstChild"
>
{{statisticalMessage.base_fee}}
</div>
<div
class=
"secondChild"
>
≈¥{{statisticalMessage.base_fee*statisticalMessage.base_fee_ticker}}
</div>
<div
class=
"thirdChild"
>
总手续费({{statisticalMessage.base}})
</div>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
class=
"dialogButton"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
确 定
</el-button>
</div>
</span>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
Bus
from
'../assets/js/bus'
import
Bus
from
'../assets/js/bus'
import
axios
from
'axios'
;
import
axios
from
'axios'
;
...
@@ -128,7 +235,18 @@
...
@@ -128,7 +235,18 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
selectTime
:
""
,
//筛选时间
robotAccountOne
:
""
,
haveStatistical
:
false
,
symbolCheckList
:
""
,
haveSymbol
:[],
tableData
:[],
statisticalMessage
:[],
//统计的条件
dialogVisible
:
false
,
//弹窗
pageSize
:
10
,
//分页,每页数量
currentPage
:
1
,
//当前页
listCount
:
20
,
selectTime
:[],
//筛选时间
dilogSelectTime
:
""
,
//弹窗中时间筛选
environment
:
sessionStorage
.
getItem
(
'environment'
),
environment
:
sessionStorage
.
getItem
(
'environment'
),
robotAccount
:
''
,
//通过机器人账户搜索
robotAccount
:
''
,
//通过机器人账户搜索
_robotAccount
:
''
,
//说明通过机器人账户搜索成功
_robotAccount
:
''
,
//说明通过机器人账户搜索成功
...
@@ -146,7 +264,6 @@
...
@@ -146,7 +264,6 @@
},
//筛选机器人参数
},
//筛选机器人参数
robotList
:
[],
//符合条件的机器人列表
robotList
:
[],
//符合条件的机器人列表
robotDetailInfo
:
''
,
robotDetailInfo
:
''
,
subtitle
:
'所有机器人'
,
//副标题
checkAll
:
false
,
//交易所筛选
checkAll
:
false
,
//交易所筛选
checkedWebs
:
[],
checkedWebs
:
[],
webs
:
[],
webs
:
[],
...
@@ -163,9 +280,7 @@
...
@@ -163,9 +280,7 @@
pairs
:
[],
pairs
:
[],
isIndeterminate1
:
true
,
isIndeterminate1
:
true
,
foldExchange1
:
true
,
foldExchange1
:
true
,
showWebFilter
:
false
,
//是否显示交易所过滤
showCurrencyFilter
:
false
,
//是否显示币种过滤
showPairFilter
:
false
,
//是否显示交易对过滤
};
};
},
},
props
:
[
'platInfo'
],
props
:
[
'platInfo'
],
...
@@ -179,9 +294,11 @@
...
@@ -179,9 +294,11 @@
ClickOutside
ClickOutside
},
},
created
()
{
created
()
{
console
.
log
(
"控制权限"
,
localStorage
.
getItem
(
"permission_control"
))
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
currencies
=
this
.
currencies
.
length
===
0
&&
sessionStorage
.
getItem
(
'currencies'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'currencies'
))
:
this
.
currencies
;
this
.
currencies
=
this
.
currencies
.
length
===
0
&&
sessionStorage
.
getItem
(
'currencies'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'currencies'
))
:
this
.
currencies
;
this
.
init
();
this
.
init
();
this
.
getWaveList
()
Bus
.
$on
(
'refresh'
,
()
=>
{
Bus
.
$on
(
'refresh'
,
()
=>
{
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
this
.
checkAll
=
false
;
this
.
checkAll
=
false
;
...
@@ -213,40 +330,6 @@
...
@@ -213,40 +330,6 @@
const
RoutePath
=
this
.
$route
.
path
;
const
RoutePath
=
this
.
$route
.
path
;
const
RouteParam
=
RoutePath
.
split
(
'/'
)[
2
];
const
RouteParam
=
RoutePath
.
split
(
'/'
)[
2
];
var
StatusParams
=
{
platform
:
''
,
coin
:
''
};
//预警状态查询入参
var
StatusParams
=
{
platform
:
''
,
coin
:
''
};
//预警状态查询入参
switch
(
RouteParam
)
{
case
'home'
:
this
.
checkedPairs
=
[];
this
.
showWebFilter
=
this
.
showCurrencyFilter
=
true
;
this
.
showPairFilter
=
false
;
this
.
RobotListParams
.
coin
=
[];
this
.
RobotListParams
.
platform
=
[];
break
;
case
'BTY'
:
case
'YCC'
:
this
.
checkedPairs
=
[];
this
.
checkedCurrencies
=
[];
this
.
showWebFilter
=
true
;
this
.
showCurrencyFilter
=
this
.
showPairFilter
=
false
;
StatusParams
.
coin
=
RouteParam
;
this
.
RobotListParams
.
coin
=
[
RouteParam
];
this
.
RobotListParams
.
platform
=
[];
break
;
default
:
this
.
checkedWebs
=
[];
this
.
checkedCurrencies
=
[];
this
.
showPairFilter
=
true
;
this
.
showWebFilter
=
this
.
showCurrencyFilter
=
false
;
var
index
=
+
RouteParam
;
this
.
pairs
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'platInfo'
))[
index
].
symbol
;
if
(
type
!==
'back'
)
{
this
.
checkedPairs
=
[];
}
this
.
platform
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'platInfo'
))[
index
].
platform
;
StatusParams
.
platform
=
this
.
platform
;
this
.
RobotListParams
.
platform
=
[
this
.
platform
];
this
.
RobotListParams
.
coin
=
[];
break
;
}
this
.
getRobotStatus
(
StatusParams
);
this
.
getRobotStatus
(
StatusParams
);
if
(
type
===
'back'
)
{
if
(
type
===
'back'
)
{
let
Coin
=
RouteParam
===
'BTY'
||
RouteParam
===
'YCC'
?
[
RouteParam
]
:
[];
let
Coin
=
RouteParam
===
'BTY'
||
RouteParam
===
'YCC'
?
[
RouteParam
]
:
[];
...
@@ -275,20 +358,198 @@
...
@@ -275,20 +358,198 @@
this
.
getRobotList
(
this
.
RobotListParams
);
this
.
getRobotList
(
this
.
RobotListParams
);
}
}
},
},
//机器人预警状态查询
// 筛选
clickFoldExchange
(
type
)
{
switch
(
type
)
{
case
'web'
:
this
.
foldExchange
=
!
this
.
foldExchange
;
break
;
case
'currency'
:
this
.
foldExchange0
=
!
this
.
foldExchange0
;
break
;
case
'pair'
:
this
.
foldExchange1
=
!
this
.
foldExchange1
;
break
;
default
:
this
.
foldExchange
=
this
.
foldExchange0
=
this
.
foldExchange1
=
true
;
break
}
},
//波动范围统计
statisticsMessage
(){
let
params
=
{
account
:
this
.
robotAccount
,
symbol
:
this
.
symbolCheckList
,
min_date_time
:
this
.
dilogSelectTime
[
0
],
max_date_time
:
this
.
dilogSelectTime
[
1
]
}
axios
.
post
(
ApiConfig
.
CountWaveRange
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
statisticalMessage
=
res
.
data
.
data
this
.
haveStatistical
=
true
}
}).
catch
(
error
=>
{
this
.
$notify
({
title
:
'错误'
,
message
:
"服务器崩溃啦,请稍后再试"
,
type
:
'error'
,
duration
:
'2000'
,
});
})
},
//获取波动列表
getWaveList
(){
let
params
=
{
page
:
this
.
currentPage
.
toString
(),
size
:
this
.
pageSize
.
toString
(),
platform
:
this
.
checkedWebs
,
coin
:
this
.
checkedCurrencies
,
account
:
this
.
robotAccountOne
,
min_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
0
].
toString
(),
max_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
1
].
toString
()
}
axios
.
post
(
ApiConfig
.
countWave
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
listCount
=
res
.
data
.
data
.
count
this
.
tableData
=
res
.
data
.
data
.
list
console
.
log
(
"列表数据"
,
this
.
tableData
)
}
})
},
//'='拼接key和value
toQueryPair
(
key
,
value
)
{
if
(
typeof
value
==
'undefined'
)
{
console
.
log
(
key
)
return
;
}
return
key
+
'='
+
(
value
===
null
?
''
:
String
(
value
));
},
//'&'拼接,数组将value转换成','连接的string
toQueryString
(
obj
)
{
var
ret
=
[];
for
(
var
key
in
obj
)
{
var
values
=
obj
[
key
];
// key = encodeURIComponent(key);
if
(
values
&&
values
.
constructor
==
Array
)
{
//数组
var
queryValues
=
values
.
join
(
','
);
ret
.
push
(
this
.
toQueryPair
(
key
,
queryValues
));
}
else
{
//字符串
ret
.
push
(
this
.
toQueryPair
(
key
,
values
));
}
}
return
ret
.
join
(
'&'
);
},
// 导出当前波动列表
exportCurrency
(
type
){
let
params
=
{
platform
:
""
,
coin
:
""
,
min_date_time
:
""
,
max_date_time
:
""
}
if
(
type
!==
'all'
)
{
Object
.
assign
(
params
,
{
page
:
this
.
currentPage
,
size
:
this
.
pageSize
,
})
}
let
downloadHref
=
document
.
getElementById
(
'download'
);
const
href
=
ApiConfig
.
countWaveExcel
+
'?'
+
this
.
toQueryString
(
params
);
downloadHref
.
setAttribute
(
'href'
,
href
);
downloadHref
.
click
();
},
//交易所过滤
handleCheckAllChange
(
val
)
{
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
this
.
checkedWebs
=
val
?
this
.
webs
:
[];
this
.
isIndeterminate
=
false
;
this
.
currencies
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'currencies'
));
this
.
checkedCurrencies
=
[];
this
.
checkAll0
=
false
;
let
ListParams
=
this
.
RobotListParams
;
ListParams
.
platform
=
[];
const
RoutePath
=
this
.
$route
.
params
.
name
;
ListParams
.
coin
=
RoutePath
===
'BTY'
||
RoutePath
===
'YCC'
?
[
RoutePath
]
:
[];
this
.
getRobotList
(
ListParams
);
},
handleCheckedChange
(
value
)
{
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
let
checkedCount
=
value
.
length
;
this
.
checkAll
=
checkedCount
===
this
.
webs
.
length
;
this
.
isIndeterminate
=
checkedCount
>
0
&&
checkedCount
<
this
.
webs
.
length
;
//动态筛选币种
if
(
value
.
length
===
0
)
{
this
.
currencies
=
this
.
allCurrencies
;
}
else
{
this
.
currencies
=
[];
for
(
let
item
of
value
)
{
for
(
let
platItem
of
this
.
platInfo
)
{
if
(
platItem
.
platform
===
item
)
{
this
.
currencies
=
[...
new
Set
(
this
.
currencies
.
concat
(
platItem
.
coin
))];
}
}
}
}
this
.
checkedCurrencies
=
this
.
currencies
;
this
.
checkAll0
=
true
;
//筛选符合条件的机器人
let
ListParams
=
this
.
RobotListParams
;
ListParams
.
platform
=
value
;
const
RoutePath
=
this
.
$route
.
params
.
name
;
ListParams
.
coin
=
RoutePath
===
'BTY'
||
RoutePath
===
'YCC'
?
[
RoutePath
]
:
[];
this
.
getRobotList
(
ListParams
);
},
//币种过滤
handleCheckAllChange0
(
val
)
{
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
this
.
checkedCurrencies
=
val
?
this
.
currencies
:
[];
this
.
isIndeterminate0
=
false
;
let
ListParams
=
this
.
RobotListParams
;
ListParams
.
platform
=
this
.
checkedWebs
;
ListParams
.
coin
=
[];
this
.
getRobotList
(
ListParams
);
},
handleCheckedChange0
(
value
)
{
this
.
robotAccount
=
this
.
_robotAccount
=
''
;
let
checkedCount
=
value
.
length
;
this
.
checkAll0
=
checkedCount
===
this
.
currencies
.
length
;
this
.
isIndeterminate0
=
checkedCount
>
0
&&
checkedCount
<
this
.
currencies
.
length
;
let
ListParams
=
this
.
RobotListParams
;
ListParams
.
platform
=
this
.
checkedWebs
;
ListParams
.
coin
=
value
;
this
.
getRobotList
(
ListParams
);
},
//弹窗前确认
handleClose
(
done
)
{
this
.
$confirm
(
'确认关闭?'
)
.
then
(
_
=>
{
done
();
})
.
catch
(
_
=>
{});
},
//分页
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
currentPage
=
1
;
// this.getRechargeList();
},
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
;
// this.getRechargeList(val+'');
},
// 机器人预警状态查询
getRobotStatus
(
params
)
{
getRobotStatus
(
params
)
{
axios
.
post
(
ApiConfig
.
GetRobotStatus
,
params
).
then
(
res
=>
{
axios
.
post
(
ApiConfig
.
GetRobotStatus
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
// console.log(res.data)
this
.
robotStatusList
=
res
.
data
.
data
;
this
.
robotStatusList
=
res
.
data
.
data
;
}
}
})
})
},
},
//获取符合筛选条件的机器人列表
//获取符合筛选条件的机器人列表
getRobotList
(
params
)
{
getRobotList
(
params
)
{
axios
.
post
(
ApiConfig
.
GetMatchRobots
,
params
).
then
(
res
=>
{
axios
.
post
(
ApiConfig
.
GetMatchRobots
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
// console.log(res.data.data);
this
.
robotList
=
res
.
data
.
data
;
this
.
robotList
=
res
.
data
.
data
;
}
}
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
...
@@ -306,62 +567,78 @@
...
@@ -306,62 +567,78 @@
this
.
robotStatus
=
status
;
this
.
robotStatus
=
status
;
this
.
subtitle
=
status
===
'normal'
?
'正在运行机器人'
:
this
.
subtitle
=
status
===
'normal'
?
'正在运行机器人'
:
(
status
===
'stop'
?
'停止运行机器人'
:
(
status
===
'stop'
?
'停止运行机器人'
:
(
status
===
'profit'
?
'盈利异常机器人'
:
(
status
===
'coin_wave'
?
'目标币今日波动异常机器人'
:
(
status
===
'coin'
?
'目标币异常机器人'
:
(
status
===
'base_wave'
?
'基础币今日波动异常机器人'
:
(
status
===
'base'
?
'基础币异常机器人'
:
'所有机器人'
))));
(
status
===
'coin'
?
'目标币余额异常机器人'
:
//筛选机器人参数
(
status
===
'base'
?
'基础币余额异常机器人'
:
'所有机器人'
)))));
const
path
=
this
.
$route
.
params
.
name
;
//筛选b波动参数
let
Coin
=
path
===
'BTY'
||
path
===
'YCC'
?
[
path
]
:
[];
var
params
=
{}
let
Platform
=
(
path
!==
'home'
&&
path
!==
'BTY'
&&
path
!==
'YCC'
)
?
[
this
.
platform
]
:
[];
if
(
status
!=
"normal"
&&
status
!=
"stop"
){
var
ListParams
=
{
params
=
{
class
:
"robot"
,
//账户级别
page
:
this
.
currentPage
.
toString
(),
coin
:
Coin
,
//目标币种,用于首页里的筛选和币种监控 可选参数
size
:
this
.
pageSize
.
toString
(),
symbol
:
[],
//币种对,用于网站监控里的筛选 可选参数
platform
:
this
.
checkedWebs
,
status
:
""
,
//机器人运行状态 可选参数
coin
:
this
.
checkedCurrencies
,
abnormal
:
""
,
//有profit,coin,base这三种异常类别 可选参数
account
:
this
.
robotAccountOne
,
platform
:
Platform
,
//交易所种类 可选参数
min_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
0
].
toString
(),
};
max_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
1
].
toString
(),
if
(
status
===
'normal'
||
status
===
'stop'
)
{
abnormal
:
status
ListParams
.
status
=
status
;
}
else
{
ListParams
.
abnormal
=
status
;
}
}
this
.
getRobotList
(
ListParams
);
}
else
{
params
=
{
page
:
this
.
currentPage
.
toString
(),
size
:
this
.
pageSize
.
toString
(),
platform
:
this
.
checkedWebs
,
coin
:
this
.
checkedCurrencies
,
account
:
this
.
robotAccountOne
,
min_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
0
].
toString
(),
max_date_time
:
this
.
selectTime
==
''
?
''
:
this
.
selectTime
[
1
].
toString
(),
status
:
status
}
}
axios
.
post
(
ApiConfig
.
countWave
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
listCount
=
res
.
data
.
data
.
count
this
.
tableData
=
res
.
data
.
data
.
list
console
.
log
(
"列表数据"
,
this
.
tableData
)
}
})
},
},
//波动统计首页搜索
//通过机器人账户搜索
searchByAccountOne
(){
this
.
getWaveList
()
},
//波动统计弹窗通过机器人账户搜索
searchByAccount
()
{
searchByAccount
()
{
if
(
!
this
.
robotAccount
)
{
let
params
=
{
class
:
"robot"
,
account
:
this
.
robotAccount
,
}
axios
.
post
(
ApiConfig
.
GetMatchRobots
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
let
arr
=
res
.
data
.
data
.
map
(
item
=>
{
return
item
.
base
+
"/"
+
item
.
coin
})
this
.
haveSymbol
=
arr
}
}).
catch
(
error
=>
{
this
.
$notify
({
this
.
$notify
({
title
:
'错误'
,
title
:
'错误'
,
message
:
"
请先输入账户地址
后再试"
,
message
:
"
服务器崩溃啦,请稍
后再试"
,
type
:
'error'
,
type
:
'error'
,
duration
:
'2000'
,
duration
:
'2000'
,
});
});
return
;
})
}
this
.
checkAll
=
false
;
this
.
isIndeterminate
=
true
;
this
.
foldExchange
=
true
;
this
.
checkAll0
=
false
;
this
.
isIndeterminate0
=
true
;
this
.
foldExchange0
=
true
;
this
.
checkAll1
=
false
;
this
.
checkedPairs
=
[];
this
.
isIndeterminate1
=
true
;
this
.
foldExchange1
=
true
;
this
.
checkedWebs
=
[];
this
.
checkedCurrencies
=
[];
this
.
checkedPairs
=
[];
let
Params
=
{
class
:
"robot"
,
//账户级别 有robot bank admin三个返回数据也不同
account
:
this
.
robotAccount
,
}
this
.
_robotAccount
=
this
.
robotAccount
;
this
.
getRobotList
(
Params
);
},
},
},
},
watch
:{
watch
:{
checkedWebs
(){
this
.
getWaveList
()
},
checkedCurrencies
(){
this
.
getWaveList
()
},
platInfo
(
val
){
platInfo
(
val
){
this
.
webs
=
[];
this
.
webs
=
[];
//获取所有的交易所和币种
//获取所有的交易所和币种
...
@@ -371,23 +648,249 @@
...
@@ -371,23 +648,249 @@
sessionStorage
.
setItem
(
'webs'
,
JSON
.
stringify
(
this
.
webs
));
sessionStorage
.
setItem
(
'webs'
,
JSON
.
stringify
(
this
.
webs
));
sessionStorage
.
setItem
(
'currencies'
,
JSON
.
stringify
(
this
.
currencies
));
sessionStorage
.
setItem
(
'currencies'
,
JSON
.
stringify
(
this
.
currencies
));
}
}
},
currentPage
(
val
){
this
.
getWaveList
()
},
selectTime
(){
this
.
getWaveList
()
}
}
}
}
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.statisMessageBigDiv
{
margin
:
20px
0
0
0
;
width
:
95%
;
display
:
flex
;
}
.statisMessageDivOne
{
width
:
50%
;
height
:
120px
;
margin-right
:
10px
;
background
:
rgba
(
241
,
250
,
244
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
166
,
216
,
186
,
1
);
.firstChild{
margin-top
:
22px
;
text-align
:
center
;
height
:
33px
;
font-size
:
24px
;
color
:
rgba
(
76
,
171
,
115
,
1
);
line-height
:
33px
;
}
.secondChild
{
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
76
,
171
,
115
,
1
);
line-height
:
17px
;
}
.thirdChild
{
margin-top
:
6px
;
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
76
,
171
,
115
,
1
);
line-height
:
17px
;
}
}
.statisMessageDivTwo
{
width
:
50%
;
height
:
120px
;
background
:
rgba
(
248
,
243
,
243
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
236
,
184
,
184
,
1
);
.firstChild{
margin-top
:
22px
;
text-align
:
center
;
height
:
33px
;
font-size
:
24px
;
color
:
rgba
(
217
,
120
,
120
,
1
);
line-height
:
33px
;
}
.secondChild
{
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
217
,
120
,
120
,
1
);
line-height
:
17px
;
}
.thirdChild
{
margin-top
:
6px
;
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
217
,
120
,
120
,
1
);
line-height
:
17px
;
}
}
.statisMessageDivThree
{
width
:
50%
;
height
:
120px
;
margin-right
:
10px
;
background
:
rgba
(
239
,
243
,
245
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
199
,
217
,
225
,
1
);
.firstChild{
margin-top
:
22px
;
text-align
:
center
;
height
:
33px
;
font-size
:
24px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
33px
;
}
.secondChild
{
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
17px
;
}
.thirdChild
{
margin-top
:
6px
;
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
17px
;
}
}
.statisMessageDivFour
{
width
:
50%
;
height
:
120px
;
background
:
rgba
(
239
,
243
,
245
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
199
,
217
,
225
,
1
);
.firstChild{
margin-top
:
22px
;
text-align
:
center
;
height
:
33px
;
font-size
:
24px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
33px
;
}
.secondChild
{
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
17px
;
}
.thirdChild
{
margin-top
:
6px
;
text-align
:
center
;
height
:
17px
;
font-size
:
12px
;
color
:
rgba
(
121
,
130
,
134
,
1
);
line-height
:
17px
;
}
}
.symbolTitle
{
color
:
#7792A7
;
height
:
36px
;
line-height
:
36px
;
margin
:
0
10px
0
10px
;
}
.symbolDiv
{
display
:
flex
;
width
:
95%
;
height
:
40px
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
224
,
224
,
224
,
1
);
margin-top
:
10px
;
}
.dialogTitle
{
align-items
:
center
;
display
:
flex
;
.robotReacher{
width
:
360px
;
margin-right
:
10px
;
}
.robotDate
{
width
:
340px
;
margin-right
:
20px
;
}
}
.record-title
{
float
:
left
;
padding-top
:
20px
;
}
.threeButton
{
margin-bottom
:
10px
;
float
:
right
;
}
.robotInput
{
margin-left
:
20px
;
width
:
300px
;
height
:
40px
;
}
.subtitle
{
font-size
:
18px
;
color
:
rgba
(
51
,
51
,
51
,
1
);
}
.select-bar
{
display
:
flex
;
align-items
:
center
;
float
:
right
;
height
:
60px
;
.select-bar-content
{
float
:
left
;
width
:
260px
;
margin-left
:
10px
;
padding
:
5px
10px
0
65px
;
background-color
:
#fff
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
224
,
224
,
224
,
1
);
z-index
:
100
;
height
:
38px
;
overflow
:
hidden
;
&.pair
{
width
:
410px
;
}
.amount
{
line-height
:
26px
;
}
.ellipsis
{
position
:
relative
;
top
:
-3px
;
left
:
-13px
;
}
&
.unfold
{
height
:
auto
;
}
.title
{
display
:
inline-block
;
width
:
65px
;
text-align
:
center
;
position
:
relative
;
left
:
-65px
;
}
.fold-button
{
cursor
:
pointer
;
line-height
:
26px
;
color
:
rgba
(
192
,
212
,
218
,
1
);
}
}
}
.record-box
{
.record-box
{
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4px
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
119
,
146
,
167
,
1
);
border
:
1px
solid
rgba
(
119
,
146
,
167
,
1
);
padding
:
20px
;
padding
:
10px
20px
20px
20px
;
margin
:
20px
0
20px
0
;
margin
:
20px
20px
20px
0
;
}
}
.title-box
{
.title-box
{
position
:
relative
;
position
:
relative
;
z-index
:
10
;
z-index
:
10
;
margin
:
25px
0
20px
0
;
margin
:
0
0
0
0
;
/*margin-bottom: 20px;*/
/*margin-bottom: 20px;*/
&>.title
{
&>.title
{
display
:
inline-block
;
display
:
inline-block
;
...
@@ -399,7 +902,8 @@
...
@@ -399,7 +902,8 @@
}
}
.title
{
.title
{
display
:
inline-block
;
display
:
inline-block
;
width
:
125px
;
width
:
110px
;
height
:
25px
;
text-align
:
center
;
text-align
:
center
;
position
:
relative
;
position
:
relative
;
...
@@ -412,6 +916,7 @@
...
@@ -412,6 +916,7 @@
font-size
:
18px
;
font-size
:
18px
;
color
:
rgba
(
51
,
51
,
51
,
1
);
color
:
rgba
(
51
,
51
,
51
,
1
);
}
}
/* 顶部标签 */
ul
.classify-overview
{
ul
.classify-overview
{
height
:
100px
;
height
:
100px
;
display
:
flex
;
display
:
flex
;
...
@@ -482,7 +987,7 @@
...
@@ -482,7 +987,7 @@
text-align
:
center
;
text-align
:
center
;
margin
:
12px
0
20px
0
;
margin
:
12px
0
20px
0
;
}
}
.chart-box
{
.chart-box
{
margin
:
auto
;
margin
:
auto
;
width
:
154px
;
width
:
154px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
...
@@ -562,16 +1067,128 @@
...
@@ -562,16 +1067,128 @@
margin
:
0px
0
20px
0
;
margin
:
0px
0
20px
0
;
}
}
.boxTitle
{
.boxTitle
{
float
:
right
;
display
:
flex
;
display
:
flex
;
/* justify-content: center; */
align-items
:
center
;
align-items
:
center
;
}
}
.robotInput
{
/* 弹窗样式 */
margin-left
:
20px
;
.dialogButton
{
display
:
flex
;
}
justify-content
:
center
;
}
.statisMessage
{
font-size
:
14px
;
color
:
#808080
;
margin
:
o
auto
;
height
:
300px
;
line-height
:
300px
;
text-align
:
center
;
}
</
style
>
</
style
>
<
style
>
<
style
>
.el-radio-button__inner
{
margin
:
2px
0
0
5px
;
width
:
86px
;
text-align
:
center
;
background-color
:
#C3D3DF
;
border-color
:
#C3D3DF
;
box-shadow
:
none
;
color
:
#fff
;
border-radius
:
3px
;
font-size
:
12px
;
}
.el-radio-button
{
margin
:
0
2px
10px
0
;
border-radius
:
3px
;
}
.el-radio-button.is-checked
.el-radio-button__inner
{
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
.el-radio-button.is-focus
.el-radio-button__inner
{
border-color
:
#dcdfe6
;
}
.el-radio-button__orig-radio
:checked
+
.el-radio-button__inner
{
color
:
#fff
;
background-color
:
#7792A7
;
border-color
:
#7792A7
;
-webkit-box-shadow
:
-1px
0
0
0
#7792A7
;
box-shadow
:
-1px
0
0
0
#7792A7
;
}
/*select组件样式覆盖*/
/*select组件样式覆盖*/
.overview
{
.select-bar-content
{
/*padding: 2px 0 0 65px;*/
.
el-checkbox-button
:
last-child
.
el-checkbox-button__inner
,
.
el-checkbox-button
:
first-child
.
el-checkbox-button__inner
{
border-radius
:
3px
;
}
&
.pair
{
.el-checkbox-button__inner{
width
:
85px
;
}
.el-checkbox-group
.el-checkbox-button
:first-child
{
margin-left
:
90px
;
}
}
.el-checkbox-button__inner
{
padding
:
5px
0
;
width
:
58px
;
text-align
:
center
;
background-color
:
#C3D3DF
;
border-color
:
#C3D3DF
;
box-shadow
:
none
;
color
:
#fff
;
border-radius
:
3px
;
font-size
:
12px
;
}
.el-checkbox-button
{
margin
:
0
10px
10px
0
;
border-radius
:
3px
;
}
.el-checkbox-button.is-checked
.el-checkbox-button__inner
{
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
.el-checkbox-button.is-focus
.el-checkbox-button__inner
{
border-color
:
#dcdfe6
;
}
&>
.el-checkbox-button
{
margin-left
:
-69px
;
}
.el-checkbox-group
{
margin-top
:
-34px
;
.
el-checkbox-button
:
first-child
{
margin-left
:
70px
;
}
}
}
.el-button--primary
{
color
:
#fff
;
background-color
:
#7792A7
;
border-color
:
#7792A7
;
}
/* 覆盖弹窗title文字样式 */
.el-dialog__title
{
display
:
inline-block
;
width
:
100%
;
text-align
:
center
;
}
/* 弹窗头部样式 */
.el-dialog__header
{
height
:
100px
;
padding
:
30px
20px
10px
;
}
.el-button
{
margin
:
0
10px
0
0
;
}
.el-date-editor
.el-range-separator
{
padding
:
0
;
}
.el-input-group__append
{
padding
:
0
;
}
}
</
style
>
</
style
>
src/views/overview.vue
View file @
ec500278
...
@@ -12,17 +12,21 @@
...
@@ -12,17 +12,21 @@
<p>
{{
robotStatusList
.
status_stop
}}
</p>
<p>
{{
robotStatusList
.
status_stop
}}
</p>
<p>
停止运行(台)
</p>
<p>
停止运行(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'profit'}" @click="statusFilter('profit')" v-if="environment=='inside'">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'coin_wave'}" @click="statusFilter('coin_wave')">
<p>
{{
robotStatusList
.
profit_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
coin_wave_status_abnormal
}}
</p>
<p>
盈利异常(台)
</p>
<p>
目标币今日波动异常(台)
</p>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'base_wave'}" @click="statusFilter('base_wave')" v-if="environment=='inside'">
<p>
{{
robotStatusList
.
base_wave_status_abnormal
}}
</p>
<p>
基础币今日波动异常(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'coin'}" @click="statusFilter('coin')">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'coin'}" @click="statusFilter('coin')">
<p>
{{
robotStatusList
.
coin_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
coin_status_abnormal
}}
</p>
<p>
目标币
数量
异常(台)
</p>
<p>
目标币
余额
异常(台)
</p>
</li>
</li>
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'base'}" @click="statusFilter('base')">
<li
class=
"abnormal"
:class=
"
{ 'filter' : robotStatus === 'base'}" @click="statusFilter('base')">
<p>
{{
robotStatusList
.
base_status_abnormal
}}
</p>
<p>
{{
robotStatusList
.
base_status_abnormal
}}
</p>
<p>
基础币
数量
异常(台)
</p>
<p>
基础币
余额
异常(台)
</p>
</li>
</li>
</ul>
</ul>
<div
class=
"filter-box clearfix"
>
<div
class=
"filter-box clearfix"
>
...
@@ -88,7 +92,7 @@
...
@@ -88,7 +92,7 @@
<span>
查看详情
</span>
<span>
查看详情
</span>
<i
class=
"el-icon-caret-right"
></i>
<i
class=
"el-icon-caret-right"
></i>
</div>
</div>
<div
class=
"switch"
>
<div
class=
"switch"
v-show=
"permission_read[0]"
>
<span
v-show=
"item.status=='normal'"
>
关闭
</span>
<span
v-show=
"item.status=='normal'"
>
关闭
</span>
<span
v-show=
"!item.status=='normal'"
>
开启
</span>
<span
v-show=
"!item.status=='normal'"
>
开启
</span>
<el-switch
<el-switch
...
@@ -101,32 +105,58 @@
...
@@ -101,32 +105,58 @@
</div>
</div>
</div>
</div>
<p
class=
"robot-name"
>
{{
item
.
tag
}}
</p>
<p
class=
"robot-name"
>
{{
item
.
tag
}}
</p>
<div
class=
"chart-box"
>
<p
v-show=
"item.status==='normal'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">正在运行
</p>
<p
v-if=
"environment=='inside'"
class=
"title"
>
今日盈亏
</p>
<p
v-show=
"item.status==='stop'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">停止运行
</p>
<p
v-if=
"environment=='inside'"
class=
"data"
:class=
"item.today_profit && item.today_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
item
.
today_profit
}}
</p>
<!--
<p
class=
"robot-nameTwo"
>
{{
item
.
status
}}
</p>
-->
<div>
<div
class=
"twoChart-box"
>
<p
v-show=
"item.status==='normal'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">正在运行
</p>
<div
class=
"chart-box"
>
<p
v-show=
"item.status==='stop'"
class=
"type"
:class=
"
{'inside':environment=='inside','outside':environment=='outside'}">停止运行
</p>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"title"
>
{{
item
.
coin
}}
波动
</p>
<p
v-if=
"environment=='inside'"
>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"data"
:class=
"item.today_profit && item.today_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
item
.
coin_wave_percent
}}
</p>
<span
class=
"result"
>
总盈亏
</span>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"dataTwo"
>
{{
item
.
coin_wave
}}
</p>
<span
class=
"data"
:class=
"item.all_profit && item.all_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
item
.
all_profit
}}
</span>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"title"
>
≈¥
{{
item
.
coin_wave
*
item
.
coin_ticker
}}
</p>
</p>
</div>
<div
class=
"chart-box"
>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"title"
>
{{
item
.
base
}}
波动
</p>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"data"
:class=
"item.today_profit && item.today_profit.indexOf('-')!== -1 ? 'lose' : 'gain'"
>
{{
item
.
base_wave_percent
}}
</p>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"dataTwo"
>
{{
item
.
base_wave
}}
</p>
<p
v-show=
"permission_read[6]"
v-if=
"environment=='inside'"
class=
"title"
>
≈¥
{{
item
.
base_wave
*
item
.
base_ticker
}}
</p>
</div>
</div>
<div
class=
"coinDiv"
>
<div
class=
"coinOne"
>
<span>
{{
item
.
coin
}}
</span>
<div
class=
"sum"
>
<span>
{{
item
.
coin_wave
}}
</span>
<!--
<span>
{{
item
.
coin
}}
</span>
-->
</div>
</div>
</div>
</div>
<div
class=
"coin"
>
<div
class=
"coin"
>
<span>
{{
item
.
coin
}}
余额
</span>
<span>
≈¥
{{
item
.
coin_fee
}}
</span>
<div
class=
"sum"
>
<div
class=
"sum"
>
<span>
{{
item
.
coin_amount
}}
</span>
<span>
≈¥
{{
item
.
coin_fee
}}
</span>
<
span>
{{
item
.
coin
}}
</span
>
<
!--
<span>
{{
item
.
coin
}}
</span>
--
>
</div>
</div>
</div>
</div>
<div
class=
"base"
>
</div>
<span>
{{
item
.
base
}}
余额
</span>
<div
class=
"coinDiv"
>
<div
class=
"coinOne"
>
<span>
{{
item
.
base
}}
</span>
<div
class=
"sum"
>
<div
class=
"sum"
>
<span>
{{
item
.
base_amount
}}
</span>
<span>
{{
item
.
base_wave
}}
</span>
<span>
{{
item
.
base
}}
</span>
</div>
</div>
<div
class=
"base"
>
<span>
≈¥
{{
item
.
base_fee
}}
</span>
<div
class=
"sum"
>
<span>
≈¥
{{
item
.
base_fee
}}
</span>
</div>
</div>
</div>
</div>
</div>
</li>
</li>
<li></li>
<li></li>
<li></li>
<li></li>
...
@@ -144,6 +174,8 @@
...
@@ -144,6 +174,8 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
permission_read
:[],
permission_control
:[],
environment
:
sessionStorage
.
getItem
(
'environment'
),
environment
:
sessionStorage
.
getItem
(
'environment'
),
robotAccount
:
''
,
//通过机器人账户搜索
robotAccount
:
''
,
//通过机器人账户搜索
_robotAccount
:
''
,
//说明通过机器人账户搜索成功
_robotAccount
:
''
,
//说明通过机器人账户搜索成功
...
@@ -194,6 +226,11 @@
...
@@ -194,6 +226,11 @@
ClickOutside
ClickOutside
},
},
created
()
{
created
()
{
this
.
permission_read
=
parseInt
(
localStorage
.
getItem
(
"permission_read"
)).
toString
(
2
).
split
(
""
)
this
.
permission_control
=
parseInt
(
localStorage
.
getItem
(
"permission_control"
)).
toString
(
2
).
split
(
""
)
console
.
log
(
"可视权限"
,
this
.
permission_read
)
console
.
log
(
"控制权限"
,
this
.
permission_control
)
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
webs
=
this
.
webs
.
length
===
0
&&
sessionStorage
.
getItem
(
'webs'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'webs'
))
:
this
.
webs
;
this
.
currencies
=
this
.
currencies
.
length
===
0
&&
sessionStorage
.
getItem
(
'currencies'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'currencies'
))
:
this
.
currencies
;
this
.
currencies
=
this
.
currencies
.
length
===
0
&&
sessionStorage
.
getItem
(
'currencies'
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
'currencies'
))
:
this
.
currencies
;
this
.
init
();
this
.
init
();
...
@@ -294,7 +331,7 @@
...
@@ -294,7 +331,7 @@
getRobotStatus
(
params
)
{
getRobotStatus
(
params
)
{
axios
.
post
(
ApiConfig
.
GetRobotStatus
,
params
).
then
(
res
=>
{
axios
.
post
(
ApiConfig
.
GetRobotStatus
,
params
).
then
(
res
=>
{
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
// console.log(res.data)
// console.log(
"数据",
res.data)
this
.
robotStatusList
=
res
.
data
.
data
;
this
.
robotStatusList
=
res
.
data
.
data
;
}
}
})
})
...
@@ -305,6 +342,7 @@
...
@@ -305,6 +342,7 @@
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
// console.log(res.data.data);
// console.log(res.data.data);
this
.
robotList
=
res
.
data
.
data
;
this
.
robotList
=
res
.
data
.
data
;
console
.
log
(
"机器人数据"
,
res
.
data
.
data
)
}
}
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
this
.
$notify
({
this
.
$notify
({
...
@@ -438,9 +476,10 @@
...
@@ -438,9 +476,10 @@
this
.
robotStatus
=
status
;
this
.
robotStatus
=
status
;
this
.
subtitle
=
status
===
'normal'
?
'正在运行机器人'
:
this
.
subtitle
=
status
===
'normal'
?
'正在运行机器人'
:
(
status
===
'stop'
?
'停止运行机器人'
:
(
status
===
'stop'
?
'停止运行机器人'
:
(
status
===
'profit'
?
'盈利异常机器人'
:
(
status
===
'coin_wave'
?
'目标币今日波动异常机器人'
:
(
status
===
'coin'
?
'目标币异常机器人'
:
(
status
===
'base_wave'
?
'基础币今日波动异常机器人'
:
(
status
===
'base'
?
'基础币异常机器人'
:
'所有机器人'
))));
(
status
===
'coin'
?
'目标币余额异常机器人'
:
(
status
===
'base'
?
'基础币余额异常机器人'
:
'所有机器人'
)))));
//筛选机器人参数
//筛选机器人参数
const
path
=
this
.
$route
.
params
.
name
;
const
path
=
this
.
$route
.
params
.
name
;
let
Coin
=
path
===
'BTY'
||
path
===
'YCC'
?
[
path
]
:
[];
let
Coin
=
path
===
'BTY'
||
path
===
'YCC'
?
[
path
]
:
[];
...
@@ -653,7 +692,7 @@
...
@@ -653,7 +692,7 @@
/*margin: 0 20px 20px 0;*/
/*margin: 0 20px 20px 0;*/
margin-bottom
:
20px
;
margin-bottom
:
20px
;
width
:
306px
;
width
:
306px
;
height
:
3
40
px
;
height
:
3
76
px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4px
;
border-radius
:
4px
;
padding
:
13px
23px
0
20px
;
padding
:
13px
23px
0
20px
;
...
@@ -664,27 +703,37 @@
...
@@ -664,27 +703,37 @@
&
.normal
{
&
.normal
{
border
:
1px
solid
rgba
(
146
,
208
,
171
,
1
);
border
:
1px
solid
rgba
(
146
,
208
,
171
,
1
);
.chart-box
{
.chart-box
{
border
:
3px
solid
#73C795
;
background-color
:
rgba
(
166
,
216
,
186
,
0.3
);
/* border: 3px solid #73C795; */
}
}
.type
{
.type
{
text-align
:
center
;
font-size
:
14px
;
color
:
rgba
(
76
,
171
,
115
,
1
);
color
:
rgba
(
76
,
171
,
115
,
1
);
}
}
}
}
&
.stop
{
&
.stop
{
border
:
1px
solid
rgba
(
208
,
216
,
220
,
1
);
border
:
1px
solid
rgba
(
208
,
216
,
220
,
1
);
.chart-box
{
.chart-box
{
border
:
3px
solid
rgba
(
208
,
216
,
220
,
1
);
/* border: 3px solid rgba(208,216,220,1); */
background-color
:
rgba
(
199
,
217
,
225
,
0.3
);
}
}
.type
{
.type
{
font-size
:
14px
;
text-align
:
center
;
color
:
rgba
(
121
,
130
,
134
,
1
);
color
:
rgba
(
121
,
130
,
134
,
1
);
}
}
}
}
&
.abnormal
{
&
.abnormal
{
border
:
1px
solid
rgba
(
217
,
120
,
120
,
1
);
border
:
1px
solid
rgba
(
217
,
120
,
120
,
1
);
.chart-box
{
.chart-box
{
border
:
3px
solid
rgba
(
217
,
120
,
120
,
1
);
/* border: 3px solid rgba(217,120,120,1); */
background-color
:
rgba
(
236
,
184
,
184
,
0.3
);
}
}
.type
{
.type
{
font-size
:
14px
;
text-align
:
center
;
color
:
rgba
(
217
,
120
,
120
,
1
);
color
:
rgba
(
217
,
120
,
120
,
1
);
}
}
}
}
...
@@ -711,17 +760,29 @@
...
@@ -711,17 +760,29 @@
color
:
rgba
(
51
,
51
,
51
,
1
);
color
:
rgba
(
51
,
51
,
51
,
1
);
line-height
:
20px
;
line-height
:
20px
;
text-align
:
center
;
text-align
:
center
;
margin
:
12px
0
20px
0
;
margin
:
12px
0
0px
0
;
}
.robot-nameTwo
{
font-size
:
14px
;
font-weight
:
600
;
color
:
rgba
(
51
,
51
,
51
,
1
);
/* line-height:20px; */
text-align
:
center
;
margin
:
0px
0
10px
0
;
}
.twoChart-box
{
display
:
flex
;
width
:
266px
;
}
}
.chart-box
{
.chart-box
{
margin
:
auto
;
margin
:
auto
;
width
:
1
54
px
;
width
:
1
28
px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
1
54
px
;
height
:
1
30
px
;
border-radius
:
50%
;
/* border-radius: 50%; */
text-align
:
center
;
text-align
:
center
;
position
:
relative
;
position
:
relative
;
padding-top
:
43
px
;
padding-top
:
10
px
;
.title
{
.title
{
height
:
17px
;
height
:
17px
;
font-size
:
12px
;
font-size
:
12px
;
...
@@ -729,6 +790,7 @@
...
@@ -729,6 +790,7 @@
line-height
:
17px
;
line-height
:
17px
;
}
}
.data
{
.data
{
margin-top
:
10px
;
font-size
:
24px
;
font-size
:
24px
;
line-height
:
33px
;
line-height
:
33px
;
&.gain
{
&.gain
{
...
@@ -741,6 +803,13 @@
...
@@ -741,6 +803,13 @@
color
:
rgba
(
208
,
216
,
220
,
1
);
color
:
rgba
(
208
,
216
,
220
,
1
);
}
}
}
}
.dataTwo
{
margin
:
5px
0
5px
0
;
font-size
:
14px
;
color
:
#333333
;
line-height
:
20px
;
height
:
20px
;
}
div
{
div
{
height
:
40px
;
height
:
40px
;
width
:
100%
;
width
:
100%
;
...
@@ -770,19 +839,37 @@
...
@@ -770,19 +839,37 @@
}
}
}
}
.coin
,
.base
{
.coin
,
.base
{
height
:
20px
;
/* margin-top: 10px;
line-height
:
20px
;
height: 57px; */
/* line-height: 20px; */
height
:
28px
;
line-height
:
28px
;
font-size
:
12px
;
font-size
:
12px
;
color
:
rgba
(
128
,
128
,
128
,
1
);
color
:
rgba
(
128
,
128
,
128
,
1
);
.sum
{
.sum
{
color
:
rgba
(
128
,
128
,
128
,
1
);
float
:
right
;
font-size
:
12px
;
}
}
.coinOne
{
height
:
28px
;
line-height
:
28px
;
font-size
:
12px
;
color
:
#333333
;
.sum
{
float
:
right
;
float
:
right
;
font-size
:
14px
;
font-size
:
14px
;
color
:
rgba
(
51
,
51
,
51
,
1
);
color
:
rgba
(
51
,
51
,
51
,
1
);
}
}
}
}
.coin
{
.coinDiv
{
margin
:
19px
0
10px
0
;
height
:
57px
;
margin-top
:
10px
;
}
}
/* .coin {
margin: 19px 0 10px 0;
} */
.no-data
{
.no-data
{
text-align
:
center
;
text-align
:
center
;
font-size
:
20px
;
font-size
:
20px
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment