/** * 分析看板 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: [], }, ];