来源:#959 / PR #967 实施过程的顺带发现。那一单只改三份 mdx 的 :151 / :152,src/ 零改动,故单独记录。两条都落在同一处 —— src/pages/opportunity_detail.page.ts 的 aside record:reference_rail 那 8 行 entries(:234-253),一次修完即可。
行号为 origin/main = 4705aed5。
一、Open Tasks 卡片不按状态过滤
参考栏第三个 entry(:247-252):objectName crm_task、relationshipField related_to_opportunity、title Open Tasks、limit 3 —— 没有任何 filter。
同一页 Related 标签页里的关联列表 opp_tasks(:190-199)是有过滤的:filter: [{ field: 'status', op: 'neq', value: 'completed' }],limit 10。两者口径不一致。
渲染侧也确实不接受 per-entry 过滤(对本仓实际装的 @objectstack/console@17.0.0-rc.3 产物 node_modules/@objectstack/console/dist/assets/plugins-views-*.js 测量):rail 每个 entry 的查询是
find(objectName, { $filter: { [relationshipField]: parentId }, $top: limit ?? 3, $count: true })
只带关联字段;entry 的形状(objectui ReferenceRailEntry)也只有 objectName / relationshipField / title / icon / limit / displayField 六个键,没有 filter 位置。
后果:卡片标题写着 Open Tasks,但徽章上的总数和列出的三条都把 Completed 的任务算进去 —— 它实际是「关联任务总数」。一个商机上历史任务攒得越多,这个数字越没有意义。
可选修法(不预判,交裁定):
- entry 的 title 改成
Tasks:与实况一致,改一个字符串,但 rail 上就没有「待办」这个视角了。
- 让 reference rail 的 entry 支持 filter(upstream
objectui / console),再补 status neq completed,与 Related 标签页的列表口径对齐。
二、三个 entry 的 title 硬编码英文,且压过本地化对象标签
三个 entry 分别写死 title: 'Quotes' / 'Products' / 'Open Tasks'。渲染侧的取值顺序是(同一份 console 产物):
entry.title || (i18n.objectLabel ? i18n.objectLabel({ name: entry.objectName, label: humanize(entry.objectName) }) : humanize(entry.objectName))
即 title 存在就赢,本地化的对象标签根本不会被查。本仓 src/translations/zh-CN.ts 里这三个对象的标签是齐的(crm_quote 报价单 :460、crm_task 任务 :667、crm_opportunity_line_item 商机产品明细 :1134),中文界面下参考栏仍然显示 Quotes / Products / Open Tasks。删掉这三行 title 就会自动回落到本地化对象标签 —— 但那样英文界面上的措辞也会跟着变(Quote → Quote、Opportunity Line Item 之类),是否接受由维护者定。
这一条的边界要说清:我只测了参考栏的 title 这一处,没有做全页 i18n 审计,而且同页另外两类标签是有本地化通路的(已测量,不属于本条):record:path 的 stage 标签在挂了 i18n provider 时会用翻译后的 picklist 标签、schema 里的英文只是兜底;record:details 的分区标签走 sectionLabel(objectName, section.name, fallback) 按 name 查表。所以本条不是「这一页的标签都没翻译」,仅限 rail 的 title 覆盖。与 #682(console chrome 的平台侧 i18n 缺口,upstream:objectstack)相邻但不同:这里是本仓自己写的页面元数据。
#733 记的是同一个参考栏 Products 卡片显示原始记录 ID(crm_opportunity_line_item 未声明 nameField),是 entries 的第三种失真。已在 #733 下补了一条渲染侧的测量说明。本条与它可以一起修,但结论各自独立,故未作为 #733 的子问题。
验证方式
以上全部为静态测量:页面元数据 + 本仓实际安装的 console 产物字符串,未做浏览器验证。
重复检查
search_issues 在本仓 open issue 上查 reference rail(命中 #959 / #733 / #612 三张已知单)、"Open Tasks"(#959 / #549 / #733 / #734)、page label i18n 硬编码(#682)、tab section label translation pages(0 命中)—— 均无本条的既有单。若与他人同小时立单重复,烦请 PM race-close。
Refs #959 #733
来源:#959 / PR #967 实施过程的顺带发现。那一单只改三份 mdx 的
:151/:152,src/零改动,故单独记录。两条都落在同一处 ——src/pages/opportunity_detail.page.ts的 asiderecord:reference_rail那 8 行entries(:234-253),一次修完即可。行号为
origin/main=4705aed5。一、Open Tasks 卡片不按状态过滤
参考栏第三个 entry(
:247-252):objectNamecrm_task、relationshipFieldrelated_to_opportunity、titleOpen Tasks、limit 3 —— 没有任何 filter。同一页 Related 标签页里的关联列表
opp_tasks(:190-199)是有过滤的:filter: [{ field: 'status', op: 'neq', value: 'completed' }],limit 10。两者口径不一致。渲染侧也确实不接受 per-entry 过滤(对本仓实际装的
@objectstack/console@17.0.0-rc.3产物node_modules/@objectstack/console/dist/assets/plugins-views-*.js测量):rail 每个 entry 的查询是只带关联字段;entry 的形状(objectui
ReferenceRailEntry)也只有 objectName / relationshipField / title / icon / limit / displayField 六个键,没有 filter 位置。后果:卡片标题写着 Open Tasks,但徽章上的总数和列出的三条都把 Completed 的任务算进去 —— 它实际是「关联任务总数」。一个商机上历史任务攒得越多,这个数字越没有意义。
可选修法(不预判,交裁定):
Tasks:与实况一致,改一个字符串,但 rail 上就没有「待办」这个视角了。objectui/ console),再补status neq completed,与 Related 标签页的列表口径对齐。二、三个 entry 的 title 硬编码英文,且压过本地化对象标签
三个 entry 分别写死
title: 'Quotes' / 'Products' / 'Open Tasks'。渲染侧的取值顺序是(同一份 console 产物):即 title 存在就赢,本地化的对象标签根本不会被查。本仓
src/translations/zh-CN.ts里这三个对象的标签是齐的(crm_quote报价单:460、crm_task任务:667、crm_opportunity_line_item商机产品明细:1134),中文界面下参考栏仍然显示 Quotes / Products / Open Tasks。删掉这三行title就会自动回落到本地化对象标签 —— 但那样英文界面上的措辞也会跟着变(Quote → Quote、Opportunity Line Item 之类),是否接受由维护者定。这一条的边界要说清:我只测了参考栏的
title这一处,没有做全页 i18n 审计,而且同页另外两类标签是有本地化通路的(已测量,不属于本条):record:path的 stage 标签在挂了 i18n provider 时会用翻译后的 picklist 标签、schema 里的英文只是兜底;record:details的分区标签走sectionLabel(objectName, section.name, fallback)按name查表。所以本条不是「这一页的标签都没翻译」,仅限 rail 的 title 覆盖。与 #682(console chrome 的平台侧 i18n 缺口,upstream:objectstack)相邻但不同:这里是本仓自己写的页面元数据。与 #733 的关系
#733 记的是同一个参考栏 Products 卡片显示原始记录 ID(
crm_opportunity_line_item未声明 nameField),是 entries 的第三种失真。已在 #733 下补了一条渲染侧的测量说明。本条与它可以一起修,但结论各自独立,故未作为 #733 的子问题。验证方式
以上全部为静态测量:页面元数据 + 本仓实际安装的 console 产物字符串,未做浏览器验证。
重复检查
search_issues在本仓 open issue 上查reference rail(命中 #959 / #733 / #612 三张已知单)、"Open Tasks"(#959 / #549 / #733 / #734)、page label i18n 硬编码(#682)、tab section label translation pages(0 命中)—— 均无本条的既有单。若与他人同小时立单重复,烦请 PM race-close。Refs #959 #733