生成时间: 2026-08-02 · 数据来源: xnybw平台需求及工作计划.xlsx(南网在线绿能云缺陷跟踪表)· 仅针对 backup730/730backup 分支代码

① 基本信息

问题描述筛选阶段后,上传资料,页面刷新出全部阶段目录
一级模块并网资料信息
二级模块并网资料信息
涉及类型全部类型
严重性一般
当前状态2.1.待开发
研发处理人周小龙

② 问题截图

并网资料信息-阶段筛选与上传附件列表
并网资料信息页面:顶部"阶段"下拉已选中"(一) 并网前期业务",右侧列表逐条展示对应目录,其中一条已"上传附件"

③ 旧代码涉及的项目文件及行数(backup730 分支)

xnybw5f / src/views/projectNew/components/projectDataInfo/component/batchInfo.vue 第 3655 - 3672 行(refreshInformationFlow 方法);筛选表单定义在第 1493-1524 行

页面顶部的"阶段/专业/资料维度/状态/关键字"筛选条件统一收在 this.searchForm 里(第 1495 行 v-model="searchForm.stageNameList" 等)。查询按钮触发 searchFormFun,会完整地把 this.searchForm 传给后端。但上传附件成功后走的是另一个刷新方法 refreshInformationFlow

async refreshInformationFlow(plantId, plantPkId) {
  ...
  const param = {
    planId: this.planId
  }
  if (this.searchForm.majorList && this.searchForm.majorList.length > 0) {
    param.majorList = this.searchForm.majorList
  }
  // 只把"专业"筛选带回去,阶段(stageNameList)/资料维度(menuFileFlag)/
  // 状态(currentTask)/关键字(keyword) 全部丢失,param 里没有任何相关字段
  await this.fetchElectricConditionDetail()
  const batchInfoRes = await approvalApi.getBatchInfo(param)   // 第3668行:等价于清空阶段筛选后的全量查询
  ...
}
对照:第 3748-3764 行 uploadFileByImpl 上传成功回调里调用的正是 this.refreshInformationFlow()(不传任何筛选参数),所以每次上传附件后台都会用"只带 planId(和可能的专业)"的裸参数重新拉取该场站下全部阶段的资料目录,用户之前选定的"阶段"筛选条件在界面上视觉仍显示已选中,但列表数据已经变成了未过滤的全量数据——即缺陷描述的"刷新出全部阶段目录"。

④ 修复代码涉及的项目文件及行数

xnybw5f / src/views/projectNew/components/projectDataInfo/component/batchInfo.vue 第 3659 - 3667 行(refreshInformationFlow 的 param 构建部分)
const param = {
  planId: this.planId
}
- if (this.searchForm.majorList && this.searchForm.majorList.length > 0) {
-   param.majorList = this.searchForm.majorList
- }
+ // 与 searchFormFun 保持一致,刷新时完整带回当前生效的筛选条件
+ if (this.searchForm.stageNameList && this.searchForm.stageNameList.length > 0) {
+   param.stageNameList = this.searchForm.stageNameList
+ }
+ if (this.searchForm.majorList && this.searchForm.majorList.length > 0) {
+   param.majorList = this.searchForm.majorList
+ }
+ if (this.searchForm.menuFileFlag && this.searchForm.menuFileFlag.length > 0) {
+   param.menuFileFlag = this.searchForm.menuFileFlag
+ }
+ if (this.searchForm.currentTask && this.searchForm.currentTask.length > 0) {
+   param.currentTask = this.searchForm.currentTask
+ }
+ if (this.searchForm.keyword) {
+   param.keyword = this.searchForm.keyword
+ }

⑤ 修复方案

问题的本质是"上传成功后的刷新路径"(refreshInformationFlow)与"点击查询按钮的路径"(searchFormFun)各自独立拼装请求参数,前者遗漏了阶段等四个筛选字段,导致同一份 searchForm 在两条路径上表现不一致。

推荐按上文 diff,将 refreshInformationFlow 里的参数拼装逻辑补齐为与 searchFormFun 相同的字段集合(阶段、专业、资料维度、状态、关键字),保证"上传附件 → 刷新列表"后,界面上已选中的筛选条件与实际展示的数据行为一致。更彻底的方式是抽取一个公共的 buildSearchParam() 方法供 searchFormFunrefreshInformationFlow 共用,避免未来新增筛选字段时再次出现同类遗漏。

该缺陷当前状态为"2.1.待开发",尚未有研发对应提交记录,以上定位与修改建议基于 backup730 现状代码直接给出,可作为周小龙后续开发的起点。