.mkh-page { padding: 16px 20px 24px; } .mkh-header { margin-bottom: 14px; } .mkh-header__heading .ant-typography { margin-bottom: 4px; } .mkh-note { display: block; max-width: 1180px; margin-top: 6px; font-size: 12px; line-height: 1.7; } .mkh-filter-card { margin-bottom: 12px; } .mkh-panel { margin-top: 4px; } .mkh-sku { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 12px; color: var(--sycm-text-primary); } .mkh-muted { color: var(--sycm-text-tertiary); } .mkh-detail-loading { padding: 12px 8px; color: var(--sycm-text-secondary); } .mkh-detail { padding: 4px 8px 8px; } .mkh-detail-tip { padding: 4px 0 8px; font-size: 12px; } .mkh-detail-code { display: block; margin-top: 2px; font-family: 'SFMono-Regular', Consolas, Menlo, monospace; font-size: 11px; color: var(--sycm-text-tertiary); } .mkh-tag { display: inline-block; padding: 0 6px; border-radius: 3px; font-size: 12px; line-height: 18px; white-space: nowrap; } .mkh-tag--ok { color: #0f6e56; background: rgba(29, 158, 117, 0.14); } .mkh-tag--muted { color: var(--sycm-text-tertiary); background: rgba(136, 135, 128, 0.14); } .mkh-tag--src { color: #0958d9; background: rgba(22, 119, 255, 0.12); } /* ============ 补货预警 ============ */ .mkh-alert { margin-bottom: 12px; } /* 缺货 */ .mkh-tag--danger { color: #a8071a; background: rgba(255, 77, 79, 0.14); } /* 预警 */ .mkh-tag--warn { color: #ad4e00; background: rgba(250, 173, 20, 0.2); } /* 可用天数低于阈值 */ .mkh-days--warn { color: #cf1322; font-weight: 600; } /* 建议补货量 */ .mkh-replenish { color: #0958d9; font-weight: 600; } /* 已排产:半成品包装仓已有未完成加工单,按业务口径不再预警 */ .mkh-tag--scheduled { color: #0958d9; background: rgba(22, 119, 255, 0.14); } /* 在途加工量(未完成加工单待入库数量) */ .mkh-inbound { color: #0958d9; font-weight: 600; } /* 待发货订单(聚水潭未发货订单件数,见文件头 ⑩) */ .mkh-order { color: #ad4e00; font-weight: 600; } /* 日销兜底(上游快照漏算时按订单表实算,见服务文件头 ⑦-a): 虚线表示该值不是上游快照,悬停有说明,避免与源系统数字对照时误判为数据错误 */ .mkh-sale-fallback { border-bottom: 1px dashed currentColor; cursor: help; } /* 配件不足(可组装数 = 0,补不出来,见文件头 ⑪):与「缺货」红标签并排,用紫灰区分 */ .mkh-tag--shortage { color: #722ed1; background: rgba(114, 46, 209, 0.14); border-color: rgba(114, 46, 209, 0.35); } /* ============ A4 打印预览 ============ */ .mkh-print-mask { position: fixed; inset: 0; z-index: 2000; overflow: auto; background: rgba(0, 0, 0, 0.55); padding: 24px 0 40px; } .mkh-print-toolbar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: center; padding: 12px; margin-bottom: 16px; } .mkh-print-sheet { width: 210mm; min-height: 297mm; margin: 0 auto; padding: 14mm 12mm; background: #fff; color: #000; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35); box-sizing: border-box; font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; font-size: 12px; line-height: 1.5; } .mkh-print-head { text-align: center; border-bottom: 2px solid #000; padding-bottom: 10px; margin-bottom: 12px; } .mkh-print-title { font-size: 22px; font-weight: 700; letter-spacing: 2px; } .mkh-print-sub { margin-top: 4px; font-size: 12px; color: #444; } .mkh-print-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; margin-bottom: 12px; font-size: 13px; } .mkh-print-meta > div { display: flex; } .mkh-print-meta span { color: #555; min-width: 78px; } .mkh-print-table { width: 100%; border-collapse: collapse; font-size: 12px; } .mkh-print-table th, .mkh-print-table td { border: 1px solid #000; padding: 6px 8px; text-align: left; word-break: break-all; } .mkh-print-table thead th { background: #f2f2f2; font-weight: 700; } .mkh-print-table .mkh-center { text-align: center; } .mkh-print-table .mkh-muted { color: #999; } .mkh-print-table .mkh-print-sku { font-family: 'SFMono-Regular', Consolas, Menlo, monospace; /* 2026-09-18 业务要求调大:原来是 11px,车间核对编码时太小 */ font-size: 14px; font-weight: 700; letter-spacing: 0.3px; vertical-align: middle; } .mkh-print-code { display: block; margin-top: 2px; font-family: 'SFMono-Regular', Consolas, Menlo, monospace; /* 2026-09-18 业务要求调大:原来是 10px / #666,扫码与人工核对都偏小偏淡 */ font-size: 12px; font-weight: 600; color: #222; } .mkh-print-foot { margin-top: 16px; padding-top: 8px; border-top: 1px dashed #999; font-size: 11px; color: #666; } /* 打印时只输出 A4 纸张,隐藏其余界面 */ @media print { body * { visibility: hidden !important; } .mkh-print-sheet, .mkh-print-sheet * { visibility: visible !important; } .mkh-print-toolbar { display: none !important; } .mkh-print-mask { position: absolute !important; inset: 0 !important; background: #fff !important; overflow: visible !important; padding: 0 !important; } .mkh-print-sheet { width: 210mm; min-height: auto; margin: 0 !important; padding: 0 !important; box-shadow: none !important; } @page { size: A4; margin: 12mm; } } /* ── 补货预警推送设置弹窗 ──────────────────────────── */ .mkh-alert-form { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; } .mkh-alert-row { display: flex; align-items: center; gap: 10px; } .mkh-alert-label { flex: none; width: 68px; color: var(--sycm-text-secondary); } .mkh-alert-meta { margin-top: 14px; padding: 10px 12px; border: 1px solid var(--sycm-border-color); border-radius: 8px; background: var(--sycm-bg-subtle); font-size: 12px; line-height: 2; color: var(--sycm-text-secondary); } .mkh-alert-result { margin-top: 14px; } .mkh-alert-result-body { font-size: 12px; line-height: 1.8; } .mkh-alert-preview { margin-top: 8px; padding: 10px 12px; border: 1px solid var(--sycm-border-color); border-radius: 8px; background: var(--sycm-bg-container); } .mkh-alert-preview-title { margin-bottom: 6px; font-weight: 600; color: var(--sycm-text-strong); } .mkh-alert-preview pre { margin: 0 0 6px; font-family: inherit; font-size: 12px; line-height: 1.8; white-space: pre-wrap; word-break: break-word; color: var(--sycm-text-primary); } .mkh-alert-hint { margin-top: 10px; font-size: 12px; line-height: 1.7; color: var(--sycm-text-tertiary); } /* 推送通道(统一通知中心)折叠区 */ .mkh-alert-center { margin-top: 6px; } .mkh-alert-center .ant-collapse-header { padding: 8px 0 !important; } .mkh-alert-center .ant-collapse-content-box { padding: 0 0 4px !important; } .mkh-alert-form--inner { margin-top: 4px; }