Files
xk-admin/apps/desktop/src/main/badge.ts
李琦 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

25 lines
887 B
TypeScript
Raw 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.
import { app, nativeImage } from 'electron';
import { getMainWindow } from './window';
/**
* 未读角标:按平台分支实现
* - macDock 图标原生支持文字角标,直接 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, '');
}
}