From 8c99ae416c5277e737e950ce7702776d7c9b6430 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 03 八月 2026 17:57:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
deploy.bat | 2 +-
src/preferences.ts | 4 +++-
vite.config.ts | 19 +++++++++++++++----
.env.production | 2 ++
public/logos/TEST.ico | 0
src/types/app.d.ts | 2 ++
src/layouts/auth.vue | 4 +++-
company.config.ts | 6 ++++--
src/main.ts | 16 +++++++++++++++-
9 files changed, 45 insertions(+), 10 deletions(-)
diff --git a/.env.production b/.env.production
index cd77149..f7d87ea 100644
--- a/.env.production
+++ b/.env.production
@@ -1,3 +1,5 @@
+VITE_COMPANY=TEST
+
VITE_BASE=/
# 璇锋眰璺緞
diff --git a/company.config.ts b/company.config.ts
index b2d21a3..04c0ed2 100644
--- a/company.config.ts
+++ b/company.config.ts
@@ -3,15 +3,17 @@
name: string;
/** logo 鍥剧墖璺緞锛岀浉瀵逛簬 public 鐩綍 */
logo: string;
+ /** 缃戦〉鏍囬鍥炬爣璺緞锛岀浉瀵逛簬 public 鐩綍 */
+ favicon: string;
}
/**
* 鎵�鏈夊叕鍙搁厤缃�
* 鏂板鍏徃鍙渶鍦ㄤ笅闈㈠姞涓�琛屽嵆鍙�
*
- * 鎵撳寘锛氳寰楀湪鍦╠eploy.bat鏂囦欢涓皢set "COMPANY=TEST"鏀瑰悕瀛�
+ * 鎵撳寘鍛戒护锛歞eploy.bat 涓慨鏀� set "COMPANY=鍏徃key"
* 绀轰緥锛歴et "COMPANY=TEST"
*/
export const companies: Record<string, CompanyConfig> = {
- TEST: { name: '娴嬭瘯鍏徃', logo: '/logos/TEST.png' },
+ TEST: { name: '娴嬭瘯鍏徃', logo: '/logos/TEST.png', favicon: '/logos/TEST.ico' },
};
diff --git a/deploy.bat b/deploy.bat
index 11a1ca0..52e47e9 100644
--- a/deploy.bat
+++ b/deploy.bat
@@ -95,7 +95,7 @@
echo [STEP 1/3] Building project for %COMPANY%...
echo [INFO] Running: pnpm run build
echo.
-set COMPANY=%COMPANY% && call pnpm run build
+set "COMPANY=!COMPANY!" && call pnpm run build
if !errorlevel! neq 0 (
echo [ERROR] Build failed! Check your project configuration.
goto :error_exit
diff --git a/public/logos/TEST.ico b/public/logos/TEST.ico
new file mode 100644
index 0000000..f5d4f2c
--- /dev/null
+++ b/public/logos/TEST.ico
Binary files differ
diff --git a/src/layouts/auth.vue b/src/layouts/auth.vue
index 8ba66e8..ad41d1f 100644
--- a/src/layouts/auth.vue
+++ b/src/layouts/auth.vue
@@ -6,8 +6,10 @@
import { $t } from '#/locales';
+declare const __APP_LOGO__: string;
+
const appName = computed(() => preferences.app.name);
-const logo = computed(() => preferences.logo.source);
+const logo = computed(() => __APP_LOGO__ || preferences.logo.source);
const logoDark = computed(() => preferences.logo.sourceDark);
</script>
diff --git a/src/main.ts b/src/main.ts
index d6fa68c..e208cd2 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,7 +1,10 @@
-import { initPreferences } from './packages/preferences/src';
+import { initPreferences, preferencesManager } from './packages/preferences/src';
import { unmountGlobalLoading } from './packages/utils/src';
import { overridesPreferences, preferencesExtension } from './preferences';
+
+declare const __APP_LOGO__: string;
+declare const __APP_FAVICON__: string;
/**
* 搴旂敤鍒濆鍖栧畬鎴愪箣鍚庡啀杩涜椤甸潰鍔犺浇娓叉煋
@@ -20,6 +23,17 @@
overrides: overridesPreferences,
});
+ // 寮哄埗瑕嗙洊鍏徃 logo 鍜� favicon锛岀粫杩� localStorage 缂撳瓨
+ if (__APP_LOGO__) {
+ preferencesManager.updatePreferences({ logo: { source: __APP_LOGO__ } });
+ }
+ if (__APP_FAVICON__) {
+ const link = document.querySelector('link[rel="icon"]');
+ if (link) {
+ link.setAttribute('href', __APP_FAVICON__);
+ }
+ }
+
// 鍚姩搴旂敤骞舵寕杞�
// vue搴旂敤涓昏閫昏緫鍙婅鍥�
const { bootstrap } = await import('./bootstrap');
diff --git a/src/preferences.ts b/src/preferences.ts
index f2b5a03..6b87741 100644
--- a/src/preferences.ts
+++ b/src/preferences.ts
@@ -3,6 +3,8 @@
definePreferencesExtension,
} from './packages/preferences/src';
+declare const __APP_LOGO__: string;
+
interface WebAntdPreferencesExtension {
defaultTableSize: number;
enableFormFullscreen: boolean;
@@ -33,7 +35,7 @@
companySiteLink: 'https://gitee.com/yudaocode/yudao-ui-admin-vben',
},
logo: {
- source: import.meta.env.VITE_APP_LOGO || undefined,
+ source: __APP_LOGO__ || undefined,
},
tabbar: {
/** 鍒锋柊娴忚鍣ㄥ悗鍙繚鐣欏綋鍓嶉〉闈紝涓嶆寔涔呭寲鎵�鏈夋爣绛鹃〉 */
diff --git a/src/types/app.d.ts b/src/types/app.d.ts
new file mode 100644
index 0000000..d65d0ad
--- /dev/null
+++ b/src/types/app.d.ts
@@ -0,0 +1,2 @@
+declare const __APP_LOGO__: string;
+declare const __APP_FAVICON__: string;
diff --git a/vite.config.ts b/vite.config.ts
index 82ece29..825d4d4 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,15 +1,26 @@
import { resolve } from "node:path";
+import { loadEnv } from "vite";
import { defineConfig } from "./internal/vite-config/src";
-import { companies } from "./company.config";
-const appLogo = process.env.COMPANY ? companies[process.env.COMPANY]?.logo : undefined;
+/** 鍏徃閰嶇疆锛氭柊澧炲叕鍙稿彧闇�鍔犱竴琛岋紝logo 鍥剧墖鏀� public/logos/ 鐩綍 */
+const companyConfigs: Record<string, { favicon: string; logo: string; name: string }> = {
+ TEST: { name: '娴嬭瘯鍏徃', logo: '/logos/TEST.png', favicon: '/logos/TEST.ico' },
+};
-export default defineConfig(async () => {
+export default defineConfig(async ({ mode }) => {
+ const env = loadEnv(mode, process.cwd(), 'VITE_');
+ const companyKey = env.VITE_COMPANY || '';
+ const company = companyConfigs[companyKey];
+ const appLogo = company?.logo ?? '';
+ const appFavicon = company?.favicon ?? '';
+ console.log('[company]', companyKey, '-> logo:', appLogo, 'favicon:', appFavicon);
+
return {
application: {},
vite: {
define: {
- 'import.meta.env.VITE_APP_LOGO': JSON.stringify(appLogo ?? ''),
+ __APP_LOGO__: JSON.stringify(appLogo),
+ __APP_FAVICON__: JSON.stringify(appFavicon),
},
resolve: {
alias: {
--
Gitblit v1.9.3