import { request } from 'umi'; export async function queryApp(search) { return request(`/goapi/app/list`, { method: 'POST', data: { pagination: { page: 0, size: 0, }, condition: { search, }, }, }); } export async function bindUsers(type: 'feature' | 'option' | 'policy' | 'role', params: any[]) { return request(`/goapi/relation/user_${type}/add`, { method: 'POST', data: { data: params, }, }); } // 验证用户列表 // todo export async function validateUsersRequest(params: { accounts: string[]; appId: number; flagId?: number; }) { const { data } = await request('/goapi/user/validate', { method: 'POST', data: params, }); return data?.noPermission; } export async function appTransfer(params) { return await request(`/goapi/app/transfer`, { method: 'POST', data: { ...params, }, }); } // 获取角色列表 export async function queryRoleList(appId, isAllowApply) { const { data: { list, pagination: { total }, }, } = await request('/goapi/role/list', { method: 'POST', data: { condition: { appId: appId, isAllowApply, }, fromApply: isAllowApply, pagination: { page: 0, size: 0, }, }, }); return { data: list, total, success: true, }; } // 获取审批流程详情 export function fetchAuditDetail() { return (id: number) => ({ url: `/goapi/auditTemplate/detail`, data: { id }, method: 'POST', }); } export function bindRequestOptions(params, { flagIds, ...otherParams }) { return Promise.all( flagIds?.map((flagId) => request(`/goapi/relation/option/list`, { method: 'POST', data: { condition: { ...params, ...otherParams, flagId: parseInt(flagId, 10), isBind: true, }, pagination: { page: 0, size: 0, }, }, }), ), ); } export async function updateOption(url: string, addParams: any[], deleteParams: any[]) { return [ addParams.length > 0 && request(`/goapi/relation/${url}/add`, { method: 'POST', data: { data: addParams }, }), deleteParams.length > 0 && request(`/goapi/relation/${url}/delete`, { method: 'POST', data: { data: deleteParams }, }), ]; } export function bindFeatures(params: any) { return (otherParams) => ({ url: '/goapi/relation/feature/list', method: 'POST', data: { condition: { ...params, ...otherParams, isBind: true, }, pagination: { page: 0, size: 0, }, }, }); } export async function updateFeature(url: string, addParams: any[], deleteParams: any[]) { return [ addParams.length > 0 && request(`/goapi/relation/${url}/add`, { method: 'POST', data: { data: addParams }, }), deleteParams.length > 0 && request(`/goapi/relation/${url}/delete`, { method: 'POST', data: { data: deleteParams }, }), ]; } export function bindRolesOrPolicy(type: 'role' | 'policy' = 'role', params: any) { return (data) => ({ url: `/goapi/relation/${type}/list`, method: 'POST', data: { condition: { ...params, ...data, isBind: true, }, pagination: { page: 0, size: 0, }, }, }); } export async function addRoleOrPolicy(url: string, addParams: any[], deleteParams: any[]) { return [ addParams.length > 0 && request(`/goapi/relation/${url}/add`, { method: 'POST', data: { data: addParams }, }), deleteParams.length > 0 && request(`/goapi/relation/${url}/delete`, { method: 'POST', data: { data: deleteParams }, }), ]; } // 获取用户列表 export async function fetchUserList( params: { // query /** 当前的页码 */ current?: number; /** 页面的容量 */ pageSize?: number; /** appId */ appId?: number; accounts?: string[]; }, sort?: Record, filter?: Record, ) { const { current, pageSize, appId, ...otherParams } = params; const { data: { list, pagination: { total }, }, } = await request('/goapi/relation/user/list', { method: 'POST', data: { condition: { appId: appId, isBind: true, ...otherParams, ...filter, }, pagination: { page: current, size: pageSize, }, }, }); return { data: list?.map((item) => ({ ...item, bindTime: item.bindTime * 1000, expiredAt: item.expiredAt * 1000, })), total: total, success: true, }; } // 验证用户列表 // todo export function validateUsers(appId?: number, flagId?: number) { return (params: { accounts: string[] }) => ({ url: '/goapi/user/validate', method: 'POST', data: { appId, flagId, ...params, }, }); } // 取消绑定 // todo export function cancelBindUsers(type: string, params: any) { return (userIds: number[]) => ({ url: `/goapi/relation/user_${type}/delete`, method: 'POST', data: { data: userIds?.map((userId) => ({ ...params, userId, })), }, }); } export async function uploadImage(formData) { return request(`/goapi/public/image/upload`, { method: 'POST', requestType: 'form', body: formData, }); } // 精确查找部门 export async function fetchDepartName(name) { return request('/goapi/depart/search', { method: 'POST', data: { name: name, }, }); } export async function uploadFile(type, formData) { return request(`/goapi/${type}`, { method: 'POST', requestType: 'form', body: formData, }); } // 获取飞书用户详情 export async function getFeishuUserDetail({ userId, account, }: { userId?: number; account?: string; }) { return request(`/goapi/user/larkDetail`, { method: 'GET', params: { userId, account, }, }); } // /goapi/app/users 查询用户信息 export async function queryUser(search, state?: 0 | 1) { return request(`/goapi/user/likeQueryName`, { method: 'POST', data: { pagination: { page: 1, size: 10, }, condition: { search, state, }, }, }); } export async function likeQueryUserById(ids) { return request(`/goapi/user/list`, { method: 'POST', data: { pagination: { page: 0, size: 0, }, condition: { ids, }, }, }); } // 查询系统详情 export async function getAppDetail(appId) { return request(`/goapi/app/detail`, { method: 'POST', data: { appId }, }); }