feat(my-requests): 我的申请单独立模块(采购管理之后)
路由位置
--------
放在「采购管理」之后,作为独立一级模块:
采购管理
我的申请单 ← 新增(icon: Tickets)
借库管理
★ 独立模块而非挂在某个业务页下:申请人可能提交出库/借库/报废三类单据,
放在任一业务模块下都会让其它模块的人找不到。
页面功能
--------
· 类型筛选:全部 / 出库 / 借库 / 报废
· 状态筛选:全部 / 待审批 / 已通过 / 已驳回 / 已完成 / 已撤回
· 展开行显示物料明细(数量字段已由后端归一化)
· 撤回按钮仅对 status 0/1 可见(已预占但未执行)
撤回不硬编码 URL —— 使用后端回传的 withdraw_endpoint 分发:
const res = await request({ url: row.withdraw_endpoint, method: 'post' })
这样将来模块端点调整(如借库从 close 换成正式 withdraw),前端无需改动。
权限说明
--------
菜单不做权限过滤(Sidebar 只过滤 meta.hidden),所有角色都会看到本页。
这正是预期 —— 申请人本就不应需要任何权限码。数据由后端强制按
applicant_id 过滤,看不到他人单据。
顺带清理
--------
移除先前加在 Selection.vue 的重复实现(约 110 行模板/脚本/样式),
改为一个跳转链接「查看我的申请单 >」;并移除随之失效的 3 个导入
(onMounted / Refresh / 两个 API 函数)。
验证:新页面 SFC 编译零告警;Selection.vue 清理后编译通过。
This commit is contained in:
@ -195,3 +195,47 @@ export function getStockAlternatives(
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的申请单(申请人视角)
|
||||
*
|
||||
* 走专用端点,仅需登录态 —— 服务端硬编码 applicant_id = 当前用户,
|
||||
* 普通申请人无需持有 outbound_approval(那是管理权限)即可查看自己的单据。
|
||||
*/
|
||||
export function getMyOutboundRequests(params: { page?: number; limit?: number; status?: number | '' }) {
|
||||
return request({
|
||||
url: '/v1/outbound/my-requests',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 撤回自己的申请单(待审批 或 已通过但未执行)
|
||||
* 服务端会断言单据归属,非本人且非管理者将返回 403。
|
||||
*/
|
||||
export function withdrawOutboundRequest(id: number) {
|
||||
return request({
|
||||
url: `/v1/outbound/request/${id}/withdraw`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的申请单(跨模块聚合:出库 + 借库 + 报废)
|
||||
*
|
||||
* 走专用的 /my-requests 聚合端点,仅需登录态 —— 服务端硬编码
|
||||
* applicant_id = 当前用户,普通员工无需任何审批类权限即可查看自己的单据。
|
||||
*/
|
||||
export function getMyRequests(params: {
|
||||
page?: number
|
||||
limit?: number
|
||||
status?: number | ''
|
||||
type?: 'all' | 'outbound' | 'borrow' | 'scrap'
|
||||
}) {
|
||||
return request({
|
||||
url: '/v1/my-requests',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user