/**
* 分析看板 Mock:字段与原型 admin-dashboard.html 演示数据对齐。
*/
export type MetricCard = {
key: string;
label: string;
tip: string;
value: string;
isTime?: boolean;
};
export type InquiryPoint = { date: string; value: number };
export type RankingPerson = {
name: string;
role: "sales" | "route" | "product";
dept: string;
volumeNum: number;
};
export type CostRoute = {
id: string;
label: string;
color: string;
/** 与 costDates 对齐;某日无样本为 null */
values: Array;
/** 前端根据 values 生成的 SVG path */
path: string;
/** 有金额的日子画点(仅一天有数时折线不可见,靠点可见) */
points: Array<{ x: number; y: number; index: number }>;
};
/** 今日视角九指标(与原型 5 列栅格、主账 InquiryDashboardServiceImpl 一致) */
export const todayMetrics: MetricCard[] = [
{ key: "inquiry", label: "询价总量", tip: "周期内询价工单总数", value: "128" },
{ key: "quoted", label: "报价工单", tip: "已报价工单数(已报价 + 议价中 + 已成交 + 未成交)", value: "92 单" },
{ key: "tms", label: "标准报价命中率", tip: "命中 TMS 标准价的询价数 ÷ 询价总数 × 100%", value: "67.8%" },
{ key: "avgSale", label: "平均报价销售额", tip: "AVG(已勾选报价的销售价)", value: "12800" },
{ key: "manual", label: "手工工单占比", tip: "人工报价的询价数 ÷ 询价总数 × 100%", value: "32.0%" },
{ key: "pending", label: "待处理工单", tip: "工单总数 − 已成交 − 未成交 − 已关闭", value: "39 单" },
{ key: "dealRate", label: "报价成功率", tip: "已成交数 ÷ 已报价数 × 100%", value: "34.8%" },
{ key: "feedback", label: "报价有效率", tip: "(已成交 + 未成交)÷ 工单数 × 100%", value: "60.2%" },
{
key: "avgResp",
label: "内部报价平均响应",
tip: "AVG(首次有效回复时间 − 分发时间)",
value: "8m42s",
isTime: true,
},
];
export const inquiryTrend: InquiryPoint[] = [
{ date: "06-12", value: 72 },
{ date: "06-13", value: 84 },
{ date: "06-14", value: 76 },
{ date: "06-15", value: 92 },
{ date: "06-16", value: 88 },
{ date: "06-17", value: 102 },
{ date: "06-18", value: 128 },
];
export const rankingPeople: RankingPerson[] = [
{ name: "张磊", role: "route", dept: "空运航线部", volumeNum: 38 },
{ name: "张三", role: "route", dept: "空运航线部", volumeNum: 35 },
{ name: "林芳", role: "route", dept: "空运航线部", volumeNum: 26 },
{ name: "赵六", role: "route", dept: "空运航线部", volumeNum: 22 },
{ name: "王伟", role: "product", dept: "海运产品部", volumeNum: 42 },
{ name: "陈昊", role: "product", dept: "海运产品部", volumeNum: 31 },
{ name: "周琳", role: "product", dept: "陆运产品部", volumeNum: 18 },
{ name: "王五", role: "product", dept: "陆运产品部", volumeNum: 15 },
{ name: "张敏", role: "sales", dept: "华东销售一部", volumeNum: 29 },
{ name: "李华", role: "sales", dept: "华南销售二部", volumeNum: 24 },
{ name: "刘洋", role: "sales", dept: "陆运销售部", volumeNum: 21 },
];
export const rankingDepts = [
"华东销售一部",
"华南销售二部",
"陆运销售部",
"空运航线部",
"海运产品部",
"陆运产品部",
];
/** 成本趋势折线:路径坐标对齐原型 SVG(仅作样式参考;正式数据来自主账) */
export const costRoutes: CostRoute[] = [
{
id: "cgo-kul",
label: "CGO-KUL",
color: "#2563eb",
values: [120, 118, 125, 110, 115, 105, 100],
path: "M36 56 L145 51 L254 61 L363 46 L472 50 L581 41 L690 36",
points: [],
},
];