export const TEXT = { common: { appName: "CTMS", fallback: "—", loading: "加载中", actions: { add: "新增", create: "创建", edit: "编辑", save: "保存", cancel: "取消", delete: "删除", remove: "移除", enable: "启用", disable: "停用", upload: "上传", download: "下载", back: "返回", search: "搜索", reset: "重置", confirm: "确认", close: "关闭", submit: "提交", view: "查看", refresh: "刷新", retry: "重试", quote: "引用", more: "查看更多", exitProject: "退出当前项目", login: "登录", register: "注册", newHistory: "新增病史", newVisit: "新增访视", newAe: "新增 AE", }, messages: { loadSuccess: "加载成功", loadFailed: "加载失败", saveSuccess: "已保存", saveFailed: "保存失败", createSuccess: "已创建", createFailed: "创建失败", updateSuccess: "已更新", updateFailed: "更新失败", deleteSuccess: "已删除", deleteFailed: "删除失败", uploadSuccess: "上传成功", uploadFailed: "上传失败", downloadFailed: "下载失败", actionFailed: "操作失败", noPermission: "无权限执行该操作", networkError: "网络错误,请稍后重试", fileTooLarge: "文件大小不能超过", sessionExpired: "登录已过期,请重新登录", requestFailed: "请求失败,请稍后重试", invalidStateAction: "当前状态不允许该操作", required: "必填项", previewNotSupported: "该文件暂不支持内嵌预览,请下载查看", }, confirm: { delete: "确认删除该记录?", }, placeholders: { input: "请输入", select: "请选择", keyword: "输入关键词", startDate: "开始日期", endDate: "结束日期", }, labels: { attachments: "附件", size: "大小", uploader: "上传人", uploadedAt: "上传时间", actions: "操作", preview: "预览", filename: "文件名", role: "角色", quickActions: "通往业务模块的快捷入口", updatedAt: "更新时间", activeOnly: "仅启用", category: "分类", all: "全部", tips: "提示", file: "文件", collapseSidebar: "收缩侧边栏", userInitialFallback: "用", userFallback: "用户", basicInfo: "基本信息", allSites: "所有中心", yes: "是", no: "否", }, units: { case: "例", }, fields: { subjectNo: "参与者编号", site: "分中心", status: "状态", keyword: "关键词", title: "标题", level: "重要等级", name: "姓名", email: "帐号", clinicalDepartment: "科室", avatar: "头像", projectName: "项目名称", projectCode: "项目编号", sponsor: "申办方", protocolNo: "方案号", phase: "分期", siteName: "中心名称", city: "城市", phone: "电话", contact: "负责人", description: "描述", sortOrder: "排序", enabled: "启用", category: "分类", question: "问题", screeningDate: "筛选日期", consentDate: "知情日期", enrollmentDate: "入组日期", baselineDate: "基线/治疗日期", completionDate: "完成日期", dropReason: "退出原因", recordDate: "日期", content: "内容", visitCode: "访视", plannedDate: "计划访视", actualDate: "实际访视", windowStart: "窗口开始", windowEnd: "窗口结束", visitTotal: "访视总次数", visitIntervalDays: "访视间隔(天)", visitWindowStartOffset: "窗口开始偏移(天)", visitWindowEndOffset: "窗口结束偏移(天)", notes: "备注", event: "事件", onsetDate: "发生日期", seriousness: "严重程度", severity: "严重等级", causality: "关联性", outcome: "结局", aeType: "AE 类型", isSae: "是否 SAE", isSusar: "是否 SUSAR", submitDate: "递交日期", acceptDate: "受理日期", approvedDate: "批准日期", meetingDate: "会议日期", approvalNo: "批件号", approvalStatus: "审批状态", projectNo: "项目编号", kickoffDate: "启动会日期", attendees: "参训人员", person: "人员", trained: "已培训", authorized: "已授权", trainedDate: "培训日期", authorizedDate: "授权日期", direction: "类型", trackingNo: "单号", shipDate: "寄出/回收日期", receiveDate: "接收日期", quantity: "数量", batchNo: "批号", drugDesc: "物品描述", carrier: "快递公司", fromParty: "发出方", toParty: "接收方", occurDate: "发生日期", amount: "金额", type: "类型", staff: "人员", contractNo: "合同编号", signedDate: "签署日期", currency: "币种", currencyDefault: "CNY", pdNo: "PD 编号", pdType: "PD 类型", pdLevel: "PD 分级", pdDescription: "PD 描述", remark: "备注", }, empty: { noData: "暂无数据", building: "功能建设中", buildingDesc: "该模块基础骨架已建立,后续将补充完整交互与数据能力。", listPlaceholder: "列表区域预留", selectProject: "请先选择一个项目", selectSite: "请先选择一个分中心", }, validation: { requiredSuffix: "不能为空", invalidEmail: "邮箱格式不正确", }, boolean: { yes: "是", no: "否", }, }, audit: { statusLabel: "状态:", objectLabel: "对象:", changeLabel: "变更:", emptyValue: "-", resultSuccess: "成功", resultFail: "失败", eventFallback: "系统操作", actionFallback: "执行了操作", targetFallback: "对象", currentUser: "当前用户", localClient: "客户端", exportColumns: { timestamp: "审计时间", actorName: "操作人姓名", actorId: "操作人账号", actorRoleLabel: "操作人角色", eventLabel: "操作类型", targetTypeLabel: "操作对象类型", targetIdentifier: "操作对象标识", description: "操作描述", beforeStatus: "操作前状态", afterStatus: "操作后状态", resultLabel: "操作结果", reason: "拒绝原因", ip: "IP 地址", remark: "备注", }, eventDict: { AE_CLOSED: { label: "关闭 AE(不良事件)", actionText: "关闭了 AE", targetLabel: "不良事件" }, SUBJECT_STATUS_CHANGED: { label: "参与者状态变更", actionText: "变更了参与者状态", targetLabel: "参与者" }, FINANCE_STATUS_CHANGED: { label: "费用状态变更", actionText: "变更了费用状态", targetLabel: "费用记录" }, ADMIN_RESET_PASSWORD: { label: "重置用户密码", actionText: "重置了用户密码", targetLabel: "用户账号" }, ISSUE_STATUS_CHANGED: { label: "风险/问题状态变更", actionText: "更新了风险/问题状态", targetLabel: "风险/问题" }, UNAUTHORIZED_ACTION_ATTEMPT: { label: "越权操作尝试", actionText: "尝试执行无权限操作", targetLabel: "系统资源" }, INVALID_STATE_TRANSITION_ATTEMPT: { label: "非法状态流转尝试", actionText: "尝试执行非法状态流转", targetLabel: "业务对象" }, PROJECT_MEMBER_ADDED: { label: "项目成员新增", actionText: "添加了项目成员", targetLabel: "项目成员" }, PROJECT_MEMBER_UPDATED: { label: "项目成员变更", actionText: "调整了项目成员", targetLabel: "项目成员" }, PROJECT_MEMBER_REMOVED: { label: "项目成员移除", actionText: "移除了项目成员", targetLabel: "项目成员" }, SITE_CRA_BOUND: { label: "中心 CRA 绑定", actionText: "调整了中心与 CRA 的绑定", targetLabel: "中心" }, SITE_CREATED: { label: "新增中心", actionText: "新增了中心", targetLabel: "中心" }, SITE_UPDATED: { label: "更新中心", actionText: "更新了中心", targetLabel: "中心" }, SITE_STATUS_CHANGED: { label: "中心状态变更", actionText: "更新了中心信息", targetLabel: "中心" }, AUDIT_EXPORT_SYSTEM: { label: "导出系统审计", actionText: "导出了系统审计日志", targetLabel: "审计日志" }, AUDIT_EXPORT_PROJECT: { label: "导出项目审计", actionText: "导出了项目审计日志", targetLabel: "审计日志" }, FINANCE_APPROVED: { label: "费用审批", actionText: "审批通过费用", targetLabel: "费用" }, FINANCE_REJECTED: { label: "费用驳回", actionText: "驳回了费用", targetLabel: "费用" }, IMP_CONFIRMED: { label: "药品出入库确认", actionText: "确认了药品出入库记录", targetLabel: "药品交易" }, QUERY_RESOLVED: { label: "数据问题解决", actionText: "标记数据问题已解决", targetLabel: "数据问题" }, CREATE_SETUP_CONFIG: { label: "初始化立项配置", actionText: "初始化了立项配置", targetLabel: "立项配置" }, UPDATE_SETUP_CONFIG: { label: "保存立项配置", actionText: "更新了立项配置草稿", targetLabel: "立项配置" }, PUBLISH_SETUP_CONFIG: { label: "发布立项配置", actionText: "发布了立项配置", targetLabel: "立项配置" }, IMPORT_SETUP_CONFIG: { label: "导入立项配置", actionText: "导入了立项配置", targetLabel: "立项配置" }, }, }, menu: { admin: "管理后台", accountManagement: "账号管理", projectManagement: "项目管理", auditLogs: "审计日志", permissionManagement: "权限管理", currentProject: "当前项目", projectOverview: "项目总览", projectMilestones: "项目里程碑", finance: "合同费用管理", feeContracts: "合同费用管理", drug: "药品管理", materialManagement: "物资管理", drugShipments: "药品流向管理", materialEquipment: "设备管理", fileVersionManagement: "文件版本管理", startupFeasibilityEthics: "立项与伦理", startupMeetingAuth: "启动与授权", subjects: "参与者管理", riskIssues: "风险问题", riskIssueSae: "AE/SAE", riskIssuePd: "PD", riskIssueMonitoringVisits: "监查访视问题", etmf: "eTMF", sharedLibrary: "共享库", knowledgeMedicalConsult: "医学咨询", knowledgeNotes: "注意事项", knowledgeSupportFiles: "支持性文件", knowledgeInstructionFiles: "说明文件", profile: "个人中心", logout: "退出登录", }, modules: { auth: { brandSubtitle: "临床试验管理系统", loginTitle: "欢迎回来", loginDesc: "请输入您的凭据以访问系统", emailLabel: "电子邮箱", passwordLabel: "登录密码", emailPlaceholder: "name@company.com", passwordPlaceholder: "最小 8 位字符", confirmPasswordLabel: "确认密码", confirmPasswordPlaceholder: "再次输入密码", fullNameLabel: "姓名", fullNamePlaceholder: "请输入姓名", clinicalDepartmentLabel: "科室", clinicalDepartmentPlaceholder: "请输入科室", remember: "记住我", forgot: "忘记密码?", forgotTitle: "找回密码", forgotDesc: "请联系系统管理员重置密码", loginButton: "登录", registerPrompt: "还没有账号?", registerNow: "立即注册", footer: "© 2025 CTMS Enterprise. 专业临床研究团队支持。", authFailed: "认证失败,请检查您的凭据", registerTitle: "创建账号", registerDesc: "提交后需管理员审核通过方可登录", registerButton: "提交注册", registerSuccess: "注册成功,等待管理员审核", backToLogin: "已有账号?返回登录", passwordRuleMin: "密码至少 8 位", passwordRuleMix: "需包含字母和数字", passwordMismatch: "两次输入的密码不一致", }, projectOverview: { title: "项目总览", subtitle: "当前项目运行状态与关键指标", kpiProgress: "节点完成率", kpiOverdueAes: "逾期 AE", kpiOverdueAesHint: "需尽快跟进处理", kpiFinanceTotal: "费用总额", kpiFinancePaid: "累计已支付", alertWarning: "存在逾期未处理事项,请及时关注项目的合规性与进度。", alertOk: "项目运行状态良好,所有关键指标均在可控范围内。", noMilestones: "暂无节点", progressLabel: "总体进度: {rate}", notificationsTitle: "通知", notificationsSubtitle: "文件版本更新将推送在此处", notificationsEmpty: "暂无通知", }, projectMilestones: { title: "项目里程碑", subtitle: "里程碑计划与执行跟踪", listTitle: "里程碑列表", emptyDescription: "立项配置中暂无可展示的项目里程碑计划。", sourceLabel: "数据来源:", sourcePublished: "立项配置已发布版本", sourceDraft: "立项配置草稿版本", sourceDraftFallback: "立项配置草稿版本(已发布版本为空)", statTotal: "总数 ", statDone: "已完成 ", columns: { name: "里程碑", planDate: "计划日期", adjustedPlanDate: "调整计划时间", actualTime: "实际时间", operations: "操作", owner: "负责人", status: "状态", remark: "备注", }, }, feeContracts: { title: "合同费用管理", subtitle: "按中心维护合同费用与分期付款", empty: "暂无合同费用数据,点击创建", newTitle: "新增合同费用", editTitle: "编辑合同费用", formSubtitle: "维护合同费用与分期付款信息", detailTitle: "合同费用详情", detailSubtitle: "查看合同费用与分期付款信息", contractInfoTitle: "合同信息", overviewTitle: "费用总览", totalContractAmount: "合同金额总计", totalPaidAmount: "已付金额总计", totalUnpaidAmount: "未付金额总计", totalVerifiedAmount: "已核销金额总计", centerCount: "中心数", contractAmount: "合同金额", contractCases: "合同例数", actualCases: "实际例数", caseProgress: "合同/实际例数", paidSummary: "已付/未付", paidTotal: "已付合计", unpaidBalance: "未付余额", verifySummary: "核销情况", verifiedTotal: "已核销合计", unverifiedBalance: "未核销余额", recentDates: "最近日期", lastPaid: "最近打款", lastVerified: "最近核销", paymentTitle: "分期付款", paymentEmpty: "暂无分期付款记录", paymentSeqColumn: "付款期次", paymentSeq: "第", paymentSeqUnit: "笔", paidFlag: "打款状态", verifiedFlag: "核销状态", isPaid: "已打款", isVerified: "已核销", amountInvalid: "金额需大于等于 0", paidDateRequired: "请填写打款日期", verifiedDateRequired: "请填写核销日期", verifyRequiresPaid: "核销前需先打款", paymentValidationFailed: "请完善分期付款信息", attachmentTitle: "附件", attachmentContract: "合同", attachmentContractEmpty: "暂无合同附件", attachmentVoucher: "凭证", attachmentVoucherEmpty: "暂无凭证附件", attachmentInvoice: "发票", attachmentInvoiceEmpty: "暂无发票附件", uploadHint: "保存后可上传合同/凭证/发票附件", }, drugShipments: { title: "药品流向管理", subtitle: "登记寄送与回收信息", recordLabel: "运输记录", empty: "暂无运输记录", confirmDelete: "确认删除该运输记录?", newTitle: "新增运输记录", editTitle: "编辑运输记录", formSubtitle: "记录寄送/回收流向", uploadHint: "保存后可上传交接材料", detailTitle: "运输记录详情", detailSubtitle: "查看药品流向信息与附件", }, materialEquipment: { title: "设备管理", subtitle: "设备台账与状态跟踪", listTitle: "设备列表", detailTitle: "设备详情", detailSubtitle: "查看设备基础信息、资质文件与校准设置", emptyDescription: "设备管理模块正在建设中,敬请期待。", }, fileVersionManagement: { title: "文件版本管理", subtitle: "管理试验文档与版本审批", listTitle: "文件版本列表", emptyDescription: "暂无文档记录", newDocument: "新增文档", filters: { scope: "范围", site: "分中心", docType: "类型", status: "状态", all: "全部", }, columns: { docNo: "编号", title: "标题", scope: "范围", site: "分中心", docType: "类型", currentVersion: "当前版本", status: "状态", effectiveAt: "更新时间", updatedAt: "更新", actions: "操作", }, actions: { detail: "详情", uploadVersion: "上传新版本", submit: "提交审批", approve: "通过", reject: "驳回", makeEffective: "设为生效", download: "下载", distribute: "新建抄送", ackReceived: "已接收", ackRead: "已阅读", ackTrained: "已培训", addTarget: "新增目标", }, dialog: { createTitle: "新建文档", uploadTitle: "上传新版本", distributeTitle: "新建抄送", }, fields: { docNo: "编号", title: "标题", docType: "类型", scope: "范围", site: "分中心", versionNo: "版本号", changeSummary: "变更摘要", parentVersion: "父版本", file: "文件", workflowTemplate: "审批模板", targetType: "目标类型", target: "目标", targetList: "目标列表", dueAt: "截止日期", }, tabs: { versions: "版本管理", distributions: "抄送", audit: "审计", }, labels: { currentEffective: "当前生效版本", versionTimeline: "版本时间线", distributionList: "抄送列表", approvalSummary: "审批摘要", createdBy: "创建者", createdAt: "创建时间", submitAt: "提交", approveAt: "审批", overdue: "超期", ackStats: "回执统计", ackAction: "回执", dueAt: "截止日期", auditAction: "动作", auditDetail: "详情", auditTime: "时间", }, placeholders: { workflowTemplate: "审批模板 ID", versionNo: "如 1.0", target: "目标 ID/角色", }, messages: { createSuccess: "文档已创建", uploadSuccess: "版本已上传", submitSuccess: "已提交审批", approveSuccess: "审批通过", rejectSuccess: "已驳回", effectiveSuccess: "已设为生效版本", distributeSuccess: "抄送已创建", ackSuccess: "回执已提交", missingFile: "请选择文件", missingTarget: "请填写目标", noEffective: "暂无生效版本", versionNoInvalid: "版本号格式应为 1.0", workflowTemplateRequired: "请选择审批模板", submitPrompt: "请输入审批模板 ID", submitTitle: "提交审批", }, }, startupFeasibilityEthics: { title: "立项与伦理", subtitle: "立项与伦理记录管理", feasibilityTab: "立项记录", ethicsTab: "伦理记录", emptyFeasibility: "暂无立项记录", emptyEthics: "暂无伦理记录", feasibilityNewTitle: "新增立项记录", feasibilityEditTitle: "编辑立项记录", feasibilityFormSubtitle: "维护立项递交与审批信息", feasibilityUploadHint: "保存后可上传立项附件", feasibilityDetailTitle: "立项记录详情", feasibilityDetailSubtitle: "查看立项记录与附件", ethicsNewTitle: "新增伦理记录", ethicsEditTitle: "编辑伦理记录", ethicsFormSubtitle: "维护伦理递交与审批信息", ethicsUploadHint: "保存后可上传伦理附件", ethicsDetailTitle: "伦理记录详情", ethicsDetailSubtitle: "查看伦理记录与附件", }, startupMeetingAuth: { title: "启动与授权", subtitle: "启动会与培训授权管理", kickoffTab: "启动会记录", trainingTab: "培训与授权", emptyKickoff: "暂无启动会记录", emptyTraining: "暂无培训授权人员", kickoffNewTitle: "新增启动会", kickoffEditTitle: "编辑启动会", kickoffFormSubtitle: "记录启动会日期与参训人员", kickoffUploadHint: "保存后可上传会议纪要、签到表、PPT、其他文件", kickoffMinutesLabel: "会议纪要", kickoffSignInLabel: "签到表", kickoffPptLabel: "PPT", kickoffOtherLabel: "其他文件", kickoffDetailTitle: "启动会详情", kickoffDetailSubtitle: "查看启动会信息与附件", attendeesPlaceholder: "每行一个姓名", trainingNewTitle: "新增人员", trainingEditTitle: "编辑培训授权", trainingFormSubtitle: "维护人员培训与授权状态", trainingUploadHint: "保存后可上传授权附件", trainingDetailTitle: "培训授权详情", trainingDetailSubtitle: "查看人员培训与授权信息", ownerLabel: "负责人", statusPending: "未开始", statusCompleted: "已完成", }, subjectManagement: { title: "参与者管理", subtitle: "参与者、病史、访视、AE 综合管理", subjectLabel: "参与者", screeningNo: "筛选号", empty: "暂无参与者记录", }, subjectForm: { titleEdit: "编辑参与者", titleNew: "新增参与者", subtitle: "维护参与者基本信息", }, subjectDetail: { title: "参与者详情", subtitle: "查看病史、访视、AE 与 PD 信息", tabs: { history: "病史", visits: "访视", ae: "AE 信息", pd: "PD", }, aeType: { ae: "AE", sae: "SAE", susar: "SUSAR", }, emptyHistory: "暂无病史记录", emptyVisits: "暂无访视记录", emptyAe: "暂无 AE 记录", emptyPd: "暂无 PD 记录", newPd: "新增 PD", dialogHistory: "病史记录", dialogVisit: "访视记录", dialogAe: "AE 记录", dialogPd: "PD 记录", pdNoAuto: "保存后自动生成", }, riskIssues: { title: "风险问题", subtitle: "项目风险与问题跟踪管理", listTitle: "风险问题列表", emptyDescription: "风险问题模块正在建设中,敬请期待。", }, riskIssueSae: { title: "AE/SAE", subtitle: "同步参与者 AE/SAE 信息列表", listTitle: "AE/SAE 列表", emptyDescription: "暂无 AE/SAE 记录", subjectNo: "参与者编号", toSubject: "查看", }, riskIssuePd: { title: "PD", subtitle: "同步参与者 PD 相关信息列表", listTitle: "PD 列表", emptyDescription: "暂无 PD 记录", syncStatus: "同步状态", synced: "已同步", toSubject: "查看", }, riskIssueMonitoringVisits: { title: "监查访视问题", subtitle: "功能建设中", listTitle: "监查访视问题列表", emptyDescription: "监查访视问题模块正在建设中,敬请期待。", }, knowledgeMedicalConsult: { title: "医学咨询", subtitle: "常见问题与答复", detailTitle: "医学咨询详情", newCategory: "新增分类", editCategory: "编辑分类", categoryName: "分类名称", newItem: "新建咨询", editItem: "编辑咨询", confirmDeleteCategory: "确认删除分类「{name}」?", confirmDeleteItem: "确认删除咨询「{name}」?", confirmToggleItem: "确认{action}此咨询?", questionDesc: "问题描述", editQuestion: "编辑问题", confirmResolved: "确认解决", asker: "提问人", askedAt: "提问时间", bestAnswer: "最佳答案", adopted: "已采纳", replyDeleted: "回复已删除", replies: "回复", replyCount: "共 {count} 条", noReplyPermission: "当前角色无权限回复", emptyReplies: "暂无回复", setBest: "设为最佳", cancelBest: "取消最佳", confirmBestReply: "设为最佳答案并确认已解决?", bestReplySet: "已设为最佳答案", bestReplyCleared: "已取消最佳答案", resolvedSuccess: "已设置为已解决", replyRequired: "请输入回复内容", replySubmitted: "回复已提交", replyFailed: "回复失败", replyLoadFailed: "回复加载失败", clearQuote: "取消引用", quoteDeleted: "内容已删除", }, knowledgeNotes: { title: "注意事项", subtitle: "分中心特殊要求记录", empty: "暂无注意事项记录", confirmDelete: "确认删除该注意事项?", newTitle: "新增注意事项", editTitle: "编辑注意事项", formSubtitle: "记录分中心特殊问题", uploadHint: "保存后可上传附件", detailTitle: "注意事项详情", detailSubtitle: "查看注意事项与附件", }, knowledgeSupportFiles: { title: "支持性文件", subtitle: "功能建设中", listTitle: "支持性文件列表", emptyDescription: "支持性文件功能正在搭建基础能力,敬请期待。", }, knowledgeInstructionFiles: { title: "说明文件", subtitle: "功能建设中", listTitle: "说明文件列表", emptyDescription: "说明文件功能正在搭建基础能力,敬请期待。", }, etmf: { title: "eTMF", subtitle: "按 TMF 目录归档项目级与中心级文件", listTitle: "eTMF 目录", emptyDescription: "暂无 eTMF 目录", treeTitle: "TMF 目录", detailTitle: "归档状态", noNodeSelected: "未选择目录", selectNodeHint: "请选择左侧目录查看文件", emptyDocuments: "当前目录暂无文件", rootNode: "根目录", actions: { newNode: "新增目录", newDocument: "归档文件", }, dialog: { nodeTitle: "新增 eTMF 目录", documentTitle: "归档文件", }, fields: { parent: "上级目录", node: "归档目录", code: "目录编码", name: "目录名称", scope: "适用范围", required: "必需", documentCount: "文件数", effectiveCount: "生效版本", }, status: { NOT_REQUIRED: "非必需", MISSING: "缺失", UPLOADED: "已上传", EFFECTIVE: "已生效", INACTIVE: "已停用", }, statusDescriptions: { NOT_REQUIRED: "该目录不是必需项,当前没有归档文件。", MISSING: "该目录为必需项,尚未归档文件。", UPLOADED: "该目录已有文件,但暂无生效版本。", EFFECTIVE: "该目录已有生效版本,可满足当前归档要求。", INACTIVE: "该目录已停用,仅保留历史归档上下文。", }, messages: { siteRequired: "中心级目录需选择分中心", }, }, adminUserApproval: { title: "注册审核", subtitle: "仅显示待审核账号,审核通过后即可登录", createdAt: "注册时间", approve: "审核通过", reject: "拒绝", loadFailed: "加载待审核用户失败", approveSuccess: "已通过审核", approveFailed: "审核失败", rejectSuccess: "已拒绝", rejectFailed: "拒绝失败", }, adminUsers: { title: "账号管理(系统登录账号)", subtitle: "账号用于登录系统,本身不具备项目或角色权限", userLabel: "用户", clinicalDepartmentLabel: "科室", createdAt: "创建时间", newTitle: "新建用户", editTitle: "编辑用户", resetPassword: "重置密码", accountStatus: "账号状态", passwordOptional: "新密码(可选)", passwordInitial: "初始密码", passwordOptionalHint: "留空则不修改密码", passwordInitialHint: "请输入初始密码", passwordInitialRequired: "请输入初始密码", keepAdminWarning: "至少保留一个管理员账号,不能禁用该账号", loadFailed: "用户列表加载失败", updateSuccess: "用户已更新", createSuccess: "用户已创建", deleteConfirm: "删除后不可恢复,请输入“确认删除”继续。", deleteTitle: "危险操作:删除账号", deleteConfirmPlaceholder: "确认删除", deleteConfirmInputError: "请输入“确认删除”", deleteSuccess: "账号已删除", deleteFailed: "删除失败", enableConfirm: "确认启用该用户账号?", disableConfirm: "该操作将影响用户账号,请确认是否继续", enableTitle: "启用账号", disableTitle: "禁用账号", enableSuccess: "已启用", disableSuccess: "已禁用", resetTitle: "重置密码", resetWarningTitle: "该操作将影响用户账号,请确认是否继续", resetWarningDesc: "系统将生成临时密码,需再次输入用户名才能提交。", resetTarget: "重置对象:", confirmUsername: "确认用户名", confirmUsernameHint: "请输入用户名以确认", passwordMode: "密码方式", passwordAuto: "系统生成临时密码", passwordManual: "手动输入新密码", tempPassword: "临时密码", newPassword: "新密码", regenerate: "重新生成", manualPasswordHint: "请输入新密码", passwordHint: "不会明文展示,请通过安全渠道告知用户", tempPasswordError: "临时密码生成异常", manualPasswordRequired: "请输入新密码", confirmMismatch: "确认用户名不匹配,无法提交", resetConfirmPrompt: "该操作将影响用户账号,请确认是否继续", resetConfirmTitle: "确认重置密码", resetConfirm: "确认重置", resetSuccess: "密码已重置", resetFailed: "重置失败", }, adminProjects: { title: "项目管理", subtitle: "项目是独立业务实体,账号加入项目后才成为项目成员(角色在成员配置中设置)", projectLabel: "项目", members: "项目账号/成员配置", sites: "中心管理", enter: "进入项目", createdAt: "创建时间", newTitle: "新建项目", editTitle: "编辑项目", sponsorPlaceholder: "申办方(可选)", protocolPlaceholder: "方案号(可选)", phasePlaceholder: "研究分期(可选)", loadFailed: "项目列表加载失败", createSuccess: "项目已创建", updateSuccess: "项目已更新", detailTitle: "项目详情", basicInfo: "项目基本信息", filesTitle: "项目通用文件", setupStepCenterConfirm: "中心确认", setupSaveSuccess: "配置草稿已保存", setupSaveFailed: "配置草稿保存失败", lockConfirmPrompt: "请输入“确认锁定”以继续", lockConfirmTitle: "二次确认", lockConfirmPlaceholder: "请输入确认锁定", lockConfirmMismatch: "输入内容不匹配", lockConfirmMismatchWarning: "输入内容不匹配,已取消锁定", }, adminProjectMembers: { title: "项目成员配置(角色仅在当前项目内生效)", subtitle: "同一账号在不同项目可拥有不同角色,角色授权仅在本页进行", projectPrefix: "项目:", memberLabel: "成员", username: "姓名", projectRole: "项目角色", addedAt: "加入时间", disabledGlobal: "全局已禁用", disabled: "已禁用", disabledGlobalHint: "请前往【账号管理】启用该账号", disabledGlobalDesc: "该账号已在系统级被禁用,无法在任何项目中使用", newTitle: "新增成员", user: "用户", userPlaceholder: "请选择用户", rolePlaceholder: "请选择角色", addSuccess: "成员已添加", addFailed: "添加失败", loadFailed: "成员列表加载失败", roleUpdated: "角色已更新", disableConfirm: "该操作将影响项目成员,请确认是否继续", disableTitle: "停用成员", disableSuccess: "成员已停用", enableSuccess: "成员已启用", removeConfirm: "确认将该账号从本项目移除?账号本身不会被删除。", removeTitle: "删除成员", removeSuccess: "已从项目移除", }, adminSites: { title: "中心管理", projectPrefix: "项目:", siteLabel: "中心", piLabel: "PI", loadFailed: "中心列表加载失败", newTitle: "新建中心", editTitle: "编辑中心", cityPlaceholder: "所在城市(可选)", piPlaceholder: "PI(可选)", phonePlaceholder: "电话(可选)", contactPlaceholder: "选择项目成员作为负责人,可多选", updateSuccess: "中心已更新", createSuccess: "中心已创建", leadUnitTag: "组长单位", disableConfirm: "该操作将影响中心数据,请确认是否继续", disableTitle: "停用中心", disableSuccess: "已停用", enableSuccess: "已启用", craBindTitle: "CRA 绑定", sitePrefix: "中心:", craSelect: "选择 CRA", craSelectPlaceholder: "请选择 CRA 账号", craHint: "支持多选,保存后将以用户名写入中心联系人字段", craSave: "保存绑定", craSaveSuccess: "绑定已保存", }, adminAuditLogs: { title: "审计日志", filterEntityType: "对象类型", filterEvent: "操作类型", filterOperator: "操作人", filterResult: "结果", rangeStart: "开始", rangeEnd: "结束", exportSystem: "导出系统审计", exportProject: "导出项目审计", loadFailed: "审计日志加载失败", exportLoadFailed: "导出数据加载失败", exportConfirm: "该文件包含敏感审计信息,仅限授权人员使用。确认导出吗?", exportConfirmTitle: "审计导出确认", exportEmpty: "无可导出的审计记录", exportSystemName: "系统审计", exportProjectName: "项目审计", columns: { time: "时间", actor: "操作人", event: "操作类型", action: "内容", target: "对象", diff: "详情", result: "结果", }, }, permissions: { subjectEnroll: "仅 PM/CRA 可更新参与者状态", subjectComplete: "仅 PM/CRA 可更新参与者状态", subjectDrop: "仅 PM/CRA 可更新参与者状态", aeClose: "仅 PM/PV/ADMIN 可关闭 AE", faqEdit: "仅 PM/ADMIN 可维护 FAQ", faqCreate: "仅项目成员可新建 FAQ", faqReply: "仅项目成员可回复 FAQ", projectMembersManage: "仅 ADMIN / PM 可调整项目成员", siteManage: "仅 ADMIN / PM 可管理中心", siteCraBind: "仅 ADMIN / PM 可绑定 CRA", feeContractsWrite: "仅 ADMIN / PM 可维护合同费用", default: "当前角色无权执行该操作", }, profile: { title: "个人设置", subtitle: "更新个人信息或修改登录密码", uploadAvatar: "上传头像", currentPassword: "当前密码", currentPasswordHint: "修改密码时必填", newPassword: "新密码", newPasswordHint: "不修改请留空", confirmPassword: "确认新密码", confirmPasswordHint: "再次输入新密码", passwordRequired: "修改密码需输入当前密码", passwordRule: "至少 8 位且包含字母与数字", passwordMismatch: "两次输入的密码不一致", updateSuccess: "已更新", updateFailed: "更新失败", avatarUpdated: "头像已更新", avatarUploadFailed: "头像上传失败", }, }, enums: { userRole: { ADMIN: "管理员", PM: "PM", CRA: "CRA", PV: "PV", QA: "QA", CTA: "CTA", }, userStatus: { PENDING: "待审核", ACTIVE: "启用", REJECTED: "已拒绝", DISABLED: "已禁用", }, subjectStatus: { SCREENING: "筛选中", ENROLLED: "已入组", COMPLETED: "已完成", DROPPED: "已脱落", }, visitStatus: { PLANNED: "计划中", DONE: "已完成", MISSED: "未完成", OVERDUE: "超窗", LOST: "失访", CANCELLED: "已取消", }, aeSeriousness: { I: "I", II: "II", III: "III", IV: "IV", V: "V", }, aeSeverity: { I: "I", II: "II", III: "III", IV: "IV", V: "V", MILD: "I", MODERATE: "II", SEVERE: "III", }, aeCausality: { 肯定有关: "肯定有关", 很可能有关: "很可能有关", 可能有关: "可能有关", 可能无关: "可能无关", 无关: "无关", 待评估: "待评估", }, aeOutcome: { 痊愈: "痊愈", 好转: "好转", 持续: "持续", 恶化: "恶化", 死亡: "死亡", 失访: "失访", }, aeStatus: { FOLLOW_UP: "随访中", CLOSED: "已关闭", }, shipmentDirection: { 寄送: "寄送", 回收: "回收", SEND: "寄送", RETURN: "回收", }, shipmentStatus: { 待寄出: "待寄出", 运输中: "运输中", 已签收: "已签收", 异常: "异常", PENDING: "待寄出", IN_TRANSIT: "运输中", SIGNED: "已签收", EXCEPTION: "异常", }, projectStatus: { DRAFT: "草稿", ACTIVE: "进行中", CLOSED: "已关闭", }, faqStatus: { PENDING: "待回答", PROCESSING: "处理中", RESOLVED: "已解决", }, pdLevel: { GENERAL: "一般", MAJOR: "重大", CRITICAL: "严重", }, pdApprovalStatus: { DRAFT: "未提交", SUBMITTED: "审批中", APPROVED: "通过", REJECTED: "驳回", }, pdStatus: { OPEN: "开放", CLOSED: "关闭", }, generalStatus: { TODO: "待处理", DOING: "进行中", DONE: "已完成", BLOCKED: "阻塞", DRAFT: "草稿", SUBMITTED: "已提交", APPROVED: "已审批", REJECTED: "已驳回", PAID: "已支付", CLOSED: "已关闭", OPEN: "开放", NEW: "新建", FOLLOW_UP: "随访中", OVERDUE: "已逾期", SCREENING: "筛选中", ENROLLED: "已入组", COMPLETED: "已完成", DROPPED: "已脱落", }, trainingFlag: { true: "是", false: "否", }, documentType: { SOP: "SOP", ICF: "知情同意书", Training: "培训材料", Manual: "手册", Guidance: "研究快速指引", }, documentStatus: { DRAFT: "草稿", ACTIVE: "已生效", ARCHIVED: "已归档", }, documentVersionStatus: { DRAFT: "草稿", SUBMITTED: "已提交", APPROVED: "已审批", EFFECTIVE: "已生效", SUPERSEDED: "已废止", ARCHIVED: "已归档", WITHDRAWN: "已撤回", REJECTED: "已驳回", }, distributionTargetType: { SITE: "中心", ROLE: "角色", USER: "人员", }, scopeType: { GLOBAL: "通用", SITE: "中心", DERIVED: "派生", }, permissionManagement: { title: "权限管理", moduleLevel: "模块级权限", apiLevel: "角色权限", monitoring: "权限监控", refreshMetrics: "刷新指标", save: "保存", search: "搜索端点", filterModule: "筛选模块", filterMethod: "筛选方法", endpoint: "端点", module: "模块", method: "方法", role: "角色", allowed: "允许", denied: "拒绝", healthStatus: "系统健康状态", healthScore: "健康分数", healthy: "健康", degraded: "降级", unhealthy: "不健康", issues: "发现的问题", totalChecks: "总检查次数", avgResponseTime: "平均响应时间", allowRate: "允许率", errorRate: "错误率", cacheEfficiency: "缓存效率", cacheHitRate: "缓存命中率", cacheItems: "缓存项目数", cacheInvalidations: "缓存失效次数", recentAlerts: "最近告警", time: "时间", level: "级别", type: "类型", message: "消息", noAlerts: "暂无告警", }, }, } as const;