

云尚办公系统前端审批端 测试的时候点击提交就报这个错,后来在这里做了非空校验之后,如果user为空的话我就让他用getAssignee()这个原用户名,这样虽然能解决问题,但是后续我打开待处理审批列表中没有数据显示,正常应该是显示张三审批的


云尚办公系统前端审批端 测试的时候点击提交就报这个错,后来在这里做了非空校验之后,如果user为空的话我就让他用getAssignee()这个原用户名,这样虽然能解决问题,但是后续我打开待处理审批列表中没有数据显示,正常应该是显示张三审批的
下午好🌅🌅🌅
本答案参考通义千问
你提到的问题是关于云尚办公系统前端审批端在测试时点击提交报错,虽然通过非空校验和使用 getAssignee() 方法解决了提交问题,但后续打开待处理审批列表时没有数据显示,而正常应显示“张三”审批的内容。
错误原因:
user 为空导致程序出错。getAssignee() 获取原用户名,避免了空值错误,但可能影响了审批数据的存储或查询逻辑。数据不显示的原因:
user 字段未正确赋值,导致后端无法查询到该用户的审批记录。assignee、user 等)。user、assignee)必须在提交审批时正确写入数据库或接口参数中。// 提交审批前的逻辑
const user = this.user || this.getAssignee(); // 如果 user 为空,用 getAssignee() 获取
if (!user) {
alert("请先获取分配人!");
return;
}
// 提交审批请求
this.$axios.post('/api/approval/submit', {
userId: user.id, // 确保传递正确的用户 ID
assignee: user.name, // 传递分配人姓名
// 其他字段...
}).then(response => {
console.log('提交成功');
}).catch(error => {
console.error('提交失败:', error);
});
加粗重点:
- 确保
userId和assignee字段都正确传递给后端。- 若只传了
assignee而没传userId,可能导致后端无法关联用户数据。
userId 返回了对应的审批记录?// 待处理审批列表请求
this.$axios.get('/api/approval/pending', {
params: {
userId: this.userId // 确保传递当前用户的 ID
}
}).then(response => {
this.approvals = response.data; // 显示审批列表
}).catch(error => {
console.error('获取审批列表失败:', error);
});
加粗重点:
- 确保
userId参数正确传递,否则后端可能返回空数据。
userId 和 assignee 正确保存到数据库中?@PostMapping("/submit")
public ResponseEntity<?> submitApproval(@RequestBody ApprovalDTO dto) {
Approval approval = new Approval();
approval.setUserId(dto.getUserId()); // 存储用户ID
approval.setAssignee(dto.getAssignee()); // 存储分配人名称
approvalService.save(approval);
return ResponseEntity.ok("提交成功");
}
加粗重点:
- 确保
userId和assignee都被正确保存,否则前端无法查询到相关记录。
<template>
<div>
<ul>
<li v-for="approval in approvals" :key="approval.id">
{{ approval.assignee }} 审批了 {{ approval.title }}
</li>
</ul>
</div>
</template>
加粗重点:
- 确保
approvals数据正确绑定到视图,且字段名与后端返回一致(如assignee、title)。
| 问题 | 解决方案 |
|------|----------|
| 提交审批时报错 | 使用 getAssignee() 作为默认值,并确保传递 userId 和 assignee |
| 待处理审批列表无数据 | 检查接口参数是否正确传递 userId,确保后端返回对应数据 |
| 数据未正确显示 | 检查前端模板是否正确绑定数据字段 |
如果你愿意提供具体的代码片段(如提交审批的函数、获取审批列表的函数等),我可以进一步帮你定位问题所在。