feat(ui): 菜单权限过滤与退回记录页

侧边栏支持按权限隐藏菜单(Sidebar/index.vue):
- 新增 canSee():读取 meta.permissions(数组,满足任一即可)
- ★ 同时修了一个既有缺陷:原实现只过滤顶层路由,**子路由的权限判定不生效**,
  未授权用户仍能在菜单里看到入口。现改为递归过滤,父菜单的子项被过滤光后
  父菜单本身也不再显示。
- ★ 刻意只认 meta.permissions(新键),历史遗留的 meta.permission(单数,
  如「维修管理」的 inbound_repair)保持不生效——一旦开始消费它,会让若干
  菜单对部分角色突然消失,属于超出本次范围的静默行为变更。两者若要统一,
  建议单独排期逐个核对影响面。

路由守卫(router/index.ts):
- 新增 meta.permissions 校验,未授权时提示并跳首页。侧边栏负责「菜单看不见」,
  守卫负责「直接敲 URL 也进不去」,后端负责「绕过前端直接调接口也不行」,
  三层任一失效都不至于越权。
- 顺带修了原守卫的分支结构:roles 通过时直接 next(),会跳过后续检查;
  改为不通过才中断,落到末尾统一 next()。

新增「退回记录」页(views/outbound/returns/index.vue):
- 纯只读台账,无任何操作按钮,供库管核对历史退回
- 展示 退回时间 / 原出库单号 / 物料名称 / 规格 / SKU / 退回数量 /
  退回类型 / 退回原因 / 操作人
- 退回类型用标签区分(不良品=红,良品=绿)
- 源库存行或原单被删除时显示占位文案而非空白,台账不留哑行

api/inbound/return.ts 补 getReturnList()。
This commit is contained in:
yueli
2026-09-16 16:46:02 +08:00
parent 9eb4792d4a
commit 27436f5efe
4 changed files with 285 additions and 8 deletions

View File

@ -84,3 +84,28 @@ export function scrapDefective(id: number, data: { scrap_qty?: number; reason: s
data
})
}
/**
* 退回流水台账(只读)。
*
* @param params {
* page?, page_size?,
* keyword?, 模糊匹配 出库单号 / SKU / 操作人
* return_type?, '良品' | '不良品';'全部' 或留空 = 不过滤
* start_date?, end_date? 按退回时间过滤(YYYY-MM-DD)
* }
*/
export function getReturnList(params: {
page?: number
page_size?: number
keyword?: string
return_type?: string
start_date?: string
end_date?: string
}) {
return request({
url: '/outbound/returns',
method: 'get',
params
})
}