类型:填报问题 严重性:严重 状态:5.1.已关闭(复测通过)
| 问题描述 | 新建填报选择测试数据,填完信息之后保存数据类型会由"测试数据"变为"正式数据" |
|---|---|
| 一级模块 | 项目信息填报 |
| 二级模块 | / |
| 涉及类型 | 全部类型 |
| 是否阻断流程 | 是 |
| 处理人员 | 洪陈解 |
| 复测情况 | 复测通过 |
src/views/projectNew/components/baseInfo/components/baseInfo.vue<el-select v-model="form.isProd"><el-option label="正式数据" value="1"><el-option label="测试数据" value="0"></el-select>props: ['form', 'implVoList', 'readOnly', "type", "isShowBtn"] —— form 是父组件 projectDetail.vue 通过 prop 传入的同一对象引用,子组件内 v-model="form.isProd" 直接修改的就是父组件的字段init() 编辑模式下会执行 this.form = res.data(整体重新赋值),但该分支只在"编辑已有项目"(status !== 'add')时触发,与本条"新建填报"场景不符isProd 字段的校验规则仅做取值合法性校验(必须是'0'或'1'),未见任何强制赋值逻辑projectDetail.vue 第418-500行 saveOrUpdate() 直接整体提交 this.form,未见对 isProd 的单独处理NewNePjController.java 第93-97行:if (StrUtil.isEmpty(vo.getId()) && vo.getIsProd() == null) { vo.setIsProd("0"); } —— 该逻辑只在 isProd 为 null 时才会默认置为"0"(测试数据),且新建场景 id 为空也符合条件,方向与本缺陷描述的"变成正式数据(1)"相反ProjectImplAppService.java 第1132-1167行 addProject():project.setIsProd(proVo.getIsProd()) 为直接原样透传,未发现覆盖为"1"的逻辑isProd 从"0"(测试数据)显式改写为"1"(正式数据)的代码位置。前端 v-model 绑定、prop 传递、后端透传逻辑单独看都是符合预期的直传实现。addOrUpdatePro 请求的实际请求体中 isProd 字段取值,确认前端提交时是否已经是错误值(若提交时已是"1",说明问题在表单收集/校验环节,例如某个 resetFields() 或表单重置逻辑在提交前把该字段重置为默认值);isProd='0' 误标注为"正式数据"文案,而不是真实写库值有误)。