① 基本信息
| 问题描述 | 计划并网信息并未审核,审核意见出现同意 |
|---|---|
| 一级模块 | 计划并网流程 |
| 二级模块 | 计划并网审核 |
| 涉及类型 | 全部类型 |
| 台账标注区域 | 五区 |
| 严重性 | 严重 |
| 当前状态 | 2.1.待开发 |
| 研发处理人 | 冷柏烨 |
| 处理状态 | 需求问题(研发已判定为需求/交互设计问题) |
② 问题截图
③ 旧代码涉及的项目文件及行数(backup730 分支)
xnybw5f / src/components/flow/nodeSend.vue
第 86 行(处理意见文本域,v-model="content")、第 111 行 与 第 153 行(content 默认值/重置值均为 '同意')
④ 代码现状与修复方案
流程"发送"弹窗(FlowNodeSendOrBack 组件,供编制→审核、审核→下一环节等各类"提交/发送"动作共用)的处理意见输入框,绑定的是组件内部变量 content:
<div class="select-title">审批意见</div>
<el-input :autosize="{ minRows: 5, maxRows: 7}" type="textarea" maxlength="200"
v-model="content" style="white-space: pre-wrap;word-break: break-all;"></el-input> // 第86行
而这个 content 变量的初始值和每次弹窗重新打开时的重置值,都被硬编码成了字符串 "同意":
data() {
return {
content: '同意', // 第111行:组件初始化默认值
...
}
},
watch: {
timestamp() {
// 每次打开重新初始化
this.approvalDept = []
this.content = '同意' // 第153行:每次弹窗重新打开也重置为"同意"
this.activeClick = ''
...
}
}
该弹窗组件是"编制→专业审核/总调审核"这类提交/转发动作和"审核通过/驳回"这类真正审批动作共用同一个组件。对于"审核通过"场景,默认带出"同意"两个字作为意见草稿本身是合理的便捷设计;但对于截图中"编制→总调审核"这种提交/发送动作(操作类型列显示"发送",而不是"审核"),编制人只是把资料转发给下一节点,并不是在做审批决策,此时如果用户没有手动清空或修改这个默认文本,就会把"同意"当作提交意见一起保存下来,被流程记录页面误读成"已经审核同意"。这也是研发把处理状态标注为"需求问题"的原因——本质是同一个组件在不同业务语义下复用了同一个默认文案,而非纯粹的编码错误。
建议修复方式:按照组件被调用的场景(是"提交/发送"还是"真正审批")区分默认文案,"提交/发送"场景默认置空,仅在"审核"场景下默认带出"同意":
data() { return { content: '同意', props: { // 由父组件传入,标识本次弹窗是"提交/发送"还是"审核" actionType: { type: String, default: 'send' } // 'send' | 'audit' }, data() { return { content: this.actionType === 'audit' ? '同意' : '', ... } }, watch: { timestamp() { this.approvalDept = [] this.content = '同意' this.content = this.actionType === 'audit' ? '同意' : '' ... } }
同时建议在"流程信息"记录列表页面,对"操作类型=发送"的记录不展示/弱化展示"处理意见"列,从展示层面进一步避免"提交转发"和"审核同意"混淆。