From e18d39724aa2e656ee454407e78ae6c58e9190c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=95=E7=91=9E=E7=8E=9B=E7=9A=84=E7=9A=87=E5=B8=9D?= <2075125282@qq.com> Date: Sat, 27 Sep 2025 21:17:09 +0800 Subject: [PATCH 1/6] docs(projects): add github trendshift info. --- README.en_US.md | 6 ++++-- README.md | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.en_US.md b/README.en_US.md index e1fd000d..8b1810e4 100644 --- a/README.en_US.md +++ b/README.en_US.md @@ -12,8 +12,10 @@ [![gitee stars](https://gitee.com/honghuangdc/soybean-admin/badge/star.svg)](https://gitee.com/honghuangdc/soybean-admin) [![gitcode star](https://gitcode.com/soybeanjs/soybean-admin/star/badge.svg)](https://gitcode.com/soybeanjs/soybean-admin) -Featured|HelloGitHub - +
+ soybeanjs%2Fsoybean-admin | Trendshift + Featured|HelloGitHub +
> [!NOTE] > If you think `SoybeanAdmin` is helpful to you, or you like our project, please give us a ⭐️ on GitHub. Your support is the driving force for us to continue to improve and add new features! Thank you for your support! diff --git a/README.md b/README.md index c581412b..fccdd451 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,10 @@ [![gitee stars](https://gitee.com/honghuangdc/soybean-admin/badge/star.svg)](https://gitee.com/honghuangdc/soybean-admin) [![gitcode star](https://gitcode.com/soybeanjs/soybean-admin/star/badge.svg)](https://gitcode.com/soybeanjs/soybean-admin) -Featured|HelloGitHub +
+ soybeanjs%2Fsoybean-admin | Trendshift + Featured|HelloGitHub +
> [!NOTE] > 如果您觉得 `SoybeanAdmin`对您有所帮助,或者您喜欢我们的项目,请在 GitHub 上给我们一个 ⭐️。您的支持是我们持续改进和增加新功能的动力!感谢您的支持! From 017440c1e64ce8885720be9ac043df38a02dba63 Mon Sep 17 00:00:00 2001 From: wenyuan <49969025+wenyuanw@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:35:22 +0800 Subject: [PATCH 2/6] docs(projects): add contribution leaderboard --- README.en_US.md | 8 ++++++++ README.md | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/README.en_US.md b/README.en_US.md index 8b1810e4..dd33de56 100644 --- a/README.en_US.md +++ b/README.en_US.md @@ -180,6 +180,14 @@ Thanks the following people for their contributions. If you want to contribute t +--- + +Here are the most active contributors from the past year. Thank you all for your support, which has enabled the project's continued development. + + + Contribution Leaderboard + + ## Communication `SoybeanAdmin` is a completely open source and free project, helping developers to develop medium and large-scale management systems more conveniently. It also provides WeChat and QQ communication groups. If you have any questions, please feel free to ask in the group. diff --git a/README.md b/README.md index fccdd451..c57f12e3 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,14 @@ pnpm build +--- + +以下是近一年中活跃度较高的贡献者,感谢各位的支持,让项目得以持续发展。 + + + Contribution Leaderboard + + ## 交流 `SoybeanAdmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供微信和 QQ 交流群,使用问题欢迎在群内提问。 From 8dc17e62f12ba1b01a9fc973108a777f9f7eb282 Mon Sep 17 00:00:00 2001 From: Soybean Date: Mon, 27 Oct 2025 17:41:40 +0800 Subject: [PATCH 3/6] fix(scripts): update command to use 'npm-check-updates' instead of 'ncu' --- packages/scripts/src/commands/update-pkg.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/scripts/src/commands/update-pkg.ts b/packages/scripts/src/commands/update-pkg.ts index 54d1132d..25e168eb 100644 --- a/packages/scripts/src/commands/update-pkg.ts +++ b/packages/scripts/src/commands/update-pkg.ts @@ -1,5 +1,5 @@ import { execCommand } from '../shared'; export async function updatePkg(args: string[] = ['--deep', '-u']) { - execCommand('npx', ['ncu', ...args], { stdio: 'inherit' }); + execCommand('npx', ['npm-check-updates', ...args], { stdio: 'inherit' }); } From b2c919b67305e3ee658fee52e8dda1c38b1aff93 Mon Sep 17 00:00:00 2001 From: Soybean Date: Mon, 27 Oct 2025 17:50:57 +0800 Subject: [PATCH 4/6] feat(global-tab): add support for switching tabs with right mouse button click --- src/layouts/modules/global-tab/index.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/layouts/modules/global-tab/index.vue b/src/layouts/modules/global-tab/index.vue index 0be378e8..5e3c92dc 100644 --- a/src/layouts/modules/global-tab/index.vue +++ b/src/layouts/modules/global-tab/index.vue @@ -27,6 +27,7 @@ const isPCFlag = isPC(); const TAB_DATA_ID = 'data-tab-id'; const MIDDLE_MOUSE_BUTTON = 1; +const RIGHT_MOUSE_BUTTON = 2; type TabNamedNodeMap = NamedNodeMap & { [TAB_DATA_ID]: Attr; @@ -99,6 +100,12 @@ function handleMousedown(e: MouseEvent, tab: App.Global.Tab) { handleCloseTab(tab); } +function switchTab(e: MouseEvent, tab: App.Global.Tab) { + if ([MIDDLE_MOUSE_BUTTON, RIGHT_MOUSE_BUTTON].includes(e.button)) return; + + tabStore.switchRouteByTab(tab); +} + async function refresh() { appStore.reloadPage(500); } @@ -197,7 +204,7 @@ init(); :active="tab.id === tabStore.activeTabId" :active-color="themeStore.themeColor" :closable="!tabStore.isTabRetain(tab.id)" - @pointerdown="tabStore.switchRouteByTab(tab)" + @pointerdown="switchTab($event, tab)" @mousedown="handleMousedown($event, tab)" @close="handleCloseTab(tab)" @contextmenu="handleContextMenu($event, tab.id)" From e471e9140ecef6701d8d9bdea323640e0de011f5 Mon Sep 17 00:00:00 2001 From: Soybean Date: Mon, 27 Oct 2025 18:49:39 +0800 Subject: [PATCH 5/6] fix(layout): fix getSiderWidth --- src/layouts/base-layout/index.vue | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/layouts/base-layout/index.vue b/src/layouts/base-layout/index.vue index aab04748..c552792d 100644 --- a/src/layouts/base-layout/index.vue +++ b/src/layouts/base-layout/index.vue @@ -18,7 +18,7 @@ defineOptions({ const appStore = useAppStore(); const themeStore = useThemeStore(); -const { childLevelMenus, isActiveFirstLevelMenuHasChildren } = provideMixMenuContext(); +const { secondLevelMenus, childLevelMenus, isActiveFirstLevelMenuHasChildren } = provideMixMenuContext(); const GlobalMenu = defineAsyncComponent(() => import('../modules/global-menu/index.vue')); @@ -77,9 +77,9 @@ const isTopHybridSidebarFirst = computed(() => themeStore.layout.mode === 'top-h const isTopHybridHeaderFirst = computed(() => themeStore.layout.mode === 'top-hybrid-header-first'); -const siderWidth = computed(() => getSiderWidth()); +const siderWidth = computed(() => getSiderAndCollapsedWidth(false)); -const siderCollapsedWidth = computed(() => getSiderCollapsedWidth()); +const siderCollapsedWidth = computed(() => getSiderAndCollapsedWidth(true)); function getSiderAndCollapsedWidth(isCollapsed: boolean) { const { @@ -104,7 +104,7 @@ function getSiderAndCollapsedWidth(isCollapsed: boolean) { const isMixMode = isVerticalMix.value || isTopHybridSidebarFirst.value || isVerticalHybridHeaderFirst.value; let finalWidth = isMixMode ? mixWidth : width; - if (isVerticalMix.value && appStore.mixSiderFixed && childLevelMenus.value.length) { + if (isVerticalMix.value && appStore.mixSiderFixed && secondLevelMenus.value.length) { finalWidth += mixChildMenuWidth; } @@ -114,14 +114,6 @@ function getSiderAndCollapsedWidth(isCollapsed: boolean) { return finalWidth; } - -function getSiderWidth() { - return getSiderAndCollapsedWidth(false); -} - -function getSiderCollapsedWidth() { - return getSiderAndCollapsedWidth(true); -}