diff --git a/capi-ui/index.html b/capi-ui/index.html
index 030a6ff..0a7e33a 100644
--- a/capi-ui/index.html
+++ b/capi-ui/index.html
@@ -4,7 +4,7 @@
-
Vite App
+ cApi系统管理
diff --git a/capi-ui/package-lock.json b/capi-ui/package-lock.json
index cab8ded..dbf41a8 100644
--- a/capi-ui/package-lock.json
+++ b/capi-ui/package-lock.json
@@ -9,8 +9,11 @@
"version": "0.0.0",
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
+ "@iconify/iconify": "^3.1.1",
+ "@iconify/vue": "^5.0.0",
"ant-design-vue": "^4.2.6",
"axios": "^1.11.0",
+ "echarts": "^6.0.0",
"pinia": "^3.0.3",
"vue": "^3.2.8",
"vue-router": "^4.5.1"
@@ -152,11 +155,23 @@
"integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
"license": "MIT"
},
+ "node_modules/@iconify/iconify": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@iconify/iconify/-/iconify-3.1.1.tgz",
+ "integrity": "sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==",
+ "deprecated": "no longer maintained, switch to modern iconify-icon web component",
+ "license": "MIT",
+ "dependencies": {
+ "@iconify/types": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/cyberalien"
+ }
+ },
"node_modules/@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "dev": true,
"license": "MIT"
},
"node_modules/@iconify/utils": {
@@ -176,6 +191,21 @@
"mlly": "^1.7.4"
}
},
+ "node_modules/@iconify/vue": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-5.0.0.tgz",
+ "integrity": "sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@iconify/types": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/cyberalien"
+ },
+ "peerDependencies": {
+ "vue": ">=3"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -977,6 +1007,16 @@
"node": ">= 0.4"
}
},
+ "node_modules/echarts": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz",
+ "integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "6.0.0"
+ }
+ },
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
@@ -1884,6 +1924,12 @@
"node": ">=8.0"
}
},
+ "node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
+ "license": "0BSD"
+ },
"node_modules/ufo": {
"version": "1.6.1",
"resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz",
@@ -1909,7 +1955,7 @@
},
"node_modules/unplugin-icons": {
"version": "22.2.0",
- "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-22.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.2.0.tgz",
"integrity": "sha512-OdrXCiXexC1rFd0QpliAgcd4cMEEEQtoCf2WIrRIGu4iW6auBPpQKMCBeWxoe55phYdRyZLUWNOtzyTX+HOFSA==",
"dev": true,
"license": "MIT",
@@ -2156,6 +2202,15 @@
"integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
"dev": true,
"license": "MIT"
+ },
+ "node_modules/zrender": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz",
+ "integrity": "sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tslib": "2.3.0"
+ }
}
},
"dependencies": {
@@ -2244,11 +2299,18 @@
"resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz",
"integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
},
+ "@iconify/iconify": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@iconify/iconify/-/iconify-3.1.1.tgz",
+ "integrity": "sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==",
+ "requires": {
+ "@iconify/types": "^2.0.0"
+ }
+ },
"@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "dev": true
+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="
},
"@iconify/utils": {
"version": "2.3.0",
@@ -2266,6 +2328,14 @@
"mlly": "^1.7.4"
}
},
+ "@iconify/vue": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-5.0.0.tgz",
+ "integrity": "sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==",
+ "requires": {
+ "@iconify/types": "^2.0.0"
+ }
+ },
"@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -2746,6 +2816,15 @@
"gopd": "^1.2.0"
}
},
+ "echarts": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz",
+ "integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==",
+ "requires": {
+ "tslib": "2.3.0",
+ "zrender": "6.0.0"
+ }
+ },
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
@@ -3325,6 +3404,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=="
+ },
"ufo": {
"version": "1.6.1",
"resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz",
@@ -3353,7 +3437,7 @@
},
"unplugin-icons": {
"version": "22.2.0",
- "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-22.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.2.0.tgz",
"integrity": "sha512-OdrXCiXexC1rFd0QpliAgcd4cMEEEQtoCf2WIrRIGu4iW6auBPpQKMCBeWxoe55phYdRyZLUWNOtzyTX+HOFSA==",
"dev": true,
"requires": {
@@ -3479,6 +3563,14 @@
"resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
"integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
"dev": true
+ },
+ "zrender": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz",
+ "integrity": "sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==",
+ "requires": {
+ "tslib": "2.3.0"
+ }
}
}
}
diff --git a/capi-ui/package.json b/capi-ui/package.json
index 8b1c703..301851d 100644
--- a/capi-ui/package.json
+++ b/capi-ui/package.json
@@ -9,8 +9,11 @@
},
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
+ "@iconify/iconify": "^3.1.1",
+ "@iconify/vue": "^5.0.0",
"ant-design-vue": "^4.2.6",
"axios": "^1.11.0",
+ "echarts": "^6.0.0",
"pinia": "^3.0.3",
"vue": "^3.2.8",
"vue-router": "^4.5.1"
diff --git a/capi-ui/public/favicon.ico b/capi-ui/public/favicon.ico
index df36fcf..9e3ed92 100644
Binary files a/capi-ui/public/favicon.ico and b/capi-ui/public/favicon.ico differ
diff --git a/capi-ui/public/my.png b/capi-ui/public/my.png
new file mode 100644
index 0000000..18f8c17
Binary files /dev/null and b/capi-ui/public/my.png differ
diff --git a/capi-ui/src/components/Layout/AdminLayout.vue b/capi-ui/src/components/Layout/AdminLayout.vue
new file mode 100644
index 0000000..6f7803b
--- /dev/null
+++ b/capi-ui/src/components/Layout/AdminLayout.vue
@@ -0,0 +1,1083 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ consoleTabTitle }}
+
+
+
+
+ <
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+
+ {{ closeAllText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ logoutTitle }}
+
+
{{ logoutDesc }}
+
+
+
{{ logoutCancelText }}
+
+ {{ logoutConfirmText }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/capi-ui/src/main.js b/capi-ui/src/main.js
index 739f615..019a227 100644
--- a/capi-ui/src/main.js
+++ b/capi-ui/src/main.js
@@ -8,7 +8,11 @@ import 'ant-design-vue/dist/reset.css'
const app = createApp(App)
+const pinia = createPinia()
+
+
app.use(createPinia()) // 注册Pinia
app.use(router) // 注册路由
+app.use(pinia);
app.use(Antd) // 注册Ant Design Vue
app.mount('#app')
\ No newline at end of file
diff --git a/capi-ui/src/store/index.ts b/capi-ui/src/store/index.ts
new file mode 100644
index 0000000..d6729b1
--- /dev/null
+++ b/capi-ui/src/store/index.ts
@@ -0,0 +1,4 @@
+import { createPinia } from 'pinia';
+
+const pinia = createPinia();
+export default pinia;
\ No newline at end of file
diff --git a/capi-ui/src/views/sys/Dashboard.vue b/capi-ui/src/views/sys/Dashboard.vue
index 4faf2e6..7783308 100644
--- a/capi-ui/src/views/sys/Dashboard.vue
+++ b/capi-ui/src/views/sys/Dashboard.vue
@@ -1,39 +1,77 @@