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

Row 77 · 批次信息的所有预计并网时间必须在场站开工建设时间之后 2.1.待开发

一级模块项目信息填报 / 并网资料信息
涉及类型全部类型
状态2.1.待开发

问题描述:项目信息填报页面,批次信息的所有预计并网时间必须在场站开工建设时间之后。

旧代码涉及的项目文件名及对应行数

xnybw5f/src/views/projectNew/components/baseInfo/js/validateProjectDetail.js(第111-244行区间为代表性的一段,全文件还有369、587、794行起的三处几乎相同逻辑,对应不同项目类型分支):

全文件检索 projectStartTime(场站开工建设时间)在本文件中只出现在"非空校验"(如111、374、592、799行 if (!item.projectStartTime)),没有任何地方把 batchPredictFirstTime/batchPredictAllTime/testRunFirstTime 等批次时间字段与 projectStartTime 做大小比较——这正是问题描述"所有预计并网时间必须在场站开工建设时间之后"缺失的校验。

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

xnybw5f/src/views/projectNew/components/baseInfo/js/validateProjectDetail.js 第197行、第220行附近(以及369/587/794行起的另外三处同构代码)

修复方案

// 建议在 batchPredictFirstTime 校验通过后,增加与 projectStartTime 的比较
if (!information.batchPredictFirstTime) {
  message.error('请输入本批次预计首台机组接入电网时间')
  return false
} else if (item.projectStartTime && new Date(information.batchPredictFirstTime) < new Date(item.projectStartTime)) {
  message.error('本批次预计首台机组接入电网时间不能早于场站开工建设时间')
  return false
}

// batchPredictAllTime、testRunFirstTime 等其余批次时间字段同理,
// 建议统一提取一个小工具函数,避免在 4 处几乎相同的代码里各自维护一份校验逻辑:
function checkAfterProjectStart(fieldValue, projectStartTime, fieldLabel) {
  if (projectStartTime && fieldValue && new Date(fieldValue) < new Date(projectStartTime)) {
    message.error(`${fieldLabel}不能早于场站开工建设时间`)
    return false
  }
  return true
}

注意本文件里这段校验逻辑因为不同项目类型(集中式/新型储能/生物质等)各复制了一份(111/369/587/794 起),建议这次顺带把四处都补上,避免只修一个分支导致其他类型漏改。