Files
xk-admin/apps/desktop/electron-builder.config.cjs
李琦 beba5e8feb feat: 订单双视图、工作台日历组件、医生排班管理与挂号语音提醒
- 订单双视图:商品订单/处方/挂号列表新增卡片视图(CardList)、视图切换组件 view-mode-switch、stat-islands 统计岛、constants 字典
- 工作台:新增工作日历 Widget、待办日历、即将到访预约、公告滚动 NoticeTicker、日历面板 CalendarPanel
- 医生排班:新增排班 API、ScheduleDrawer 抽屉、schedule-calendar 组件、门店设置弹窗
- 日志与通知:新增排班变更日志页、排班变更通知视图
- 挂号提醒:新增挂号语音播报资源与 register-notify 工具
- 桌面端:新增 apps/desktop 壳及 desktop 工具方法
- 其他:处方/订单导出、聊天设置与 WebSocket 等小幅优化
2026-08-14 17:46:50 +08:00

79 lines
3.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* electron-builder 打包配置
* 用 JS 配置而不是 ymlmac 公证需要按「环境变量是否配齐」动态开关。
*
* 签名策略(按需求做成条件化,未配置证书时出未签名包且构建不报错):
* - Windows / mac 代码签名:配置了 CSC_LINK + CSC_KEY_PASSWORD或 mac 钥匙串里有
* Developer ID 证书)时 electron-builder 自动签名;否则自动跳过,只输出告警
* - mac 公证APPLE_ID + APPLE_APP_SPECIFIC_PASSWORD + APPLE_TEAM_ID 三者齐全才启用
* - 未签名 mac 包仍可内部分发:首次打开需右键「打开」,且自动更新会降级为提示手动下载
*/
const canNotarize = Boolean(
process.env.APPLE_ID &&
process.env.APPLE_APP_SPECIFIC_PASSWORD &&
process.env.APPLE_TEAM_ID,
);
/** @type {import('electron-builder').Configuration} */
const config = {
// appId 必须与主进程 setAppUserModelId 一致,否则 Windows 系统通知不显示
appId: 'com.xiaokang.xkadmin',
productName: '萧康云医',
// 安装包文件名用 ASCII避免中文名在静态托管/下载链接上出编码问题
artifactName: 'xk-desktop-${version}-${os}-${arch}.${ext}',
directories: {
output: 'release',
buildResources: 'resources',
},
files: ['out/**'],
extraResources: [
// web-antd 生产构建产物:放 resources/web不进 asar为后续渲染层热更新留路
{ from: '../web-antd/dist', to: 'web' },
// 应用图标供运行时使用托盘、Windows 窗口图标)
{ from: 'resources/icon.png', to: 'icon.png' },
],
asar: true,
compression: 'normal',
win: {
// TODO(待确认):正式图标待提供,当前用 web-antd logo 预生成的 ico 占位
// 直接给 .ico 让 builder 跳过 png 转换(本机 builder 的 wasm 图标工具会报内存错误)
icon: 'resources/icon.ico',
target: [{ target: 'nsis', arch: ['x64'] }],
},
nsis: {
// 非一键安装:允许用户选择安装目录,符合企业内部软件分发习惯
oneClick: false,
perMachine: false,
allowToChangeInstallationDirectory: true,
createDesktopShortcut: true,
createStartMenuShortcut: true,
shortcutName: '萧康云医',
},
mac: {
icon: 'resources/icon.png',
category: 'public.app-category.medical',
// dmg 给用户安装zip 是 electron-updater 在 mac 自动更新的必需格式,缺一不可
target: [
{ target: 'dmg', arch: ['x64', 'arm64'] },
{ target: 'zip', arch: ['x64', 'arm64'] },
],
hardenedRuntime: true,
gatekeeperAssess: false,
entitlements: 'resources/entitlements.mac.plist',
entitlementsInherit: 'resources/entitlements.mac.plist',
// IM 音视频通话必需的隐私用途描述,缺失时 mac 上调用摄像头/麦克风直接崩溃
extendInfo: {
NSCameraUsageDescription: '视频问诊需要使用摄像头',
NSMicrophoneUsageDescription: '语音/视频通话需要使用麦克风',
},
notarize: canNotarize,
},
publish: {
provider: 'generic',
// TODO(待确认):更新包静态托管地址,需与主进程 config.ts 的 DOWNLOAD_PAGE_URL 保持一致
url: 'https://static.xiaokang88.com/xk-desktop/',
},
};
module.exports = config;