diff --git a/.env b/.env
index 77cc403..2ce4490 100644
--- a/.env
+++ b/.env
@@ -2,10 +2,10 @@
VITE_PORT = 3100
# 网站标题
-VITE_GLOB_APP_TITLE = 后台管理系统
+VITE_GLOB_APP_TITLE = 艺体志愿宝 管理平台
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
-VITE_GLOB_APP_SHORT_NAME = JeecgBootAdmin
+VITE_GLOB_APP_SHORT_NAME = YitishengAdmin
# 单点登录服务端地址
VITE_GLOB_APP_CAS_BASE_URL=http://cas.test.com:8443/cas
diff --git a/.env.development b/.env.development
index d7894be..01a48a9 100644
--- a/.env.development
+++ b/.env.development
@@ -4,17 +4,14 @@ VITE_USE_MOCK = true
# 发布路径
VITE_PUBLIC_PATH = /
+
# 跨域代理,您可以配置多个 ,请注意,没有换行符
VITE_PROXY = [["/jeecgboot","http://localhost:8080/jeecg-boot"],["/upload","http://localhost:3300/upload"]]
-# 控制台不输出
-VITE_DROP_CONSOLE = false
-
-#后台接口父地址(必填)
-VITE_GLOB_API_URL=/jeecgboot
-
#后台接口全路径地址(必填)
-VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot
+VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot/
+#后台接口父地址(必填)
+VITE_GLOB_API_URL=http://localhost:8080/jeecg-boot/
# 接口前缀
VITE_GLOB_API_URL_PREFIX=
diff --git a/.env.production b/.env.production
index de33204..098787c 100644
--- a/.env.production
+++ b/.env.production
@@ -4,9 +4,6 @@ VITE_USE_MOCK = true
# 发布路径
VITE_PUBLIC_PATH = /
-# 控制台不输出
-VITE_DROP_CONSOLE = true
-
# 是否启用gzip或brotli压缩
# 选项值: gzip | brotli | none
# 如果需要多个可以使用“,”分隔
@@ -16,19 +13,10 @@ VITE_BUILD_COMPRESS = 'gzip'
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
#后台接口父地址(必填)
-VITE_GLOB_API_URL=/jeecgboot
-
+VITE_GLOB_API_URL=https://yitisheng.vip/jbttest
#后台接口全路径地址(必填)
-VITE_GLOB_DOMAIN_URL=http://jeecg-boot-system:8080/jeecg-boot
+VITE_GLOB_DOMAIN_URL=https://yitisheng.vip/jbttest
+
# 接口父路径前缀
VITE_GLOB_API_URL_PREFIX=
-
-# 是否启用图像压缩
-VITE_USE_IMAGEMIN= true
-
-# 使用pwa
-VITE_USE_PWA = false
-
-# 是否兼容旧浏览器
-VITE_LEGACY = false
diff --git a/.gitignore b/.gitignore
index a0b9717..6aef0f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@ pnpm-debug.log*
# Editor directories and files
.idea
+.svn
# .vscode
*.suo
*.ntvs*
@@ -29,6 +30,7 @@ pnpm-debug.log*
*.sln
*.sw?
/os_del.cmd
+os_del.cmd
/.vscode/
/.history/
/svn clear.bat
diff --git a/LICENSE b/LICENSE
index ea32b1c..7afdd65 100644
--- a/LICENSE
+++ b/LICENSE
@@ -23,7 +23,7 @@ SOFTWARE.
开源协议补充
- JeecgBoot 是由 北京敲敲云科技有限公司 发行的软件。 总部位于北京,地址:中国·北京·朝阳区科荟前街1号院奥林佳泰大厦。邮箱:jeecgos@163.com
+ JeecgBoot 是由 北京国炬信息技术有限公司 发行的软件。 总部位于北京,地址:中国·北京·朝阳区科荟前街1号院奥林佳泰大厦。邮箱:jeecgos@163.com
本软件受适用的国家软件著作权法(包括国际条约)和双重保护许可。
1.允许基于本平台软件开展业务系统开发。
@@ -32,4 +32,6 @@ SOFTWARE.
违反此条款属于侵权行为,须赔偿侵权经济损失,同时立即停止著作权侵权行为。
总结:在遵循Apache开源协议和开源协议补充条款下,允许商用使用,不会造成侵权行为!
- 解释权归:http://www.jeecg.com
+ 解释权归:
+ http://www.jeecg.com
+ http://guojusoft.com
diff --git a/README.md b/README.md
index 9f5dd48..aae3564 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,18 @@
JEECG BOOT 低代码开发平台(Vue3前端)
===============
-当前最新版本: 3.5.3(发布时间:2023-07-24)
+当前最新版本: 3.6.3(发布时间:2024-03-11)
[](https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE)
-[](http://www.jeecg.com)
+[](http://jeecg.com/aboutusIndex)
[](https://jeecg.blog.csdn.net)
-[](https://github.com/zhangdaiscott/jeecg-boot)
+[](https://github.com/zhangdaiscott/jeecg-boot)
[](https://github.com/zhangdaiscott/jeecg-boot)
[](https://github.com/zhangdaiscott/jeecg-boot)
## 简介
-JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue3、TypeScript 等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。
+JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue4、TypeScript 等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。
是采用Vben实现的 JeecgBoot低代码平台的全新vue3版本。
> 强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省成本,同时又不失灵活性
@@ -31,10 +31,10 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue3、TypeScript 等新技术
##### 项目说明
-| 项目名 | 说明 |
-|--------------------|------------------------|
-| `jeecgboot-vue3` | Vue3版前端代码 |
-| `jeecg-boot` | SpringBoot后台项目(支持微服务) |
+| 项目名 | 说明 |
+|--------------------|-----------------------------------------|
+| `jeecgboot-vue3` | 前端源码Vue3版下载 |
+| `jeecg-boot` | 后端JAVA源码下载(SpringBoot+SpringCloud) |
## 开发环境搭建
@@ -44,11 +44,11 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue3、TypeScript 等新技术
## 技术文档
-- 官方文档:[http://help.jeecg.com](http://help.jeecg.com)
-- 官方网站: [http://www.jeecg.com](http://www.jeecg.com)
+- 官方文档:[https://help.jeecg.com](https://help.jeecg.com)
+- 官方网站: [https://www.jeecg.com](https://www.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交流群:⑦791696430、683903138
-- 在线演示 : [Vue3演示](http://boot3.jeecg.com) | [Vue2演示](http://boot3.jeecg.com) | [APP演示](http://jeecg.com/appIndex)
+- QQ交流群:⑧825232878、⑦791696430(满)、683903138(满)
+- 在线演示 : [Vue3演示](http://boot3.jeecg.com) | [APP演示](http://jeecg.com/appIndex)| [敲敲云零代码](https://www.qiaoqiaoyun.com)
> 演示系统的登录账号密码,请点击 [获取账号密码](http://jeecg.com/doc/demo) 获取
diff --git a/build/generate/generateModifyVars.ts b/build/generate/generateModifyVars.ts
index 44670e2..705d339 100644
--- a/build/generate/generateModifyVars.ts
+++ b/build/generate/generateModifyVars.ts
@@ -1,11 +1,21 @@
-import { generateAntColors, primaryColor } from '../config/themeConfig';
-import { getThemeVariables } from 'ant-design-vue/dist/theme';
+import { primaryColor } from '../config/themeConfig';
+// import { getThemeVariables } from 'ant-design-vue/dist/theme';
import { resolve } from 'path';
+import { generate } from '@ant-design/colors';
+import { theme } from 'ant-design-vue/lib';
+import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken';
+const { defaultAlgorithm, defaultSeed } = theme;
+
+function generateAntColors(color: string, theme: 'default' | 'dark' = 'default') {
+ return generate(color, {
+ theme,
+ });
+}
/**
* less global variable
*/
-export function generateModifyVars(dark = false) {
+export function generateModifyVars() {
const palettes = generateAntColors(primaryColor);
const primary = palettes[5];
@@ -15,12 +25,14 @@ export function generateModifyVars(dark = false) {
primaryColorObj[`primary-${index + 1}`] = palettes[index];
}
- const modifyVars = getThemeVariables({ dark });
+ const mapToken = defaultAlgorithm(defaultSeed);
+ const v3Token = convertLegacyToken(mapToken);
return {
- ...modifyVars,
+ ...v3Token,
+ // ...modifyVars,
// Used for global import to avoid the need to import each style file separately
// reference: Avoid repeated references
- hack: `${modifyVars.hack} @import (reference) "${resolve('src/design/config.less')}";`,
+ hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
'primary-color': primary,
...primaryColorObj,
'info-color': primary,
diff --git a/build/script/buildConf.ts b/build/script/buildConf.ts
index 0c8089c..1892af3 100644
--- a/build/script/buildConf.ts
+++ b/build/script/buildConf.ts
@@ -1,5 +1,5 @@
/**
- * Generate additional configuration files when used for packaging. The file can be configured with some global variables, so that it can be changed directly externally without repackaging
+ * 生成外部配置文件,用于生产发布后配置,无需重新打包
*/
import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from '../constant';
import fs, { writeFileSync } from 'fs-extra';
diff --git a/build/vite/plugin/compress.ts b/build/vite/plugin/compress.ts
index 987f127..a76d3f8 100644
--- a/build/vite/plugin/compress.ts
+++ b/build/vite/plugin/compress.ts
@@ -13,6 +13,10 @@ export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none', delet
if (compressList.includes('gzip')) {
plugins.push(
compressPlugin({
+ verbose: true,
+ disable: false,
+ threshold: 10240,
+ algorithm: 'gzip',
ext: '.gz',
deleteOriginFile,
})
diff --git a/build/vite/plugin/html.ts b/build/vite/plugin/html.ts
index 6af034a..bf5b5a6 100644
--- a/build/vite/plugin/html.ts
+++ b/build/vite/plugin/html.ts
@@ -19,11 +19,11 @@ export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) {
const htmlPlugin: PluginOption[] = createHtmlPlugin({
minify: isBuild,
inject: {
- // Inject data into ejs template
+ // 修改模板html的标题
data: {
title: VITE_GLOB_APP_TITLE,
},
- // Embed the generated app.config.js file
+ // 将app.config.js文件注入到模板html中
tags: isBuild
? [
{
diff --git a/build/vite/plugin/imagemin.ts b/build/vite/plugin/imagemin.ts
index a023573..785b65a 100644
--- a/build/vite/plugin/imagemin.ts
+++ b/build/vite/plugin/imagemin.ts
@@ -1,3 +1,4 @@
+// 【图片压缩插件】
// Image resource files used to compress the output of the production environment
// https://github.com/anncwb/vite-plugin-imagemin
import viteImagemin from 'vite-plugin-imagemin';
diff --git a/build/vite/plugin/index.ts b/build/vite/plugin/index.ts
index 5362a89..25df01e 100644
--- a/build/vite/plugin/index.ts
+++ b/build/vite/plugin/index.ts
@@ -1,27 +1,26 @@
import { PluginOption } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
-import legacy from '@vitejs/plugin-legacy';
import purgeIcons from 'vite-plugin-purge-icons';
-import windiCSS from 'vite-plugin-windicss';
+import UnoCSS from 'unocss/vite';
+import { presetTypography, presetUno } from 'unocss';
+
+// 本地调试https配置方法
import VitePluginCertificate from 'vite-plugin-mkcert';
-//update-begin-author:liusq date:2023-06-06 for: [issues/555]开发环境,vscode断点调试,文件或行数对不上
+//[issues/555]开发环境,vscode断点调试,文件或行数对不上
import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus';
-//update-end-author:liusq date:2023-06-06 for: [issues/555]开发环境,vscode断点调试,文件或行数对不上
import { configHtmlPlugin } from './html';
-import { configPwaConfig } from './pwa';
import { configMockPlugin } from './mock';
import { configCompressPlugin } from './compress';
-import { configStyleImportPlugin } from './styleImport';
import { configVisualizerConfig } from './visualizer';
import { configThemePlugin } from './theme';
-import { configImageminPlugin } from './imagemin';
import { configSvgIconsPlugin } from './svgSprite';
-import OptimizationPersist from 'vite-plugin-optimize-persist'
-import PkgConfig from 'vite-plugin-package-config'
+// //预编译加载插件(不支持vite3作废)
+// import OptimizationPersist from 'vite-plugin-optimize-persist';
+// import PkgConfig from 'vite-plugin-package-config';
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
- const { VITE_USE_IMAGEMIN, VITE_USE_MOCK, VITE_LEGACY, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;
+ const { VITE_USE_MOCK, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;
const vitePlugins: (PluginOption | PluginOption[])[] = [
// have to
@@ -36,11 +35,7 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
}),
];
- // vite-plugin-windicss
- vitePlugins.push(windiCSS());
-
- // @vitejs/plugin-legacy
- VITE_LEGACY && isBuild && vitePlugins.push(legacy());
+ vitePlugins.push(UnoCSS({ presets: [presetUno(), presetTypography()] }));
// vite-plugin-html
vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
@@ -54,9 +49,6 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
// vite-plugin-purge-icons
vitePlugins.push(purgeIcons());
- // vite-plugin-style-import
- vitePlugins.push(configStyleImportPlugin(isBuild));
-
// rollup-plugin-visualizer
vitePlugins.push(configVisualizerConfig());
@@ -65,18 +57,14 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
// The following plugins only work in the production environment
if (isBuild) {
- // vite-plugin-imagemin
- VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin());
-
+
// rollup-plugin-gzip
vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE));
- // vite-plugin-pwa
- vitePlugins.push(configPwaConfig(viteEnv));
}
- //vite-plugin-theme【解决vite首次打开界面加载慢问题】
- vitePlugins.push(PkgConfig());
- vitePlugins.push(OptimizationPersist());
+ // //vite-plugin-theme【预编译加载插件,解决vite首次打开界面加载慢问题】
+ // vitePlugins.push(PkgConfig());
+ // vitePlugins.push(OptimizationPersist());
return vitePlugins;
}
diff --git a/build/vite/plugin/pwa.ts b/build/vite/plugin/pwa.ts
deleted file mode 100644
index a102cad..0000000
--- a/build/vite/plugin/pwa.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Zero-config PWA for Vite
- * https://github.com/antfu/vite-plugin-pwa
- * vite-plugin-pwa是vite的一个官方插件,它的功能就是通过简单的配置将你的vite项目变成pwa应用
- */
-import { VitePWA } from 'vite-plugin-pwa';
-
-export function configPwaConfig(env: ViteEnv) {
- const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env;
-
- if (VITE_USE_PWA) {
- // vite-plugin-pwa
- const pwaPlugin = VitePWA({
- manifest: {
- name: VITE_GLOB_APP_TITLE,
- short_name: VITE_GLOB_APP_SHORT_NAME,
- icons: [
- {
- src: './resource/img/pwa-192x192.png',
- sizes: '192x192',
- type: 'image/png',
- },
- {
- src: './resource/img/pwa-512x512.png',
- sizes: '512x512',
- type: 'image/png',
- },
- ],
- },
- });
- return pwaPlugin;
- }
- return [];
-}
diff --git a/build/vite/plugin/styleImport.ts b/build/vite/plugin/styleImport.ts
index da1499d..30d5874 100644
--- a/build/vite/plugin/styleImport.ts
+++ b/build/vite/plugin/styleImport.ts
@@ -1,4 +1,5 @@
/**
+ * 【样式按需加载插件 ——主要处理antd的样式】
* Introduces component library styles on demand.
* https://github.com/anncwb/vite-plugin-style-import
*/
diff --git a/build/vite/plugin/theme.ts b/build/vite/plugin/theme.ts
index f9a10c3..542769d 100644
--- a/build/vite/plugin/theme.ts
+++ b/build/vite/plugin/theme.ts
@@ -57,7 +57,7 @@ export function configThemePlugin(isBuild: boolean): PluginOption[] {
vite_theme_plugin,
antdDarkThemePlugin({
preloadFiles: [
- path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.less'),
+ // path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/reset.css'),
//path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.dark.less'),
path.resolve(process.cwd(), 'src/design/index.less'),
],
diff --git a/index.html b/index.html
index c80afd8..ef61a19 100644
--- a/index.html
+++ b/index.html
@@ -166,5 +166,16 @@
+
+
+