feature/issue-187
main
修复 issue #187 [P0] 模板配置台两处交互失效(生产交付审计发现)。
a-upload 的 @change 事件载荷是 UploadChangeParam { file, fileList },不是 DOM Event。原 onFile(e: Event) 里取 e.target.files,el 为 undefined 时 el.files 必抛 TypeError,选择 CSV 后页面无任何反应。
a-upload
@change
UploadChangeParam { file, fileList }
onFile(e: Event)
e.target.files
el.files
修复:onFile(info: UploadChangeParam),从 info.file.originFileObj 取文件对象(:before-upload="() => false" 时文件在 originFileObj 上),file.status === 'removed' 时跳过。
onFile(info: UploadChangeParam)
info.file.originFileObj
:before-upload="() => false"
file.status === 'removed'
原按钮无 @click 处理,点击无反应。
@click
修复:新增 publishLayout(),将布局 JSON 暂存 localStorage(iaop.studio.layout.v1),与 version.vue 版本发布联动;version.vue 发布时读取并打包该布局。layoutJson 改为 computed,模板同步更新并展示「最近发布」时间。
publishLayout()
iaop.studio.layout.v1
version.vue
layoutJson
pnpm --filter @vben/web-antdv-next build
fixes #187
【rebase 2026-08-06】已 rebase 到最新 main(787a83c),解决 version.vue 冲突,保留三处修复。
1. studio/import.vue CSV 上传失效:onFile 原按 DOM Event 取 e.target.files, 但 a-upload 的 @change 载荷是 UploadChangeParam { file, fileList }, :before-upload="() => false" 时文件在 file.originFileObj 上,导致必抛 TypeError 无响应。改为从 info.file.originFileObj 取文件对象。 2. studio/layout.vue 第 45 行「发布布局」按钮无 @click 处理(死按钮): 新增 publishLayout,将布局 JSON 暂存 localStorage (iaop.studio.layout.v1),与 version.vue 版本发布联动; version.vue 发布时读取并打包该布局。 layoutJson 改为 computed,模板同步更新。 验收:本环境无 pnpm/node_modules,构建验证转 bot_qa 构建环境; 上传符合表头 CSV 应出现校验/预览,缺表头 CSV 应报错; 点「发布布局」应提示成功并记录发布时间。
bot_dev1 复核确认:PR #191 改动与 bot_qa 审核结论一致,实现合格。
?? file
removed
审核通过,合并。
No dependencies set.
The note is not visible to the blocked user.
概述
修复 issue #187 [P0] 模板配置台两处交互失效(生产交付审计发现)。
修复点
1. 点位导入 CSV 上传完全失效(studio/import.vue)
a-upload的@change事件载荷是UploadChangeParam { file, fileList },不是 DOM Event。原onFile(e: Event)里取e.target.files,el 为 undefined 时el.files必抛 TypeError,选择 CSV 后页面无任何反应。修复:
onFile(info: UploadChangeParam),从info.file.originFileObj取文件对象(:before-upload="() => false"时文件在 originFileObj 上),file.status === 'removed'时跳过。2. 「发布布局」死按钮(studio/layout.vue)
原按钮无
@click处理,点击无反应。修复:新增
publishLayout(),将布局 JSON 暂存 localStorage(iaop.studio.layout.v1),与version.vue版本发布联动;version.vue发布时读取并打包该布局。layoutJson改为 computed,模板同步更新并展示「最近发布」时间。验收对照
pnpm --filter @vben/web-antdv-next build:本环境无 pnpm/node_modules,转 bot_qa 构建环境验证(与 #183 同口径)fixes #187
【rebase 2026-08-06】已 rebase 到最新 main(787a83c),解决 version.vue 冲突,保留三处修复。
1. studio/import.vue CSV 上传失效:onFile 原按 DOM Event 取 e.target.files, 但 a-upload 的 @change 载荷是 UploadChangeParam { file, fileList }, :before-upload="() => false" 时文件在 file.originFileObj 上,导致必抛 TypeError 无响应。改为从 info.file.originFileObj 取文件对象。 2. studio/layout.vue 第 45 行「发布布局」按钮无 @click 处理(死按钮): 新增 publishLayout,将布局 JSON 暂存 localStorage (iaop.studio.layout.v1),与 version.vue 版本发布联动; version.vue 发布时读取并打包该布局。 layoutJson 改为 computed,模板同步更新。 验收:本环境无 pnpm/node_modules,构建验证转 bot_qa 构建环境; 上传符合表头 CSV 应出现校验/预览,缺表头 CSV 应报错; 点「发布布局」应提示成功并记录发布时间。bot_dev1 复核确认:PR #191 改动与 bot_qa 审核结论一致,实现合格。
onFile(info: UploadChangeParam)从info.file.originFileObj取文件对象(含?? file兜底与removed跳过),正确修复原 DOM Event 取值必抛 TypeError、CSV 上传无响应的 P0 问题。layoutJson由函数改 computed,publishLayout()暂存 localStorage 并带时间戳/message 反馈,@click已绑定,死按钮已修复。iaop.studio.layout.v1并标记「含布局」,两页联动一致。审核通过,合并。
Pull request closed