# Project Upload Page Light Redesign Frontend Implementation Plan > **For agentic workers:** REQUIRED: Use superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 将项目详情“上传数据”页调整为极简工作台布局,移除上传流水卡片,把“上传流水”作为右上角唯一主按钮,并保持现有上传弹窗与列表链路不变。 **Architecture:** 仅改 `UploadData.vue` 的模板结构、局部状态清理和样式表达,不改接口调用、不改业务判断、不改弹窗链路。先更新前端源码契约测试锁定目标布局,再做组件实现,最后补实施记录并完成回归验证。 **Tech Stack:** Vue 2, Element UI, SCSS, Node.js 源码契约测试 --- ## 文件结构与职责 **修改文件** - `ruoyi-ui/src/views/ccdiProject/components/detail/UploadData.vue` 移除上传卡片结构,把上传流水入口并入头部按钮组,清理仅服务于卡片展示的状态与方法,重写头部和表格工作区样式。 - `ruoyi-ui/tests/unit/upload-data-header-import-button.test.js` 将头部按钮顺序和主次样式的源码契约改为新布局目标。 - `ruoyi-ui/tests/unit/upload-data-disabled-cards.test.js` 将“卡片禁用”契约调整为“头部上传按钮禁用 + 卡片逻辑已清理”的新契约。 - `docs/reports/implementation/2026-03-25-project-upload-page-light-redesign-frontend-record.md` 记录本次前端实施内容、验证命令和结果。 **参考文件** - `docs/superpowers/specs/2026-03-25-project-upload-page-light-redesign-design.md` - `ruoyi-ui/tests/unit/upload-data-batch-upload.test.js` - `ruoyi-ui/tests/unit/upload-data-file-list-table.test.js` - `ruoyi-ui/tests/unit/project-upload-credit-entry-jump.test.js` ## Task 1: 先把源码契约改成目标布局 **Files:** - Modify: `ruoyi-ui/tests/unit/upload-data-header-import-button.test.js` - Modify: `ruoyi-ui/tests/unit/upload-data-disabled-cards.test.js` - Test: `ruoyi-ui/src/views/ccdiProject/components/detail/UploadData.vue` - [ ] **Step 1: 改写头部按钮顺序测试为新目标** 在 `ruoyi-ui/tests/unit/upload-data-header-import-button.test.js` 中,把原有“查看报告优先、保留上传卡片”的断言改为以下目标: ```javascript assert( /