| 问题描述 | 新型储能项目基本信息:投资主体性质、能量标明必填,但是点击保存的时候没有校验可以正常保存。 |
| 所属模块 | 项目信息填报 / 项目基本信息 |
| 严重程度 | 严重(阻断流程:是) |
| 涉及类型 | 新型储能 |
| 提出人 | 刘向诚 |
| 处理人 / 状态 | 陈键泽 / 5.1.已关闭(复测通过) |

src/views/projectNew/components/baseInfo/components/baseInfoXXCN.vue 第 56-92 行:
<el-form-item required label="投资主体性质" prop="tzztxz"> <!-- 第56行:有 prop -->
<el-select v-model="form.tzztxz" clearable :disabled="readOnly">
<el-option label="国有资本" value="国有资本"></el-option>
<el-option label="民营资本" value="民营资本"></el-option>
</el-select>
</el-form-item>
<el-form-item :required="proStatus" label="项目核准/备案容量" class="blue-check">
<el-input v-model="form.capacity" ... ></el-input>
</el-form-item>
<el-form-item required label="能量" class="blue-check"> <!-- 第76行:required 但没有 prop! -->
<el-input
v-model="form.powerCapacity"
clearable
:disabled="readOnly"
maxlength="10"
@input="form.powerCapacity = handlePositiveNumberInput($event)"
>
<template slot="append">MWh</template>
</el-input>
</el-form-item>
而 rulesList(第373-411行,用于生成 this.rules 供 el-form 校验)中:
rulesList: [
{ type: "input", label: "项目名称", prop: "planName" },
{ type: "input", label: "项目批文或备案号", prop: "recordsNumber", proStatus: "1" },
{ type: "input", label: "项目批文或备案名称", prop: "recordsName", proStatus: "1" },
{ type: "input", label: "所属集团", prop: "bloc" },
{ type: "select", label: "投资主体性质", prop: "tzztxz" }, // 有登记,能正常校验
{ type: "input", label: "项目核准/备案容量", prop: "capacity", proStatus: "1" },
{ type: "select", label: "调度命名", prop: "implVoList" },
// 没有 powerCapacity(能量)!
],
el-form-item 的 prop 属性为键,从 el-form 的 rules 对象中查找对应校验规则,二者必须同时具备才能生效。
prop="tzztxz",rulesList 里也登记了 tzztxz,因此点击保存时能够正确弹出"请选择投资主体性质"的校验提示(该字段实际上校验是生效的)。form.powerCapacity):第76行 el-form-item 上只写了视觉层面的 required(单纯渲染一个红色星号 *),没有加 prop="powerCapacity";rulesList 里也完全没有 powerCapacity 这一项。两处都缺失,导致 this.$refs.form.validate() 校验时根本不会去检查这个字段——无论用户填不填,保存请求都会正常发出,与截图/描述中"标明必填但保存时没有校验"完全吻合。修复文件:src/views/projectNew/components/baseInfo/components/baseInfoXXCN.vue
<el-form-item required label="能量" prop="powerCapacity" class="blue-check">
<el-input v-model="form.powerCapacity" ... >
<template slot="append">MWh</template>
</el-input>
</el-form-item>
{
type: "input",
label: "能量",
prop: "powerCapacity",
},