diff --git a/activities/part-substitution-assessment/__tests__/steps.test.ts b/activities/part-substitution-assessment/__tests__/steps.test.ts
index cecbd1e..09171a4 100644
--- a/activities/part-substitution-assessment/__tests__/steps.test.ts
+++ b/activities/part-substitution-assessment/__tests__/steps.test.ts
@@ -322,11 +322,11 @@ describe('说明书与剧本的骨架', () => {
expect(html).not.toContain(' {
- for (const name of ['p08-master-create', 'p10-document-create'] as const) {
- const html = manifest.assets.viewTemplates.find((v) => v.name === name)?.html ?? '';
- expect(html, name).not.toContain('class="thd"');
- for (const th of html.match(/
]*>[^<]*<\/th>/g) ?? []) expect(th, name).not.toMatch(/[a-z]_[a-z]/);
+ it('表头与「字段」格只留中文:没有英文列名、没有 .thd 小字 —— 五张件一律(2026-08-27 用户在数据工单页、审核页各指出一次)', () => {
+ for (const v of manifest.assets.viewTemplates) {
+ expect(v.html, v.name).not.toContain('class="thd"');
+ for (const th of v.html.match(/ | ]*>[^<]*<\/th>/g) ?? []) expect(th, `${v.name} th`).not.toMatch(/[a-z]_[a-z]/);
+ for (const td of v.html.match(/ | [^<]*<\/td>/g) ?? []) expect(td, `${v.name} 字段格`).not.toMatch(/[a-z]_[a-z]/);
}
});
diff --git a/activities/part-substitution-assessment/src/manifest.ts b/activities/part-substitution-assessment/src/manifest.ts
index 1764838..77226b3 100644
--- a/activities/part-substitution-assessment/src/manifest.ts
+++ b/activities/part-substitution-assessment/src/manifest.ts
@@ -89,7 +89,7 @@ export const manifest: ActivityManifest = {
identity: {
activityId: ACTIVITY_ID,
name: 'ACT-WORK-05 · 差异评估',
- packageVersion: '1.4.4',
+ packageVersion: '1.4.6',
category: '需求分析与方案匹配',
sdkVersion: '0.1.0-m5',
checksum: 'dev-checksum-part-substitution-assessment',
diff --git a/activities/part-substitution-assessment/src/views/report.ts b/activities/part-substitution-assessment/src/views/report.ts
index 82b4e47..31e2ded 100644
--- a/activities/part-substitution-assessment/src/views/report.ts
+++ b/activities/part-substitution-assessment/src/views/report.ts
@@ -568,7 +568,7 @@ const RELATION_SUMMARY_TABLE = ``;
const DIFFERENCE_ITEM_TABLE = `
- | # | 参数项 parameter_name | 原 PN 值 original_value | 候选 PN 值 candidate_value | 单位 parameter_unit | 约束类型 constraint_type | 结论 difference_status | 风险等级 | 证据引用 evidence_ref | AI 置信度 |
+ | # | 参数项 | 原 PN 值 | 候选 PN 值 | 单位 | 约束类型 | 结论 | 风险等级 | 证据引用 | AI 置信度 |
|
|
@@ -619,31 +619,31 @@ export const DIFFERENCE_REVIEW = doc({
const P11_FIELD_TABLE = `
| # | 字段 | 拟写入值 |
- | 替代类型 substitution_type | |
- | 原内部料号 original_internal_pn | |
- | 候选内部料号 candidate_internal_pn | |
- | 推荐等级 recommendation_level | ${badge('st', 'recommendation_level')} (枚举:推荐 / 条件推荐 / 备选 / 不推荐,四态之一) |
- | 推荐理由 recommendation_reason | |
- | 差异摘要 difference_summary | |
- | 替代分析报告 analysis_report_ref | |
- | 分析状态 analysis_status | ${badge('st', 'analysis_status')} (枚举:AI草稿 / FAE确认 / 待客户验证 / 客户已批准 / 不批准 / 作废) |
- | 客户批准状态 customer_approval_status | 未提交 (由审批流程维护,本活动不产生) |
- | 风险等级 risk_level | ${badge('risk', 'risk_level')} |
- | 验证要求 verification_requirement | |
- | 证据可信度 confidence_score | |
- | 差异规则版本 rule_version | |
+ | 替代类型 | |
+ | 原内部料号 | |
+ | 候选内部料号 | |
+ | 推荐等级 | ${badge('st', 'recommendation_level')} (枚举:推荐 / 条件推荐 / 备选 / 不推荐,四态之一) |
+ | 推荐理由 | |
+ | 差异摘要 | |
+ | 替代分析报告 | |
+ | 分析状态 | ${badge('st', 'analysis_status')} (枚举:AI草稿 / FAE确认 / 待客户验证 / 客户已批准 / 不批准 / 作废) |
+ | 客户批准状态 | 未提交 (由审批流程维护,本活动不产生) |
+ | 风险等级 | ${badge('risk', 'risk_level')} |
+ | 验证要求 | |
+ | 证据可信度 | |
+ | 差异规则版本 | |
`;
const P01_FIELD_TABLE = `
| # | 字段 | 拟写入值 |
- | 风险等级 risk_level | ${badge('risk', 'risk_level')} |
- | 验证要求 verification_requirement | |
- | 输出链接 output_ref | |
- | 下一步动作 next_action | |
- | 当前阶段 current_stage | ${badge('st', 'current_stage')} |
- | 需求状态 request_status | ${badge('st', 'request_status')} |
+ | 风险等级 | ${badge('risk', 'risk_level')} |
+ | 验证要求 | |
+ | 输出链接 | |
+ | 下一步动作 | |
+ | 当前阶段 | ${badge('st', 'current_stage')} |
+ | 需求状态 | ${badge('st', 'request_status')} |
`;
|