summaryrefslogtreecommitdiff
path: root/ATRI/plugins/console/atri-manege/src
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-07-31 16:16:47 +0800
committerKyomotoi <[email protected]>2021-07-31 16:16:47 +0800
commit336eb9d9e98b0bee952c27a50820dbdb350bcc03 (patch)
tree718d5349232bce0d06cc901707bdd8f478c43314 /ATRI/plugins/console/atri-manege/src
parentc485985d3be687d17168512de44ea7b744fea7cc (diff)
downloadATRI-336eb9d9e98b0bee952c27a50820dbdb350bcc03.tar.gz
ATRI-336eb9d9e98b0bee952c27a50820dbdb350bcc03.tar.bz2
ATRI-336eb9d9e98b0bee952c27a50820dbdb350bcc03.zip
🔥🚚✨
- 移除:laugh.txt,需要时再拉取 - 移动控制台文件至plugins/console目录下 - 新增: - 和管理贴贴w - 正式的可视化前端单页
Diffstat (limited to 'ATRI/plugins/console/atri-manege/src')
-rw-r--r--ATRI/plugins/console/atri-manege/src/App.vue120
-rw-r--r--ATRI/plugins/console/atri-manege/src/assets/logo.pngbin0 -> 6849 bytes
-rw-r--r--ATRI/plugins/console/atri-manege/src/assets/logo.svg1
-rw-r--r--ATRI/plugins/console/atri-manege/src/data/console/2021-07-24-runtime-freq.json946
-rw-r--r--ATRI/plugins/console/atri-manege/src/data/console/is_connect.json3
-rw-r--r--ATRI/plugins/console/atri-manege/src/main.js12
-rw-r--r--ATRI/plugins/console/atri-manege/src/plugins/vuetify.js7
-rw-r--r--ATRI/plugins/console/atri-manege/src/router/index.js40
-rw-r--r--ATRI/plugins/console/atri-manege/src/views/Chat.vue5
-rw-r--r--ATRI/plugins/console/atri-manege/src/views/Control.vue5
-rw-r--r--ATRI/plugins/console/atri-manege/src/views/Data.vue5
-rw-r--r--ATRI/plugins/console/atri-manege/src/views/Home.vue251
-rw-r--r--ATRI/plugins/console/atri-manege/src/views/Test.vue5
13 files changed, 1400 insertions, 0 deletions
diff --git a/ATRI/plugins/console/atri-manege/src/App.vue b/ATRI/plugins/console/atri-manege/src/App.vue
new file mode 100644
index 0000000..5b0775d
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/App.vue
@@ -0,0 +1,120 @@
+<template>
+ <v-app>
+ <v-navigation-drawer app v-model="drawer" class="na-d-0">
+ <v-list
+ nav
+ dense
+ >
+ <v-list-item-group active-class="nattier-blue--text text--accent-4">
+ <router-link to="/" tag="v-list-item-title">
+ <v-list-item>
+ <v-list-item-icon>
+ <v-icon>mdi-home</v-icon>
+ </v-list-item-icon>
+ <v-list-item-title>主页 | Home</v-list-item-title>
+ </v-list-item>
+ </router-link>
+
+ <router-link to="/control" tag="v-list-item-title">
+ <v-list-item>
+ <v-list-item-icon>
+ <v-icon>mdi-wrench</v-icon>
+ </v-list-item-icon>
+ <v-list-item-title>控制面板 | Control</v-list-item-title>
+ </v-list-item>
+ </router-link>
+
+ <router-link to="/data" tag="v-list-item-title">
+ <v-list-item>
+ <v-list-item-icon>
+ <v-icon>mdi-database</v-icon>
+ </v-list-item-icon>
+ <v-list-item-title>数据 | Data</v-list-item-title>
+ </v-list-item>
+ </router-link>
+
+ <router-link to="/chat" tag="v-list-item-title">
+ <v-list-item>
+ <v-list-item-icon>
+ <v-icon>mdi-comment-processing</v-icon>
+ </v-list-item-icon>
+ <v-list-item-title>聊天 | Chat</v-list-item-title>
+ </v-list-item>
+ </router-link>
+
+ <router-link to="/a-test" tag="v-list-item-title">
+ <v-list-item>
+ <v-list-item-icon>
+ <v-icon>mdi-debug-step-over</v-icon>
+ </v-list-item-icon>
+ <v-list-item-title>测试 | Test</v-list-item-title>
+ </v-list-item>
+ </router-link>
+ </v-list-item-group>
+ </v-list>
+ </v-navigation-drawer>
+
+ <v-app-bar app color="white" flat>
+ <v-app-bar-nav-icon @click="drawer = !drawer"></v-app-bar-nav-icon>
+
+ <router-link to="/" tag="v-toolbar-title">
+ <v-toolbar-title>ATRI Console</v-toolbar-title>
+ </router-link>
+
+ <v-spacer></v-spacer>
+
+ <v-btn href="https://jq.qq.com/?_wv=1027&k=iKLJzM1u" target="_blank" text>
+ <span class="mr-2">Discuss</span>
+ <v-icon small>mdi-qqchat</v-icon>
+ </v-btn>
+
+ <v-btn href="https://github.com/Kyomotoi/ATRI" target="_blank" text>
+ <span class="mr-2">GitHub</span>
+ <v-icon small>mdi-link-variant</v-icon>
+ </v-btn>
+ </v-app-bar>
+
+ <v-main>
+ <v-container fluid>
+ <v-lazy>
+ <router-view></router-view>
+ </v-lazy>
+ </v-container>
+ </v-main>
+
+ <v-footer app>
+ <v-divider></v-divider>
+ <v-container fluid>
+ <v-row align="center" justify="center">
+ <v-col class="text-center" cols="auto">
+ <span> <v-icon>mdi-copyright</v-icon> Yours <strong>Kyomotoi</strong> </span>
+ </v-col>
+ <v-col class="text-center" cols="auto">
+ <span> <v-icon>mdi-github</v-icon> <strong>ATRI</strong> </span>
+ </v-col>
+ </v-row>
+ </v-container>
+ </v-footer>
+ </v-app>
+</template>
+
+<script>
+
+export default {
+ name: 'App',
+
+ data: () => ({
+ drawer: true,
+ }),
+};
+</script>
+
+<style>
+.text-center.a:visited {
+ color: aliceblue;
+}
+
+.na-d-0 {
+ background-image: url("https://i.loli.net/2021/07/19/WlFanrZHRQxb5Ay.png");
+}
+</style>
diff --git a/ATRI/plugins/console/atri-manege/src/assets/logo.png b/ATRI/plugins/console/atri-manege/src/assets/logo.png
new file mode 100644
index 0000000..f3d2503
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/assets/logo.png
Binary files differ
diff --git a/ATRI/plugins/console/atri-manege/src/assets/logo.svg b/ATRI/plugins/console/atri-manege/src/assets/logo.svg
new file mode 100644
index 0000000..145b6d1
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/assets/logo.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.5 100"><defs><style>.cls-1{fill:#1697f6;}.cls-2{fill:#7bc6ff;}.cls-3{fill:#1867c0;}.cls-4{fill:#aeddff;}</style></defs><title>Artboard 46</title><polyline class="cls-1" points="43.75 0 23.31 0 43.75 48.32"/><polygon class="cls-2" points="43.75 62.5 43.75 100 0 14.58 22.92 14.58 43.75 62.5"/><polyline class="cls-3" points="43.75 0 64.19 0 43.75 48.32"/><polygon class="cls-4" points="64.58 14.58 87.5 14.58 43.75 100 43.75 62.5 64.58 14.58"/></svg>
diff --git a/ATRI/plugins/console/atri-manege/src/data/console/2021-07-24-runtime-freq.json b/ATRI/plugins/console/atri-manege/src/data/console/2021-07-24-runtime-freq.json
new file mode 100644
index 0000000..7a85c67
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/data/console/2021-07-24-runtime-freq.json
@@ -0,0 +1,946 @@
+[
+ {
+ "time": "2021-07-24 15:20:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:21:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:22:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:23:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:24:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:25:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:26:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:27:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:28:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:29:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:30:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:31:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:32:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:33:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:34:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:35:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:36:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:37:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:38:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:39:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:40:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:41:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:42:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:43:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:44:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:45:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:46:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:47:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:48:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:49:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:50:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:51:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:52:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:53:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:54:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:55:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:56:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:57:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:58:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 15:59:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:00:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:01:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:02:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:03:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:04:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:05:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:06:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:07:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:08:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:09:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:10:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:11:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:12:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:13:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:14:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:15:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:16:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:17:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:18:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:19:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:20:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:21:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:22:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:23:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:24:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:25:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:26:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:27:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:28:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:29:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:30:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:31:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:32:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:33:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:34:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:35:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:36:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:37:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:38:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:39:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:40:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:41:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:42:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:43:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:44:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:45:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:46:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:47:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:48:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:49:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:50:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:51:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:52:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:53:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:54:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:55:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:56:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:57:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:58:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 16:59:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:00:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:01:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:02:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:03:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:04:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:05:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:06:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:07:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:08:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:09:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:10:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:12:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:13:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:14:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:15:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:16:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:17:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ },
+ {
+ "time": "2021-07-24 17:18:20",
+ "freq": {
+ "msg": 0,
+ "health": 0,
+ "error": 0
+ }
+ }
+]
diff --git a/ATRI/plugins/console/atri-manege/src/data/console/is_connect.json b/ATRI/plugins/console/atri-manege/src/data/console/is_connect.json
new file mode 100644
index 0000000..7fe0350
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/data/console/is_connect.json
@@ -0,0 +1,3 @@
+{
+ "connect": false
+} \ No newline at end of file
diff --git a/ATRI/plugins/console/atri-manege/src/main.js b/ATRI/plugins/console/atri-manege/src/main.js
new file mode 100644
index 0000000..d1a291e
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/main.js
@@ -0,0 +1,12 @@
+import Vue from 'vue'
+import App from './App.vue'
+import router from './router'
+import vuetify from './plugins/vuetify'
+
+Vue.config.productionTip = false
+
+new Vue({
+ router,
+ vuetify,
+ render: h => h(App)
+}).$mount('#app');
diff --git a/ATRI/plugins/console/atri-manege/src/plugins/vuetify.js b/ATRI/plugins/console/atri-manege/src/plugins/vuetify.js
new file mode 100644
index 0000000..5bdec19
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/plugins/vuetify.js
@@ -0,0 +1,7 @@
+import Vue from 'vue';
+import Vuetify from 'vuetify/lib/framework';
+
+Vue.use(Vuetify);
+
+export default new Vuetify({
+});
diff --git a/ATRI/plugins/console/atri-manege/src/router/index.js b/ATRI/plugins/console/atri-manege/src/router/index.js
new file mode 100644
index 0000000..480f5d0
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/router/index.js
@@ -0,0 +1,40 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+
+Vue.use(VueRouter)
+
+const routes = [
+ {
+ path: '/',
+ name: '主页 | Home',
+ component: () => import('../views/Home.vue')
+ },
+ {
+ path: '/control',
+ name: '控制面板 | Control',
+ component: () => import('../views/Control.vue')
+ },
+ {
+ path: '/data',
+ name: '数据 | Data',
+ component: () => import('../views/Data.vue')
+ },
+ {
+ path: '/chat',
+ name: '聊天 | Chat',
+ component: () => import('../views/Chat.vue')
+ },
+ {
+ path: '/a-test',
+ name: '测试 | Test',
+ component: () => import('../views/Test.vue')
+ }
+]
+
+const router = new VueRouter({
+ mode: 'history',
+ base: process.env.BASE_URL,
+ routes
+})
+
+export default router
diff --git a/ATRI/plugins/console/atri-manege/src/views/Chat.vue b/ATRI/plugins/console/atri-manege/src/views/Chat.vue
new file mode 100644
index 0000000..0d4179e
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/views/Chat.vue
@@ -0,0 +1,5 @@
+<template>
+ <div class="chat">
+ <h1>Comming soon...</h1>
+ </div>
+</template>
diff --git a/ATRI/plugins/console/atri-manege/src/views/Control.vue b/ATRI/plugins/console/atri-manege/src/views/Control.vue
new file mode 100644
index 0000000..ca64a32
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/views/Control.vue
@@ -0,0 +1,5 @@
+<template>
+ <div class="control">
+ <h1>Comming soon...</h1>
+ </div>
+</template>
diff --git a/ATRI/plugins/console/atri-manege/src/views/Data.vue b/ATRI/plugins/console/atri-manege/src/views/Data.vue
new file mode 100644
index 0000000..020ac37
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/views/Data.vue
@@ -0,0 +1,5 @@
+<template>
+ <div class="data">
+ <h1>Comming soon...</h1>
+ </div>
+</template>
diff --git a/ATRI/plugins/console/atri-manege/src/views/Home.vue b/ATRI/plugins/console/atri-manege/src/views/Home.vue
new file mode 100644
index 0000000..f630139
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/views/Home.vue
@@ -0,0 +1,251 @@
+<template>
+ <v-app>
+ <h1 class="h1-index">ATRI is Running</h1>
+
+ <v-divider></v-divider>
+
+ <v-col>
+ <h3 class="h3-index">主体状态 | Status</h3>
+ </v-col>
+ <v-container>
+ <v-col>
+ <v-row>
+ <v-card height="170" width="400" class="ma-1">
+ <v-card-title>WS状态 | Websocket Status</v-card-title>
+ <div class="text-center">
+ <v-chip
+ class="ma-2"
+ color="green"
+ text-color="white"
+ >
+ <div id="isConnect"></div>
+ </v-chip>
+ </div>
+ </v-card>
+
+ <v-card height="170" width="400" class="ma-1">
+ <v-card-title>自身状态 | Self Status</v-card-title>
+ <div class="text-center">
+ <v-chip
+ class="ma-2"
+ color="green"
+ text-color="white"
+ >
+ <div id="selfStatus"></div>
+ </v-chip>
+ </div>
+ </v-card>
+ </v-row>
+ </v-col>
+ </v-container>
+
+ <v-divider></v-divider>
+
+ <v-col>
+ <h3 class="h3-index">记录仪 | Dashboard</h3>
+ <div id="container" class="test-box"></div>
+ </v-col>
+ </v-app>
+</template>
+
+<script>
+import * as echarts from 'echarts'
+
+export default {
+ mounted() {
+ function sleep (time) {
+ return new Promise((resolve) => setTimeout(resolve, time));
+ }
+
+ function isConnect() {
+ try {
+ var url = "http://127.0.0.1:20000/bot/is_connect"
+ var req = new XMLHttpRequest();
+ req.open("get", url);
+ req.send(null);
+ req.onload = function() {
+ if (req.status == 200) {
+ let data = JSON.parse(req.responseText);
+ if (data.is_connect) {
+ document.getElementById("isConnect").innerHTML = "Connected";
+ } else {
+ document.getElementById("isConnect").innerHTML = "Lost Connection";
+ }
+ } else {
+ document.getElementById("isConnect").innerHTML = "Failed to get DATA";
+ }
+ }
+ } catch {
+ document.getElementById("isConnect").innerHTML = "ERROR";
+ }
+ }
+
+ function getStatus() {
+ try {
+ var url = "http://127.0.0.1:20000/bot/status"
+ var req = new XMLHttpRequest();
+ req.open("get", url);
+ req.send(null);
+ req.onload = function() {
+ if (req.status == 200) {
+ let data = JSON.parse(req.responseText);
+ document.getElementById("selfStatus").innerHTML = data.message;
+ }
+ }
+ } catch {
+ document.getElementById("isConnect").innerHTML = "ERROR";
+ }
+ }
+
+ function dashboard() {
+ var data_time = ["0"];
+ var data_msg = [0];
+ var data_health = [0];
+ var data_error = [0];
+
+ try {
+ var url = "http://127.0.0.1:20000/bot/dashboard_info"
+ var req = new XMLHttpRequest();
+ req.open('GET', url);
+ req.send(null);
+ req.onload = function () {
+ var t_data = JSON.parse(req.responseText);
+ var t_data_l = t_data.data
+ for (var i = 0; i < t_data_l.length; i++) {
+ data_time.push(t_data_l[i].time)
+ data_msg.push(t_data_l[i].freq_data.msg)
+ data_health.push(t_data_l[i].freq_data.health)
+ data_error.push(t_data_l[i].freq_data.error)
+ }
+ }
+ } catch {
+ document.getElementById("container").innerHTML = "Failed to get DATA!"
+ return
+ }
+
+ sleep(100).then(
+ () => {
+ let myChart = echarts.init(document.getElementById("container"));
+ let option = {
+ title: {
+ subtext: '数据统计间隔:1分钟',
+ left: '10'
+ },
+ legend: {
+ data: ['接受信息', '服务调用成功速率', '服务调用失败速率']
+ },
+ color: ["#2d85f0", "#ffbc32", "#f4433c"],
+ tooltip: {
+ trigger: 'axis'
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ axisPointer: {
+ show: true,
+ },
+ dataZoom: [
+ {
+ type: 'slider',
+ show: true,
+ xAxisIndex: [0],
+ start: 70,
+ end: 100
+ },
+ {
+ type: 'slider',
+ show: true,
+ yAxisIndex: [0]
+ },
+ {
+ type: 'inside',
+ xAxisIndex: [0],
+ start: 70,
+ end: 100
+ },
+ {
+ type: 'inside',
+ yAxisIndex: [0]
+ }
+ ],
+ toolbox: {
+ feature: {
+ dataZoom: {
+ yAxisIndex: false,
+ xAxisIndex: false
+ },
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ xAxis: [
+ {
+ type: 'category',
+ boundaryGap: false,
+ axisLine: {onZero: false},
+ data: data_time
+ },
+ ],
+ yAxis: {
+ type: 'value'
+ },
+ series: [
+ {
+ name: '接受信息',
+ type: 'line',
+ areaStyle: {},
+ data: data_msg
+ },
+ {
+ name: '服务调用成功速率',
+ type: 'line',
+ areaStyle: {},
+ data: data_health
+ },
+ {
+ name: '服务调用失败速率',
+ type: 'line',
+ areaStyle: {},
+ data: data_error
+ }
+ ]
+ };
+
+ console.info(data_time);
+ console.info(data_msg);
+ console.info(data_error);
+ myChart.setOption(option);
+ window.onresize = myChart.resize;
+ }
+ )
+ }
+
+ setInterval(isConnect(), 100);
+ setInterval(getStatus(), 1000);
+ setInterval(dashboard(), 6000);
+ }
+
+
+}
+</script>
+
+<style>
+.h1-index {
+ font-size: 240%;
+ color: #8f8f8f;
+}
+
+.h3-index {
+ color: #8f8f8f;
+}
+
+.test-box {
+ width: 100%;
+ height: 500px;
+ background-color: white;
+}
+
+</style>
diff --git a/ATRI/plugins/console/atri-manege/src/views/Test.vue b/ATRI/plugins/console/atri-manege/src/views/Test.vue
new file mode 100644
index 0000000..442a950
--- /dev/null
+++ b/ATRI/plugins/console/atri-manege/src/views/Test.vue
@@ -0,0 +1,5 @@
+<template>
+ <div class="test">
+ <h1>Comming soon...</h1>
+ </div>
+</template>