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 @@ - \ 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