From 81442f7b8d433de04edf35fd2f6108d1713d7986 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Tue, 3 Feb 2026 10:23:18 +0800
Subject: [PATCH 01/13] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0README.zh-CN.md?=
=?UTF-8?q?=E7=9A=84=E5=88=86=E6=94=AF=E5=92=8C=E9=A2=84=E8=A7=88=E5=9C=B0?=
=?UTF-8?q?=E5=9D=80=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
更新分支说明,明确main、dev和antdv-next分支的定位和预览地址。
将代码生成模板的描述从“付费功能”修改为“不再放出,建议用AI照着抄”。
---
README.zh-CN.md | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 2fd05a224..002ad9745 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -32,11 +32,19 @@ V1.2.0版本对接warmflow工作流
admin 账号: admin admin123
-[预览地址点这里](http://vben5.dapdap.top)
+[dev分支预览](http://vben5.dapdap.top)
-## WX Group
+[antdv-next分支预览](http://antdv-next.dapdap.top)
-演示站 - 微信群菜单
+## 分支说明
+
+- `main` 主分支 稳定分支(基于ant-design-vue)
+- `dev` 开发分支 包含前端/后端新功能 没问题后合并到`main`分支(基于ant-design-vue) [预览地址](http://vben5.dapdap.top)
+- `antdv-next`分支 使用`antdv-next`替换已经不维护的`ant-design-vue` 分支 且包含破坏性更新 (基于antv-next) [预览地址](http://antdv-next.dapdap.top)
+
+antdv-next开发完毕且测试正常后 会作为主分支更新(v2) 原先基于`ant-design-vue`的版本会作为归档(v1)
+
+antdv-next目前为阿尔法版本
## 文档
@@ -82,7 +90,7 @@ pnpm install
- 关于代码生成
-V5版本代码生成模板为付费功能 [详见](https://dapdap.top/other/template.html)
+原先为付费功能 现由于某些原因不再放出 建议用AI照着抄 [详见](https://dapdap.top/other/template.html)
- 关于一些监控的地址配置(微服务版本可以跳过这一小节)
From 87a2071dabe120ed2c225370df083cc845f929a3 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Tue, 3 Feb 2026 10:24:43 +0800
Subject: [PATCH 02/13] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20CHANGELOG.md?=
=?UTF-8?q?=20=E4=B8=BA=E7=89=88=E6=9C=AC=201.5.3=20=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=E5=86=85=E5=AE=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
更新版本号至 1.5.3 并添加版本说明,明确对应后端版本及更新性质为纯前端更新
---
CHANGELOG.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 621a4324d..ca8dfa0b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,8 @@
-# 1.5.3-dev
+# 1.5.3
-dev中 未发布
+对应后端版本 单体/微服务: 5.5.3/2.5.3(向后兼容5.5.x版本)
+
+全是纯前端更新 没有后端功能变动
**REFACTOR**
From 78f6a6a3f2dd66da761ab4fd5440af2ee221c6ba Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Tue, 3 Feb 2026 10:25:43 +0800
Subject: [PATCH 03/13] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?=
=?UTF-8?q?=E8=B5=96=E7=89=88=E6=9C=AC=E5=B9=B6=E8=BF=81=E7=A7=BB=E8=87=B3?=
=?UTF-8?q?pnpm=20catalog=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
将多个依赖从固定版本号迁移至pnpm catalog统一管理,提升依赖一致性
移除未使用的UI框架依赖(element-plus、naive-ui、tdesign-vue-next)
为echarts添加冲突解决配置以支持特定版本需求
---
apps/web-antd/package.json | 20 ++++++++++----------
pnpm-workspace.yaml | 15 +++++++++++----
2 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json
index c8df8b2e5..40bf10ad7 100644
--- a/apps/web-antd/package.json
+++ b/apps/web-antd/package.json
@@ -1,6 +1,6 @@
{
"name": "@vben/web-antd",
- "version": "1.5.2",
+ "version": "1.5.3",
"homepage": "https://vben.pro",
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
"repository": {
@@ -27,8 +27,8 @@
"#/*": "./src/*"
},
"dependencies": {
- "@ant-design/icons-vue": "^7.0.1",
- "@tinymce/tinymce-vue": "^6.0.1",
+ "@ant-design/icons-vue": "catalog:",
+ "@tinymce/tinymce-vue": "catalog:",
"@vben/access": "workspace:*",
"@vben/common-ui": "workspace:*",
"@vben/constants": "workspace:*",
@@ -45,18 +45,18 @@
"@vben/utils": "workspace:*",
"@vueuse/core": "catalog:",
"ant-design-vue": "catalog:",
- "cropperjs": "^1.6.2",
+ "cropperjs": "catalog:",
"dayjs": "catalog:",
- "echarts": "^5.5.1",
- "lodash-es": "^4.17.21",
+ "echarts": "catalog:conflicts_echarts_h5_5_1",
+ "lodash-es": "catalog:",
"pinia": "catalog:",
- "tinymce": "7.9.1",
- "unplugin-vue-components": "^0.27.3",
+ "tinymce": "catalog:",
+ "unplugin-vue-components": "catalog:",
"vue": "catalog:",
"vue-router": "catalog:",
- "vue3-colorpicker": "^2.3.0"
+ "vue3-colorpicker": "catalog:"
},
"devDependencies": {
- "@types/lodash-es": "^4.17.12"
+ "@types/lodash-es": "catalog:"
}
}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 0460629b8..77290f46c 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -23,6 +23,7 @@ overrides:
vue: 'catalog:'
catalog:
+ '@ant-design/icons-vue': ^7.0.1
'@ast-grep/napi': ^0.39.9
'@changesets/changelog-github': ^0.5.2
'@changesets/cli': ^2.29.8
@@ -48,11 +49,13 @@ catalog:
'@tailwindcss/typography': ^0.5.19
'@tanstack/vue-query': ^5.92.9
'@tanstack/vue-store': ^0.8.0
+ '@tinymce/tinymce-vue': ^6.0.1
'@types/archiver': ^6.0.4
'@types/eslint': ^9.6.1
'@types/html-minifier-terser': ^7.0.2
'@types/json-bigint': ^1.0.4
'@types/jsonwebtoken': ^9.0.10
+ '@types/lodash-es': ^4.17.12
'@types/lodash.clonedeep': ^4.5.9
'@types/node': ^24.10.9
'@types/nprogress': ^0.2.3
@@ -84,6 +87,7 @@ catalog:
clsx: ^2.1.1
commitlint-plugin-function-rules: ^4.3.1
consola: ^3.4.2
+ cropperjs: ^1.6.2
cross-env: ^10.1.0
cspell: ^9.6.2
cssnano: ^7.1.2
@@ -94,7 +98,6 @@ catalog:
depcheck: ^1.4.7
dotenv: ^16.6.1
echarts: ^6.0.0
- element-plus: ^2.13.1
es-toolkit: ^1.44.0
esbuild: ^0.25.12
eslint: ^9.39.2
@@ -128,10 +131,10 @@ catalog:
jsonc-eslint-parser: ^2.4.2
jsonwebtoken: ^9.0.3
lefthook: ^2.0.16
+ lodash-es: ^4.17.21
lodash.clonedeep: ^4.5.0
lucide-vue-next: ^0.553.0
medium-zoom: ^1.1.0
- naive-ui: ^2.43.2
nitropack: ^2.13.1
nprogress: ^0.2.0
ora: ^8.2.0
@@ -170,13 +173,13 @@ catalog:
tailwind-merge: ^2.6.0
tailwindcss: ^3.4.19
tailwindcss-animate: ^1.0.7
- tdesign-vue-next: ^1.18.0
theme-colors: ^0.1.0
+ tinymce: 7.9.1
tippy.js: ^6.3.7
turbo: ^2.7.6
typescript: ^5.9.3
unbuild: ^3.6.1
- unplugin-element-plus: ^0.11.2
+ unplugin-vue-components: ^0.27.3
vee-validate: ^4.15.1
vite: ^7.3.1
vite-plugin-compression: ^0.5.1
@@ -195,9 +198,13 @@ catalog:
vue-router: ^4.6.4
vue-tippy: ^6.7.1
vue-tsc: ^3.2.4
+ vue3-colorpicker: ^2.3.0
vxe-pc-ui: ^4.12.16
vxe-table: ^4.17.46
watermark-js-plus: ^1.6.3
yaml-eslint-parser: ^1.3.2
zod: ^3.25.76
zod-defaults: 0.1.3
+catalogs:
+ conflicts_echarts_h5_5_1:
+ echarts: ^5.5.1
From c139228d9b123fa084efc8d2faa4697f78213685 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Tue, 3 Feb 2026 14:36:43 +0800
Subject: [PATCH 04/13] =?UTF-8?q?chore:=20=E9=94=81=E5=AE=9A=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=20=20vxe=E6=89=93=E5=8C=85=E4=B8=A2=E5=A4=B1css?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pnpm-workspace.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 77290f46c..480661090 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -199,7 +199,7 @@ catalog:
vue-tippy: ^6.7.1
vue-tsc: ^3.2.4
vue3-colorpicker: ^2.3.0
- vxe-pc-ui: ^4.12.16
+ vxe-pc-ui: 4.12.16
vxe-table: ^4.17.46
watermark-js-plus: ^1.6.3
yaml-eslint-parser: ^1.3.2
From 0a83a9adf93439c47b4b8752637e5d58be5e35bb Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Tue, 3 Feb 2026 19:21:09 +0800
Subject: [PATCH 05/13] =?UTF-8?q?fix(upload):=20=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=A7=E5=B0=8F=E6=A0=A1=E9=AA=8C=E5=A4=B1?=
=?UTF-8?q?=E8=B4=A5=E5=90=8E=E4=BB=8D=E8=A2=AB=E5=8A=A0=E5=85=A5=E5=88=97?=
=?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
通过返回 Upload.LIST_IGNORE 替代 false,防止不符合大小限制的文件被加入上传文件列表,解决 Safari 浏览器兼容性问题。
---
apps/web-antd/src/components/upload/src/hook.ts | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/apps/web-antd/src/components/upload/src/hook.ts b/apps/web-antd/src/components/upload/src/hook.ts
index f74515188..3fed8c8b4 100644
--- a/apps/web-antd/src/components/upload/src/hook.ts
+++ b/apps/web-antd/src/components/upload/src/hook.ts
@@ -22,7 +22,7 @@ import { computed, onUnmounted, ref, watch } from 'vue';
import { $t } from '@vben/locales';
-import { message, Modal } from 'ant-design-vue';
+import { message, Modal, Upload } from 'ant-design-vue';
import { isFunction, isString } from 'lodash-es';
import { ossInfo } from '#/api/system/oss';
@@ -271,7 +271,8 @@ export function useUpload(
const isLtMax = file.size / 1024 / 1024 < props.maxSize!;
if (!isLtMax) {
message.error($t('component.upload.maxSize', [props.maxSize]));
- return false;
+ // 防止被加入文件列表 可以通过返回 Upload.LIST_IGNORE 实现。
+ return Upload.LIST_IGNORE;
}
// 大坑 Safari不支持file-type库 去除文件类型的校验
return file;
From 102f46fa6d89eb3b4f1f95172ac0e69f6cc8b4d3 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Fri, 13 Mar 2026 10:37:25 +0800
Subject: [PATCH 06/13] =?UTF-8?q?docs:=20=E5=88=A0=E9=99=A4=E6=97=A5?=
=?UTF-8?q?=E8=AF=ADREADME=E5=B9=B6=E6=9B=B4=E6=96=B0=E4=B8=BBREADME?=
=?UTF-8?q?=E4=B8=BA=E4=B8=AD=E6=96=87=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
删除 README.ja-JP.md 和 README.zh-CN.md 文件,将主 README.md 内容替换为中文版本。
更新内容以反映项目是基于 vben5 的 RuoYi-Vue-Plus 前端,并包含版本说明、安装指南和配置信息。
---
README.ja-JP.md | 157 ------------------------------
README.md | 254 +++++++++++++++++++++++++++---------------------
README.zh-CN.md | 193 ------------------------------------
3 files changed, 145 insertions(+), 459 deletions(-)
delete mode 100644 README.ja-JP.md
delete mode 100644 README.zh-CN.md
diff --git a/README.ja-JP.md b/README.ja-JP.md
deleted file mode 100644
index 4ce285a74..000000000
--- a/README.ja-JP.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-[](LICENSE)
-
-
Vue Vben Admin
-
-
-[](https://sonarcloud.io/summary/new_code?id=vbenjs_vue-vben-admin)    
-
-**日本語** | [English](./README.md) | [中文](./README.zh-CN.md)
-
-## 紹介
-
-Vue Vben Adminは、最新の`vue3`、`vite`、`TypeScript`などの主流技術を使用して開発された、無料でオープンソースの中・後端テンプレートです。すぐに使える中・後端のフロントエンドソリューションとして、学習の参考にもなります。
-
-## アップグレード通知
-
-これは最新バージョン `5.0` であり、以前のバージョンとは互換性がありません。新しいプロジェクトを開始する場合は、最新バージョンを使用することをお勧めします。古いバージョンを表示したい場合は、[v2ブランチ](https://github.com/vbenjs/vue-vben-admin/tree/v2)を使用してください。
-
-## 特徴
-
-- **最新技術スタック**:Vue 3やViteなどの最先端フロントエンド技術で開発
-- **TypeScript**:アプリケーション規模のJavaScriptのための言語
-- **テーマ**:複数のテーマカラーが利用可能で、カスタマイズオプションも豊富
-- **国際化**:完全な内蔵国際化サポート
-- **権限管理**:動的ルートベースの権限生成ソリューションを内蔵
-
-## プレビュー
-
-- [Vben Admin](https://vben.pro/) - フルバージョンの中国語サイト
-
-テストアカウント:vben/123456
-
-
-
-### Gitpodを使用
-
-Gitpod(GitHub用の無料オンライン開発環境)でプロジェクトを開き、すぐにコーディングを開始します。
-
-[](https://gitpod.io/#https://github.com/vbenjs/vue-vben-admin)
-
-## ドキュメント
-
-[ドキュメント](https://doc.vben.pro/)
-
-## インストールと使用
-
-1. プロジェクトコードを取得
-
-```bash
-git clone https://github.com/vbenjs/vue-vben-admin.git
-```
-
-2. 依存関係のインストール
-
-```bash
-cd vue-vben-admin
-npm i -g corepack
-pnpm install
-```
-
-3. 実行
-
-```bash
-pnpm dev
-```
-
-4. ビルド
-
-```bash
-pnpm build
-```
-
-## 変更ログ
-
-[CHANGELOG](https://github.com/vbenjs/vue-vben-admin/releases)
-
-## 貢献方法
-
-ご参加をお待ちしておりますするか、Pull Requestを送信してください。
-
-**Pull Request プロセス:**
-
-1. コードをフォーク
-2. 自分のブランチを作成:`git checkout -b feat/xxxx`
-3. 変更をコミット:`git commit -am 'feat(function): add xxxxx'`
-4. ブランチをプッシュ:`git push origin feat/xxxx`
-5. `pull request`を送信
-
-## Git貢献提出規則
-
-参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 規則 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-
-- `feat` 新機能の追加
-- `fix` 問題/バグの修正
-- `style` コードスタイルに関連し、実行結果に影響しない
-- `perf` 最適化/パフォーマンス向上
-- `refactor` リファクタリング
-- `revert` 変更の取り消し
-- `test` テスト関連
-- `docs` ドキュメント/注釈
-- `chore` 依存関係の更新/スキャフォールディング設定の変更など
-- `ci` 継続的インテグレーション
-- `types` 型定義ファイルの変更
-
-## ブラウザサポート
-
-ローカル開発には `Chrome 80+` ブラウザを推奨します
-
-モダンブラウザをサポートし、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 |
-| :-: | :-: | :-: | :-: |
-| 最新2バージョン | 最新2バージョン | 最新2バージョン | 最新2バージョン |
-
-## メンテナー
-
-[@Vben](https://github.com/anncwb)
-
-## スター歴史
-
-[](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## 寄付
-
-このプロジェクトが役に立つと思われた場合、作者にコーヒーを一杯おごってサポートを示すことができます!
-
-
-
-Paypal Me
-
-## 貢献者
-
-
-
-
-
-
-
-
-
-## Discord
-
-- [Github Discussions](https://github.com/anncwb/vue-vben-admin/discussions)
-
-## ライセンス
-
-[MIT © Vben-2020](./LICENSE)
diff --git a/README.md b/README.md
index ce8e89758..a833c5457 100644
--- a/README.md
+++ b/README.md
@@ -1,157 +1,193 @@
-
-
-
-
-
-
-
[](LICENSE)
-
Vue Vben Admin
-
+## 置顶说明
-[](https://sonarcloud.io/summary/new_code?id=vbenjs_vue-vben-admin) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/codeql.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/build.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/ci.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/deploy.yml)
+傻逼GITEE在没有任何通知/说明的情况将仓库设置为私有 你以为我会去问你原因?? 直接不用你了好吧
-**English** | [中文](./README.zh-CN.md) | [日本語](./README.ja-JP.md)
+## 提示
-## Introduction
+该仓库使用vben最新版本v5开发
-Vue Vben Admin is a free and open source middle and back-end template. Using the latest `vue3`, `vite`, `TypeScript` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
+v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
-## Upgrade Notice
+目前对应后端版本: **分布式5.5.1/微服务2.5.1**
-This is the latest version, 5.0, and it is not compatible with previous versions. If you are starting a new project, it is recommended to use the latest version. If you wish to view the old version, please use the [v2 branch](https://github.com/vbenjs/vue-vben-admin/tree/v2).
+V1.1.0版本已支持离线图标
-## Features
+V1.2.0版本对接warmflow工作流
-- **Latest Technology Stack**: Developed with cutting-edge front-end technologies like Vue 3 and Vite
-- **TypeScript**: A language for application-scale JavaScript
-- **Themes**: Multiple theme colors available with customizable options
-- **Internationalization**: Comprehensive built-in internationalization support
-- **Permissions**: Built-in solution for dynamic route-based permission generation
+## 简介
-## Preview
+基于 [vben5 & ant-design-vue](https://github.com/vbenjs/vue-vben-admin) 的 RuoYi-Vue-Plus 前端项目
-- [Vben Admin](https://vben.pro/) - Full version Chinese site
+| 组件/框架 | 版本 |
+| :------------- | :----- |
+| vben | 5.5.9 |
+| ant-design-vue | 4.2.6 |
+| vue | 3.5.13 |
-Test Account: vben/123456
+对应后端项目: **(分布式 5.X 分支 微服务 2.分支)**
-
+分布式 [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus/tree/5.X/)
-### Use Gitpod
+微服务 [RuoYi-Cloud-Plus](https://gitee.com/dromara/RuoYi-Cloud-Plus/tree/2.X/)
-Open the project in Gitpod (free online dev environment for GitHub) and start coding immediately.
+## 预览
-[](https://gitpod.io/#https://github.com/vbenjs/vue-vben-admin)
+admin 账号: admin admin123
-## Documentation
+[dev分支预览](http://vben5.dapdap.top)
-[Document](https://doc.vben.pro/)
+[antdv-next分支预览](http://antdv-next.dapdap.top)
-## Install and Use
+## 分支说明
-1. Get the project code
+- `main` 主分支 稳定分支(基于ant-design-vue)
+- `dev` 开发分支 包含前端/后端新功能 没问题后合并到`main`分支(基于ant-design-vue) [预览地址](http://vben5.dapdap.top)
+- `antdv-next`分支 使用`antdv-next`替换已经不维护的`ant-design-vue` 分支 且包含破坏性更新 (基于antv-next) [预览地址](http://antdv-next.dapdap.top)
-```bash
-git clone https://github.com/vbenjs/vue-vben-admin.git
+antdv-next开发完毕且测试正常后 会作为主分支更新(v2) 原先基于`ant-design-vue`的版本会作为归档(v1)
+
+antdv-next目前为阿尔法版本
+
+## 文档
+
+[本框架文档 强烈建议阅读](https://dapdap.top/)
+
+[Vben V5 文档地址](https://doc.vben.pro/)
+
+[RuoYi-Plus 文档地址](https://plus-doc.dromara.org/#/)
+
+## 预览图
+
+        
+
+## 安装使用
+
+前置准备环境(只能用pnpm)
+
+```json
+"packageManager": "pnpm",
+"engines": {
+ "node": ">=20.15.0",
+ "pnpm": "latest"
+},
```
-2. Install dependencies
+- 获取项目代码
```bash
-cd vue-vben-admin
-npm i -g corepack
+git clone https://github.com/imdap/ruoyi-plus-vben5.git
+```
+
+2. 安装依赖
+
+```bash
+cd ruoyi-plus-vben5
+
pnpm install
```
-3. Run
+- 菜单图标替换
-```bash
-pnpm dev
+参考 [菜单图标替换](https://dapdap.top/guide/quick-start.html#%E8%8F%9C%E5%8D%95%E5%9B%BE%E6%A0%87%E5%AF%BC%E5%85%A5)
+
+- 关于一些监控的地址配置(微服务版本可以跳过这一小节)
+
+使用[RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus/tree/5.X/)注意 `已经去除 admin/snailjob 的.env 配置` 可自行修改 有两种方式
+
+1. 修改源码`/views/monitor/admin` `views/monitor/snailjob`
+
+```html
+
+
+
+
```
-4. Build
+2. **推荐** 使用菜单自行配置 (跟 cloud 版本打开方式一致)
-```bash
-pnpm build
+
+
+使用内嵌 iframe 方式需要解决跨域问题 可参考[nginx.conf](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/5.X/script/docker/nginx/conf/nginx.conf#LC87)配置
+
+- 修改.env.development 配置文件
+- **注意 RSA 公私钥一定要修改和后端匹配**
+- RSA 公私钥为两对 `前端请求加密-后端解密是一对` `后端响应加密 前端解密是一对`
+
+```properties
+# 端口号
+VITE_PORT=5666
+# 打包路径
+VITE_BASE=/
+# 是否开启 Nitro Mock服务,true 为开启,false 为关闭
+VITE_NITRO_MOCK=false
+# 是否打开 devtools,true 为打开,false 为关闭
+VITE_DEVTOOLS=false
+# 是否注入全局loading
+VITE_INJECT_APP_LOADING=true
+
+# 后台请求路径 具体在vite.config.mts配置代理
+VITE_GLOB_API_URL=/api
+# 全局加密开关(即开启了加解密功能才会生效 不是全部接口加密 需要和后端对应)
+VITE_GLOB_ENABLE_ENCRYPT=true
+# RSA公钥 请求加密使用 注意这两个是两对RSA公私钥 请求加密-后端解密是一对 响应解密-后端加密是一对
+VITE_GLOB_RSA_PUBLIC_KEY=
+# RSA私钥 响应解密使用 注意这两个是两对RSA公私钥 请求加密-后端解密是一对 响应解密-后端加密是一对
+VITE_GLOB_RSA_PRIVATE_KEY=
+# 客户端id
+VITE_GLOB_APP_CLIENT_ID=e5cd7e4891bf95d1d19206ce24a7b32e
+# 开启WEBSOCKET
+VITE_GLOB_WEBSOCKET_ENABLE=false
```
-## Change Log
+- 运行
-[CHANGELOG](https://github.com/vbenjs/vue-vben-admin/releases)
+```bash
+pnpm dev:antd
+```
-## How to Contribute
+4. 打包
-You are very welcome to join! [Raise an issue](https://github.com/anncwb/vue-vben-admin/issues/new/choose) or submit a Pull Request.
+```bash
+pnpm build:antd
+```
-**Pull Request Process:**
+## 这是一个特性 而不是一个bug!
-1. Fork the code
-2. Create your branch: `git checkout -b feat/xxxx`
-3. Submit your changes: `git commit -am 'feat(function): add xxxxx'`
-4. Push your branch: `git push origin feat/xxxx`
-5. Submit `pull request`
+1. 菜单管理可分配 但只有`admin`/`superadmin`角色能访问 其他角色访问会到403页面
+2. 租户相关菜单可分配 但只有`superadmin`角色能访问 其他角色访问会到403页面
+3. 分配的租户管理员无法修改自己的角色的菜单(即管理员角色的菜单) 防止自己把自己权限弄没了
-## Git Contribution Submission Specification
+## Git 贡献提交规范
-Reference [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specification ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
+参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-- `feat` Add new features
-- `fix` Fix the problem/BUG
-- `style` The code style is related and does not affect the running result
-- `perf` Optimization/performance improvement
-- `refactor` Refactor
-- `revert` Undo edit
-- `test` Test related
-- `docs` Documentation/notes
-- `chore` Dependency update/scaffolding configuration modification etc.
-- `ci` Continuous integration
-- `types` Type definition file changes
+- `feat` 增加新功能
+- `fix` 修复问题/BUG
+- `style` 代码风格相关无影响运行结果的
+- `perf` 优化/性能提升
+- `refactor` 重构
+- `revert` 撤销修改
+- `test` 测试相关
+- `docs` 文档/注释
+- `chore` 依赖更新/脚手架配置修改等
+- `workflow` 工作流改进
+- `ci` 持续集成
+- `types` 类型定义文件更改
+- `wip` 开发中
-## Browser Support
+## 浏览器支持
-The `Chrome 80+` browser is recommended for local development
+最低适配应该为`Chrome 88+`以上浏览器 详见 [css - where](https://developer.mozilla.org/en-US/docs/Web/CSS/:where#browser_compatibility)
-Support modern browsers, not IE
+本地开发推荐使用`Chrome` 最新版本浏览器
-| [ ](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 |
-| :-: | :-: | :-: | :-: |
-| last 2 versions | last 2 versions | last 2 versions | last 2 versions |
+支持现代浏览器,不支持 IE
-## Maintainer
-
-[@Vben](https://github.com/anncwb)
-
-## Star History
-
-[](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## Donate
-
-If you think this project is helpful to you, you can help the author buy a cup of coffee to show your support!
-
-
-
-Paypal Me
-
-## Contributors
-
-
-
-
-
-
-
-
-
-## Discord
-
-- [Github Discussions](https://github.com/anncwb/vue-vben-admin/discussions)
-
-## License
-
-[MIT © Vben-2020](./LICENSE)
+| [ ](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 |
diff --git a/README.zh-CN.md b/README.zh-CN.md
deleted file mode 100644
index 002ad9745..000000000
--- a/README.zh-CN.md
+++ /dev/null
@@ -1,193 +0,0 @@
-[](LICENSE)
-
-## 提示
-
-该仓库使用vben最新版本v5开发
-
-v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
-
-目前对应后端版本: **分布式5.5.1/微服务2.5.1**
-
-V1.1.0版本已支持离线图标
-
-V1.2.0版本对接warmflow工作流
-
-## 简介
-
-基于 [vben5 & ant-design-vue](https://github.com/vbenjs/vue-vben-admin) 的 RuoYi-Vue-Plus 前端项目
-
-| 组件/框架 | 版本 |
-| :------------- | :----- |
-| vben | 5.5.9 |
-| ant-design-vue | 4.2.6 |
-| vue | 3.5.13 |
-
-对应后端项目: **(分布式 5.X 分支 微服务 2.分支)**
-
-分布式 [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus/tree/5.X/)
-
-微服务 [RuoYi-Cloud-Plus](https://gitee.com/dromara/RuoYi-Cloud-Plus/tree/2.X/)
-
-## 预览
-
-admin 账号: admin admin123
-
-[dev分支预览](http://vben5.dapdap.top)
-
-[antdv-next分支预览](http://antdv-next.dapdap.top)
-
-## 分支说明
-
-- `main` 主分支 稳定分支(基于ant-design-vue)
-- `dev` 开发分支 包含前端/后端新功能 没问题后合并到`main`分支(基于ant-design-vue) [预览地址](http://vben5.dapdap.top)
-- `antdv-next`分支 使用`antdv-next`替换已经不维护的`ant-design-vue` 分支 且包含破坏性更新 (基于antv-next) [预览地址](http://antdv-next.dapdap.top)
-
-antdv-next开发完毕且测试正常后 会作为主分支更新(v2) 原先基于`ant-design-vue`的版本会作为归档(v1)
-
-antdv-next目前为阿尔法版本
-
-## 文档
-
-[本框架文档 强烈建议阅读](https://dapdap.top/)
-
-[Vben V5 文档地址](https://doc.vben.pro/)
-
-[RuoYi-Plus 文档地址](https://plus-doc.dromara.org/#/)
-
-## 预览图
-
-        
-
-## 安装使用
-
-前置准备环境(只能用pnpm)
-
-```json
-"packageManager": "pnpm",
-"engines": {
- "node": ">=20.15.0",
- "pnpm": "latest"
-},
-```
-
-- 获取项目代码
-
-```bash
-git clone https://gitee.com/dapppp/ruoyi-plus-vben5.git
-```
-
-2. 安装依赖
-
-```bash
-cd ruoyi-plus-vben5
-
-pnpm install
-```
-
-- 菜单图标替换
-
-参考 [菜单图标替换](https://dapdap.top/guide/quick-start.html#%E8%8F%9C%E5%8D%95%E5%9B%BE%E6%A0%87%E5%AF%BC%E5%85%A5)
-
-- 关于代码生成
-
-原先为付费功能 现由于某些原因不再放出 建议用AI照着抄 [详见](https://dapdap.top/other/template.html)
-
-- 关于一些监控的地址配置(微服务版本可以跳过这一小节)
-
-使用[RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus/tree/5.X/)注意 `已经去除 admin/snailjob 的.env 配置` 可自行修改 有两种方式
-
-1. 修改源码`/views/monitor/admin` `views/monitor/snailjob`
-
-```html
-
-
-
-
-```
-
-2. **推荐** 使用菜单自行配置 (跟 cloud 版本打开方式一致)
-
-
-
-使用内嵌 iframe 方式需要解决跨域问题 可参考[nginx.conf](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/5.X/script/docker/nginx/conf/nginx.conf#LC87)配置
-
-- 修改.env.development 配置文件
-- **注意 RSA 公私钥一定要修改和后端匹配**
-- RSA 公私钥为两对 `前端请求加密-后端解密是一对` `后端响应加密 前端解密是一对`
-
-```properties
-# 端口号
-VITE_PORT=5666
-# 打包路径
-VITE_BASE=/
-# 是否开启 Nitro Mock服务,true 为开启,false 为关闭
-VITE_NITRO_MOCK=false
-# 是否打开 devtools,true 为打开,false 为关闭
-VITE_DEVTOOLS=false
-# 是否注入全局loading
-VITE_INJECT_APP_LOADING=true
-
-# 后台请求路径 具体在vite.config.mts配置代理
-VITE_GLOB_API_URL=/api
-# 全局加密开关(即开启了加解密功能才会生效 不是全部接口加密 需要和后端对应)
-VITE_GLOB_ENABLE_ENCRYPT=true
-# RSA公钥 请求加密使用 注意这两个是两对RSA公私钥 请求加密-后端解密是一对 响应解密-后端加密是一对
-VITE_GLOB_RSA_PUBLIC_KEY=
-# RSA私钥 响应解密使用 注意这两个是两对RSA公私钥 请求加密-后端解密是一对 响应解密-后端加密是一对
-VITE_GLOB_RSA_PRIVATE_KEY=
-# 客户端id
-VITE_GLOB_APP_CLIENT_ID=e5cd7e4891bf95d1d19206ce24a7b32e
-# 开启WEBSOCKET
-VITE_GLOB_WEBSOCKET_ENABLE=false
-```
-
-- 运行
-
-```bash
-pnpm dev:antd
-```
-
-4. 打包
-
-```bash
-pnpm build:antd
-```
-
-## 这是一个特性 而不是一个bug!
-
-1. 菜单管理可分配 但只有`admin`/`superadmin`角色能访问 其他角色访问会到403页面
-2. 租户相关菜单可分配 但只有`superadmin`角色能访问 其他角色访问会到403页面
-3. 分配的租户管理员无法修改自己的角色的菜单(即管理员角色的菜单) 防止自己把自己权限弄没了
-
-## Git 贡献提交规范
-
-参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-
-- `feat` 增加新功能
-- `fix` 修复问题/BUG
-- `style` 代码风格相关无影响运行结果的
-- `perf` 优化/性能提升
-- `refactor` 重构
-- `revert` 撤销修改
-- `test` 测试相关
-- `docs` 文档/注释
-- `chore` 依赖更新/脚手架配置修改等
-- `workflow` 工作流改进
-- `ci` 持续集成
-- `types` 类型定义文件更改
-- `wip` 开发中
-
-## 浏览器支持
-
-最低适配应该为`Chrome 88+`以上浏览器 详见 [css - where](https://developer.mozilla.org/en-US/docs/Web/CSS/:where#browser_compatibility)
-
-本地开发推荐使用`Chrome` 最新版本浏览器
-
-支持现代浏览器,不支持 IE
-
-| [ ](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 |
From 260260e68731385b6327fadf7f309978954966b6 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Fri, 13 Mar 2026 10:53:00 +0800
Subject: [PATCH 07/13] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=E6=89=80?=
=?UTF-8?q?=E6=9C=89=20GitHub=20=E5=92=8C=20Gitee=20=E5=B9=B3=E5=8F=B0?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
这些配置文件(包括 issue 模板、CI/CD 工作流、社区规范等)是特定于平台(GitHub/Gitee)的,与核心代码库功能无关。移除它们可以简化项目结构,避免维护多个平台的配置,并专注于核心代码开发。
---
.gitee/ISSUE_TEMPLATE/bug.yml | 50 ------
.gitee/ISSUE_TEMPLATE/config.yml | 1 -
.gitee/ISSUE_TEMPLATE/feature.yml | 43 -----
.github/CODEOWNERS | 14 --
.github/actions/setup-node/action.yml | 40 -----
.github/commit-convention.md | 89 ----------
.github/config.yml | 39 -----
.github/contributing.md | 40 -----
.github/dependabot.yml | 17 --
.github/pull_request_template.md | 33 ----
.github/release-drafter.yml | 61 -------
.github/semantic.yml | 13 --
.github/workflows/build.yml | 48 ------
.github/workflows/changeset-version.yml | 42 -----
.github/workflows/ci.yml | 125 --------------
.github/workflows/codeql.yml | 94 -----------
.github/workflows/deploy.yml | 172 --------------------
.github/workflows/draft.yml | 25 ---
.github/workflows/issue-close-require.yml | 31 ----
.github/workflows/issue-labeled.yml | 46 ------
.github/workflows/lock.yml | 24 ---
.github/workflows/release-tag.yml | 80 ---------
.github/workflows/rerun.yml | 19 ---
.github/workflows/semantic-pull-request.yml | 41 -----
.github/workflows/stale.yml | 19 ---
25 files changed, 1206 deletions(-)
delete mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml
delete mode 100644 .gitee/ISSUE_TEMPLATE/config.yml
delete mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml
delete mode 100644 .github/CODEOWNERS
delete mode 100644 .github/actions/setup-node/action.yml
delete mode 100644 .github/commit-convention.md
delete mode 100644 .github/config.yml
delete mode 100644 .github/contributing.md
delete mode 100644 .github/dependabot.yml
delete mode 100644 .github/pull_request_template.md
delete mode 100644 .github/release-drafter.yml
delete mode 100644 .github/semantic.yml
delete mode 100644 .github/workflows/build.yml
delete mode 100644 .github/workflows/changeset-version.yml
delete mode 100644 .github/workflows/ci.yml
delete mode 100644 .github/workflows/codeql.yml
delete mode 100644 .github/workflows/deploy.yml
delete mode 100644 .github/workflows/draft.yml
delete mode 100644 .github/workflows/issue-close-require.yml
delete mode 100644 .github/workflows/issue-labeled.yml
delete mode 100644 .github/workflows/lock.yml
delete mode 100644 .github/workflows/release-tag.yml
delete mode 100644 .github/workflows/rerun.yml
delete mode 100644 .github/workflows/semantic-pull-request.yml
delete mode 100644 .github/workflows/stale.yml
diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml
deleted file mode 100644
index d9e29c97f..000000000
--- a/.gitee/ISSUE_TEMPLATE/bug.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Bug 反馈
-description: 当你在代码中发现了一个 Bug,导致应用崩溃或抛出异常,或者有一个组件存在问题,或者某些地方看起来不对劲。
-title: '[Bug]: '
-labels: ['bug']
-body:
- - type: markdown
- attributes:
- value: |
- 感谢对项目的支持与关注。在提出问题之前,请确保你已查看相关开发或使用文档:
- - https://...
- - type: checkboxes
- attributes:
- label: 这个问题是否已经存在?
- options:
- - label: 我已经搜索过现有的问题 (https://gitee.com/../../issues)
- required: true
- - type: checkboxes
- attributes:
- label: 我已经给项目点赞(star)
- options:
- - label: 未点赞(star)问题直接删除, 不予理会
- required: true
- - type: checkboxes
- attributes:
- label: 基础框架问题(如布局,modal,drawer等)请提交给vben官方
- options:
- - label: 我确认是业务问题而非基础框架问题
- required: true
- - type: textarea
- attributes:
- label: 如何复现
- description: 请详细告诉我们如何复现你遇到的问题,如涉及代码,可提供一个最小代码示例,并使用反引号```附上它
- placeholder: |
- 1. ...
- 2. ...
- 3. ...
- validations:
- required: true
- - type: textarea
- attributes:
- label: 预期结果
- description: 请告诉我们你预期会发生什么。
- validations:
- required: true
- - type: textarea
- attributes:
- label: 截图或视频
- description: 如果可以的话,上传任何关于 bug 的截图。
- value: |
- [在这里上传图片]
diff --git a/.gitee/ISSUE_TEMPLATE/config.yml b/.gitee/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index 0086358db..000000000
--- a/.gitee/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1 +0,0 @@
-blank_issues_enabled: true
diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml
deleted file mode 100644
index 82e547b75..000000000
--- a/.gitee/ISSUE_TEMPLATE/feature.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: 功能建议
-description: 对本项目提出一个功能建议
-title: '[功能建议]: '
-labels: ['enhancement']
-body:
- - type: markdown
- attributes:
- value: |
- 感谢提出功能建议,我们将仔细考虑!
- - type: textarea
- id: related-problem
- attributes:
- label: 你的功能建议是否和某个问题相关?
- description: 清晰并简洁地描述问题是什么,例如,当我...时,我总是感到困扰。
- validations:
- required: false
- - type: textarea
- id: desired-solution
- attributes:
- label: 你希望看到什么解决方案?
- description: 清晰并简洁地描述你希望发生的事情。
- validations:
- required: true
- - type: textarea
- id: alternatives
- attributes:
- label: 你考虑过哪些替代方案?
- description: 清晰并简洁地描述你考虑过的任何替代解决方案或功能。
- validations:
- required: false
- - type: textarea
- id: additional-context
- attributes:
- label: 你有其他上下文或截图吗?
- description: 在此处添加有关功能请求的任何其他上下文或截图。
- validations:
- required: false
- - type: checkboxes
- attributes:
- label: 意向参与贡献
- options:
- - label: 我有意向参与具体功能的开发实现并将代码贡献回到上游社区
- required: false
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index b95ff9460..000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,14 +0,0 @@
-# default onwer
-* anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-
-# vben core onwer
-/.github/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-/.vscode/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-/packages/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-/packages/@core/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-/internal/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-/scripts/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com jinmao88@qq.com
-
-# vben team onwer
-apps/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com @vbenjs/team-v5 jinmao88@qq.com
-docs/ anncwb@126.com vince292007@gmail.com netfan@foxmail.com @vbenjs/team-v5 jinmao88@qq.com
diff --git a/.github/actions/setup-node/action.yml b/.github/actions/setup-node/action.yml
deleted file mode 100644
index d208b000a..000000000
--- a/.github/actions/setup-node/action.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-name: 'Setup Node'
-
-description: 'Setup node and pnpm'
-
-runs:
- using: 'composite'
- steps:
- - name: Install pnpm
- uses: pnpm/action-setup@v4
-
- - name: Install Node.js
- uses: actions/setup-node@v6
- with:
- node-version-file: .node-version
- cache: 'pnpm'
-
- - name: Get pnpm store directory
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
-
- - uses: actions/cache@v4
- name: Setup pnpm cache
- if: ${{ github.ref_name == 'main' }}
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - uses: actions/cache/restore@v4
- if: ${{ github.ref_name != 'main' }}
- with:
- path: ${{ env.STORE_PATH }}
- key: |
- ${{ runner.os }}-pnpm-store-
-
- - name: Install dependencies
- shell: bash
- run: pnpm install --frozen-lockfile
diff --git a/.github/commit-convention.md b/.github/commit-convention.md
deleted file mode 100644
index a1a969e99..000000000
--- a/.github/commit-convention.md
+++ /dev/null
@@ -1,89 +0,0 @@
-## Git Commit Message Convention
-
-> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular).
-
-#### TL;DR:
-
-Messages must be matched by the following regex:
-
-```js
-/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|types|wip): .{1,50}/;
-```
-
-#### Examples
-
-Appears under "Features" header, `dev` subheader:
-
-```
-feat(dev): add 'comments' option
-```
-
-Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28:
-
-```
-fix(dev): fix dev error
-
-close #28
-```
-
-Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation:
-
-```
-perf(build): remove 'foo' option
-
-BREAKING CHANGE: The 'foo' option has been removed.
-```
-
-The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header.
-
-```
-revert: feat(compiler): add 'comments' option
-
-This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
-```
-
-### Full Message Format
-
-A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**:
-
-```
-():
-
-
-
-
-```
-
-The **header** is mandatory and the **scope** of the header is optional.
-
-### Revert
-
-If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body, it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted.
-
-### Type
-
-If the prefix is `feat`, `fix` or `perf`, it will appear in the changelog. However, if there is any [BREAKING CHANGE](#footer), the commit will always appear in the changelog.
-
-Other prefixes are up to your discretion. Suggested prefixes are `docs`, `chore`, `style`, `refactor`, and `test` for non-changelog related tasks.
-
-### Scope
-
-The scope could be anything specifying the place of the commit change. For example `dev`, `build`, `workflow`, `cli` etc...
-
-### Subject
-
-The subject contains a succinct description of the change:
-
-- use the imperative, present tense: "change" not "changed" nor "changes"
-- don't capitalize the first letter
-- no dot (.) at the end
-
-### Body
-
-Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior.
-
-### Footer
-
-The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**.
-
-**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
diff --git a/.github/config.yml b/.github/config.yml
deleted file mode 100644
index 52454840a..000000000
--- a/.github/config.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-# Prevent issues being created without using the template
-blank_issues_enabled: false
-checkIssueTemplate: true
-checkPullRequestTemplate: true
-
-contact_links:
- - name: 💬 Discord Chat
- url: https://discord.gg/8GuAdwDhj6
- about: Ask questions and discuss with other Vben users in real time.
-
- - name: ❓ Questions & Discussions
- url: https://github.com/@vbenjs/vue-vben-admin/discussions
- about: Use GitHub discussions for message-board style questions and discussions.
-
-# Comment to be posted to on PRs from first time contributors in your repository
-newPRWelcomeComment: |
- 💖 Thanks for opening this pull request! 💖
- Please be patient and we will get back to you as soon as we can.
-
-# Comment to be posted to on pull requests merged by a first time user
-firstPRMergeComment: >
- Thanks for your contribution! 🎉🎉🎉
-
-
-# Comment to be posted to on first time issues
-newIssueWelcomeComment: >
- Thanks for opening your first issue! Be sure to follow the issue template and provide every bit of information to help the developers!
-
-
-# *OPTIONAL* default titles to check against for lack of descriptiveness
-# MUST BE ALL LOWERCASE
-requestInfoDefaultTitles:
- - update readme.md
- - updates
-
-# *Required* Comment to reply with
-requestInfoReplyComment: >
- Thanks for filing this issue/PR! It would be much appreciated if you could provide us with more information so we can effectively analyze the situation in context.
-
diff --git a/.github/contributing.md b/.github/contributing.md
deleted file mode 100644
index 304c51926..000000000
--- a/.github/contributing.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Vben Admin Contributing Guide
-
-Hi! We're really excited that you are interested in contributing to Vben Admin. Before submitting your contribution, please make sure to take a moment and read through the following guidelines:
-
-- [Pull Request Guidelines](#pull-request-guidelines)
-
-## Contributor Code of Conduct
-
-As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
-
-We are committed to making participation in this project a harassment-free experience for everyone, regardless of the level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
-
-Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
-
-Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
-
-## Pull Request Guidelines
-
-- Checkout a topic branch from the relevant branch, e.g. main, and merge back against that branch.
-
-- If adding a new feature:
- - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
-
-- If fixing bug:
- - Provide a detailed description of the bug in the PR. Live demo preferred.
-
-- It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging.
-
-## Development Setup
-
-You will need [pnpm](https://pnpm.io/)
-
-After cloning the repo, run:
-
-```bash
-# install the dependencies of the project
-$ pnpm install
-# start the project
-$ pnpm run dev
-```
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index d1b6d3b44..000000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: 2
-updates:
- - package-ecosystem: npm
- directory: '/'
- schedule:
- interval: daily
- groups:
- non-breaking-changes:
- update-types: [minor, patch]
-
- - package-ecosystem: github-actions
- directory: '/'
- schedule:
- interval: weekly
- groups:
- non-breaking-changes:
- update-types: [minor, patch]
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 8d7da679e..000000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1,33 +0,0 @@
-## Description
-
-
-
-
-
-## Type of change
-
-Please delete options that are not relevant.
-
-- [ ] Bug fix (non-breaking change which fixes an issue)
-- [ ] New feature (non-breaking change which adds functionality)
-- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
-- [ ] This change requires a documentation update
-- [ ] Please, don't make changes to `pnpm-lock.yaml` unless you introduce a new test example.
-
-## Checklist
-
-> ℹ️ Check all checkboxes - this will indicate that you have done everything in accordance with the rules in [CONTRIBUTING](contributing.md).
-
-- [ ] If you introduce new functionality, document it. You can run documentation with `pnpm run docs:dev` command.
-- [ ] Run the tests with `pnpm test`.
-- [ ] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with `feat:`, `fix:`, `perf:`, `docs:`, or `chore:`.
-- [ ] My code follows the style guidelines of this project
-- [ ] I have performed a self-review of my own code
-- [ ] I have commented my code, particularly in hard-to-understand areas
-- [ ] I have made corresponding changes to the documentation
-- [ ] My changes generate no new warnings
-- [ ] I have added tests that prove my fix is effective or that my feature works
-- [ ] New and existing unit tests pass locally with my changes
-- [ ] Any dependent changes have been merged and published in downstream modules
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
deleted file mode 100644
index 886190914..000000000
--- a/.github/release-drafter.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-name-template: 'v$RESOLVED_VERSION'
-tag-template: 'v$RESOLVED_VERSION'
-version-template: $MAJOR.$MINOR.$PATCH
-change-template: '* $TITLE (#$NUMBER) @$AUTHOR'
-template: |
- # What's Changed
-
- $CHANGES
-
- **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
-
-categories:
- - title: '🚀 Features'
- labels:
- - 'feature'
- - title: '🐞 Bug Fixes'
- labels:
- - 'bug'
- - title: '📈 Performance & Enhancement'
- labels:
- - 'perf'
- - 'enhancement'
- - title: 📝 Documentation
- labels:
- - 'documentation'
- - title: 👻 Maintenance
- labels:
- - 'chore'
- - 'dependencies'
- # collapse-after: 12
- - title: 🚦 Tests
- labels:
- - 'tests'
- - title: 'Breaking'
- label: 'breaking'
-
-version-resolver:
- major:
- labels:
- - 'major'
- - 'breaking'
- minor:
- labels:
- - 'minor'
- patch:
- labels:
- - 'feature'
- - 'patch'
- - 'bug'
- - 'maintenance'
- - 'docs'
- - 'dependencies'
- - 'security'
-
-exclude-labels:
- - 'skip-changelog'
- - 'no-changelog'
- - 'changelog'
- - 'bump versions'
- - 'reverted'
- - 'invalid'
diff --git a/.github/semantic.yml b/.github/semantic.yml
deleted file mode 100644
index 8d8ffd957..000000000
--- a/.github/semantic.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-titleAndCommits: true
-types:
- - feat
- - fix
- - docs
- - chore
- - style
- - refactor
- - perf
- - test
- - build
- - ci
- - revert
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index f60b04778..000000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-# name: Dependabot post-update
-name: Build detection
-on:
- pull_request_target:
- types: [opened, synchronize, reopened]
- branches:
- - main
-
-env:
- HUSKY: '0'
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
- cancel-in-progress: true
-
-permissions:
- contents: read
- pull-requests: write
-
-jobs:
- post-update:
- if: github.repository == 'vbenjs/vue-vben-admin'
- # if: ${{ github.actor == 'dependabot[bot]' }}
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os:
- - ubuntu-latest
- # - macos-latest
- - windows-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Checkout out pull request
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- gh pr checkout ${{ github.event.pull_request.number }}
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: |
- pnpm run build
diff --git a/.github/workflows/changeset-version.yml b/.github/workflows/changeset-version.yml
deleted file mode 100644
index cdccceb54..000000000
--- a/.github/workflows/changeset-version.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# https://github.com/changesets/action
-name: Changeset version
-
-on:
- workflow_dispatch:
- pull_request:
- types:
- - closed
- branches:
- - main
-
-permissions:
- pull-requests: write
- contents: write
-
-env:
- CI: true
-
-jobs:
- version:
- if: (github.event.pull_request.merged || github.event_name == 'workflow_dispatch') && github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- # if: github.repository == 'vbenjs/vue-vben-admin'
- timeout-minutes: 15
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Create Release Pull Request
- uses: changesets/action@v1
- with:
- version: pnpm run version
- commit: 'chore: bump versions'
- title: 'chore: bump versions'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 339e5fd8f..000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,125 +0,0 @@
-name: CI
-
-on:
- pull_request:
- push:
- branches:
- - main
- - 'releases/*'
-
-permissions:
- contents: read
-
-env:
- CI: true
- TZ: Asia/Shanghai
-
-jobs:
- test:
- name: Test
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os:
- - ubuntu-latest
- # - macos-latest
- - windows-latest
- timeout-minutes: 20
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- run_install: false
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- # - name: Check Git version
- # run: git --version
-
- # - name: Setup mock Git user
- # run: git config --global user.email "you@example.com" && git config --global user.name "Your Name"
-
- - name: Vitest tests
- run: pnpm run test:unit
-
- # - name: Upload coverage
- # uses: codecov/codecov-action@v4
- # with:
- # token: ${{ secrets.CODECOV_TOKEN }}
-
- lint:
- name: Lint
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os:
- - ubuntu-latest
- # - macos-latest
- - windows-latest
-
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Lint
- run: pnpm run lint
-
- check:
- name: Check
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ${{ matrix.os }}
- timeout-minutes: 20
- strategy:
- matrix:
- os:
- - ubuntu-latest
- # - macos-latest
- - windows-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Typecheck
- run: pnpm check:type
-
- # From https://github.com/rhysd/actionlint/blob/main/docs/usage.md#use-actionlint-on-github-actions
- - name: Check workflow files
- if: runner.os == 'Linux'
- run: |
- bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
- ./actionlint -color -shellcheck=""
-
- ci-ok:
- name: CI OK
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- needs: [test, check, lint]
- env:
- FAILURE: ${{ contains(join(needs.*.result, ','), 'failure') }}
- steps:
- - name: Check for failure
- run: |
- echo $FAILURE
- if [ "$FAILURE" = "false" ]; then
- exit 0
- else
- exit 1
- fi
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
deleted file mode 100644
index 61137ad98..000000000
--- a/.github/workflows/codeql.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: 'CodeQL'
-
-on:
- push:
- branches: ['main']
- pull_request:
- branches: ['main']
- schedule:
- - cron: '35 0 * * 0'
-
-jobs:
- analyze:
- name: Analyze (${{ matrix.language }})
- if: github.repository == 'vbenjs/vue-vben-admin'
- # Runner size impacts CodeQL analysis time. To learn more, please see:
- # - https://gh.io/recommended-hardware-resources-for-running-codeql
- # - https://gh.io/supported-runners-and-hardware-resources
- # - https://gh.io/using-larger-runners (GitHub.com only)
- # Consider using larger runners or machines with greater resources for possible analysis time improvements.
- runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
- timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
- permissions:
- # required for all workflows
- security-events: write
-
- # required to fetch internal or private CodeQL packs
- packages: read
-
- # only required for workflows in private repositories
- actions: read
- contents: read
-
- strategy:
- fail-fast: false
- matrix:
- include:
- - language: javascript-typescript
- build-mode: none
- # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
- # Use `c-cpp` to analyze code written in C, C++ or both
- # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
- # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
- # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
- # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
- # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
- # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
- steps:
- - name: Checkout repository
- uses: actions/checkout@v6
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: ${{ matrix.language }}
- build-mode: ${{ matrix.build-mode }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
-
- # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
- # queries: security-extended,security-and-quality
-
- # If the analyze step fails for one of the languages you are analyzing with
- # "We were unable to automatically build your code", modify the matrix above
- # to set the build mode to "manual" for that language. Then modify this step
- # to build your code.
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- - if: matrix.build-mode == 'manual'
- shell: bash
- run: |
- echo 'If you are using a "manual" build mode for one or more of the' \
- 'languages you are analyzing, replace this with the commands to build' \
- 'your code, for example:'
- echo ' make bootstrap'
- echo ' make release'
- exit 1
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
- with:
- category: '/language:${{matrix.language}}'
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
deleted file mode 100644
index 2207ace28..000000000
--- a/.github/workflows/deploy.yml
+++ /dev/null
@@ -1,172 +0,0 @@
-name: Deploy Website on push
-
-on:
- push:
- branches:
- - main
-
-jobs:
- deploy-playground-ftp:
- name: Deploy Push Playground Ftp
- if: github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Sed Config Base
- shell: bash
- run: |
- sed -i "s#VITE_COMPRESS\s*=.*#VITE_COMPRESS = gzip#g" ./playground/.env.production
- sed -i "s#VITE_PWA\s*=.*#VITE_PWA = true#g" ./playground/.env.production
- cat ./playground/.env.production
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: pnpm build:play
-
- - name: Sync Playground files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.6
- with:
- server: ${{ secrets.PRO_FTP_HOST }}
- username: ${{ secrets.WEB_PLAYGROUND_FTP_ACCOUNT }}
- password: ${{ secrets.WEB_PLAYGROUND_FTP_PWSSWORD }}
- local-dir: ./playground/dist/
-
- deploy-docs-ftp:
- name: Deploy Push Docs Ftp
- if: github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: pnpm build:docs
-
- - name: Sync Docs files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.6
- with:
- server: ${{ secrets.PRO_FTP_HOST }}
- username: ${{ secrets.WEBSITE_FTP_ACCOUNT }}
- password: ${{ secrets.WEBSITE_FTP_PASSWORD }}
- local-dir: ./docs/.vitepress/dist/
-
- deploy-antd-ftp:
- name: Deploy Push Antd Ftp
- if: github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Sed Config Base
- shell: bash
- run: |
- sed -i "s#VITE_COMPRESS\s*=.*#VITE_COMPRESS = gzip#g" ./apps/web-antd/.env.production
- sed -i "s#VITE_PWA\s*=.*#VITE_PWA = true#g" ./apps/web-antd/.env.production
- cat ./apps/web-antd/.env.production
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: pnpm run build:antd
-
- - name: Sync files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.6
- with:
- server: ${{ secrets.PRO_FTP_HOST }}
- username: ${{ secrets.WEB_ANTD_FTP_ACCOUNT }}
- password: ${{ secrets.WEB_ANTD_FTP_PASSWORD }}
- local-dir: ./apps/web-antd/dist/
-
- deploy-ele-ftp:
- name: Deploy Push Element Ftp
- if: github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Sed Config Base
- shell: bash
- run: |
- sed -i "s#VITE_COMPRESS\s*=.*#VITE_COMPRESS = gzip#g" ./apps/web-ele/.env.production
- sed -i "s#VITE_PWA\s*=.*#VITE_PWA = true#g" ./apps/web-ele/.env.production
- cat ./apps/web-ele/.env.production
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: pnpm run build:ele
-
- - name: Sync files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.6
- with:
- server: ${{ secrets.PRO_FTP_HOST }}
- username: ${{ secrets.WEB_ELE_FTP_ACCOUNT }}
- password: ${{ secrets.WEB_ELE_FTP_PASSWORD }}
- local-dir: ./apps/web-ele/dist/
-
- deploy-naive-ftp:
- name: Deploy Push Naive Ftp
- if: github.actor != 'dependabot[bot]' && !contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Sed Config Base
- shell: bash
- run: |
- sed -i "s#VITE_COMPRESS\s*=.*#VITE_COMPRESS = gzip#g" ./apps/web-naive/.env.production
- sed -i "s#VITE_PWA\s*=.*#VITE_PWA = true#g" ./apps/web-naive/.env.production
- cat ./apps/web-naive/.env.production
-
- - name: Setup Node
- uses: ./.github/actions/setup-node
-
- - name: Build
- run: pnpm run build:naive
-
- - name: Sync files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.6
- with:
- server: ${{ secrets.PRO_FTP_HOST }}
- username: ${{ secrets.WEB_NAIVE_FTP_ACCOUNT }}
- password: ${{ secrets.WEB_NAIVE_FTP_PASSWORD }}
- local-dir: ./apps/web-naive/dist/
-
- rerun-on-failure:
- name: Rerun on failure
- needs:
- - deploy-playground-ftp
- - deploy-docs-ftp
- - deploy-antd-ftp
- - deploy-ele-ftp
- - deploy-naive-ftp
- if: failure() && fromJSON(github.run_attempt) < 10
- runs-on: ubuntu-latest
- steps:
- - name: Retry ${{ fromJSON(github.run_attempt) }} of 10
- env:
- GH_REPO: ${{ github.repository }}
- GH_TOKEN: ${{ github.token }}
- run: gh workflow run rerun.yml -F run_id=${{ github.run_id }}
diff --git a/.github/workflows/draft.yml b/.github/workflows/draft.yml
deleted file mode 100644
index 20b4148a7..000000000
--- a/.github/workflows/draft.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Release Drafter
-
-on:
- push:
- branches:
- - main
-
-permissions:
- contents: read
- pull-requests: write
-
-jobs:
- update_release_draft:
- permissions:
- # write permission is required to create a github release
- contents: write
- # write permission is required for autolabeler
- # otherwise, read permission is required at least
- pull-requests: write
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - uses: release-drafter/release-drafter@v6
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/issue-close-require.yml b/.github/workflows/issue-close-require.yml
deleted file mode 100644
index 18c007bfd..000000000
--- a/.github/workflows/issue-close-require.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# 每天零点运行一次,它会检查所有带有 "need reproduction" 标签的 Issues。如果这些 Issues 在过去的 3 天内没有任何活动,它们将会被自动关闭。这有助于保持 Issue 列表的整洁,并且提醒用户在必要时提供更多的信息。
-name: Issue Close Require
-
-# 触发条件:每天零点
-on:
- workflow_dispatch:
- schedule:
- - cron: '0 0 * * *'
-
-permissions:
- pull-requests: write
- contents: write
- issues: write
-
-jobs:
- close-issues:
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- # 关闭未活动的 Issues
- - name: Close Inactive Issues
- uses: actions/stale@v9
- with:
- days-before-stale: -1 # Issues and PR will never be flagged stale automatically.
- stale-issue-label: needs-reproduction # Label that flags an issue as stale.
- only-labels: needs-reproduction # Only process these issues
- days-before-issue-close: 3
- ignore-updates: true
- remove-stale-when-updated: false
- close-issue-message: This issue was closed because it was open for 3 days without a valid reproduction.
- close-issue-label: closed-by-action
diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml
deleted file mode 100644
index 2feda4ef7..000000000
--- a/.github/workflows/issue-labeled.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-name: Label Based Actions
-
-on:
- issues:
- types: [labeled]
- # pull_request:
- # types: [labeled]
-
-permissions:
- issues: write
- pull-requests: write
- contents: write
-
-jobs:
- reply-labeled:
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: remove enhancement pending
- if: github.event.label.name == 'enhancement'
- uses: actions-cool/issues-helper@v3
- with:
- actions: 'remove-labels'
- token: ${{ secrets.GITHUB_TOKEN }}
- issue-number: ${{ github.event.issue.number }}
- labels: 'enhancement: pending triage'
-
- - name: remove bug pending
- if: github.event.label.name == 'bug'
- uses: actions-cool/issues-helper@v3
- with:
- actions: 'remove-labels'
- token: ${{ secrets.GITHUB_TOKEN }}
- issue-number: ${{ github.event.issue.number }}
- labels: 'bug: pending triage'
-
- - name: needs reproduction
- if: github.event.label.name == 'needs reproduction'
- uses: actions-cool/issues-helper@v3
- with:
- actions: 'create-comment, remove-labels'
- token: ${{ secrets.GITHUB_TOKEN }}
- issue-number: ${{ github.event.issue.number }}
- body: |
- Hello @${{ github.event.issue.user.login }}. Please provide the complete reproduction steps and code. Issues labeled by `needs reproduction` will be closed if no activities in 3 days.
- labels: 'bug: pending triage'
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
deleted file mode 100644
index bd73d5331..000000000
--- a/.github/workflows/lock.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Lock Threads
-
-on:
- schedule:
- - cron: '0 0 * * *'
- workflow_dispatch:
-
-permissions:
- issues: write
- pull-requests: write
-
-jobs:
- action:
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - uses: dessant/lock-threads@v5
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- issue-inactive-days: '14'
- issue-lock-reason: ''
- pr-inactive-days: '30'
- pr-lock-reason: ''
- process-only: 'issues, prs'
diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml
deleted file mode 100644
index 5684990a7..000000000
--- a/.github/workflows/release-tag.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-name: Create Release Tag
-
-on:
- push:
- tags:
- - 'v*.*.*' # Push events to matching v*, i.e. v1.0, v20.15.10
-
-env:
- HUSKY: '0'
-
-permissions:
- pull-requests: write
- contents: write
-
-jobs:
- build:
- name: Create Release
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [22]
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- # - name: Checkout code
- # uses: actions/checkout@v6
- # with:
- # fetch-depth: 0
-
- # - name: Install pnpm
- # uses: pnpm/action-setup@v4
-
- # - name: Use Node.js ${{ matrix.node-version }}
- # uses: actions/setup-node@v4
- # with:
- # node-version: ${{ matrix.node-version }}
- # cache: "pnpm"
-
- # - name: Install dependencies
- # run: pnpm install --frozen-lockfile
-
- # - name: Test and Build
- # run: |
- # pnpm run test
- # pnpm run build
-
- - name: version
- id: version
- run: |
- tag=${GITHUB_REF/refs\/tags\//}
- version=${tag#v}
- major=${version%%.*}
- echo "tag=${tag}" >> $GITHUB_OUTPUT
- echo "version=${version}" >> $GITHUB_OUTPUT
- echo "major=${major}" >> $GITHUB_OUTPUT
-
- - uses: release-drafter/release-drafter@v6
- with:
- version: ${{ steps.version.outputs.version }}
- publish: true
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- # - name: force update major tag
- # run: |
- # git tag v${{ steps.version.outputs.major }} ${{ steps.version.outputs.tag }} -f
- # git push origin refs/tags/v${{ steps.version.outputs.major }} -f
-
- # - name: Create Release for Tag
- # id: release_tag
- # uses: ncipollo/release-action@v1
- # with:
- # token: ${{ secrets.GITHUB_TOKEN }}
- # generateReleaseNotes: "true"
- # body: |
- # > Please refer to [CHANGELOG.md](https://github.com/vbenjs/vue-vben-admin/blob/main/CHANGELOG.md) for details.
diff --git a/.github/workflows/rerun.yml b/.github/workflows/rerun.yml
deleted file mode 100644
index 2b4625514..000000000
--- a/.github/workflows/rerun.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Rerun workflow
-
-on:
- workflow_dispatch:
- inputs:
- run_id:
- description: The workflow id to relanch
- required: true
-jobs:
- rerun:
- runs-on: ubuntu-latest
- steps:
- - name: rerun ${{ inputs.run_id }}
- env:
- GH_REPO: ${{ github.repository }}
- GH_TOKEN: ${{ github.token }}
- run: |
- gh run watch ${{ inputs.run_id }} > /dev/null 2>&1
- gh run rerun ${{ inputs.run_id }} --failed
diff --git a/.github/workflows/semantic-pull-request.yml b/.github/workflows/semantic-pull-request.yml
deleted file mode 100644
index db8e9e091..000000000
--- a/.github/workflows/semantic-pull-request.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: Semantic Pull Request
-
-on:
- pull_request_target:
- types:
- - opened
- - edited
- - synchronize
-
-jobs:
- main:
- name: Semantic Pull Request
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - name: Validate PR title
- uses: amannn/action-semantic-pull-request@v5
- with:
- wip: true
- subjectPattern: ^(?![A-Z]).+$
- subjectPatternError: |
- The subject "{subject}" found in the pull request title "{title}"
- didn't match the configured pattern. Please ensure that the subject
- doesn't start with an uppercase character.
- requireScope: false
- types: |
- fix
- feat
- docs
- style
- refactor
- perf
- test
- build
- ci
- chore
- revert
- types
- release
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index 991e1331d..000000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: 'Close stale issues'
-
-on:
- schedule:
- - cron: '0 1 * * *'
-
-jobs:
- stale:
- if: github.repository == 'vbenjs/vue-vben-admin'
- runs-on: ubuntu-latest
- steps:
- - uses: actions/stale@v9
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days'
- stale-pr-message: 'This PR is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days'
- exempt-issue-labels: 'bug,enhancement'
- days-before-stale: 60
- days-before-close: 7
From 3457a129a9141515a8c12a91b0503600047a959b Mon Sep 17 00:00:00 2001
From: root
Date: Fri, 13 Mar 2026 16:55:28 +0800
Subject: [PATCH 08/13] ci: add default PR review bots setup (CodeQL, Labeler,
CodeRabbit config)
---
.coderabbit.yaml | 17 +++++++++++++
.github/labeler.yml | 48 +++++++++++++++++++++++++++++++++++
.github/workflows/codeql.yml | 37 +++++++++++++++++++++++++++
.github/workflows/labeler.yml | 18 +++++++++++++
4 files changed, 120 insertions(+)
create mode 100644 .coderabbit.yaml
create mode 100644 .github/labeler.yml
create mode 100644 .github/workflows/codeql.yml
create mode 100644 .github/workflows/labeler.yml
diff --git a/.coderabbit.yaml b/.coderabbit.yaml
new file mode 100644
index 000000000..adaa4f55f
--- /dev/null
+++ b/.coderabbit.yaml
@@ -0,0 +1,17 @@
+language: "zh-CN"
+reviews:
+ profile: "chill"
+ request_changes_workflow: false
+ high_level_summary: true
+ poem: false
+ review_status: true
+ collapse_walkthrough: true
+ path_instructions:
+ - path: "apps/web-antd/**"
+ instructions: "重点关注业务回归风险、路由权限、表单校验和上传逻辑。"
+ - path: "packages/**"
+ instructions: "重点关注公共 API 兼容性、类型安全、以及潜在破坏性变更。"
+ - path: "**/*.md"
+ instructions: "文档变更只做简要建议,不阻断。"
+chat:
+ auto_reply: false
diff --git a/.github/labeler.yml b/.github/labeler.yml
new file mode 100644
index 000000000..759b63648
--- /dev/null
+++ b/.github/labeler.yml
@@ -0,0 +1,48 @@
+docs:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'docs/**'
+ - 'README*'
+ - '**/*.md'
+
+ci:
+ - changed-files:
+ - any-glob-to-any-file:
+ - '.github/workflows/**'
+ - '.github/*.yml'
+ - '.github/*.yaml'
+
+web-antd:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'apps/web-antd/**'
+
+backend-mock:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'apps/backend-mock/**'
+
+packages:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'packages/**'
+
+internal:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'internal/**'
+
+scripts:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'scripts/**'
+
+config:
+ - changed-files:
+ - any-glob-to-any-file:
+ - 'package.json'
+ - 'pnpm-lock.yaml'
+ - 'pnpm-workspace.yaml'
+ - 'turbo.json'
+ - 'tsconfig*.json'
+ - '.npmrc'
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 000000000..5cc6b123d
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,37 @@
+name: CodeQL
+
+on:
+ push:
+ branches: ["dev", "main"]
+ pull_request:
+ branches: ["dev", "main"]
+ schedule:
+ - cron: '30 2 * * 1'
+
+permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+jobs:
+ analyze:
+ name: Analyze (${{ matrix.language }})
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript-typescript' ]
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ languages: ${{ matrix.language }}
+
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v3
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
new file mode 100644
index 000000000..6b3b1c35d
--- /dev/null
+++ b/.github/workflows/labeler.yml
@@ -0,0 +1,18 @@
+name: PR Labeler
+
+on:
+ pull_request_target:
+ types: [opened, synchronize, reopened]
+
+permissions:
+ contents: read
+ pull-requests: write
+
+jobs:
+ label:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/labeler@v5
+ with:
+ repo-token: "${{ secrets.GITHUB_TOKEN }}"
+ configuration-path: .github/labeler.yml
From 0a4276b8dbdaedd059c574e860d546da104b7a11 Mon Sep 17 00:00:00 2001
From: root
Date: Fri, 13 Mar 2026 17:03:53 +0800
Subject: [PATCH 09/13] ci: limit PR checks to dev branch only
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/labeler.yml | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 5cc6b123d..1e93262dc 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -4,7 +4,7 @@ on:
push:
branches: ["dev", "main"]
pull_request:
- branches: ["dev", "main"]
+ branches: ["dev"]
schedule:
- cron: '30 2 * * 1'
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
index 6b3b1c35d..3356d26b7 100644
--- a/.github/workflows/labeler.yml
+++ b/.github/workflows/labeler.yml
@@ -2,6 +2,7 @@ name: PR Labeler
on:
pull_request_target:
+ branches: ["dev"]
types: [opened, synchronize, reopened]
permissions:
From db9f840b0319fcf126586ff821071149ceb42e68 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Mon, 16 Mar 2026 20:16:26 +0800
Subject: [PATCH 10/13] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0README.md?=
=?UTF-8?q?=E4=B8=AD=E5=90=8E=E7=AB=AF=E7=89=88=E6=9C=AC=E8=AF=B4=E6=98=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
由于最新官方分支使用了`tailwind4` 故此版本作为v1的latest版本 不再进行更新
v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
目前对应后端版本: **分布式5.5.3/微服务2.5.3**
V1.1.0版本已支持离线图标
---
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a833c5457..f07365cdd 100644
--- a/README.md
+++ b/README.md
@@ -6,11 +6,13 @@
## 提示
+由于最新官方分支使用了`tailwind4` 故此版本作为v1的latest版本 不在进行更新
+
该仓库使用vben最新版本v5开发
v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
-目前对应后端版本: **分布式5.5.1/微服务2.5.1**
+目前对应后端版本: **分布式5.5.3/微服务2.5.3**
V1.1.0版本已支持离线图标
From 96a9c41032c34941af461946422ad322a9b8f938 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Mon, 23 Mar 2026 13:43:28 +0800
Subject: [PATCH 11/13] =?UTF-8?q?chore:=20=E4=BF=AE=E6=94=B9=E8=AF=B4?=
=?UTF-8?q?=E6=98=8E=20=E5=8F=91=E5=B8=83v1-latest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 +---
apps/web-antd/package.json | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index f07365cdd..fe8c03bdc 100644
--- a/README.md
+++ b/README.md
@@ -2,12 +2,10 @@
## 置顶说明
-傻逼GITEE在没有任何通知/说明的情况将仓库设置为私有 你以为我会去问你原因?? 直接不用你了好吧
+由于最新官方分支使用了`tailwind4` 故此版本作为v1的latest版本 不再进行更新
## 提示
-由于最新官方分支使用了`tailwind4` 故此版本作为v1的latest版本 不在进行更新
-
该仓库使用vben最新版本v5开发
v5版本采用分仓(包)目录结构, 具体开发路径为: `根目录/apps/web-antd`
diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json
index 40bf10ad7..8281d85e8 100644
--- a/apps/web-antd/package.json
+++ b/apps/web-antd/package.json
@@ -1,6 +1,6 @@
{
"name": "@vben/web-antd",
- "version": "1.5.3",
+ "version": "1.5.4",
"homepage": "https://vben.pro",
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
"repository": {
From 96c93da7b82fa5c8c64799f89c25e7d0e67ef10f Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Mon, 23 Mar 2026 13:58:12 +0800
Subject: [PATCH 12/13] chore: changelog
---
CHANGELOG.md | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca8dfa0b2..ec944f3ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+# 1.5.4
+
+对应后端版本 单体/微服务: 5.5.3/2.5.3(向后兼容5.5.x版本)
+
+全是纯前端更新 没有后端功能变动
+
+**重要**
+
+由于更后面的官方提交将tailwind3升到到了4 故不再进行合并 当然你可以手动合并
+
+此版本作为v1的latest进行归档
+
# 1.5.3
对应后端版本 单体/微服务: 5.5.3/2.5.3(向后兼容5.5.x版本)
From d021271902cb33b239d86794ebac990423f6f04b Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Mon, 23 Mar 2026 21:07:10 +0800
Subject: [PATCH 13/13] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8=20Web=20Crypto?=
=?UTF-8?q?=20API=20=E7=94=9F=E6=88=90=20UUID?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/utils/src/helpers/uuid.ts | 47 ++++++++++--------------------
1 file changed, 16 insertions(+), 31 deletions(-)
diff --git a/packages/utils/src/helpers/uuid.ts b/packages/utils/src/helpers/uuid.ts
index 81c49a09d..196333f2c 100644
--- a/packages/utils/src/helpers/uuid.ts
+++ b/packages/utils/src/helpers/uuid.ts
@@ -1,42 +1,27 @@
-const hexList: string[] = [];
-for (let i = 0; i <= 15; i++) {
- hexList[i] = i.toString(16);
+function getBrowserCrypto(): Crypto {
+ const browserCrypto = globalThis.crypto;
+
+ if (!browserCrypto) {
+ throw new Error('Web Crypto API is not available in the current environment.');
+ }
+
+ return browserCrypto;
}
export function buildUUID(): string {
- let uuid = '';
- for (let i = 1; i <= 36; i++) {
- switch (i) {
- case 9:
- case 14:
- case 19:
- case 24: {
- uuid += '-';
-
- break;
- }
- case 15: {
- uuid += 4;
-
- break;
- }
- case 20: {
- uuid += hexList[(Math.random() * 4) | 8];
-
- break;
- }
- default: {
- uuid += hexList[Math.trunc(Math.random() * 16)];
- }
- }
- }
- return uuid.replaceAll('-', '');
+ return getBrowserCrypto().randomUUID().replaceAll('-', '');
}
let unique = 0;
export function buildShortUUID(prefix = ''): string {
const time = Date.now();
- const random = Math.floor(Math.random() * 1_000_000_000);
+ const randomBuffer = new Uint32Array(1);
+
+ getBrowserCrypto().getRandomValues(randomBuffer);
+
+ const randomValue = randomBuffer[0];
+ const random = (randomValue ?? 0) % 1_000_000_000;
+
unique++;
return `${prefix}_${random}${unique}${String(time)}`;
}