diff --git a/package.json b/package.json index 386dde46..9cb826e7 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@wangeditor/editor": "^0.13.6", "@wangeditor/editor-for-vue": "^5.1.8-6", "axios": "^0.24.0", + "echarts": "^5.2.2", "element-plus": "^1.2.0-beta.6", "nprogress": "^0.2.0", "path-browserify": "^1.0.1", diff --git a/src/App.vue b/src/App.vue index f66e4f33..e27cab53 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,7 +9,7 @@ export default { name: 'App' } - \ No newline at end of file diff --git a/src/views/dashboard/components/FunnelChart.vue b/src/views/dashboard/components/FunnelChart.vue new file mode 100644 index 00000000..612a893e --- /dev/null +++ b/src/views/dashboard/components/FunnelChart.vue @@ -0,0 +1,118 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/PieChart.vue b/src/views/dashboard/components/PieChart.vue new file mode 100644 index 00000000..03ee78cc --- /dev/null +++ b/src/views/dashboard/components/PieChart.vue @@ -0,0 +1,94 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dashboard/components/RadarChart.vue b/src/views/dashboard/components/RadarChart.vue new file mode 100644 index 00000000..a8b9c319 --- /dev/null +++ b/src/views/dashboard/components/RadarChart.vue @@ -0,0 +1,101 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 9a0e2f4f..e8cd2ef8 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -30,7 +30,7 @@
总访问量
-
123456
+
123456
@@ -43,7 +43,7 @@
支付金额
-
123456
+
123456
@@ -56,322 +56,25 @@
订单数
-
123456
+
123456
- - - -
- 有来项目简介 -
-
-
- - youlai-mall - - 是基于Spring Boot 2.5.0、Spring Cloud 2020 & - Alibaba 2021、vue、element-ui、uni-app快速构建的一套全栈开源商城项目。 - - 项目采用微服务、前后端分离开发模式。 -
- 汇集全栈主流的技术栈; - 涉及 - 后端微服务 - 、 - 前端管理 - 、 - 微信小程序 - 和 - APP应用 - 等多端的开发。 -
- - - - - 项目源码地址 - - - - github - - - 码云 - - - - - - 接口文档地址 - - - 线上 - - - 本地 - - - - - - 后端技术栈 - - - Spring Boot、Spring Cloud、Spring Cloud Alibaba、Spring Security OAuth2、JWT、Mybatis-Plus、Seata、Sentinel、ELK、Redis - - - - - - 前端技术栈 - - - vue、element-ui、uni-app、vue-element-admin - - -
-
+ + + + + - - -
- 联系信息 -
-
- - - - - - - -
- 郝先瑞 -
- 后端 - 前端 - 运维 -
-
-
-
- - - - -
- Mr. -
- 后端 - 前端 - 运维 -
-
-
-
- - - - -
- ??? -
- ?? -
-
-
-
- -
-
- - - - 群二维码过期,请添加开发人员微信备注“有来” - - - - - -
-
-
+ + -
- - - -
- 更新日志 -
-
- - - -
1. 权限重构,RESTFul URL权限和按钮权限数据归并
-
2. 新增角色编码逻辑
-
3. 网关新增本地公钥的方式
-
4. 认证中心移除MySQL数据源
-
5. OAuth2客户端官方表oauth_client_details重命名sys_oauth_client
-
6. 自定义实现ClientDetailsService接口loadClientByClientId方法
-
7. JWT的权限属性authorities将角色ID调整为角色编码
-
8. 网关统一鉴权优化,设置了权限规则的请求进行拦截鉴权
-
9. 菜单、角色管理界面针对小尺寸屏幕友好优化
-
10. Spring Boot升级 2.4.4 2.5.0
-
11. Spring Cloud升级 2020.0.22020.0.3
-
12. Spring Cloud Alibaba升级 2020.0.RC12021.1
-
13. Nacos服务升级 2.0.02.0.1
-
14. 表字段统一调整gmt_createcreate_time,gmt_updateupdate-time -
-
15. 前端管理控制台优化
-
16. JWT的密钥对修改,youlai.jksjwt.jks
-
-
-
-
-
- - -
- 计划事项 -
-
- -
-
-
- - -
- 项目文档 -
-
- - - 1. Spring Cloud实战 | - 第一篇:Windows搭建Nacos服务 - - - 2. Spring Cloud实战 | - 第二篇:Spring Cloud整合Nacos实现注册中心 - - - 3. Spring Cloud实战 | - 第三篇:Spring Cloud整合Nacos实现配置中心 - - - 4. Spring Cloud实战 | - 第四篇:Spring Cloud整合Gateway实现API网关 - - - 5. Spring Cloud实战 | - 第五篇:Spring Cloud整合OpenFeign实现微服务之间的调用 - - - - 6. Spring Cloud实战 | - 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权 - - - - 7. Spring Cloud实战 - | - 最七篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案 - - - 8. Spring Cloud实战 - | - 最八篇:Spring Cloud +Spring Security OAuth2+ Vue前后端分离模式下无感知刷新实现JWT续期 - - - 9. Spring Cloud实战 - | - 最九篇:Spring Security OAuth2认证服务器统一认证自定义异常处理 - - - 10. Spring Cloud& - Alibaba 实战 | 第十篇 :Spring Cloud + Nacos整合Seata 1.4.1最新版本实现微服务架构中的分布式事务,进阶之路必须要迈过的槛 - - - 11. Spring Cloud & - Alibaba 实战 | 第十一篇 :Spring Cloud Gateway网关实现对RESTful接口权限和按钮权限细粒度控制 - - - 12. Spring Cloud & - Alibaba 实战 | 第十二篇: Sentinel+Nacos实现流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,做到熔断降级双剑合璧 - - - - - 1. vue-element-admin实战 | 第一篇: 移除mock接入微服务接口,搭建SpringCloud+Vue前后端分离管理平台 - - - - 2. vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单 - - - - - - 1. vue+uni-app商城实战 | 第一篇:从0到1快速开发一个商城微信小程序,无缝接入Spring Cloud - OAuth2认证授权登录 - - - - - - - - - - - -
项目启动说明
-
-
- 1. 后端微服务启动 - - - 2. 管理前端启动 - - - 3. 微信小程序启动 - -
-
-
-
+ +
@@ -382,7 +85,12 @@ import GithubCorner from '@/components/GithubCorner/index.vue' import TodoList from './components/TodoList/index.vue' import {computed, reactive, toRefs} from "vue"; + import SvgIcon from '@/components/SvgIcon/index.vue' +import BarChart from "./components/BarChart.vue"; +import PieChart from "./components/PieChart.vue"; +import RadarChart from "./components/RadarChart.vue"; +import FunnelChart from "./components/FunnelChart.vue"; import {useUserStoreHook} from "@/store/modules/user" @@ -390,14 +98,13 @@ const roles = computed(() => useUserStoreHook().roles); const avatar = computed(() => useUserStoreHook().avatar); const nickname = computed(() => useUserStoreHook().nickname); - -const state =reactive({ +const state = reactive({ updateLogActiveName: '1', contactActiveName: '1', documentActiveName: '1' }) -const {updateLogActiveName,contactActiveName,documentActiveName} = toRefs(state) +const {updateLogActiveName, contactActiveName, documentActiveName} = toRefs(state) @@ -409,22 +116,6 @@ const {updateLogActiveName,contactActiveName,documentActiveName} = toRefs(state background-color: rgb(240, 242, 245); position: relative; - .project-brief-introduction { - .el-divider--horizontal { - margin: 16px 0; - } - - .content { - line-height: 20px; - } - - margin-bottom: 24px; - } - - .technology-stack { - margin-bottom: 24px; - } - .github-corner { position: absolute; top: 0px; @@ -505,33 +196,37 @@ const {updateLogActiveName,contactActiveName,documentActiveName} = toRefs(state .icon-people { color: #40c9c6; - .svg-icon{ - width: 3em!important; - height: 3em!important; + + .svg-icon { + width: 3em !important; + height: 3em !important; } } .icon-message { color: #36a3f7; - .svg-icon{ - width: 3em!important; - height: 3em!important; + + .svg-icon { + width: 3em !important; + height: 3em !important; } } .icon-money { color: #f4516c; - .svg-icon{ - width: 3.2em!important; - height: 3.2em!important; + + .svg-icon { + width: 3.2em !important; + height: 3.2em !important; } } .icon-shopping { color: #34bfa3; - .svg-icon{ - width: 3em!important; - height: 3em!important; + + .svg-icon { + width: 3em !important; + height: 3em !important; } } @@ -562,6 +257,13 @@ const {updateLogActiveName,contactActiveName,documentActiveName} = toRefs(state } } + .bar-chart-container { + background: #ffffff; + } + + .pie-chart-container { + background: #ffffff; + } }