feat(system): 前端岗位角色与计提参数配置页面

- 岗位角色页:列表/新增/编辑/启停/删除,内置岗位保护、模板受控下拉(含声明参数引导)
- 计提参数页:分组目录(多维度生效值)→ 修改入「待提交」→ 批次提交(立即/指定日期 + 二次确认);
  版本管理抽屉(记录分页/明细旧值→新值/两日期对比/撤回未生效/xlsx 导出);计算预览抽屉(按回款到账日取参数)
- request.ts 对 responseType=blob 直通(导出文件流非统一信封)
- 路由注册岗位角色/计提参数(系统管理组 order 5/6);日志模块词表补两处

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
liuwenxinandClaude Code committed 2026-10-12 21:48:00 +08:00
1 parent fd801455f0
commit 4c442b8cf2
7 files changed
+1663 -2

No files matched your search

+90
View File
@@ -0,0 +1,90 @@
import { request } from './request'
import type { PageData } from './types'
/** 公式模板下拉项(含声明参数,供岗位表单展示) */
export interface TemplateOption {
code: string
name: string
description: string
params: { code: string; name: string }[]
}
/** 岗位角色列表项(对应后端 `BusinessRoleOut`) */
export interface BusinessRoleItem {
id: number
role_code: string
role_name: string
calc_template: string
description: string | null
sort_order: number
status: number
/** 1内置(禁删禁停) 0自定义 */
is_builtin: number
}
export interface BusinessRoleQueryParams {
pageNum?: number
pageSize?: number
keyword?: string
status?: number
}
export interface BusinessRoleCreateParams {
role_code: string
role_name: string
calc_template: string
description?: string
sort_order?: number
}
/** 编辑:不含 role_code(创建后不可修改,编码是参数维度与模板绑定的锚点) */
export interface BusinessRoleUpdateParams {
role_name: string
calc_template: string
description?: string
sort_order?: number
}
/** 分页查询岗位角色(含停用) */
export function listBusinessRoles(
params: BusinessRoleQueryParams,
): Promise<PageData<BusinessRoleItem>> {
return request({ url: '/v1/system/business-roles', method: 'get', params })
}
/** 新增岗位 */
export function createBusinessRole(
data: BusinessRoleCreateParams,
): Promise<BusinessRoleItem> {
return request({ url: '/v1/system/business-roles', method: 'post', data })
}
/** 编辑岗位 */
export function updateBusinessRole(
roleId: number,
data: BusinessRoleUpdateParams,
): Promise<BusinessRoleItem> {
return request({ url: `/v1/system/business-roles/${roleId}`, method: 'put', data })
}
/** 删除岗位(内置岗位后端拒绝,前端同步禁用按钮) */
export function deleteBusinessRole(roleId: number): Promise<null> {
return request({ url: `/v1/system/business-roles/${roleId}`, method: 'delete' })
}
/** 启用 / 禁用(内置岗位后端拒绝停用) */
export function setBusinessRoleStatus(
roleId: number,
status: number,
): Promise<BusinessRoleItem> {
return request({
url: `/v1/system/business-roles/${roleId}/status`,
method: 'put',
data: { status },
})
}
/** 公式模板下拉(含声明参数说明) */
export function listTemplateOptions(): Promise<TemplateOption[]> {
return request({ url: '/v1/system/business-roles/meta/templates', method: 'get' })
}