mirror of https://github.com/jeecgboot/jeecg-boot
sas分支前端同步master分支
parent
e218367332
commit
935e118d15
|
@ -16,6 +16,22 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue4、TypeScript 等新技术
|
|||
|
||||
> 强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省成本,同时又不失灵活性
|
||||
|
||||
## 技术支持
|
||||
|
||||
关闭Gitee的issue通道,使用中遇到问题或者BUG可以在 [Github上提Issues](https://github.com/jeecgboot/jeecgboot-vue3/issues/new)
|
||||
|
||||
##### 源码下载
|
||||
|
||||
- JAVA后台源码:https://github.com/jeecgboot/JeecgBoot
|
||||
|
||||
|
||||
##### 项目说明
|
||||
|
||||
| 项目名 | 说明 |
|
||||
|--------------------|-----------------------------------------|
|
||||
| `jeecgboot-vue3` | 前端源码Vue3 |
|
||||
| `jeecg-boot` | 后端源码JAVA(SpringBoot+SpringCloud) |
|
||||
|
||||
|
||||
## 开发环境搭建
|
||||
|
||||
|
@ -28,7 +44,7 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue4、TypeScript 等新技术
|
|||
- 官方文档:[https://help.jeecg.com](https://help.jeecg.com)
|
||||
- 快速入门:[快速入门](http://jeecg.com/doc/quickstart) | [常见问题](http://help.jeecg.com/qa.html) | [视频教程](https://www.bilibili.com/video/BV1V34y187Y9 "入门视频") | [ 代码生成](http://help.jeecg.com/vue3/codegen/online.html)
|
||||
- QQ交流群:⑨808791225、⑧825232878(满)、⑦791696430(满)、683903138(满)、其他满
|
||||
- 在线演示 : [系统演示](http://boot3.jeecg.com) | [APP演示](http://jeecg.com/appIndex)
|
||||
- 在线演示 : [Vue3演示](http://boot3.jeecg.com) | [APP演示](http://jeecg.com/appIndex)
|
||||
> 演示系统的登录账号密码,请点击 [获取账号密码](http://jeecg.com/doc/demo) 获取
|
||||
|
||||
|
||||
|
@ -42,13 +58,13 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue4、TypeScript 等新技术
|
|||
- Get the project code
|
||||
|
||||
```bash
|
||||
git clone https://github.com/jeecgboot/JeecgBoot.git
|
||||
git clone https://github.com/jeecgboot/jeecgboot-vue3.git
|
||||
```
|
||||
|
||||
- Installation dependencies
|
||||
|
||||
```bash
|
||||
cd JeecgBoot/jeecgboot-vue3
|
||||
cd jeecgboot-vue3
|
||||
|
||||
pnpm install
|
||||
```
|
||||
|
@ -92,9 +108,9 @@ pnpm build
|
|||
- 下载项目
|
||||
|
||||
```bash
|
||||
git clone https://github.com/jeecgboot/JeecgBoot.git
|
||||
git clone https://github.com/jeecgboot/jeecgboot-vue3.git
|
||||
|
||||
cd JeecgBoot/jeecgboot-vue3
|
||||
cd jeecgboot-vue3
|
||||
```
|
||||
|
||||
- 配置接口域名 `.env.production`
|
||||
|
@ -150,11 +166,16 @@ VITE_GLOB_DOMAIN_URL=http://jeecg-boot-gateway:9999
|
|||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 入门必备
|
||||
|
||||
本项目需要一定前端基础知识,请确保掌握 Vue 的基础知识,以便能处理一些常见的问题。 建议在开发前先学一下以下内容,提前了解和学习这些知识,会对项目理解非常有帮助:
|
||||
|
||||
* [JeecgBoot文档](http://help.jeecg.com)
|
||||
* [JeecgBoot-Vue3文档](http://help.jeecg.com)
|
||||
* [Vue3 文档](https://cn.vuejs.org/)
|
||||
* [Vben文档](https://doc.vvbin.cn)
|
||||
* [Ant-Design-Vue](https://www.antdv.com/docs/vue/introduce-cn/)
|
||||
|
@ -178,3 +199,246 @@ VITE_GLOB_DOMAIN_URL=http://jeecg-boot-gateway:9999
|
|||
| [](http://godban.github.io/browsers-support-badges/)IE | [](http://godban.github.io/browsers-support-badges/)Edge | [](http://godban.github.io/browsers-support-badges/)Firefox | [](http://godban.github.io/browsers-support-badges/)Chrome | [](http://godban.github.io/browsers-support-badges/)Safari |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
|
||||
|
||||
## 功能模块
|
||||
> vue3版本已经实现了系统管理、系统监控、报表、各种组件、前端权限、GUI代码生成、Online表单、Online报表等平台功能,完全可以用于生产环境。
|
||||
|
||||
```
|
||||
├─首页
|
||||
│ ├─首页(四套首页满足不同场景需求)
|
||||
│ ├─工作台
|
||||
├─系统管理
|
||||
│ ├─用户管理
|
||||
│ ├─角色管理
|
||||
│ ├─菜单管理
|
||||
│ ├─权限设置(支持按钮权限、数据权限)
|
||||
│ ├─表单权限(控制字段禁用、隐藏)
|
||||
│ ├─部门管理
|
||||
│ ├─我的部门(二级管理员)
|
||||
│ └─字典管理
|
||||
│ └─分类字典
|
||||
│ └─系统公告
|
||||
│ └─职务管理
|
||||
│ └─通讯录
|
||||
│ └─对象存储
|
||||
│ └─多租户管理
|
||||
├─系统监控
|
||||
│ ├─网关路由配置(gateway)
|
||||
│ ├─定时任务
|
||||
│ ├─数据源管理
|
||||
│ ├─系统日志
|
||||
│ ├─消息中心(支持短信、邮件、微信推送等等)
|
||||
│ ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
|
||||
│ ├─系统通知
|
||||
│ ├─SQL监控
|
||||
│ ├─性能监控
|
||||
│ │ ├─监控 Redis
|
||||
│ │ ├─Tomcat
|
||||
│ │ ├─jvm
|
||||
│ │ ├─服务器信息
|
||||
│ │ ├─请求追踪
|
||||
│ │ ├─磁盘监控
|
||||
├─消息中心
|
||||
│ ├─我的消息
|
||||
│ ├─消息管理
|
||||
│ ├─模板管理
|
||||
├─积木报表设计器
|
||||
│─报表示例
|
||||
│ ├─曲线图
|
||||
│ └─饼状图
|
||||
│ └─柱状图
|
||||
│ └─折线图
|
||||
│ └─面积图
|
||||
│ └─雷达图
|
||||
│ └─仪表图
|
||||
│ └─进度条
|
||||
│ └─排名列表
|
||||
│ └─等等
|
||||
│─大屏模板
|
||||
│ ├─作战指挥中心大屏
|
||||
│ └─物流服务中心大屏
|
||||
├─代码生成器(GUI)
|
||||
│ ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
|
||||
│ ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
|
||||
│ ├─代码生成器模板(生成代码,自带excel导入导出)
|
||||
│ ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
|
||||
│ ├─高级查询器(弹窗自动组合查询条件)
|
||||
│ ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
|
||||
│ ├─平台移动自适应支持
|
||||
│─常用示例
|
||||
│ ├─自定义组件示例
|
||||
│ ├─JVxeTable示例(ERP行业复杂排版效果)
|
||||
│ ├─单表模型例子
|
||||
│ └─一对多模型例子
|
||||
│ └─打印例子
|
||||
│ └─一对多内嵌示例
|
||||
│ └─异步树Table
|
||||
│ └─图片拖拽排序
|
||||
│ └─图片翻页
|
||||
│ └─图片预览
|
||||
│ └─PDF预览
|
||||
│─封装通用组件
|
||||
│ ├─行编辑表格JVxeTable
|
||||
│ └─省略显示组件
|
||||
│ └─时间控件
|
||||
│ └─高级查询 (未实现)
|
||||
│ └─用户选择组件
|
||||
│ └─报表组件封装
|
||||
│ └─字典组件
|
||||
│ └─下拉多选组件
|
||||
│ └─选人组件
|
||||
│ └─选部门组件
|
||||
│ └─通过部门选人组件
|
||||
│ └─封装曲线、柱状图、饼状图、折线图等等报表的组件(经过封装,使用简单)
|
||||
│ └─在线code编辑器
|
||||
│ └─上传文件组件
|
||||
│ └─树列表组件
|
||||
│ └─表单禁用组件
|
||||
│ └─等等
|
||||
│─更多页面模板
|
||||
│ └─Mock示例(子菜单很多)
|
||||
│ └─页面&导航(子菜单很多)
|
||||
│ └─组件&功能(子菜单很多)
|
||||
├─高级功能
|
||||
│ ├─支持微前端
|
||||
│ ├─提供CAS单点登录
|
||||
│ ├─集成Websocket消息通知机制
|
||||
│ ├─支持第三方登录(QQ、钉钉、微信等)
|
||||
│ ├─系统编码规则
|
||||
├─Online在线开发(低代码)
|
||||
│ ├─Online在线表单 - 功能已开放
|
||||
│ ├─Online代码生成器 - 功能已开放
|
||||
│ ├─Online在线报表 - 功能已开放
|
||||
│ ├─Online在线图表(暂未开源)
|
||||
│ ├─多数据源管理
|
||||
│─流程模块功能 (暂未开源)
|
||||
│ ├─流程设计器
|
||||
│ ├─表单设计器
|
||||
│ ├─大屏设计器
|
||||
│ ├─门户设计/仪表盘设计器
|
||||
│ └─我的任务
|
||||
│ └─历史流程
|
||||
│ └─历史流程
|
||||
│ └─流程实例管理
|
||||
│ └─流程监听管理
|
||||
│ └─流程表达式
|
||||
│ └─我发起的流程
|
||||
│ └─我的抄送
|
||||
│ └─流程委派、抄送、跳转
|
||||
│ └─OA办公组件
|
||||
└─其他模块
|
||||
└─更多功能开发中。。
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 系统效果
|
||||
系统后台
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Online开发&代码生成
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
系统交互
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
流程设计
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
简版流程设计
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
仪表盘设计器
|
||||

|
||||
|
||||

|
||||
|
||||
报表设计器
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
表单设计器
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
大屏设计器
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
报表效果
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
接口文档
|
||||
|
||||

|
||||
|
||||
|
||||
手机端
|
||||

|
||||

|
||||
|
||||
PAD端
|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"author": {
|
||||
"name": "北京国炬信息技术有限公司",
|
||||
"email": "jeecgos@163.com",
|
||||
"url": "https://www.jeecg.com"
|
||||
"url": "https://github.com/jeecgboot/jeecgboot-vue3"
|
||||
},
|
||||
"scripts": {
|
||||
"pinstall": "pnpm install",
|
||||
|
@ -160,11 +160,11 @@
|
|||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jeecgboot/JeecgBoot.git"
|
||||
"url": "git+https://github.com/jeecgboot/jeecgboot-vue3.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jeecgboot/JeecgBoot/issues"
|
||||
"url": "https://github.com/jeecgboot/jeecgboot-vue3/issues"
|
||||
},
|
||||
"homepage": "https://www.jeecg.com",
|
||||
"engines": {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,13 +4,11 @@
|
|||
export interface LoginParams {
|
||||
username: string;
|
||||
password: string;
|
||||
grant_type: string;
|
||||
}
|
||||
|
||||
export interface ThirdLoginParams {
|
||||
token: string;
|
||||
thirdType: string;
|
||||
grant_type: string;
|
||||
}
|
||||
|
||||
export interface RoleInfo {
|
||||
|
|
|
@ -13,7 +13,7 @@ import { ExceptionEnum } from "@/enums/exceptionEnum";
|
|||
const { createErrorModal } = useMessage();
|
||||
enum Api {
|
||||
Login = '/sys/login',
|
||||
phoneLogin = '/oauth2/token',
|
||||
phoneLogin = '/sys/phoneLogin',
|
||||
Logout = '/sys/logout',
|
||||
GetUserInfo = '/sys/user/getUserInfo',
|
||||
// 获取系统权限
|
||||
|
@ -36,7 +36,7 @@ enum Api {
|
|||
//修改密码
|
||||
passwordChange = '/sys/user/passwordChange',
|
||||
//第三方登录
|
||||
thirdLogin = '/oauth2/token',
|
||||
thirdLogin = '/sys/thirdLogin/getLoginUser',
|
||||
//第三方登录
|
||||
getThirdCaptcha = '/sys/thirdSms',
|
||||
//获取二维码信息
|
||||
|
@ -53,10 +53,6 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal')
|
|||
{
|
||||
url: Api.Login,
|
||||
params,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Basic amVlY2ctY2xpZW50OnNlY3JldA=='
|
||||
},
|
||||
},
|
||||
{
|
||||
errorMessageMode: mode,
|
||||
|
@ -72,13 +68,8 @@ export function phoneLoginApi(params: LoginParams, mode: ErrorMessageMode = 'mod
|
|||
{
|
||||
url: Api.phoneLogin,
|
||||
params,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Basic amVlY2ctY2xpZW50OnNlY3JldA=='
|
||||
},
|
||||
},
|
||||
{
|
||||
isTransformResponse: false,
|
||||
errorMessageMode: mode,
|
||||
}
|
||||
);
|
||||
|
@ -180,19 +171,12 @@ export function thirdLogin(params, mode: ErrorMessageMode = 'modal') {
|
|||
tenantId = params.tenantId;
|
||||
}
|
||||
//==========end 第三方登录/auth2登录需要传递租户id===========
|
||||
return defHttp.post<LoginResultModel>(
|
||||
return defHttp.get<LoginResultModel>(
|
||||
{
|
||||
url: `${Api.thirdLogin}`,
|
||||
params,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Basic amVlY2ctY2xpZW50OnNlY3JldA=='
|
||||
},
|
||||
url: `${Api.thirdLogin}/${params.token}/${params.thirdType}/${tenantId}`,
|
||||
},
|
||||
{
|
||||
isTransformResponse: false,
|
||||
errorMessageMode: mode,
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -151,7 +151,6 @@ export const useUserStore = defineStore({
|
|||
): Promise<GetUserInfoModel | null> {
|
||||
try {
|
||||
const { goHome = true, mode, ...loginParams } = params;
|
||||
loginParams.grant_type = 'password';
|
||||
const data = await loginApi(loginParams, mode);
|
||||
const { token, userInfo } = data;
|
||||
// save token
|
||||
|
@ -249,11 +248,10 @@ export const useUserStore = defineStore({
|
|||
): Promise<GetUserInfoModel | null> {
|
||||
try {
|
||||
const { goHome = true, mode, ...loginParams } = params;
|
||||
loginParams.grant_type = 'phone';
|
||||
const data = await phoneLoginApi(loginParams, mode);
|
||||
const { access_token } = data;
|
||||
const { token } = data;
|
||||
// save token
|
||||
this.setToken(access_token);
|
||||
this.setToken(token);
|
||||
return this.afterLoginAction(goHome, data);
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
|
@ -358,11 +356,10 @@ export const useUserStore = defineStore({
|
|||
): Promise<any | null> {
|
||||
try {
|
||||
const { goHome = true, mode, ...ThirdLoginParams } = params;
|
||||
ThirdLoginParams.grant_type = "social";
|
||||
const data = await thirdLogin(ThirdLoginParams, mode);
|
||||
const { access_token } = data;
|
||||
const { token } = data;
|
||||
// save token
|
||||
this.setToken(access_token);
|
||||
this.setToken(token);
|
||||
return this.afterLoginAction(goHome, data);
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
|
|
|
@ -165,7 +165,7 @@ const transform: AxiosTransform = {
|
|||
// update-end--author:liaozhiyang---date:20240509---for:【issues/1220】登录时,vue3版本不加载字典数据设置无效
|
||||
if (token && (config as Recordable)?.requestOptions?.withToken !== false) {
|
||||
// jwt token
|
||||
config.headers.Authorization = options.authenticationScheme ? `${options.authenticationScheme} ${token}` : 'Bearer ' + token;
|
||||
config.headers.Authorization = options.authenticationScheme ? `${options.authenticationScheme} ${token}` : token;
|
||||
config.headers[ConfigEnum.TOKEN] = token;
|
||||
|
||||
// 将签名和时间戳,添加在请求接口 Header
|
||||
|
|
|
@ -149,7 +149,6 @@
|
|||
username: data.account,
|
||||
captcha: data.inputCode,
|
||||
checkKey: randCodeData.checkKey,
|
||||
grant_type: 'password',
|
||||
mode: 'none', //不要默认的错误提示
|
||||
})
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue