From 312cb7abdb7827ce256058b5c7d8e07a2b98d1f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=85=E5=91=A8=E6=B6=9B?= Date: Thu, 3 Sep 2026 03:59:43 -0700 Subject: [PATCH] =?UTF-8?q?i18n:=20=E6=8C=89=E5=B9=B3=E5=8F=B0=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E5=86=99=E6=B3=95=E8=A1=A5=20zh-CN=20=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=8C=85,=E6=B6=88=E9=99=A4=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=8B=E7=9A=84=E8=8B=B1=E6=96=87=E6=A0=87?= =?UTF-8?q?=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 界面英文的根因是缺 zh-CN 翻译包:元数据 label 本身是中文,但仓库只注册了 en 包;运行时按「zh-CN 包 → en 包 → 元数据原文」查标签,zh-CN 包不存在, 凡 en 包覆盖到的键一律落到英文。 按 objectstack-i18n 文档的正式写法整改,每个支持语言各一个包: - 新增 src/translations/zh-CN.objects.generated.ts —— 全部由 `pnpm i18n:extract`(os i18n extract)从元数据中文 label 生成,529 个 词条,零手改; - src/translations/index.ts 注册 'zh-CN' 包,en 包内容原样不动; - package.json 增加 i18n:extract 生成脚本与 i18n:extract:check 新鲜度 门禁,并把门禁并入 pnpm verify,保证元数据标签改了包会跟着改; - CLAUDE.md 项目约定中翻译包的那一句改为正式写法。 生成命令带 --no-objects-only:平台默认的 --objects-only 只产出 objects/globalActions 子树,不含 apps,而应用名「KPI 考核管理」正是被 en 包覆盖的键。带 --filter=kpi_ 把范围收在本应用自有的 objects/apps/ dashboards/pages 上——与不带 filter 的产物逐字节相同,只少了平台 Studio 的 metadataForms 英文基线(--no-metadata-forms 未能抑制它内联到单文件里, 那份基线属于平台包,不该由应用包分发)。 不改任何对象/字段 label 文案,不改 en 包,不动 src/data、scripts、docs。 Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 4 +- package.json | 4 +- src/translations/index.ts | 9 +- src/translations/zh-CN.objects.generated.ts | 1364 +++++++++++++++++++ 4 files changed, 1378 insertions(+), 3 deletions(-) create mode 100644 src/translations/zh-CN.objects.generated.ts diff --git a/CLAUDE.md b/CLAUDE.md index 9ce5627..67d747b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -21,7 +21,9 @@ pnpm dev # http://localhost:3000 ;Console 在 /_console/ ;管理员 adm ## 项目约定 - 对象机器名一律 `kpi_` 前缀(manifest namespace),字段 snake_case,配置键 camelCase; -- 用户可见文案默认中文(对象/字段 label 直接中文;`zh-CN` 翻译包只补 en 回退),遵守 +- 用户可见文案默认中文(对象/字段 label 直接写中文;`zh-CN` 翻译包由 `pnpm i18n:extract` + (`os i18n extract`)从元数据 label 生成、随元数据改动重新生成、禁止手改词条,`en` 包手工 + 维护英文回退),遵守 os-project-std-copy 四条红线:无内部代号、无异常原文、名词按需求文档 §1.4 术语表、报错三段式; - 数字字段四件套(小数位/最小值/最大值/单位)必须显式声明,禁用平台默认; - 计分口径唯一真值在 `src/lib/scoring.ts`,任何得分都经它算,禁止在视图/公式字段里二次实现; diff --git a/package.json b/package.json index 202f7ab..3c3d6e5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,9 @@ "validate": "objectstack validate", "typecheck": "tsc --noEmit", "test": "vitest run", - "verify": "pnpm validate && pnpm typecheck && pnpm test", + "i18n:extract": "objectstack i18n extract --locales=zh-CN --no-metadata-forms --no-objects-only --filter=kpi_ --out=src/translations", + "i18n:extract:check": "objectstack i18n extract --locales=zh-CN --no-metadata-forms --no-objects-only --filter=kpi_ --out=src/translations --check", + "verify": "pnpm validate && pnpm typecheck && pnpm test && pnpm i18n:extract:check", "e2e": "node scripts/e2e-flow.mjs", "docs:docx": "node scripts/md2docx.cjs docs/00-设计方案.md docs/交付/KPI考核管理系统-设计方案-V1.0.docx", "docs:manual": "node scripts/md2docx.cjs docs/手册/KPI考核管理系统-操作手册.md docs/交付/KPI考核管理系统-操作手册-V0.1.docx" diff --git a/src/translations/index.ts b/src/translations/index.ts index 11bef7c..b157982 100644 --- a/src/translations/index.ts +++ b/src/translations/index.ts @@ -1,9 +1,16 @@ import { defineTranslationBundle } from '@objectstack/spec'; +import { zhCNTranslations } from './zh-CN.objects.generated.js'; /** - * 元数据 label 本身即中文(客户业务语言),这里只提供英文回退,便于英文界面用户。 + * 翻译包按平台正式写法组织:每个受支持语言各一个包。 + * + * - `zh-CN`(默认语言)由 `pnpm i18n:extract` 从元数据中文 label 生成, + * 全部词条为工具产出,禁止手改;元数据 label 改动后重跑生成, + * `pnpm verify` 里的 `extract --check` 新鲜度门禁负责兜底。 + * - `en` 手工维护,只为英文界面用户提供英文回退。 */ export const KpiTranslationBundle = defineTranslationBundle({ + 'zh-CN': zhCNTranslations, en: { objects: { kpi_indicator: { label: 'Indicator', pluralLabel: 'Indicators', fields: { code: { label: 'Code' }, name: { label: 'Name' }, category: { label: 'Category' }, owner_unit: { label: 'Department Segment' }, scoring_method: { label: 'Scoring Method' }, status: { label: 'Status' } } }, diff --git a/src/translations/zh-CN.objects.generated.ts b/src/translations/zh-CN.objects.generated.ts new file mode 100644 index 0000000..6373769 --- /dev/null +++ b/src/translations/zh-CN.objects.generated.ts @@ -0,0 +1,1364 @@ +// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license. + +/** + * Auto-generated by 'os i18n extract' for locale 'zh-CN'. + * Edit translations in place; re-run extract (with --merge) to fill new gaps. + * Do not hand-edit the structure — only the leaf string values. + * Merge only fills gaps: correcting a source label/description does not + * push the correction into a leaf here that already holds a translation — + * a present-but-stale string is not a gap, so it is left as-is. Re-translate + * it by hand when its source changes; nothing here or in `os i18n check` + * tells a leaf a translator updated on purpose from one nobody has looked + * at since the source moved. + */ + +import type { TranslationData } from '@objectstack/spec/system'; + +export const zhCNTranslations: TranslationData = { + objects: { + kpi_adjustment: { + label: "数据调整", + pluralLabel: "数据调整", + description: "对已提交的实际值(源数据)或得分(计算结果)发起调整申请。", + fields: { + name: { + label: "调整单号" + }, + sheet: { + label: "填报单" + }, + plan: { + label: "考核方案" + }, + subject: { + label: "考核主体" + }, + line: { + label: "调整的指标明细" + }, + adjust_type: { + label: "调整类型", + options: { + source: "源数据(实际值)", + result: "计算结果(得分)" + } + }, + old_value: { + label: "调整前值" + }, + new_value: { + label: "调整后值" + }, + reason: { + label: "调整原因" + }, + status: { + label: "状态", + options: { + draft: "草稿", + submitted: "待审批", + approved: "已批准", + rejected: "已否决" + } + }, + requested_by: { + label: "申请人" + }, + decided_by: { + label: "审批人" + }, + decided_at: { + label: "审批时间" + }, + decision_reason: { + label: "审批意见" + }, + applied_at: { + label: "落地时间" + } + }, + _actions: { + kpi_adjustment_approve: { + label: "批准并落地", + description: "批准后将立即更正明细并重新计分。确认批准?", + successMessage: "调整已批准并落地,得分已重算。", + params: { + decision_reason: { + label: "审批意见(选填)" + } + } + }, + kpi_adjustment_reject: { + label: "否决", + successMessage: "调整申请已否决。", + params: { + decision_reason: { + label: "否决原因(必填)" + } + } + }, + kpi_adjustment_submit: { + label: "提交审批", + successMessage: "调整申请已提交,等待人力审批。" + } + }, + _views: { + default: { + label: "数据调整" + }, + pending: { + label: "待审批" + } + }, + _sections: { + request: { + label: "调整申请" + }, + decision: { + label: "审批" + } + } + }, + kpi_bonus: { + label: "加减分", + pluralLabel: "加减分", + description: "在指标得分之外单独记录的加分或扣分项。", + fields: { + sheet: { + label: "所属填报单" + }, + title: { + label: "事项" + }, + bonus_type: { + label: "类型", + options: { + add: "加分", + deduct: "扣分" + } + }, + points: { + label: "分值" + }, + signed_points: { + label: "计入分值" + }, + reason: { + label: "依据" + }, + status: { + label: "状态", + options: { + draft: "待审批", + approved: "已批准", + rejected: "已否决" + } + }, + approved_by: { + label: "审批人" + }, + approved_at: { + label: "审批时间" + } + }, + _actions: { + kpi_bonus_approve: { + label: "批准", + successMessage: "加减分已批准,计入最终得分。" + }, + kpi_bonus_reject: { + label: "否决", + successMessage: "加减分已否决。" + } + }, + _views: { + default: { + label: "加减分" + }, + pending: { + label: "待审批" + } + }, + _sections: { + main: { + label: "加减分" + } + } + }, + kpi_check_task: { + label: "核对任务", + pluralLabel: "核对任务", + description: "分公司对填报单的并行核对:确认或提出争议。", + fields: { + name: { + label: "任务名称" + }, + sheet: { + label: "填报单" + }, + plan: { + label: "考核方案" + }, + branch: { + label: "核对分公司" + }, + status: { + label: "核对状态", + options: { + pending: "待核对", + confirmed: "已确认", + disputed: "有争议" + } + }, + comment: { + label: "核对意见" + }, + decided_by: { + label: "核对人" + }, + decided_at: { + label: "核对时间" + } + }, + _actions: { + kpi_check_confirm: { + label: "确认无误", + successMessage: "已确认核对无误。", + params: { + comment: { + label: "核对意见(选填)" + } + } + }, + kpi_check_dispute: { + label: "提出争议", + successMessage: "已记录争议,请与填报部门协商后再确认。", + params: { + comment: { + label: "争议内容(必填)" + } + } + } + }, + _views: { + default: { + label: "全部核对任务" + }, + pending: { + label: "待我核对" + }, + disputed: { + label: "有争议" + } + }, + _sections: { + main: { + label: "核对任务" + } + } + }, + kpi_dispute: { + label: "指标争议", + pluralLabel: "指标争议", + description: "业务部门与分公司就某项指标下达的争议协商记录。", + fields: { + name: { + label: "争议编号" + }, + plan_indicator: { + label: "争议的指标下达" + }, + raised_unit: { + label: "提出单位" + }, + raised_by: { + label: "提出人" + }, + reason: { + label: "争议理由" + }, + status: { + label: "状态", + options: { + open: "待处理", + accepted: "已采纳", + rejected: "已驳回" + } + }, + resolution: { + label: "处理结论" + }, + resolved_by: { + label: "处理人" + }, + resolved_at: { + label: "处理时间" + } + }, + _actions: { + kpi_dispute_accept: { + label: "采纳", + successMessage: "争议已采纳,请据此调整指标下达。", + params: { + resolution: { + label: "处理结论(必填)" + } + } + }, + kpi_dispute_reject: { + label: "不采纳", + successMessage: "争议已关闭(不采纳)。", + params: { + resolution: { + label: "处理结论(必填)" + } + } + } + }, + _views: { + default: { + label: "全部争议" + }, + open: { + label: "待处理" + } + }, + _sections: { + raise: { + label: "争议内容" + }, + resolve: { + label: "处理结论" + } + } + }, + kpi_entry_line: { + label: "填报明细", + pluralLabel: "填报明细", + description: "单个指标的实际值、完成率、得分与计算说明。", + fields: { + sheet: { + label: "所属填报单" + }, + plan_indicator: { + label: "来源下达" + }, + indicator: { + label: "指标" + }, + indicator_name: { + label: "指标名称" + }, + unit: { + label: "计量单位" + }, + direction: { + label: "指标方向", + options: { + positive: "越高越好", + negative: "越低越好" + } + }, + scoring_method: { + label: "计分方式", + options: { + linear: "完成率线性", + step: "阶梯计分", + range: "区间插值", + formula: "自定义公式" + } + }, + target_value: { + label: "目标值" + }, + weight: { + label: "权重(%)" + }, + actual_value: { + label: "实际值" + }, + completion_rate: { + label: "完成率(%)" + }, + score_rate: { + label: "得分率(%)" + }, + score: { + label: "指标得分" + }, + adjusted_score: { + label: "调整后得分" + }, + final_score: { + label: "最终得分" + }, + is_adjusted: { + label: "已调整" + }, + adjust_type_applied: { + label: "调整类型", + options: { + source: "源数据(实际值)", + result: "计算结果(得分)" + } + }, + calc_trace: { + label: "计算说明" + }, + last_adjustment: { + label: "最近调整" + }, + remark: { + label: "备注" + } + }, + _views: { + default: { + label: "填报明细" + }, + unfilled: { + label: "未填实际值" + } + }, + _sections: { + entry: { + label: "填报" + }, + score: { + label: "计分" + } + } + }, + kpi_entry_sheet: { + label: "填报单", + pluralLabel: "填报单", + description: "某方案下某考核主体的指标填报与审核记录。", + fields: { + name: { + label: "填报单名称" + }, + plan: { + label: "考核方案" + }, + subject: { + label: "考核主体" + }, + subject_type: { + label: "主体类型", + options: { + department: "总公司部门", + branch: "分公司" + } + }, + status: { + label: "状态", + options: { + draft: "填报中", + submitted: "已提交", + branch_checking: "分公司核对中", + hr_reviewing: "人力审核中", + leader_approving: "领导审批中", + approved: "已通过", + archived: "已归档" + } + }, + current_step: { + label: "当前节点序号" + }, + pending_action: { + label: "待执行动作(按钮写入)", + options: { + submit: "提交", + approve: "审核通过", + reject: "驳回", + archive: "归档" + } + }, + action_reason: { + label: "动作原因/意见" + }, + last_reject_reason: { + label: "最近驳回原因" + }, + submitted_at: { + label: "提交时间" + }, + submitted_by: { + label: "提交人" + }, + approved_at: { + label: "审批通过时间" + }, + approved_by: { + label: "最终审批人" + }, + archived_at: { + label: "归档时间" + }, + line_count: { + label: "指标数" + }, + weight_total: { + label: "权重合计(%)" + }, + indicator_score: { + label: "指标得分合计" + }, + bonus_total: { + label: "加减分合计" + }, + total_score: { + label: "最终得分" + }, + remark: { + label: "填报说明" + } + }, + _actions: { + kpi_sheet_approve: { + label: "审核通过", + successMessage: "已审核通过,流程进入下一节点。", + params: { + reason: { + label: "审核意见(选填)" + } + } + }, + kpi_sheet_archive: { + label: "归档", + confirmText: "归档后将生成不可变快照,数据锁定不可再改。确认归档?", + successMessage: "已归档并生成快照。" + }, + kpi_sheet_reject: { + label: "驳回", + successMessage: "已驳回,填报单退回上一节点。", + params: { + reason: { + label: "驳回原因(必填)" + } + } + }, + kpi_sheet_submit: { + label: "提交填报", + confirmText: "提交后填报数据将冻结,进入核对与审核流程。确认提交?", + successMessage: "填报单已提交,进入核对与审核流程。" + } + }, + _views: { + default: { + label: "全部填报单" + }, + filling: { + label: "填报中" + }, + checking: { + label: "分公司核对中" + }, + hr: { + label: "待人力审核" + }, + leader: { + label: "待领导审批" + }, + approved: { + label: "已通过" + }, + archived: { + label: "已归档" + }, + board: { + label: "流程看板" + } + }, + _sections: { + head: { + label: "填报单" + }, + flow: { + label: "流程信息" + } + } + }, + kpi_indicator: { + label: "考核指标", + pluralLabel: "考核指标", + description: "指标定义、数据来源与计分规则,版本可追溯。", + fields: { + code: { + label: "指标编码" + }, + name: { + label: "指标名称" + }, + category: { + label: "指标类别", + options: { + business: "经营业绩", + management: "管理效能", + service: "服务质量", + compliance: "安全合规", + other: "其他" + } + }, + owner_unit: { + label: "部门板块" + }, + data_source: { + label: "数据来源", + options: { + manual: "人工填报", + import: "批量导入", + system: "系统计算" + } + }, + unit: { + label: "计量单位" + }, + value_scale: { + label: "数值小数位" + }, + direction: { + label: "指标方向", + options: { + positive: "越高越好", + negative: "越低越好" + } + }, + scoring_method: { + label: "计分方式", + options: { + linear: "完成率线性", + step: "阶梯计分", + range: "区间插值", + formula: "自定义公式" + } + }, + cap_rate: { + label: "完成率封顶(%)" + }, + floor_rate: { + label: "完成率保底(%)" + }, + range_lower_rate: { + label: "区间下限完成率(%)" + }, + range_upper_rate: { + label: "区间上限完成率(%)" + }, + score_formula: { + label: "计分公式" + }, + description: { + label: "口径说明" + }, + status: { + label: "状态", + options: { + active: "启用", + retired: "停用" + } + }, + version_no: { + label: "版本号" + }, + superseded_by: { + label: "替代版本" + } + }, + _views: { + default: { + label: "全部指标" + }, + active: { + label: "启用中" + } + }, + _sections: { + basic: { + label: "基本信息" + }, + scoring: { + label: "计分规则" + }, + desc: { + label: "口径说明" + } + } + }, + kpi_indicator_step: { + label: "阶梯区间", + pluralLabel: "阶梯区间", + description: "阶梯计分方式的完成率区间与对应得分率。", + fields: { + indicator: { + label: "所属指标" + }, + seq: { + label: "序号" + }, + label: { + label: "区间名称" + }, + min_rate: { + label: "完成率下限(%,含)" + }, + max_rate: { + label: "完成率上限(%,不含;空为无上限)" + }, + score_rate: { + label: "得分率(%)" + } + }, + _views: { + default: { + label: "阶梯区间" + } + }, + _sections: { + main: { + label: "阶梯区间" + } + } + }, + kpi_personal_item: { + label: "个人承接项", + pluralLabel: "个人承接项", + description: "员工个人承担的具体指标及权重、目标。", + fields: { + assignment: { + label: "所属分工" + }, + name: { + label: "承接项名称" + }, + plan_indicator: { + label: "承接的指标下达" + }, + weight: { + label: "承接权重(%)" + }, + target_value: { + label: "个人目标值" + } + }, + _views: { + default: { + label: "个人承接项" + } + }, + _sections: { + main: { + label: "个人承接项" + } + } + }, + kpi_plan: { + label: "考核方案", + pluralLabel: "考核方案", + description: "一次考核的配置集合:周期、指标下达、考核关系、到人分工、审核流程。", + fields: { + name: { + label: "方案名称" + }, + period_type: { + label: "考核周期类型", + options: { + month: "月度", + quarter: "季度", + half_year: "半年度", + year: "年度" + } + }, + year: { + label: "考核年度" + }, + period_no: { + label: "期数(月/季/半年序号)" + }, + period_start: { + label: "周期开始" + }, + period_end: { + label: "周期结束" + }, + version_no: { + label: "版本号" + }, + status: { + label: "状态", + options: { + draft: "草稿", + published: "已发布", + closed: "已关闭", + archived: "已归档" + } + }, + based_on: { + label: "复制自版本" + }, + published_at: { + label: "发布时间" + }, + published_by: { + label: "发布人" + }, + description: { + label: "方案说明" + }, + subject_count: { + label: "参与主体数" + }, + indicator_count: { + label: "下达指标数" + }, + open_dispute_count: { + label: "未关闭争议数" + } + }, + _actions: { + kpi_plan_archive: { + label: "归档方案", + successMessage: "方案已归档。" + }, + kpi_plan_close: { + label: "关闭方案", + confirmText: "关闭后不再接受新的填报与调整。确认关闭?", + successMessage: "方案已关闭。" + }, + kpi_plan_publish: { + label: "发布方案", + confirmText: "发布前将做完整性检查;通过后方案冻结,并为每个参与主体生成填报单。确认发布?", + successMessage: "方案已发布,填报单已生成。" + } + }, + _views: { + default: { + label: "全部方案" + }, + draft: { + label: "草稿" + }, + published: { + label: "已发布" + }, + board: { + label: "状态看板" + } + }, + _sections: { + basic: { + label: "方案信息" + }, + publish: { + label: "发布信息" + } + } + }, + kpi_plan_indicator: { + label: "指标下达", + pluralLabel: "指标下达", + description: "把指标分配到考核主体,并给定权重与目标值。", + fields: { + plan: { + label: "所属方案" + }, + name: { + label: "下达名称" + }, + indicator: { + label: "指标" + }, + subject: { + label: "考核主体" + }, + weight: { + label: "权重(%)" + }, + target_value: { + label: "目标值" + }, + baseline_value: { + label: "基准值(上期)" + }, + data_source: { + label: "数据来源(覆盖指标默认)", + options: { + inherit: "沿用指标定义", + manual: "人工填报", + import: "批量导入", + system: "系统计算" + } + }, + dispute_status: { + label: "争议状态", + options: { + none: "无争议", + open: "争议中", + resolved: "已解决" + } + }, + remark: { + label: "备注" + } + }, + _views: { + default: { + label: "指标下达" + }, + disputed: { + label: "争议中" + } + }, + _sections: { + main: { + label: "指标下达" + } + } + }, + kpi_plan_step: { + label: "流程节点", + pluralLabel: "流程节点", + description: "方案的审核节点顺序与审核岗位。", + fields: { + plan: { + label: "所属方案" + }, + seq: { + label: "顺序" + }, + step_type: { + label: "节点类型", + options: { + dept_submit: "部门填报", + branch_check: "分公司核对(并行)", + hr_review: "人力审核", + leader_approve: "领导审批" + } + }, + label: { + label: "节点名称" + }, + approver_position: { + label: "审核岗位", + options: { + kpi_dept_reporter: "部门填报人员", + kpi_branch_checker: "分公司核对人员", + kpi_hr_reviewer: "人力审核", + kpi_hr_head: "人力负责人", + kpi_exec_leader: "分管领导" + } + } + }, + _views: { + default: { + label: "流程节点" + } + }, + _sections: { + main: { + label: "流程节点" + } + } + }, + kpi_plan_subject: { + label: "参与主体", + pluralLabel: "参与主体", + description: "方案的考核主体、考核部门、主体权重与分管领导。", + fields: { + plan: { + label: "所属方案" + }, + name: { + label: "主体名称" + }, + subject: { + label: "考核主体" + }, + subject_type: { + label: "主体类型", + options: { + department: "总公司部门", + branch: "分公司" + } + }, + assessor_unit: { + label: "考核部门(出指标方)" + }, + subject_weight: { + label: "主体权重(%)" + }, + leader: { + label: "分管领导" + }, + remark: { + label: "备注" + } + }, + _views: { + default: { + label: "参与主体" + } + }, + _sections: { + main: { + label: "参与主体" + } + } + }, + kpi_result: { + label: "考核结果", + pluralLabel: "考核结果", + description: "按部门、分公司、到人、分管领导四个维度汇总的得分与排名。", + fields: { + name: { + label: "结果名称" + }, + plan: { + label: "考核方案" + }, + dimension: { + label: "汇总维度", + options: { + department: "部门", + branch: "分公司", + person: "到人", + leader: "分管领导" + } + }, + unit: { + label: "组织单元" + }, + person: { + label: "人员" + }, + sheet: { + label: "来源填报单" + }, + score: { + label: "得分" + }, + weighted_score: { + label: "加权得分" + }, + rank: { + label: "排名" + }, + breakdown: { + label: "计算明细" + }, + generated_at: { + label: "生成时间" + } + }, + _views: { + default: { + label: "考核结果" + }, + department: { + label: "部门" + }, + branch: { + label: "分公司" + }, + person: { + label: "到人" + }, + leader: { + label: "分管领导" + } + }, + _sections: { + main: { + label: "考核结果" + } + } + }, + kpi_review_record: { + label: "审核记录", + pluralLabel: "审核记录", + description: "填报单每一次流程动作的留痕:谁、何时、从哪到哪、原因。", + fields: { + name: { + label: "记录编号" + }, + sheet: { + label: "填报单" + }, + action: { + label: "动作", + options: { + generate: "生成", + submit: "提交", + confirm: "核对确认", + dispute: "提出争议", + approve: "审核通过", + reject: "驳回", + archive: "归档", + adjust: "数据调整" + } + }, + step_label: { + label: "节点" + }, + from_status: { + label: "原状态" + }, + to_status: { + label: "新状态" + }, + actor: { + label: "经办人" + }, + reason: { + label: "原因/意见" + }, + acted_at: { + label: "时间" + } + }, + _views: { + default: { + label: "审核记录" + }, + rejects: { + label: "驳回记录" + }, + timeline: { + label: "时间线" + } + }, + _sections: { + main: { + label: "审核记录" + } + } + }, + kpi_snapshot: { + label: "归档快照", + pluralLabel: "归档快照", + description: "某周期填报单归档后的不可变留存,历史查询以此为准。", + fields: { + name: { + label: "快照名称" + }, + plan: { + label: "考核方案" + }, + sheet: { + label: "填报单" + }, + subject: { + label: "考核主体" + }, + total_score: { + label: "最终得分" + }, + payload: { + label: "快照内容" + }, + checksum: { + label: "校验和" + }, + archived_by: { + label: "归档人" + }, + archived_at: { + label: "归档时间" + } + }, + _views: { + default: { + label: "归档快照" + } + }, + _sections: { + main: { + label: "归档快照" + } + } + }, + kpi_staff_assignment: { + label: "到人分工", + pluralLabel: "到人分工", + description: "员工与部门板块的对应关系及其权重、个人系数。", + fields: { + plan: { + label: "所属方案" + }, + name: { + label: "分工名称" + }, + employee: { + label: "员工" + }, + unit: { + label: "部门板块" + }, + weight: { + label: "分工权重(%)" + }, + coefficient: { + label: "个人系数" + }, + remark: { + label: "备注" + } + }, + _views: { + default: { + label: "到人分工" + } + }, + _sections: { + main: { + label: "到人分工" + } + } + } + }, + apps: { + kpi_app: { + label: "KPI 考核管理", + navigation: { + nav_home: { + label: "工作台" + }, + group_entry: { + label: "填报与审核" + }, + nav_sheets: { + label: "填报单" + }, + nav_lines: { + label: "填报明细" + }, + nav_checks: { + label: "分公司核对" + }, + nav_bonus: { + label: "加减分" + }, + nav_adjust: { + label: "数据调整" + }, + group_plan: { + label: "考核方案" + }, + nav_plans: { + label: "方案版本" + }, + nav_plan_indicators: { + label: "指标下达" + }, + nav_plan_subjects: { + label: "参与主体" + }, + nav_assignments: { + label: "到人分工" + }, + nav_disputes: { + label: "指标争议" + }, + group_results: { + label: "结果与归档" + }, + nav_dashboard: { + label: "结果看板" + }, + nav_results: { + label: "考核结果" + }, + nav_report_unit: { + label: "部门 × 维度矩阵" + }, + nav_report_person: { + label: "到人得分" + }, + nav_report_line: { + label: "指标完成情况" + }, + nav_snapshots: { + label: "归档快照" + }, + group_setup: { + label: "基础设置" + }, + nav_indicators: { + label: "指标库" + }, + nav_ops_dashboard: { + label: "流程进度" + }, + group_audit: { + label: "审计查询" + }, + nav_reviews: { + label: "审核记录" + } + } + } + }, + dashboards: { + kpi_progress_dashboard: { + label: "考核流程进度", + description: "各填报单所处节点、主体类型分布与指标平均完成率。", + widgets: { + p_draft: { + title: "填报中" + }, + p_check: { + title: "分公司核对中" + }, + p_review: { + title: "审核审批中" + }, + p_done: { + title: "已通过 / 已归档" + }, + p_status: { + title: "填报单状态分布" + }, + p_type: { + title: "主体类型平均指标得分" + }, + p_completion: { + title: "各指标平均完成率(%)" + } + } + }, + kpi_results_dashboard: { + label: "考核结果看板", + description: "部门、分公司、到人、分管领导四个维度的得分总览,可钻取到结果明细。", + widgets: { + m_count: { + title: "结果条数" + }, + m_avg: { + title: "平均得分" + }, + m_max: { + title: "最高得分" + }, + m_min: { + title: "最低得分" + }, + bar_unit: { + title: "各组织单元平均得分" + }, + bar_person: { + title: "人员得分" + }, + tbl_dim: { + title: "按维度汇总" + } + } + } + }, + pages: { + kpi_home: { + label: "工作台", + title: "KPI 考核管理", + subtitle: "指标库 → 方案配置 → 指标下达 → 填报 → 并行核对 → 审核 → 计分 → 调整 → 汇总 → 归档" + } + } +};