// ============================================================ // 应用常量 —— 版本号、版本类型、窗口标题 // 主进程 & 渲染进程共享 // ============================================================ import type { Edition, Platform } from '../types'; import { APP_VERSION } from './version'; /** 应用显示名称(文件/标题通用前缀) */ export const APP_NAME = '船长-HeiXiu'; // APP_VERSION 从 ./version.ts 导入(读取 package.json),不再硬编码 // ============================================================ // 版本类型(企业版 / 个人版) // // 注意:edition 由后端 account_type 运行时决定,不由构建变量控制。 // 不再需要 parseEdition() —— 构建时 EDITION 环境变量已移除。 // ============================================================ /** 版本中文名称 */ export function getEditionName(edition: Edition): string { return edition === 'enterprise' ? '企业版' : '个人版'; } // ============================================================ // 窗口标题构建 // ============================================================ /** 平台中文名称(简写) */ function platformShortName(platform: Platform): string { if (platform === 'darwin') return 'MAC'; if (platform === 'win32') return 'Windows'; return 'Linux'; } /** * 构建窗口标题 * * 格式(无版控):船长-HeiXiu-{平台}-{版本号} * 示例:船长-HeiXiu-Windows-0.0.23 * * 格式(含版控):船长-HeiXiu-{平台}-{版本号}·{版控} * 示例:船长-HeiXiu-Windows-0.0.23·企业版 * * @param platform - 当前操作系统平台 * @param version - 可选覆盖版本号(默认 APP_VERSION) * @param edition - 可选版本类型(登录后追加,未登录不显示) */ export function buildWindowTitle(platform: Platform, version?: string, edition?: Edition): string { const ver = version ?? APP_VERSION; const os = platformShortName(platform); const base = `${APP_NAME}-${os}-${ver}`; if (edition) { return `${base}·${getEditionName(edition)}`; } return base; }