usr.ts 1.93 KB
import request from './request'

export interface StaffVO {
  sId: string
  sStaffName: string
}

export interface PermissionGroupVO {
  sId: string
  sGroupCode: string
  sGroupName: string
  sCategory: string | null
}

export interface UserCreateReq {
  userCode: string
  username: string
  userType: '普通用户' | '超级管理员'
  language: '中文' | '英文' | '繁体'
  canEditDoc?: boolean
  employeeId?: string | null
  permGroupIds?: string[]
}

export interface UserCreateResp {
  userId: string
  userCode: string
  username: string
}

export function getStaffs(): Promise<StaffVO[]> {
  return request.get('/usr/users/staffs')
}

export function getPermissionGroups(): Promise<PermissionGroupVO[]> {
  return request.get('/usr/users/permission-groups')
}

export function createUser(req: UserCreateReq): Promise<UserCreateResp> {
  return request.post('/usr/users', req)
}

export interface UserListQueryReq {
  queryField?: string
  matchType?: string
  queryValue?: string
  page?: number
  pageSize?: number
}

export interface UserListItemVO {
  sId: string
  sUsername: string
  sUserCode: string
  sUserType: string
  sLanguage: string
  bIsDisabled: number
  tLastLoginDate: string | null
  sCreatorUsername: string | null
  tCreateDate: string
  sStaffName: string | null
  sDepartment: string | null
}

export interface PageVO<T> {
  total: number
  page: number
  pageSize: number
  list: T[]
}

export function getUserList(params?: UserListQueryReq): Promise<PageVO<UserListItemVO>> {
  return request.get('/usr/users', { params })
}

export interface UserUpdateReq {
  userType: string
  language: string
  canEditDoc: boolean
  isDisabled: boolean
  employeeId: string | null
  permGroupIds: string[]
}

export interface UserUpdateResp {
  userId: string
  username: string
  updatedAt: string
}

export function updateUser(userId: string, req: UserUpdateReq): Promise<UserUpdateResp> {
  return request.put(`/usr/users/${userId}`, req)
}