constants.ts 2.39 KB
// REQ-USR-003: 用户列表页合同级常量(枚举 / 默认 query / pageSize / 错误码 / 文案)
import type { UserListQuery } from '../../../api/types';

/**
 * 查询字段枚举(对齐 REQ 输入表 1「显示来源」/ docs/05)。逐字一致,原样作为
 * queryField 提交值,匹配语义由后端裁决(BR4)。默认首项「用户名」(BR2)。
 */
export const QUERY_FIELD_OPTIONS = [
  '用户名',
  '员工名',
  '用户号',
  '部门',
  '用户类型',
  '作废',
  '登录日期',
  '制单人',
] as const;

/** 匹配方式枚举(BR4),默认「包含」(BR2) */
export const MATCH_TYPE_OPTIONS = ['包含', '不包含', '等于'] as const;

/** 用户范围下拉(占位 demo,spec D2):仅「全部用户」一项,不向后端传额外参数 */
export const SCOPE_OPTIONS = ['全部用户'] as const;

/** 每页条数选项(上限 100 对齐 docs/05 / REQ 边界,spec D4;不采用原型 demo 10000) */
export const PAGE_SIZE_OPTIONS = [10, 20, 50, 100] as const;

/** 默认查询(BR2/BR3,pageSize 默认 10 对齐 docs/05,spec D4) */
export const DEFAULT_QUERY: UserListQuery = {
  queryField: '用户名',
  matchType: '包含',
  queryValue: '',
  pageNum: 1,
  pageSize: 10,
};

// === 错误码常量(对齐 docs/05 § REQ-USR-003 / spec § 4) ===
/** 分页参数非法(pageNum<1 或 pageSize 超上限 100) */
export const ERR_PAGE_INVALID = 42201;
/** 查询参数校验失败 */
export const ERR_QUERY_INVALID = 40001;

// === 静态文案(逐字一致,复刻原型 / spec) ===
export const TEXT_REFRESH = '刷新';
export const TEXT_ADD = '新增';
export const TEXT_EXPORT = '导出Excel';
export const TEXT_SEARCH = '搜索';
export const TEXT_CLEAR = '清空';
export const TEXT_EMPTY = '暂无匹配的用户';
export const TEXT_ERROR = '加载失败,点击重试';
export const TEXT_EXPORT_SUCCESS = '导出成功';
export const TEXT_EXPORT_FAIL = '导出失败';
export const TEXT_MSG_PAGE_INVALID = '分页参数有误,已重置为第 1 页';
export const TEXT_MSG_QUERY_INVALID = '查询条件有误,请检查后重试';
export const TEXT_MSG_NETWORK = '加载失败,请稍后重试';

/** 分页统计文案(showTotal,total 来自 PageResult.total,BR1/§ 3) */
export const totalText = (total: number): string => `共 ${total} 条记录`;

/** 导出文件名 */
export const EXPORT_FILENAME = '用户列表.csv';