29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
/**
|
|
* 账号归档判定与筛选参数解析。
|
|
* 归档口径:账户状态为 graduate(限制访问-毕业生)或 withdrawn(限制访问-退学)
|
|
* 即视为已归档,归档账号不在用户管理默认列表与学段中直接展示,
|
|
* 收敛在组织树底部的归档节点中查看。
|
|
*/
|
|
export const ARCHIVED_USER_STATUSES = ['graduate', 'withdrawn'] as const
|
|
|
|
export type ArchivedFilter = 'archived' | 'unarchived' | 'all'
|
|
|
|
/**
|
|
* 判断状态是否为归档状态。
|
|
* @param status 用户状态枚举值
|
|
*/
|
|
export function isArchivedStatus(status: string | null | undefined): boolean {
|
|
return (ARCHIVED_USER_STATUSES as readonly string[]).includes(status || '')
|
|
}
|
|
|
|
/**
|
|
* 解析归档筛选参数:archived=1/true 仅查已归档;archived=0/false 排除已归档;缺省不限制。
|
|
* @param value 查询参数(可能是数组)
|
|
*/
|
|
export function resolveArchivedFilter(value: string | string[] | undefined): ArchivedFilter {
|
|
const raw = Array.isArray(value) ? value[0] : value
|
|
if (raw === '1' || raw === 'true') return 'archived'
|
|
if (raw === '0' || raw === 'false') return 'unarchived'
|
|
return 'all'
|
|
}
|