证据面板的分析结论:结果表的格写列名,总数那一格的值按服务端的写法显示。①「这一处引用的是 结果表第 1 行『share』」原来写的是列 id,现在服务端在 cited 上另给 column_label(结果表记的 labels,如「占变化的比重」),目录条目也带上 labels,证据面板、读屏的出处、导出页、可验证报告都照列名写;② 输入里「总数那一格 … = 159175.18」和同一节的闭合核对「159,175.18」两个写法并排,现在服务端另给 value_rendered(render_cell,千分位、NULL 写「—」,和闭合核对同一个写法),三处界面照原样显示。结果表数的换算(比率、空格)不在这次改动里

This commit is contained in:
ThearchyHelios
2026-10-21 15:53:27 +00:00
parent b919890b7b
commit c54196326f
13 changed files with 171 additions and 44 deletions
+2 -1
View File
@@ -940,7 +940,8 @@ await section('样本页:各种形状', async () => {
&& shareDetail.includes('与按显示规则渲染的结果一致'), shareDetail.replace(/\s+/g, ' ').slice(0, 300))
const cell = page.locator('.doc p button.num').filter({ hasText: /^-120$/ })
const cellDetail = await cell.count() ? await detailText(page, cell.first()) : '找不到「-120」'
check('analysis:结果表的格:出处写分析结论 A1 的结果表 · 第 1 行 · delta', cellDetail.includes('分析结论 A1 的结果表 · 第 1 行 · delta'),
// 列写结果表记的列名(「变化」),不把列 id(delta)当叫法
check('analysis:结果表的格:出处写分析结论 A1 的结果表 · 第 1 行 · 变化', cellDetail.includes('分析结论 A1 的结果表 · 第 1 行 · 变化'),
cellDetail.replace(/\s+/g, ' ').slice(0, 300))
check('analysis:结果表整表引用:表头是给人看的列名,数字列右对齐', (await page.locator('.doc table th').allTextContents()).join('、') === '地区、基期、本期、变化'
&& await page.locator('.doc td.n button.num').count() === 12, (await page.locator('.doc table th').allTextContents()).join('、'))
+6 -2
View File
@@ -619,6 +619,9 @@ await section('analysis', '分析结论:判定语、具名的数、结果表
=== JSON.stringify(['headline_base', 'headline_target', 'data']))
check('……总数那一格和各段之和的闭合核对(服务端算好的数)', (await inputs.nth(0).innerText()).includes('总数 2,700 与各段之和 2,700 闭合')
&& await inputs.nth(0).locator('[data-ev-analysis-closure="closed"]').count() === 1)
// 那一格的值也由服务端渲染(千分位),和闭合核对里的数同一个写法:原来照原值写「2700」,同一节里 2,700 和 2700 并排
check('……那一格的值按服务端的写法显示(千分位,和闭合核对一致)', (await inputs.nth(0).innerText()).includes('第 1 行「gmv」 = 2,700')
&& !(await inputs.nth(0).innerText()).includes('= 2700'), await inputs.nth(0).innerText())
check('……数据:用到的列、全部行', (await inputs.nth(2).innerText()).includes('region、week、gmv') && (await inputs.nth(2).innerText()).includes('全部行'))
check('输入快照的查询步骤接在后面,写明是 A1 的输入', await p.locator('[data-ev-input-of="A1"]').count() === 2)
await inputs.nth(2).locator('[data-ev-goto-query="Q2"]').click()
@@ -634,9 +637,10 @@ await section('analysis', '分析结论:判定语、具名的数、结果表
&& await p.locator('[data-ev-analysis-value="top_share"][data-ev-cited]').count() === 1)
await box.locator('[data-seg="s7"]').click()
await p.locator('[data-ev-analysis-cited="cell"]').waitFor({ timeout: 8000 })
check('结果表的格(-300):引用的是结果表第 1 行「delta」,那一格高亮', (await p.locator('[data-ev-analysis-cited]').innerText()) === '结果表第 1 行「delta」'
// 列写结果表记的列名(「变化」),不把列 id(delta)当叫法
check('结果表的格(-300):引用的是结果表第 1 行「变化」,那一格高亮', (await p.locator('[data-ev-analysis-cited]').innerText()) === '结果表第 1 行「变化」'
&& await p.locator('[data-ev-analysis-table] td[data-highlight="cell"]').count() === 1)
check('……读屏写出处:分析结论 A1 · 结果表第 1 行「delta」', (await box.locator('[data-seg="s7"]').getAttribute('aria-label') ?? '').includes('分析结论 A1 · 结果表第 1 行「delta」'))
check('……读屏写出处:分析结论 A1 · 结果表第 1 行「变化」', (await box.locator('[data-seg="s7"]').getAttribute('aria-label') ?? '').includes('分析结论 A1 · 结果表第 1 行「变化」'))
check('片段接口按片段 id 取(s3、s9、s7)', ['seg:s3', 'seg:s9', 'seg:s7'].every((h) => hits.includes(h)), hits.join(','))
// 分析卡的结论:谁做的写分析卡(模板定好的分析);表格里引用结果表的格