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

生物质场站“县区”标星必填,但不填写也可以保存

Excel 第 26 行 · 新能源并网五区(xnybw5)
严重性:严重 状态:5.1.已关闭(复测通过)

1基本信息

问题描述生物质在建场站,县区标星号必填,但是不填写也可以进行保存
一级模块项目信息填报
二级模块项目基本信息
涉及类型生物质
严重性严重
当前状态5.1.已关闭
研发处理人员陈键泽
复测情况复测通过

2问题截图

生物质场站表单,场站状态为待建,县区带红色星号但为空
图1:生物质场站“场站状态”选中“待建”,“县区”字段带红色必填星号,但输入框为空

3旧代码涉及的项目文件名及对应行数(backup730 / 730backup)

前端:xnybw5f / src/views/projectNew/components/baseInfo/components/stationInfoSWZ.vue(第 43 行模板、第 210 行 rules 初始值、第 262-267 行 rulesList 条目、第 292-298 行 proStatus 计算属性、第 327-345 行 formRows 生成逻辑)
“县区”字段的必填校验最终由一个只在场站状态等于特定值(“4”)时才生效的计算属性控制,而非按 rulesList 里为该字段单独标注的 proStatus: "1" 语义生效。

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

5修复方案

根因分析:该表单的必填规则不是逐字段手写死的,而是由 rulesList 数组统一生成:数组里“县区”这一项写的是 { label: "县区", prop: "counties", proStatus: "1" },本意应该是“当场站状态命中某个特定阶段(proStatus 标记为 1 的这一类)时才要求必填”。但在真正生成校验规则的 formRows() 里,用的却是:

修改前(stationInfoSWZ.vue 第 292-298 行 + 第 337 行)
computed: {
  proStatus() {
    if (this.item.proStatus && this.item.proStatus == "4") {
      return true;
    } else {
      return false;
    }
  },
},
...
// formRows() 内:
required: item.proStatus ? this.proStatus : true,

这里的 this.proStatus 是一个只认“场站状态是否等于字符串 4”的计算属性,与 rulesList 里每一项自己标注的 proStatus: "1" 值完全没有关联——只要 item.proStatus 存在(真值),最终是否必填就统一交给这个只看“是否等于 4”的开关决定,而不是按每个字段自己声明的阶段来判断。“待建”“在建”等状态下这个开关恒为 false,于是“县区”“本项目场站设计容量”“产权单位”“场站站长姓名/电话”等一整批标了 proStatus:"1" 的字段,在“已投产”之外的所有状态下都不会被真正校验,只是模板里 required 静态属性画出的星号还在,才出现“标星但不校验”的现象。

修改后(建议)
formRows(list) {
  for (let i = 0; i < list.length; i++) {
    const item = list[i];
    ...
    const arr = [
      {
        // 按该字段自身声明的 proStatus 阶段判断,而不是恒定看 this.proStatus(=="4")
        required: item.proStatus ? this.item.proStatus === item.proStatus : true,
        message: message,
        trigger: item.trigger ? item.trigger : trigger,
      },
    ];
    this.$set(this.rules, item.prop, arr);
  }
}
同样的 rules: {} + proStatus() { ... == "4" } + formRows() 组合在 stationInfoXXCN.vue(新型储能场站信息,对应 Excel 第 31 行“本项目场站设计容量没有进行校验”)中一字不差地重复出现,属于同一处代码被复制到多个场站类型组件后共同携带的系统性问题,建议两处一并修复并补充单元/交互测试,避免后续新增场站类型时再次复制出同样的缺陷。