刘光辉
6 小时以前 cf11e63b659afcc9792ab3e395f1b45d844431a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import type { ArchiveStatus, RecordListMode } from './types';
 
import { ref } from 'vue';
 
import { useBaseStore } from '#/store';
import {
  TMS_DIC,
  labelOfDic,
  labelOfPassFlagOpts,
  loadTmsDic,
  type TmsDicOpt,
} from '#/views/x/tms/shared/dic';
 
export const ARCHIVE_STATUS_OPTIONS = ref<TmsDicOpt[]>([]);
export const TASK_CATEGORY_OPTIONS = ref<TmsDicOpt[]>([]);
export const TRAIN_MODE_OPTIONS = ref<TmsDicOpt[]>([]);
export const EVAL_MODE_OPTIONS = ref<TmsDicOpt[]>([]);
export const PASS_FLAG_OPTIONS = ref<TmsDicOpt[]>([]);
 
export async function loadRecordDics() {
  const baseStore = useBaseStore();
  const [archive, category, trainMode, evalMode, passFlag] = await Promise.all([
    loadTmsDic(baseStore, TMS_DIC.archiveStatus),
    loadTmsDic(baseStore, TMS_DIC.taskCategory),
    loadTmsDic(baseStore, TMS_DIC.trainMode),
    loadTmsDic(baseStore, TMS_DIC.evalMode),
    loadTmsDic(baseStore, TMS_DIC.passFlag),
  ]);
  ARCHIVE_STATUS_OPTIONS.value = archive;
  TASK_CATEGORY_OPTIONS.value = category;
  TRAIN_MODE_OPTIONS.value = trainMode;
  EVAL_MODE_OPTIONS.value = evalMode;
  PASS_FLAG_OPTIONS.value = passFlag;
}
 
export const LIST_MODE_LABEL: Record<RecordListMode, string> = {
  main: '培训记录',
  ready: '可归档列表',
  archived: '已归档列表',
};
 
export const RECORD_LIST_PATH: Record<RecordListMode, string> = {
  main: '/tms/record',
  ready: '/tms/record/ready',
  archived: '/tms/record/archived',
};
 
export function labelOfArchiveStatus(status?: ArchiveStatus | string | null) {
  return labelOfDic(ARCHIVE_STATUS_OPTIONS.value, status);
}
 
export function labelOfCategory(v?: string) {
  return labelOfDic(TASK_CATEGORY_OPTIONS.value, v);
}
 
export function labelOfTrainMode(v?: string) {
  return labelOfDic(TRAIN_MODE_OPTIONS.value, v);
}
 
export function labelOfEvalMode(v?: string) {
  return labelOfDic(EVAL_MODE_OPTIONS.value, v);
}
 
export function labelOfPassFlag(v?: string | null) {
  return labelOfPassFlagOpts(PASS_FLAG_OPTIONS.value, v);
}
 
/** 归档状态 Tag 颜色(Ant Design 预设色,列表/详情共用) */
export function colorOfArchiveStatus(status?: ArchiveStatus | string | null) {
  switch (String(status || '').trim().toLowerCase()) {
    case 'open':
      return 'processing'; // 进行中 · 蓝
    case 'pending':
      return 'warning'; // 待归档 · 橙
    case 'ready':
      return 'cyan'; // 可归档 · 青(与进行中区分)
    case 'archived':
      return 'success'; // 已归档 · 绿
    case 'invalid':
      return 'error'; // 作废 · 红
    default:
      return 'default';
  }
}