// ============================================================
|
// SRM 统一枚举常量
|
// 所有值严格对齐后端枚举定义 (yudao-module-srm/enums/)
|
// ============================================================
|
|
/** 选项类型 (Select/RadioGroup通用) */
|
export interface EnumOption {
|
label: string;
|
value: number | string;
|
}
|
|
/** CellTag 数据类型 */
|
export interface CellTagItem {
|
value: number | string;
|
color: string;
|
}
|
|
// ========== 供应商 (字段值对齐 CommonStatusEnum + SupplierTypeEnum) ==========
|
|
/** 供应商状态 — 对齐 CommonStatusEnum (0=开启 1=关闭) */
|
export const SUPPLIER_STATUS = {
|
ENABLE: 0,
|
DISABLE: 1,
|
} as const;
|
|
export const SUPPLIER_STATUS_OPTIONS: EnumOption[] = [
|
{ label: '开启', value: 0 },
|
{ label: '关闭', value: 1 },
|
];
|
|
export const SUPPLIER_STATUS_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 0, color: 'green' },
|
{ value: 1, color: 'red' },
|
],
|
labels: { 0: '开启', 1: '关闭' },
|
};
|
|
/** 供应商类型 — 对齐 SupplierTypeEnum (1=生产型 2=贸易型 3=服务型 4=其他) */
|
export const SUPPLIER_TYPE = {
|
PRODUCTION: 1,
|
TRADING: 2,
|
SERVICE: 3,
|
OTHER: 4,
|
} as const;
|
|
export const SUPPLIER_TYPE_OPTIONS: EnumOption[] = [
|
{ label: '生产型', value: 1 },
|
{ label: '贸易型', value: 2 },
|
{ label: '服务型', value: 3 },
|
{ label: '其他', value: 4 },
|
];
|
|
export const SUPPLIER_TYPE_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 1, color: 'blue' },
|
{ value: 2, color: 'green' },
|
{ value: 3, color: 'orange' },
|
{ value: 4, color: 'default' },
|
],
|
labels: { 1: '生产型', 2: '贸易型', 3: '服务型', 4: '其他' },
|
};
|
|
// ========== 准入申请 — 对齐 SupplierApplyStatusEnum (0/10/20/30/40/50) ==========
|
|
export const APPLY_STATUS = {
|
DRAFT: 0,
|
PENDING_PURCHASE: 10,
|
PENDING_QUALITY: 20,
|
PENDING_FINANCE: 30,
|
APPROVED: 40,
|
REJECTED: 50,
|
} as const;
|
|
export const APPLY_STATUS_OPTIONS: EnumOption[] = [
|
{ label: '待提交', value: 0 },
|
{ label: '待采购审核', value: 10 },
|
{ label: '待质量审核', value: 20 },
|
{ label: '待财务审核', value: 30 },
|
{ label: '已通过', value: 40 },
|
{ label: '已拒绝', value: 50 },
|
];
|
|
export const APPLY_STATUS_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 0, color: 'gray' },
|
{ value: 10, color: 'blue' },
|
{ value: 20, color: 'orange' },
|
{ value: 30, color: 'purple' },
|
{ value: 40, color: 'green' },
|
{ value: 50, color: 'red' },
|
],
|
labels: { 0: '待提交', 10: '待采购审核', 20: '待质量审核', 30: '待财务审核', 40: '已通过', 50: '已拒绝' },
|
};
|
|
// ========== 资质证书 — 对齐 CertificateTypeEnum (1=营业执照 2=认证证书 3=检测报告 4=其他) ==========
|
|
export const CERTIFICATE_TYPE = {
|
BUSINESS_LICENSE: 1,
|
CERTIFICATION: 2,
|
INSPECTION_REPORT: 3,
|
OTHER: 4,
|
} as const;
|
|
export const CERTIFICATE_TYPE_OPTIONS: EnumOption[] = [
|
{ label: '营业执照', value: 1 },
|
{ label: '认证证书', value: 2 },
|
{ label: '检测报告', value: 3 },
|
{ label: '其他', value: 4 },
|
];
|
|
export const CERTIFICATE_TYPE_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 1, color: 'blue' },
|
{ value: 2, color: 'green' },
|
{ value: 3, color: 'orange' },
|
{ value: 4, color: 'default' },
|
],
|
labels: { 1: '营业执照', 2: '认证证书', 3: '检测报告', 4: '其他' },
|
};
|
|
// ========== 绩效评价 — 后端 evaluationLevel 为 String 类型 (A/B/C/D) ==========
|
|
export const EVALUATION_GRADE = {
|
A: 'A',
|
B: 'B',
|
C: 'C',
|
D: 'D',
|
} as const;
|
|
export const EVALUATION_GRADE_CELLTAG: { data: CellTagItem[] } = {
|
data: [
|
{ value: 'A', color: 'green' },
|
{ value: 'B', color: 'blue' },
|
{ value: 'C', color: 'orange' },
|
{ value: 'D', color: 'red' },
|
],
|
};
|
|
/** 综合评分区间 — 后端计算: >=90→A, >=80→B, >=70→C, <70→D */
|
export const COMPOSITE_SCORE_CELLTAG: { data: CellTagItem[] } = {
|
data: [
|
{ value: 90, color: 'green' },
|
{ value: 80, color: 'blue' },
|
{ value: 70, color: 'orange' },
|
{ value: 0, color: 'red' },
|
],
|
};
|
|
// ========== 招标项目 — 对齐 TenderStatusEnum (0/1/2/3/4/5) + TenderTypeEnum (1/2/3) ==========
|
|
/** 招标类型 — 对齐 TenderTypeEnum (1=公开招标 2=邀请招标 3=竞争性谈判) */
|
export const TENDER_TYPE = {
|
PUBLIC: 1,
|
INVITATION: 2,
|
COMPETITIVE_NEGOTIATION: 3,
|
} as const;
|
|
export const TENDER_TYPE_OPTIONS: EnumOption[] = [
|
{ label: '公开招标', value: 1 },
|
{ label: '邀请招标', value: 2 },
|
{ label: '竞争性谈判', value: 3 },
|
];
|
|
export const TENDER_TYPE_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 1, color: 'blue' },
|
{ value: 2, color: 'blue' },
|
{ value: 3, color: 'green' },
|
],
|
labels: { 1: '公开招标', 2: '邀请招标', 3: '竞争性谈判' },
|
};
|
|
/** 招标项目状态 — 对齐 TenderStatusEnum (0=草稿 1=发布中 2=投标中 3=评标中 4=已定标 5=已关闭) */
|
export const TENDER_STATUS = {
|
DRAFT: 0,
|
PUBLISHED: 1,
|
BIDDING: 2,
|
EVALUATING: 3,
|
AWARDED: 4,
|
CLOSED: 5,
|
} as const;
|
|
export const TENDER_STATUS_OPTIONS: EnumOption[] = [
|
{ label: '草稿', value: 0 },
|
{ label: '发布中', value: 1 },
|
{ label: '投标中', value: 2 },
|
{ label: '评标中', value: 3 },
|
{ label: '已定标', value: 4 },
|
{ label: '已关闭', value: 5 },
|
];
|
|
export const TENDER_STATUS_CELLTAG: { data: CellTagItem[]; labels: Record<number, string> } = {
|
data: [
|
{ value: 0, color: 'gray' },
|
{ value: 1, color: 'blue' },
|
{ value: 2, color: 'cyan' },
|
{ value: 3, color: 'orange' },
|
{ value: 4, color: 'green' },
|
{ value: 5, color: 'red' },
|
],
|
labels: { 0: '草稿', 1: '发布中', 2: '投标中', 3: '评标中', 4: '已定标', 5: '已关闭' },
|
};
|
|
/** 招标状态 Ant Design Tag 颜色映射 */
|
export const TENDER_STATUS_COLORS: Record<number, string> = {
|
[TENDER_STATUS.DRAFT]: 'default',
|
[TENDER_STATUS.PUBLISHED]: 'blue',
|
[TENDER_STATUS.BIDDING]: 'cyan',
|
[TENDER_STATUS.EVALUATING]: 'orange',
|
[TENDER_STATUS.AWARDED]: 'green',
|
[TENDER_STATUS.CLOSED]: 'red',
|
};
|
|
// ========== 投标 — 对齐 BidStatusEnum (0=报名 10=已投标 20=撤标 30=中标 40=未中标) ==========
|
|
export const BID_STATUS = {
|
REGISTERED: 0,
|
BID: 10,
|
WITHDRAWN: 20,
|
WIN: 30,
|
LOSE: 40,
|
} as const;
|
|
export const BID_STATUS_MAP: Record<number, string> = {
|
0: '报名',
|
10: '已投标',
|
20: '撤标',
|
30: '中标',
|
40: '未中标',
|
};
|
|
// ========== 定标 — 对齐 AwardStatusEnum (0=待审批 10=已定标 20=已生成订单) ==========
|
|
export const AWARD_STATUS = {
|
PENDING_APPROVAL: 0,
|
AWARDED: 10,
|
ORDER_GENERATED: 20,
|
} as const;
|
|
export const AWARD_STATUS_MAP: Record<number, string> = {
|
0: '待审批',
|
10: '已定标',
|
20: '已生成订单',
|
};
|
|
// ========== 工具函数 ==========
|
|
/** 根据值获取标签 */
|
export function getLabel(map: Record<number, string>, value?: number): string {
|
return value !== undefined ? map[value] || String(value) : '';
|
}
|
|
/** 将 options 数组转为 labels 映射 */
|
export function optionsToLabels(options: EnumOption[]): Record<number, string> {
|
const labels: Record<number, string> = {};
|
for (const opt of options) {
|
if (typeof opt.value === 'number') {
|
labels[opt.value] = opt.label;
|
}
|
}
|
return labels;
|
}
|