feat: 补齐退单管理/成本分析/执行分析/远程诊断/停机报表/风险监测前端
## 背景
后端已提交 8782476e(需求10/15/16/17/18/21/23),本次补齐对应前端界面。
## 内容
### 需求10 退单管理(新增页面)
- src/api/aftersales/cancellation.ts:受理单 8 个接口
- src/views/aftersales/cancellation/{index.vue,data.ts,modules/form.vue}
- 列表按状态控制可用操作:草稿可编辑/提交/取消/删除,待审批可审批/取消
- 审批弹窗支持通过/驳回,驳回前端先校验必填意见(后端仍兜底校验)
- 通过后提示是否生成退货单,并展示下游执行结果与失败原因
### 需求23 成本分析(新增页面)
- src/api/srm/statistics/index.ts:新增成本分析与价格趋势接口及类型
- src/views/srm/statistics/cost-analysis.vue
- 展示采购需求量、加权均价、最低/最高价、报价次数、供应商数、对预估偏差、价格变动
- 明细弹窗含按月价格趋势图与各供应商报价表,并标注计算口径
### 需求15 执行反馈
- src/api/mes/pro/feedback/index.ts:新增 getTaskExecution 及类型
- src/views/mes/pro/feedback/modules/execution.vue:计划/报工/完成率/交期偏差/延期原因/设备运行/物料消耗
- 报工列表新增「执行分析」操作(无关联任务时给出提示)
### 需求17 故障报修
- src/api/mes/dv/repair/index.ts:新增 diagnoseMachinery 及类型
- 维修页数采诊断弹窗内合并后端诊断结论(风险等级/结论/依据/指标快照),
与原有 30 秒刷新的数采快照互补;诊断失败不影响快照展示
### 需求18 OEE
- 停机汇总报表(跨设备)并入 OEE 页:停机合计、停机率、统计区间、设备数 + 明细表
- 保留原有单设备离线区间查询
### 需求21 风险监测
- src/api/safety/risk-source.ts:新增设备绑定字段与 refreshRiskSourceFromCollect
- 风险源页新增「关联设备编号」「数采指标键」表单项与「从设备采集刷新」按钮
- 列表新增「数据来源」列区分人工录入 / 设备采集;保存时校验设备与指标键配对
## 数据库(菜单)
- srm_cost_analysis_menu_20261107.sql:采购成本分析菜单
- after_sale_cancellation_20261107.sql:父菜单改为按 path=/aftersales 匹配(原按名称匹配失败)
- new_menu_role_grant_20261107.sql:按父菜单继承授权,避免新增菜单无人可见
- purchase_menu_erp_off_20261107.sql:启用「采购管理」父菜单并停用 ERP 专属子页面
(ERP 已从构建排除,原父菜单停用导致 SRM 整支不可见)
## 验证
- pnpm build:✓ built in 33.50s,生成 cancellation / cost-analysis / execution chunk
- pnpm typecheck:本次新增与改动文件 0 类型错误
- dev server 模块编译:14 个文件全部 HTTP 200,无 transform/syntax 错误
- 前端代理端到端(127.0.0.1:5666):8/8 通过
退单受理分页 total=6、成本分析 total=8、执行分析、远程诊断 level=CRITICAL、
停机报表 items=15、风险源刷新、菜单含退单管理/成本分析
- 菜单↔文件核对:239 个启用菜单组件,除 1 个历史断链
(bi/config/warehouse-coordinate,从未在 git 中存在)外全部对应
- 后端回归:主回归 21/21、需求10/23 17/17、16/22 通过