From 76c16ad16eed609778cf3162b5c06a7f2e263464 Mon Sep 17 00:00:00 2001 From: zhisheng Date: Thu, 6 Mar 2025 23:31:23 +0800 Subject: [PATCH 1/5] fix manager-api bug (#223) --- .../src/main/java/xiaozhi/common/exception/ErrorCode.java | 5 +++++ .../java/xiaozhi/modules/sys/service/SysDictTypeService.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java b/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java index 22fd6100..ffa78cf5 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java +++ b/main/manager-api/src/main/java/xiaozhi/common/exception/ErrorCode.java @@ -35,4 +35,9 @@ public interface ErrorCode { int REDIS_ERROR = 10027; int JOB_ERROR = 10028; int INVALID_SYMBOL = 10029; + + + int PASSWORD_LENGTH_ERROR = 10030; + int PASSWORD_WEAK_ERROR = 10031; + int DEL_MYSELF_ERROR = 10032; } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysDictTypeService.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysDictTypeService.java index 0b4b5150..29906afb 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysDictTypeService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysDictTypeService.java @@ -23,4 +23,8 @@ public interface SysDictTypeService extends BaseService { void update(SysDictTypeDTO dto); void delete(Long[] ids); + + List getAllList(); + + List getDictTypeList(); } \ No newline at end of file From 0b7abfae3a650143e827fff4d54d481bec061309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A3=E5=8D=97=E7=A7=91=E6=8A=80?= Date: Fri, 7 Mar 2025 01:20:39 +0800 Subject: [PATCH 2/5] =?UTF-8?q?update:=E4=BC=98=E5=8C=96docker=E6=97=B6?= =?UTF-8?q?=E5=8C=BA=20(#225)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: hrz <1710360675@qq.com> --- main/xiaozhi-server/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main/xiaozhi-server/docker-compose.yml b/main/xiaozhi-server/docker-compose.yml index f9c08ab4..80349bb4 100755 --- a/main/xiaozhi-server/docker-compose.yml +++ b/main/xiaozhi-server/docker-compose.yml @@ -6,6 +6,8 @@ services: restart: always security_opt: - seccomp:unconfined + environment: + - TZ=Asia/Shanghai ports: # ws服务端 - "8000:8000" From 6464c81e725eb4cb7893cbd109d34602fc84852c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A3=E5=8D=97=E7=A7=91=E6=8A=80?= Date: Fri, 7 Mar 2025 10:01:20 +0800 Subject: [PATCH 3/5] Manager web (#227) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update:增加前端设计图 * 前端代码优化 * update:底部信息纠正 * 增加:flyio * update:去除org.quartz * update:登陆功能 --------- Co-authored-by: hrz <1710360675@qq.com> Co-authored-by: CGD <3030332422@qq.com> --- main/manager-api/pom.xml | 16 - main/manager-web/package-lock.json | 409 ++++++++++++++++++++++- main/manager-web/package.json | 1 + main/manager-web/src/apis/api.js | 22 ++ main/manager-web/src/apis/httpRequest.js | 132 ++++++++ main/manager-web/src/apis/module/user.js | 20 ++ main/manager-web/src/utils/constant.js | 19 ++ main/manager-web/src/utils/date.js | 60 ++++ main/manager-web/src/utils/index.js | 135 ++++++++ main/manager-web/src/views/home.vue | 64 ++-- main/manager-web/src/views/login.vue | 130 +++---- 11 files changed, 892 insertions(+), 116 deletions(-) create mode 100755 main/manager-web/src/apis/api.js create mode 100755 main/manager-web/src/apis/httpRequest.js create mode 100755 main/manager-web/src/apis/module/user.js create mode 100755 main/manager-web/src/utils/constant.js create mode 100755 main/manager-web/src/utils/date.js create mode 100755 main/manager-web/src/utils/index.js diff --git a/main/manager-api/pom.xml b/main/manager-api/pom.xml index 050f863d..2c9cdc27 100644 --- a/main/manager-api/pom.xml +++ b/main/manager-api/pom.xml @@ -25,7 +25,6 @@ 1.19.1 3.0.5 4.6.0 - 2.3.2 2.0.2 1.6.2 33.0.0-jre @@ -34,21 +33,6 @@ - - org.quartz-scheduler - quartz - ${quartz.version} - - - com.mchange - c3p0 - - - com.zaxxer - HikariCP-java6 - - - org.apache.shiro shiro-core diff --git a/main/manager-web/package-lock.json b/main/manager-web/package-lock.json index 0b8805c2..8fd17049 100644 --- a/main/manager-web/package-lock.json +++ b/main/manager-web/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "element-ui": "^2.15.14", + "flyio": "^0.6.14", "normalize.css": "^8.0.1", "vue": "^2.6.14", "vue-router": "^3.5.1", @@ -1380,7 +1381,6 @@ "version": "6.12.6", "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1539,6 +1539,24 @@ "node": ">=8" } }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", @@ -1556,6 +1574,12 @@ "babel-runtime": "6.x" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", @@ -1602,6 +1626,21 @@ "postcss": "^8.1.0" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" + }, "node_modules/babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", @@ -1648,6 +1687,15 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", @@ -1923,6 +1971,12 @@ "node": ">=4" } }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, "node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", @@ -2132,6 +2186,18 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", @@ -2624,6 +2690,18 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", @@ -2812,6 +2890,15 @@ "node": ">=8" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", @@ -2992,6 +3079,16 @@ "node": ">=6.0.0" } }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", @@ -3308,11 +3405,25 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.3.3", @@ -3345,8 +3456,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-uri": { "version": "3.0.6", @@ -3464,6 +3574,15 @@ "flat": "cli.js" } }, + "node_modules/flyio": { + "version": "0.6.14", + "resolved": "https://registry.npmmirror.com/flyio/-/flyio-0.6.14.tgz", + "integrity": "sha512-RE2OXE1ZZmcXOKb0jCtGyquHDxpAqHg17CZ8lmQKRfl3x1kP+NBpaQDx4WgN7DNpLJjFnspTzTEQpwRGg6/xaA==", + "license": "MIT", + "dependencies": { + "request": "^2.85.0" + } + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -3484,6 +3603,29 @@ } } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", @@ -3623,6 +3765,15 @@ "node": ">=6" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", @@ -3721,6 +3872,29 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", @@ -3986,6 +4160,21 @@ } } }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", @@ -4234,6 +4423,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -4279,6 +4474,12 @@ "node": ">=0.10.0" } }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -4342,6 +4543,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4354,11 +4561,22 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/json5": { "version": "1.0.2", @@ -4384,6 +4602,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", @@ -4774,7 +5007,6 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -4783,7 +5015,6 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -5150,6 +5381,15 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", @@ -5473,6 +5713,12 @@ "node": ">=8" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", @@ -6221,6 +6467,18 @@ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", @@ -6235,7 +6493,6 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } @@ -6402,6 +6659,57 @@ "strip-ansi": "^6.0.1" } }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", @@ -6535,7 +6843,6 @@ "version": "5.2.1", "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -6554,8 +6861,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.85.1", @@ -7090,6 +7396,31 @@ "wbuf": "^1.7.3" } }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ssri": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", @@ -7481,6 +7812,19 @@ "node": ">=6" } }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", @@ -7493,6 +7837,24 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, "node_modules/type-fest": { "version": "0.6.0", "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", @@ -7573,7 +7935,6 @@ "version": "4.4.1", "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -7627,6 +7988,26 @@ "node": ">= 0.8" } }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, "node_modules/vue": { "version": "2.7.16", "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz", diff --git a/main/manager-web/package.json b/main/manager-web/package.json index 95feb3dc..6a581a97 100644 --- a/main/manager-web/package.json +++ b/main/manager-web/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "element-ui": "^2.15.14", + "flyio": "^0.6.14", "normalize.css": "^8.0.1", "vue": "^2.6.14", "vue-router": "^3.5.1", diff --git a/main/manager-web/src/apis/api.js b/main/manager-web/src/apis/api.js new file mode 100755 index 00000000..43d5f90a --- /dev/null +++ b/main/manager-web/src/apis/api.js @@ -0,0 +1,22 @@ +// 引入各个模块的请求 +import user from './module/user.js' +/** + * 接口地址 + * 在开发阶段,如果地址写的是相对路径,请与vue.config.js的devServer配置相结合,方便跨域请求 + * + */ +const DEV_API_SERVICE = 'https://apifoxmock.com/m1/5931378-5618560-default' + +/** + * 根据开发环境返回接口url + * @returns {string} + */ +export function getServiceUrl () { + return DEV_API_SERVICE +} + +/** request服务封装 */ +export default { + getServiceUrl, + user +} diff --git a/main/manager-web/src/apis/httpRequest.js b/main/manager-web/src/apis/httpRequest.js new file mode 100755 index 00000000..aeddd188 --- /dev/null +++ b/main/manager-web/src/apis/httpRequest.js @@ -0,0 +1,132 @@ +import {goToPage, showDanger, showWarning} from '../utils/index' +import Constant from '../utils/constant' +import Fly from 'flyio/dist/npm/fly'; + +const fly = new Fly() +// 设置超时 +fly.config.timeout = 30000 + +/** + * Request服务封装 + */ +export default { + sendRequest, + reAjaxFun, + clearRequestTime +} + +function sendRequest() { + return { + _sucCallback: null, + _failCallback: null, + _method: 'GET', + _data: {}, + _header: {'content-type': 'application/json; charset=utf-8'}, + _url: '', + 'send'() { + this._header.token = localStorage.getItem(Constant.STORAGE_KEY.TOKEN) + fly.request(this._url, this._data, { + method: this._method, + headers: this._header + }).then((res) => { + const error = httpHandlerError(res, this._failCallback) + if (error) { + return + } + if (this._sucCallback) { + this._sucCallback(res) + } + }).catch((res) => { + console.log(1111, res) + httpHandlerError(res, this._failCallback) + }) + return this + }, + 'success'(callback) { + this._sucCallback = callback + return this + }, + 'fail'(callback) { + this._failCallback = callback + return this + }, + 'url'(url) { + if (url) { + url = url.replaceAll('$', '/') + } + this._url = url + return this + }, + 'data'(data) { + this._data = data + return this + }, + 'method'(method) { + this._method = method + return this + }, + 'header'(header) { + this._header = header + return this + }, + 'showLoading'(showLoading) { + this._showLoading = showLoading + return this + }, + 'async'(flag) { + this.async = flag + } + } +} + +/** + * Info 请求完成后返回信息 + * callBack 回调函数 + * errTip 自定义错误信息 + */ +function httpHandlerError(info, callBack) { + /** 请求成功,退出该函数 可以根据项目需求来判断是否请求成功。这里判断的是status为200的时候是成功 */ + let networkError = false + if (info.status === 200) { + if (info.data.code === 'success' || info.data.code === 0) { + return networkError + } else if (info.data.code === 401) { + goToPage(Constant.PAGE.LOGIN, true) + return true + } else { + showDanger(info.data.msg) + return true + } + } + if (callBack) { + callBack(info) + } else { + showDanger(`网络请求出现了错误【${info.status}】`) + } + return true +} + +let requestTime = 0 +let reAjaxSec = 2 + +function reAjaxFun(fn) { + let nowTimeSec = new Date().getTime() / 1000 + if (requestTime === 0) { + requestTime = nowTimeSec + } + let ajaxIndex = parseInt((nowTimeSec - requestTime) / reAjaxSec) + if (ajaxIndex > 10) { + showWarning('似乎无法连接服务器') + } else { + showWarning('正在连接服务器(' + ajaxIndex + ')') + } + if (fn) { + setTimeout(() => { + fn() + }, reAjaxSec * 1000) + } +} + +function clearRequestTime() { + requestTime = 0 +} \ No newline at end of file diff --git a/main/manager-web/src/apis/module/user.js b/main/manager-web/src/apis/module/user.js new file mode 100755 index 00000000..6f2df267 --- /dev/null +++ b/main/manager-web/src/apis/module/user.js @@ -0,0 +1,20 @@ +import RequestService from '../httpRequest' +import {getServiceUrl} from '../api' + + +export default { + // 登录 + login(loginForm, callback) { + RequestService.sendRequest().url(`${getServiceUrl()}/api/v1/user/login`).method('POST') + .data(loginForm) + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail(() => { + RequestService.reAjaxFun(() => { + this.login(loginForm, callback) + }) + }).send() + } +} diff --git a/main/manager-web/src/utils/constant.js b/main/manager-web/src/utils/constant.js new file mode 100755 index 00000000..f34abb32 --- /dev/null +++ b/main/manager-web/src/utils/constant.js @@ -0,0 +1,19 @@ +const HAVE_NO_RESULT = '暂无' +export default { + HAVE_NO_RESULT, // 项目的配置信息 + STORAGE_KEY: { + TOKEN: 'TOKEN', + PUBLIC_KEY: 'PUBLIC_KEY', + USER_TYPE: 'USER_TYPE' + }, + Lang: { + 'zh_cn': 'zh_cn', 'zh_tw': 'zh_tw', 'en': 'en' + }, + FONT_SIZE: { + 'big': 'big', + 'normal': 'normal', + }, // 获取map中的某key + get(map, key) { + return map[key] || HAVE_NO_RESULT + } +} diff --git a/main/manager-web/src/utils/date.js b/main/manager-web/src/utils/date.js new file mode 100755 index 00000000..c6210bc0 --- /dev/null +++ b/main/manager-web/src/utils/date.js @@ -0,0 +1,60 @@ +export const toDate = (date) => { + return isDate(date) ? new Date(date) : null +} + +export const isDate = (date) => { + if (date === null || date === undefined) return false + if (isNaN(new Date(date).getTime())) return false + return true +} + +export const isDateObject = (val) => { + return val instanceof Date +} + +export const formatAddDate = (date, format, addDay) => { + date = toDate(date) + if (!date) { + return '' + } + if (!addDay) { + date.setDate(date.getDate() + addDay) + } + return formatDateTool(date, format || 'yyyy-MM-dd HH:mm:ss') +} + +export const formatDate = (date, format) => { + date = toDate(date) + if (!date) return '' + return formatDateTool(date, format || 'yyyy-MM-dd HH:mm:ss') +} + +function formatDateTool(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + (date.getFullYear() + '').substr(4 - RegExp.$1.length) + ) + } + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + } + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + const str = o[k] + '' + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length === 1 ? str : padLeftZero(str) + ) + } + } + return fmt +} + +function padLeftZero(str) { + return ('00' + str).substr(str.length) +} diff --git a/main/manager-web/src/utils/index.js b/main/manager-web/src/utils/index.js new file mode 100755 index 00000000..b9c22fbc --- /dev/null +++ b/main/manager-web/src/utils/index.js @@ -0,0 +1,135 @@ +import router from '../router' +import Constant from '../utils/constant' +import { Message } from 'element-ui' + +/** + * 判断用户是否登录 + */ +export function checkUserLogin(fn) { + let token = localStorage.getItem(Constant.STORAGE_KEY.TOKEN) + let userType = localStorage.getItem(Constant.STORAGE_KEY.USER_TYPE) + if (isNull(token) || isNull(userType)) { + goToPage('console', true) + return + } + if (fn) { + fn() + } +} + +/** + * 判断是否为空 + * @param data + * @returns {boolean} + */ +export function isNull(data) { + if (data === undefined) { + return true + } else if (data === null) { + return true + } else if (typeof data === 'string' && (data.length === 0 || data === '' || data === 'undefined' || data === 'null')) { + return true + } else if ((data instanceof Array) && data.length === 0) { + return true + } + return false +} + +/** + * 判断不为空 + * @param data + * @returns {boolean} + */ +export function isNotNull(data) { + return !isNull(data) +} + +/** + * 显示顶部红色通知 + * @param msg + */ +export function showDanger(msg) { + if (isNull(msg)) { + return + } + Message({ + message: msg, + type: 'error' + }) +} + +/** + * 显示顶部橙色通知 + * @param msg + */ +export function showWarning(msg) { + if (isNull(msg)) { + return + } + Message({ + message: msg, + type: 'warning' + }); +} + + + +/** + * 显示顶部绿色通知 + * @param msg + */ +export function showSuccess(msg) { + Message({ + message: msg, + type: 'success' + }) +} + + + +/** + * 页面跳转 + * @param path + * @param isRepalce + */ +export function goToPage(path, isRepalce) { + if (isRepalce) { + router.replace(path) + } else { + router.push(path) + } +} + +/** + * 获取当前vue页面名称 + * @param path + * @param isRepalce + */ +export function getCurrentPage() { + let hash = location.hash.replace('#', '') + if (hash.indexOf('?') > 0) { + hash = hash.substring(0, hash.indexOf('?')) + } + return hash +} + +/** + * 生成从[min,max]的随机数 + * @param min + * @param max + * @returns {number} + */ +export function randomNum(min, max) { + return Math.round(Math.random() * (max - min) + min) +} + + +/** + * 获取uuid + */ +export function getUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + return (c === 'x' ? (Math.random() * 16 | 0) : ('r&0x3' | '0x8')).toString(16) + }) +} + diff --git a/main/manager-web/src/views/home.vue b/main/manager-web/src/views/home.vue index a3d680ef..c19c2609 100644 --- a/main/manager-web/src/views/home.vue +++ b/main/manager-web/src/views/home.vue @@ -21,7 +21,7 @@
- +
@@ -87,20 +87,20 @@
-
+
+ style="padding: 17px 27px;font-weight: 700;font-size: 21px;text-align: left;color: #3d4566;display: flex;gap: 14px;align-items: center;">
- + style="width: 41px;height: 41px;background: #5778ff;border-radius: 50%;display: flex;align-items: center;justify-content: center;"> +
CC:ba:97:11:a6:ac
- -
+ +
-
+
@@ -119,7 +119,7 @@
-
+
-
-
-
当前记忆(每次对话后重新生成)
+
当前记忆(每次对话后重新生成)
- + 清除
-
{{form.prompt.length}}/1000
+
{{form.prompt.length}}/1000
-
+
-
+
保存配置
重制
- + 保存配置后,需要重启设备,新的配置才会生效。
@@ -188,7 +188,7 @@ ©2025 xiaozhi-esp32-server
- +
+ + diff --git a/main/manager-web/src/views/login.vue b/main/manager-web/src/views/login.vue index 7826b6b1..6f6759e7 100644 --- a/main/manager-web/src/views/login.vue +++ b/main/manager-web/src/views/login.vue @@ -3,97 +3,91 @@
- - + style="display: flex;align-items: center;margin-top: 15px;margin-left: 10px;gap: 10px;"> + +
- - -
-
- - -
-
- - -
-
-
新用户注册
-
忘记密码?
-
-
-
- -
-
- - -
- - - +86 中国大陆 - - - 黄金糕 - - -
-
-
- - -
- 发送 -
-
-
-
-
- +
+
+ + +
+
+ + +
+
+ + +
+
+
新用户注册
+
+
+
- 登录即同意
《用户协议》
和 + 登录即同意 +
《用户协议》
+ 和
《隐私政策》
- ©2024 小智Al控制面板2.0粤ICP备2022121736号-2
+ ©2025 xiaozhi-esp32-server +