Row 78 · 互联网侧用户不应显示回退按钮;提交后按钮应隐藏防止重复提交 2.1.待开发
问题描述:用户在互联网侧不应该显示回退按钮,互联网侧用户没有回退权限;用户在互联网侧提交并网资料到第二个节点之后,"提交"按钮要隐藏,勾选点击批量提交时,现在会直接提交到领导审核,应该提示"序号为X的资料正在审核中,不可重复提交"。
旧代码涉及的项目文件名及对应行数
回退按钮部分——与 Row 71、Row 75 同一根因:gridInfoDetail.vue 第244-249行 allButtonShow 恒为 true。具体按钮在 xnybw5f/src/views/projectNew/components/baseInfo/components/batchInfo.vue:
- 第 501 行:"回退"按钮
v-if="!scope.row.folderFlag && allButtonShow && scope.row.informationFlow.taskDefKey !== '-1' ... && currentUserId.indexOf(storeCurrentUserId) !== -1"——只判断了"当前用户是不是当前处理人",完全没有判断当前用户是内网审核人员还是互联网侧提交用户,只要allButtonShow为真、当前节点处理人恰好是自己,回退按钮就会出现
重复提交部分:
- 第 501/502 行:"提交"按钮同样只用
allButtonShow+currentUserId匹配来控制,没有针对"已经提交过、当前处于审核中"这种状态做隐藏 - 第 3546 行起
batchSend(item)(批量提交函数):只校验了多选项的节点状态一致性(第3553-3570行)、专业一致性(第3574-3587行),没有校验被选中的资料是否已经处于"审核中"状态,导致已提交的资料被重复批量提交
修复代码涉及的项目文件名及行数
gridInfoDetail.vue 第244-249行(补齐 allButtonShow 派生逻辑,需要额外区分"内网审核角色"与"互联网侧提交角色",不只是 view/edit);batchInfo.vue 第501行、第3546行起 batchSend()
修复方案
- 回退按钮:在按钮的
v-if条件里增加"当前登录用户是否为互联网侧账号"的判断(通常后端会有角色/渠道标识,比如isInternetUser或类似字段),互联网侧一律不展示回退按钮,不要仅靠currentUserId匹配。 - 批量提交防重复:在
batchSend()校验环节增加一条:
// batchSend() 建议新增的校验(放在 hasDiffMajors 判断之后)
const alreadyInAudit = this.multipleSelection.filter(item =>
item.informationFlow && item.informationFlow.taskDefKey !== '-1' && item.flowStatus !== '待提交'
)
if (alreadyInAudit.length > 0) {
const nos = alreadyInAudit.map(i => i.serialNo || i.code).join('、')
this.$message.error(`序号为${nos}的资料正在审核中,不可重复提交`)
this.loading = false
return
}
(具体用哪个字段判断"审核中"状态,需要和后端确认 informationFlow 对象的字段含义,上面仅为示意写法。)