diff --git a/backend/package.json b/backend/package.json
index cc9da9e..62619c6 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -5,6 +5,7 @@
"main": "sub-store.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "serve": "node sub-store.js",
"build": "curl -X POST -s --data-urlencode 'input@sub-store.js' https://javascript-minifier.com/raw > sub-store.min.js"
},
"author": "",
diff --git a/backend/sub-store.js b/backend/sub-store.js
index dccc4b9..db088d4 100644
--- a/backend/sub-store.js
+++ b/backend/sub-store.js
@@ -2374,7 +2374,7 @@ function getPlatformFromHeaders(headers) {
return "QX";
} else if (UA.indexOf("Surge") !== -1) {
return "Surge";
- } else if (UA.indexOf("Decar") !== -1) {
+ } else if (UA.indexOf("Decar") !== -1 || UA.indexOf("Loon") !== -1) {
return "Loon";
} else {
// browser
diff --git a/web/package-lock.json b/web/package-lock.json
index c870d44..a11d0de 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -4157,7 +4157,7 @@
},
"de-indent": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
"dev": true
},
@@ -4635,6 +4635,14 @@
"safer-buffer": "^2.1.0"
}
},
+ "echarts": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz",
+ "integrity": "sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA==",
+ "requires": {
+ "zrender": "4.3.2"
+ }
+ },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
@@ -9275,6 +9283,11 @@
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
+ "resize-detector": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.1.10.tgz",
+ "integrity": "sha512-iLcXC8A6Fb0DfA+TRiywrK/0A22bFqkhntjMJMEzXDA4XkcEkfwpNbv7W8iewUiD0xYIaeiXOfiEehTqGKsUFw=="
+ },
"resolve": {
"version": "1.17.0",
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&sync_timestamp=1589682751623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz",
@@ -10988,6 +11001,16 @@
}
}
},
+ "vue-echarts": {
+ "version": "5.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-5.0.0-beta.0.tgz",
+ "integrity": "sha512-QZFKGXDAYFQo+F20REpzcdLx79nsl4kOorJRpN+08aYq4YiIlmtWss1Lxadm7Fo+NYyWm8nnT+h4xHv3uqWIDQ==",
+ "requires": {
+ "core-js": "^3.4.4",
+ "lodash": "^4.17.15",
+ "resize-detector": "^0.1.10"
+ }
+ },
"vue-eslint-parser": {
"version": "7.1.0",
"resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.1.0.tgz?cache=0&sync_timestamp=1589684321779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.1.0.tgz",
@@ -12055,6 +12078,11 @@
"dev": true
}
}
+ },
+ "zrender": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.2.tgz",
+ "integrity": "sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g=="
}
}
}
diff --git a/web/package.json b/web/package.json
index c84182f..8c27a85 100644
--- a/web/package.json
+++ b/web/package.json
@@ -12,11 +12,13 @@
"@dzangolab/vue-country-flag-icon": "^0.2.0",
"axios": "^0.20.0",
"core-js": "^3.6.5",
+ "echarts": "^4.9.0",
"lodash": "^4.17.20",
"material-design-icons-iconfont": "^5.0.1",
"monaco-editor-vue": "^1.0.10",
"v-clipboard": "^2.2.3",
"vue": "^2.6.12",
+ "vue-echarts": "^5.0.0-beta.0",
"vue-qrcode-component": "^2.1.1",
"vue-router": "^3.4.3",
"vuetify": "^2.2.11",
diff --git a/web/src/views/Dashboard.vue b/web/src/views/Dashboard.vue
index faf42ef..c3eaca7 100644
--- a/web/src/views/Dashboard.vue
+++ b/web/src/views/Dashboard.vue
@@ -1,14 +1,78 @@
-
-
+
+ Nexitally
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
diff --git a/web/vue.config.js b/web/vue.config.js
index ef6e86b..5a3b60a 100644
--- a/web/vue.config.js
+++ b/web/vue.config.js
@@ -1,5 +1,7 @@
module.exports = {
"transpileDependencies": [
- "vuetify"
+ "vuetify",
+ 'vue-echarts',
+ 'resize-detector'
]
}
\ No newline at end of file