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 interface BusinessRoleOption { id: number role_code: string role_name: string status: number } /** 分页查询岗位角色(含停用,仅管理员) */ export function listBusinessRoles( params: BusinessRoleQueryParams, ): Promise> { return request({ url: '/v1/system/business-roles', method: 'get', params }) } /** 只读岗位选项:财务/领导做报表筛选时不走管理员接口 */ export function listBusinessRoleOptions(): Promise { return request({ url: '/v1/base/business-roles/options', method: 'get' }) } /** 新增岗位 */ export function createBusinessRole( data: BusinessRoleCreateParams, ): Promise { return request({ url: '/v1/system/business-roles', method: 'post', data }) } /** 编辑岗位 */ export function updateBusinessRole( roleId: number, data: BusinessRoleUpdateParams, ): Promise { return request({ url: `/v1/system/business-roles/${roleId}`, method: 'put', data }) } /** 删除岗位(内置岗位后端拒绝,前端同步禁用按钮) */ export function deleteBusinessRole(roleId: number): Promise { return request({ url: `/v1/system/business-roles/${roleId}`, method: 'delete' }) } /** 启用 / 禁用(内置岗位后端拒绝停用) */ export function setBusinessRoleStatus( roleId: number, status: number, ): Promise { return request({ url: `/v1/system/business-roles/${roleId}/status`, method: 'put', data: { status }, }) } /** 公式模板下拉(含声明参数说明) */ export function listTemplateOptions(): Promise { return request({ url: '/v1/system/business-roles/meta/templates', method: 'get' }) }