yeg
2026-09-02 b665a0c63974f736a81879cf5ee3599d908af67e
修正数据修订字段变化摘要

批量编辑记录真实修改前后的字段值,修订详情可展示字段变化。
1个文件已添加
1个文件已修改
11 ■■■■■ 已修改文件
src/components/ConsoleDataListPanel.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tests/test-data-revision-summary.contract.test.mjs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/ConsoleDataListPanel.vue
@@ -254,7 +254,7 @@
    const editItems = changed.flatMap(row => {
      const ids = [row.id]
      return ids.map(id => {
        const before = row
        const before = originals.get(id)!
        const after = { ...before, ...Object.fromEntries(fieldOptions.value.map(item => [item.value, row[item.value as keyof DataRow]])) }
        return { identity: id, before, after, override: { stableIdentity: id, fieldValues: JSON.stringify(Object.fromEntries(fieldOptions.value.map(item => [item.value, row[item.value as keyof DataRow]]))), deleted: false } }
      })
tests/test-data-revision-summary.contract.test.mjs
New file
@@ -0,0 +1,9 @@
import assert from 'node:assert/strict'
import { readFile } from 'node:fs/promises'
const dataList = await readFile(new URL('../src/components/ConsoleDataListPanel.vue', import.meta.url), 'utf8')
assert.match(dataList, /const before = originals\.get\(id\)/)
assert.doesNotMatch(dataList, /const before = row\s*\n\s*const after = \{ \.\.\.before/)
console.log('数据修订字段变化摘要契约通过')