status.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. export function statusLabel(status: unknown) {
  2. const value = String(status || "unknown");
  3. const labels: Record<string, string> = {
  4. success: "成功",
  5. partial_success: "部分成功",
  6. failed: "失败",
  7. pending: "待复看",
  8. rule_blocked: "规则阻断",
  9. running: "运行中",
  10. pass: "通过",
  11. fail: "未通过",
  12. skipped: "跳过",
  13. // 阶段事件
  14. stage_started: "阶段开始",
  15. stage_completed: "阶段完成",
  16. stage_failed: "阶段失败",
  17. // V3 Gemini 判定状态(pattern_match_result.judge_status / run_events)
  18. ok: "判定成功",
  19. judged: "已判定",
  20. gemini_quota_exhausted: "Gemini 配额截断",
  21. judge_failed: "判定技术失败",
  22. // 限流分类
  23. PLATFORM_RATE_LIMITED: "平台限流",
  24. PLATFORM_REQUEST_FAILED: "平台请求失败"
  25. };
  26. return labels[value] || value;
  27. }
  28. export function compactValue(value: unknown) {
  29. if (value === null || value === undefined || value === "") {
  30. return "缺失";
  31. }
  32. if (Array.isArray(value)) {
  33. return value.length ? value.join(", ") : "空";
  34. }
  35. if (typeof value === "object") {
  36. return JSON.stringify(value);
  37. }
  38. return String(value);
  39. }