112 lines
5.6 KiB
TypeScript
112 lines
5.6 KiB
TypeScript
/**
|
|
* 全局消息常量:统一维护接口中文提示,避免在业务代码中散落硬编码字符串。
|
|
*/
|
|
export const MESSAGES = {
|
|
SUCCESS: '成功',
|
|
DEFAULT_BAD_REQUEST: '请求参数不合法',
|
|
DEFAULT_UNAUTHORIZED: '未登录或登录已过期',
|
|
DEFAULT_FORBIDDEN: '无权限执行当前操作',
|
|
DEFAULT_NOT_FOUND: '请求资源不存在',
|
|
DEFAULT_CONFLICT: '请求冲突,请检查后重试',
|
|
DEFAULT_INTERNAL_ERROR: '服务器内部错误,请稍后重试',
|
|
|
|
DB: {
|
|
TABLE_MISSING: '数据库表不存在,请先执行数据库迁移',
|
|
COLUMN_MISSING: '数据库字段不存在,请先同步数据库结构',
|
|
CONNECTION_FAILED: '数据库连接失败,请检查 DATABASE_URL 与数据库服务状态',
|
|
},
|
|
|
|
AUTH: {
|
|
MISSING_BEARER: '缺少 Bearer Token',
|
|
TOKEN_SECRET_MISSING: '服务端未配置认证密钥',
|
|
TOKEN_INVALID: 'Token 无效或已过期',
|
|
TOKEN_PAYLOAD_INVALID: 'Token 载荷不合法',
|
|
TOKEN_ROLE_INVALID: 'Token 中角色信息不合法',
|
|
TOKEN_FIELD_INVALID: 'Token 中字段不合法',
|
|
INVALID_CREDENTIALS: '手机号、角色或密码错误',
|
|
PASSWORD_NOT_ENABLED: '该账号未启用密码登录',
|
|
},
|
|
|
|
USER: {
|
|
NOT_FOUND: '用户不存在',
|
|
DUPLICATE_OPEN_ID: 'openId 已被注册',
|
|
DUPLICATE_PHONE_ROLE_SCOPE: '同医院下该角色手机号已存在',
|
|
INVALID_ROLE: '角色不合法',
|
|
INVALID_PHONE: '手机号格式不合法',
|
|
INVALID_PASSWORD: '密码长度至少 8 位',
|
|
INVALID_OPEN_ID: 'openId 格式不合法',
|
|
HOSPITAL_REQUIRED: 'hospitalId 必填',
|
|
HOSPITAL_NOT_FOUND: 'hospitalId 对应医院不存在',
|
|
HOSPITAL_ID_INVALID: 'hospitalId 必须为整数',
|
|
TARGET_NOT_ENGINEER: '目标用户不是工程师',
|
|
ENGINEER_BIND_FORBIDDEN: '仅系统管理员可绑定工程师医院',
|
|
SYSTEM_ADMIN_REG_DISABLED: '系统管理员注册已关闭',
|
|
SYSTEM_ADMIN_BOOTSTRAP_KEY_INVALID: '系统管理员引导密钥错误',
|
|
SYSTEM_ADMIN_SCOPE_INVALID: '系统管理员不可绑定医院/科室/小组',
|
|
DEPARTMENT_REQUIRED: '当前角色必须绑定科室',
|
|
GROUP_REQUIRED: '当前角色必须绑定小组',
|
|
ENGINEER_SCOPE_INVALID: '工程师不可绑定科室/小组',
|
|
DEPARTMENT_HOSPITAL_MISMATCH: '科室不属于指定医院',
|
|
GROUP_DEPARTMENT_REQUIRED: '绑定小组时必须同时传入科室',
|
|
GROUP_DEPARTMENT_MISMATCH: '小组不属于指定科室',
|
|
DOCTOR_ONLY_SCOPE_CHANGE: '仅医生/主任/组长允许调整科室/小组归属',
|
|
DELETE_CONFLICT: '用户存在关联患者或任务,无法删除',
|
|
MULTI_ACCOUNT_REQUIRE_HOSPITAL:
|
|
'检测到多个同手机号账号,请传 hospitalId 指定登录医院',
|
|
},
|
|
|
|
TASK: {
|
|
ITEMS_REQUIRED: '任务明细 items 不能为空',
|
|
DEVICE_NOT_FOUND: '存在设备不在当前医院或设备不存在',
|
|
ENGINEER_INVALID: '工程师必须为当前医院有效工程师',
|
|
TASK_NOT_FOUND: '任务不存在或不属于当前医院',
|
|
ACCEPT_ONLY_PENDING: '仅待接收任务可执行接收',
|
|
COMPLETE_ONLY_ACCEPTED: '仅已接收任务可执行完成',
|
|
CANCEL_ONLY_PENDING_ACCEPTED: '仅待接收/已接收任务可取消',
|
|
ENGINEER_ALREADY_ASSIGNED: '任务已被其他工程师接收',
|
|
ENGINEER_ONLY_ASSIGNEE: '仅任务接收工程师可完成任务',
|
|
CANCEL_ONLY_CREATOR: '仅任务创建者可取消任务',
|
|
ACTOR_ROLE_FORBIDDEN: '当前角色无权限执行该任务操作',
|
|
ACTOR_HOSPITAL_REQUIRED: '当前登录上下文缺少医院信息',
|
|
},
|
|
|
|
PATIENT: {
|
|
NOT_FOUND: '患者不存在或无权限访问',
|
|
ROLE_FORBIDDEN: '当前角色无权限查询患者列表',
|
|
GROUP_REQUIRED: '组长查询需携带 groupId',
|
|
DEPARTMENT_REQUIRED: '主任查询需携带 departmentId',
|
|
DOCTOR_NOT_FOUND: '归属人员不存在',
|
|
DOCTOR_ROLE_REQUIRED: '归属用户必须为医生/主任/组长角色',
|
|
DOCTOR_SCOPE_FORBIDDEN: '仅可选择当前权限范围内医生/主任/组长',
|
|
DELETE_CONFLICT: '患者存在关联设备,无法删除',
|
|
PHONE_IDCARD_REQUIRED: 'phone 与 idCardHash 均为必填',
|
|
LIFE_CYCLE_NOT_FOUND: '未找到匹配的患者档案,请先确认手机号与身份证哈希',
|
|
SYSTEM_ADMIN_HOSPITAL_REQUIRED: '系统管理员查询必须显式传入 hospitalId',
|
|
ACTOR_HOSPITAL_REQUIRED: '当前登录上下文缺少医院信息',
|
|
},
|
|
|
|
ORG: {
|
|
HOSPITAL_NOT_FOUND: '医院不存在',
|
|
DEPARTMENT_NOT_FOUND: '科室不存在',
|
|
GROUP_NOT_FOUND: '小组不存在',
|
|
HOSPITAL_ADMIN_SCOPE_INVALID: '院管仅可操作本院组织数据',
|
|
ACTOR_HOSPITAL_REQUIRED: '当前登录上下文缺少医院信息',
|
|
ACTOR_DEPARTMENT_REQUIRED: '当前登录上下文缺少科室信息',
|
|
ACTOR_GROUP_REQUIRED: '当前登录上下文缺少小组信息',
|
|
SYSTEM_ADMIN_ONLY_CREATE_HOSPITAL: '仅系统管理员可创建医院',
|
|
SYSTEM_ADMIN_ONLY_DELETE_HOSPITAL: '仅系统管理员可删除医院',
|
|
HOSPITAL_NAME_REQUIRED: '医院名称不能为空',
|
|
DEPARTMENT_NAME_REQUIRED: '科室名称不能为空',
|
|
GROUP_NAME_REQUIRED: '小组名称不能为空',
|
|
HOSPITAL_ID_REQUIRED: 'hospitalId 必填且必须为整数',
|
|
DEPARTMENT_ID_REQUIRED: 'departmentId 必填且必须为整数',
|
|
GROUP_ID_REQUIRED: 'groupId 必填且必须为整数',
|
|
DEPARTMENT_HOSPITAL_MISMATCH: '科室不属于指定医院',
|
|
GROUP_DEPARTMENT_MISMATCH: '小组不属于指定科室',
|
|
DEPARTMENT_REPARENT_FORBIDDEN: '科室不允许更换所属医院',
|
|
GROUP_REPARENT_FORBIDDEN: '小组不允许更换所属科室',
|
|
DELETE_CONFLICT:
|
|
'存在关联数据,无法删除,请先清理用户、患者、任务或下级组织后重试',
|
|
},
|
|
} as const;
|