From c172018367762ec996cca691f09790400281386c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 2 Sep 2026 18:49:12 +0000 Subject: [PATCH] =?UTF-8?q?Rename=20indicator=20owner=5Funit=20label=20to?= =?UTF-8?q?=20=E9=83=A8=E9=97=A8=E6=9D=BF=E5=9D=97=20per=20glossary=20?= =?UTF-8?q?=C2=A71.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Requirements V1.3 §1.4 and design doc V1.0 standardise the term as 「部门板块」, but the indicator field label still used the older 「责任板块(考核部门)」 wording, leaving docs and UI inconsistent. - src/objects/indicator.object.ts: owner_unit label → 「部门板块」 - src/lib/aggregate.ts: header comment 「所属板块得分」 → 「部门板块得分」 (wording only; the aggregation algorithm is untouched) - src/translations/index.ts: en fallback for owner_unit 「Owning Unit」 → 「Department Segment」, keeping the semantics No other 「板块」 occurrence in src/test/scripts refers to this term. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01VR2khJ3Me96btawVsfG6jb --- src/lib/aggregate.ts | 2 +- src/objects/indicator.object.ts | 2 +- src/translations/index.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/aggregate.ts b/src/lib/aggregate.ts index 71ff2f1..e28c6c5 100644 --- a/src/lib/aggregate.ts +++ b/src/lib/aggregate.ts @@ -3,7 +3,7 @@ * 口径依据《设计方案》V1.0 第 8 章表 6(客户 2026-09-02 确认),口径改动只改本文件。 * * - 部门 / 分公司:填报单最终得分(指标得分合计 + 已批准加减分),按主体类型分维度,组内排名; - * - 到人:个人得分 = Σ(所属板块得分 × 分工权重% × 个人系数)+ Σ(承接项得分率% × 承接权重%) + * - 到人:个人得分 = Σ(部门板块得分 × 分工权重% × 个人系数)+ Σ(承接项得分率% × 承接权重%) * ——承接项得分率取该下达指标在主体填报单里的得分率; * - 分管领导:分管主体的最终得分按主体权重加权平均(权重全 0 时算术平均,表 7 第 7 项)。 * diff --git a/src/objects/indicator.object.ts b/src/objects/indicator.object.ts index 72e0d69..9d3716c 100644 --- a/src/objects/indicator.object.ts +++ b/src/objects/indicator.object.ts @@ -31,7 +31,7 @@ export const Indicator = ObjectSchema.create({ { label: '其他', value: 'other', color: '#64748B' }, ], }), - owner_unit: Field.lookup('sys_business_unit', { label: '责任板块(考核部门)', required: true }), + owner_unit: Field.lookup('sys_business_unit', { label: '部门板块', required: true }), data_source: Field.select({ label: '数据来源', required: true, diff --git a/src/translations/index.ts b/src/translations/index.ts index f55f15c..11bef7c 100644 --- a/src/translations/index.ts +++ b/src/translations/index.ts @@ -6,7 +6,7 @@ import { defineTranslationBundle } from '@objectstack/spec'; export const KpiTranslationBundle = defineTranslationBundle({ en: { objects: { - kpi_indicator: { label: 'Indicator', pluralLabel: 'Indicators', fields: { code: { label: 'Code' }, name: { label: 'Name' }, category: { label: 'Category' }, owner_unit: { label: 'Owning Unit' }, scoring_method: { label: 'Scoring Method' }, status: { label: 'Status' } } }, + 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' } } }, kpi_plan: { label: 'Assessment Plan', pluralLabel: 'Assessment Plans', fields: { name: { label: 'Plan Name' }, period_type: { label: 'Period Type' }, year: { label: 'Year' }, status: { label: 'Status' } } }, kpi_entry_sheet: { label: 'Entry Sheet', pluralLabel: 'Entry Sheets', fields: { name: { label: 'Sheet' }, plan: { label: 'Plan' }, subject: { label: 'Subject' }, status: { label: 'Status' }, total_score: { label: 'Final Score' } } }, kpi_entry_line: { label: 'Entry Line', pluralLabel: 'Entry Lines', fields: { indicator_name: { label: 'Indicator' }, actual_value: { label: 'Actual' }, target_value: { label: 'Target' }, weight: { label: 'Weight (%)' }, completion_rate: { label: 'Completion (%)' }, score: { label: 'Score' }, final_score: { label: 'Final Score' } } },