Files
ims/messages/zh.json
T
adminandClaude Fable 5 576557181a feat: Phase 5 & 6 — usability, compliance hardening, analytics
Phase 5 (usability + compliance):
- In-app notification bell/badge: migration 016 adds read state + per-user
  RLS + create_in_app_notification SECURITY DEFINER RPC; /api/notifications;
  wired into incident creation, CAPA assign/verify, escalation cron
- Incident closure: new POST /api/incidents/[id]/close (requires verification
  status + all CAPAs verified); migration 017 locks closed incidents at DB
  level (update/delete triggers) with append-only incident_addenda + UI panel
- Server-side pagination on HSE/supervisor incident inboxes (.range, 25/page)
- Investigation form: alcohol/urine test result + witness statement refs
  (existing schema columns, now editable)
- Type-specific intake fields: migration 018 adds incidents.type_details
  JSONB; whitelist validation; environmental/asset/security/fire field
  groups in report form; EN/MS/ZH labels; offline queue support
- JKKP 8 annual register CSV export (/api/reports/jkkp8) + dashboard button
  + January statutory deadline banner
- Admin page: user invite (service-role client), role/site/active management,
  site + zone CRUD with QR report links — replaces Phase 0 stub
- Evidence gallery thumbnails via Supabase render transform with fallback

Phase 6 (analytics):
- 12-month stacked trend chart (leading/lagging/other) + top root causes
  (lib/dashboard/trends.ts pure helpers)
- AI rising-risk zones: /api/dashboard/ai/risk-flags aggregates 90-day
  zone stats, claude-opus-4-8 forced tool_use, panel on HSE + management
  dashboards, suggestion audit-logged

Also fixes 9 pre-existing missing /ims basePath prefixes in client fetches
and download links.

132 tests passing, tsc clean, next build clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPf5Rc8QPx6V8KLEEgfKEQ
2026-07-12 10:25:08 +08:00

51 lines
2.0 KiB
JSON
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.
{
"ReportForm": {
"title": "事故报告",
"incidentTypeLabel": "事故类型",
"incidentTypePlaceholder": "选择类型…",
"descriptionLabel": "发生了什么?",
"descriptionPlaceholder": "描述发生了什么、在哪里,以及采取的即时行动…",
"injuryInvolved": "有人受伤",
"treatmentLevel": "治疗级别",
"treatmentPlaceholder": "选择治疗方式…",
"assetInvolved": "设备/资产受损",
"filesLabel": "照片/视频/文件",
"submitButton": "提交事故报告",
"submitting": "提交中…",
"submitAnyway": "仍然提交",
"qualityScoreLabel": "报告质量 — {score}/10",
"errorGeneric": "出现错误,请重试。",
"savedOffline": "报告已保存。当您重新联网时将自动提交。",
"offlineBanner": "您处于离线状态。您的报告将在重新联网时自动提交。"
},
"IncidentType": {
"injury": "受伤/医疗",
"near_miss": "未遂事故",
"hazard": "危险/不安全状况",
"asset_damage": "资产/设备损坏",
"environmental": "环境事故",
"security": "安全事故",
"fire": "火灾/紧急情况"
},
"MedicalStatus": {
"none": "无需治疗",
"first_aid": "仅急救",
"medical_treatment": "医疗治疗(非 LTI",
"lti": "工伤失时(LTI"
},
"TypeDetails": {
"substance": "泄漏物质/材料",
"substancePlaceholder": "例如:柴油、液压油",
"estimatedVolume": "估计数量",
"estimatedVolumePlaceholder": "例如:20升",
"containmentDeployed": "已使用泄漏应急包/围堵措施",
"equipmentId": "设备编号",
"equipmentIdPlaceholder": "例如:FLT-03、5号月台调节板",
"lotoApplied": "已执行紧急停机/上锁挂牌 (LOTO)",
"personsInvolved": "涉及人员",
"personsInvolvedPlaceholder": "姓名或描述",
"policeReported": "已报警",
"alarmRaised": "已拉响火警警报",
"fireBrigadeCalled": "已呼叫消防局 (BOMBA)"
}
}