facilityStatus.js 1.0 KB

12345678910111213141516171819202122232425
  1. import { deviceVisualForStatus } from './deviceStatus.js'
  2. // 设施码值不是设备状态码。只归一已明确的语义,不从颜色或动效键反推业务状态。
  3. const VISUAL_STATUS = {
  4. '0': 'NORMAL',
  5. '1': 'WORK_ORDER', // 维护者裁定:维护中用蓝色工单旋转环。
  6. '2': 'ALARM',
  7. NORMAL: 'NORMAL',
  8. WARNING: 'WARNING',
  9. ALARM: 'ALARM',
  10. WORK_ORDER: 'WORK_ORDER',
  11. OFFLINE: 'OFFLINE',
  12. }
  13. /** 设施状态 → 共享视觉状态词;未知码不猜成正常或报警,也不新增数字预警码。 */
  14. export function facilityVisualStatus(status) {
  15. const code = status === null || status === undefined ? '' : String(status).trim()
  16. return Object.hasOwn(VISUAL_STATUS, code) ? VISUAL_STATUS[code] : ''
  17. }
  18. /** 设施状态色与设备同源;未发布/离线保留设施的中性色。 */
  19. export function facilityStatusTone(status) {
  20. const visualStatus = facilityVisualStatus(status)
  21. return visualStatus && visualStatus !== 'OFFLINE' ? deviceVisualForStatus(visualStatus).tone : 'neutral'
  22. }