- 订单双视图:商品订单/处方/挂号列表新增卡片视图(CardList)、视图切换组件 view-mode-switch、stat-islands 统计岛、constants 字典 - 工作台:新增工作日历 Widget、待办日历、即将到访预约、公告滚动 NoticeTicker、日历面板 CalendarPanel - 医生排班:新增排班 API、ScheduleDrawer 抽屉、schedule-calendar 组件、门店设置弹窗 - 日志与通知:新增排班变更日志页、排班变更通知视图 - 挂号提醒:新增挂号语音播报资源与 register-notify 工具 - 桌面端:新增 apps/desktop 壳及 desktop 工具方法 - 其他:处方/订单导出、聊天设置与 WebSocket 等小幅优化
25 lines
887 B
TypeScript
25 lines
887 B
TypeScript
import { app, nativeImage } from 'electron';
|
||
|
||
import { getMainWindow } from './window';
|
||
|
||
/**
|
||
* 未读角标:按平台分支实现
|
||
* - mac:Dock 图标原生支持文字角标,直接 setBadge
|
||
* - Windows:任务栏无原生数字角标,用「覆盖图标」实现(图由 preload 侧 canvas 绘制成 dataURL 传来,
|
||
* 因为主进程没有 DOM/canvas,在渲染侧画图是社区标准做法)
|
||
*/
|
||
export function applyBadge(count: number, image?: string): void {
|
||
if (process.platform === 'darwin') {
|
||
app.dock?.setBadge(count > 0 ? String(Math.min(count, 99)) : '');
|
||
return;
|
||
}
|
||
const win = getMainWindow();
|
||
if (!win) return;
|
||
if (count > 0 && image) {
|
||
win.setOverlayIcon(nativeImage.createFromDataURL(image), `${count} 条未读消息`);
|
||
} else {
|
||
// 数量归零或没有角标图时清除覆盖图标
|
||
win.setOverlayIcon(null, '');
|
||
}
|
||
}
|