import { BaseResponse, Pageable } from '@/shared/model-components'; import { unwrap } from '@u/asyncs'; import { ajaxEngine } from './axios_instance'; import { UserType } from '@/shared/model-user'; import { SonAccountItem, SubmitSonAccount } from '@/shared/model-sonaccount'; export interface SonAccountResponse extends BaseResponse, Pageable { accounts: SonAccountItem[]; } export interface SonAccountListQuery { keyword?: string, type?: UserType, page?: number, state?: boolean } /** * 请求系统账号列表 * @returns 系统账号列表 * @param params */ export async function getSonAccountList( params: SonAccountListQuery ): Promise { const response = await ajaxEngine().get(`/subaccount`, { params }); return unwrap(response); } /** * 更改用户可用性状态 * @param uid 账号Id * @param enabled 是否启用 */ export async function changeSonAccountStatus(uid: string, enabled: boolean): Promise { const response = await ajaxEngine().put(`/subaccount/${uid}/enabled`, { enabled }); return unwrap(response); } /** * 重置密码 * @param uid 账号Id * @return 验证码 */ export async function resetPassword(uid: string) { const response = await ajaxEngine().delete(`/subaccount/${uid}/password`); return unwrap(response); } export interface ChangeUserInfoParams { username?: string; contact?: string; name?: string; phone?: string; region?: string; unitServiceFee?: number; } /** * 修改用户信息。 * @param uid * @param data 修改后的用户信息 */ export async function changeUserInfo(uid: string, data: SonAccountItem): Promise { const response = await ajaxEngine().put(`/subaccount/${uid}`, data); return unwrap(response); } /** * 创建子账号。 * @param data 创建的用户信息 */ export async function createUser(data: SubmitSonAccount): Promise { const response = await ajaxEngine().post(`/subaccount`, data); return unwrap(response); } /** * 获取所有可以选择的角色 */ export async function getPrivileges(): Promise { const response = await ajaxEngine().get(`/privileges`); return unwrap(response); }