diff --git a/frontend/.env.development b/frontend/.env.development
index ac6b0dd..44a6eff 100644
--- a/frontend/.env.development
+++ b/frontend/.env.development
@@ -1 +1,2 @@
VITE_BASE_URL = /api
+VITE_WEBSOCKET = /socket
diff --git a/frontend/.env.production b/frontend/.env.production
index d19fb38..0b0b74d 100644
--- a/frontend/.env.production
+++ b/frontend/.env.production
@@ -1 +1,2 @@
-VITE_BASE_URL = http://127.0.0.1:8000/api/
\ No newline at end of file
+VITE_BASE_URL = http://127.0.0.1:8000/api
+VITE_WEBSOCKET = ws://localhost:8000/ws
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 1c1569d..869623b 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -10,6 +10,7 @@
"dependencies": {
"ant-design-vue": "^3.2.12",
"axios": "^0.27.2",
+ "echarts": "^5.3.3",
"moment": "^2.29.4",
"normalize.css": "^8.0.1",
"pinia": "^2.0.21",
@@ -807,6 +808,15 @@
"resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
"integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w=="
},
+ "node_modules/echarts": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.3.tgz",
+ "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "5.3.2"
+ }
+ },
"node_modules/esbuild": {
"version": "0.15.7",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz",
@@ -2628,6 +2638,11 @@
"node": ">=8.0"
}
},
+ "node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -2928,6 +2943,14 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zrender": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.2.tgz",
+ "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==",
+ "dependencies": {
+ "tslib": "2.3.0"
+ }
}
},
"dependencies": {
@@ -3536,6 +3559,15 @@
"resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
"integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w=="
},
+ "echarts": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.3.tgz",
+ "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==",
+ "requires": {
+ "tslib": "2.3.0",
+ "zrender": "5.3.2"
+ }
+ },
"esbuild": {
"version": "0.15.7",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz",
@@ -4726,6 +4758,11 @@
"is-number": "^7.0.0"
}
},
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -4911,6 +4948,14 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
+ },
+ "zrender": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.2.tgz",
+ "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==",
+ "requires": {
+ "tslib": "2.3.0"
+ }
}
}
}
diff --git a/frontend/package.json b/frontend/package.json
index b25a20b..349d711 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -11,6 +11,7 @@
"dependencies": {
"ant-design-vue": "^3.2.12",
"axios": "^0.27.2",
+ "echarts": "^5.3.3",
"moment": "^2.29.4",
"normalize.css": "^8.0.1",
"pinia": "^2.0.21",
diff --git a/frontend/src/components/echart/echart-system-info.vue b/frontend/src/components/echart/echart-system-info.vue
new file mode 100644
index 0000000..fe5537a
--- /dev/null
+++ b/frontend/src/components/echart/echart-system-info.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/echart/echart.vue b/frontend/src/components/echart/echart.vue
new file mode 100644
index 0000000..2c1af5d
--- /dev/null
+++ b/frontend/src/components/echart/echart.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/views/main/setting/about/about.vue b/frontend/src/views/main/setting/about/about.vue
index 2d246c7..445f7b4 100644
--- a/frontend/src/views/main/setting/about/about.vue
+++ b/frontend/src/views/main/setting/about/about.vue
@@ -1,7 +1,46 @@
-
+
- about
+
-
+
diff --git a/frontend/src/views/main/system/role/role.vue b/frontend/src/views/main/system/role/role.vue
index f82bd41..2794bad 100644
--- a/frontend/src/views/main/system/role/role.vue
+++ b/frontend/src/views/main/system/role/role.vue
@@ -6,7 +6,6 @@ import { PlusOutlined } from '@ant-design/icons-vue'
import { getRoles, queryRole, delRole, putRole, addRole } from '@/service/role'
import { getMenus } from '@/service/menu'
import { columns, rules, treeFieldNames } from './conf'
-import { formatTime } from '@/utils/format'
import { message } from 'ant-design-vue'
import { getMenus as getRoleMenu } from '@/service/user'
@@ -239,10 +238,10 @@ watch(
- {{ formatTime(record.created) }}
+ {{ $$formatTime(record.created) }}
- {{ formatTime(record.modified) }}
+ {{ $$formatTime(record.modified) }}
diff --git a/frontend/vite.config.js b/frontend/vite.config.js
index 0bf2f08..130fb3e 100644
--- a/frontend/vite.config.js
+++ b/frontend/vite.config.js
@@ -26,8 +26,8 @@ export default defineConfig({
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
},
- '/socket.io': {
- target: 'ws://localhost:5000',
+ '/socket': {
+ target: 'ws://localhost:8000/ws',
ws: true
}
}