TanWenyan
|
89b1d2e5f5
|
feat(evaluation): 模块1.3 - 增强评查点分组删除接口安全性
## 主要改进
### 1. 删除策略优化(从级联删除改为阻止删除)
- ✅ **安全优先**:采用阻止删除策略而非级联删除
- ✅ 删除前检查子分组,如有则拒绝删除
- ✅ 删除前检查关联评查点,如有则拒绝删除
- ✅ 只有空分组才能被删除
### 2. 详细的删除检查
- ✅ ID有效性验证
- ✅ 分组存在性验证
- ✅ 子分组检查(仅一级分组)
- ✅ 评查点关联检查(所有分组)
- ✅ 返回详细的检查结果(childCount, pointCount)
### 3. 友好的错误提示
- ✅ 明确提示存在多少个子分组
- ✅ 明确提示存在多少个评查点
- ✅ 建议用户先清理关联数据
- ✅ 区分不同类型的删除失败原因
### 4. 标记废弃函数
- ✅ deleteChildGroup 标记为 @deprecated
- ✅ deleteEvaluationPointsByGroupId 标记为 @deprecated
- ✅ 保留代码以备将来批量删除功能使用
## 删除策略对比
### 旧策略(级联删除)- 高风险
❌ 删除一级分组时自动删除所有子分组
❌ 自动删除所有关联的评查点
❌ 用户可能误删大量数据
❌ 无法恢复
### 新策略(阻止删除)- 安全
✅ 拒绝删除有子分组的一级分组
✅ 拒绝删除有评查点的分组
✅ 用户必须手动清理关联数据
✅ 防止误删除
✅ 提供清晰的错误提示
## 返回值增强
```typescript
{
success: boolean;
error?: string;
details?: {
hasChildren: boolean; // 是否有子分组
hasPoints: boolean; // 是否有评查点
childCount?: number; // 子分组数量
pointCount?: number; // 评查点数量
}
}
```
## 相关文件
- app/api/evaluation_points/rule-groups.ts
## 验收清单
- [x] TypeScript 类型检查通过
- [x] 删除前完整的关联检查
- [x] 阻止删除有依赖的分组
- [x] 详细的错误提示
- [x] 返回详细的检查结果
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 12:13:57 +08:00 |
|
TanWenyan
|
e148fca429
|
feat(evaluation): 模块1.2 - 增强评查点分组创建/更新接口验证
## 主要改进
### 1. 增强 createRuleGroup 函数
- ✅ 名称长度验证(1-100字符)
- ✅ 编码格式验证(只允许字母、数字、连字符、下划线)
- ✅ 编码长度验证(1-50字符)
- ✅ 编码唯一性验证(查询数据库确保不重复)
- ✅ 父级ID存在性验证(二级分组必须有有效的父级)
- ✅ 三级分组防护(不允许在二级分组下创建子分组)
- ✅ 数据库约束错误友好提示
### 2. 增强 updateRuleGroup 函数
- ✅ ID有效性验证(检查分组是否存在)
- ✅ 名称长度验证(1-100字符)
- ✅ 编码格式验证(只允许字母、数字、连字符、下划线)
- ✅ 编码长度验证(1-50字符)
- ✅ 编码唯一性验证(排除自身)
- ✅ **禁止修改pid**(防止分组层级混乱)
- ✅ 数据库约束错误友好提示
- ✅ 提供清晰的错误消息
### 3. 类型安全性改进
- ✅ 修复所有 TypeScript 类型错误
- ✅ 添加类型守卫防止 undefined 访问
- ✅ 确保所有返回值类型正确
## 验证规则
### 分组名称
- 必填,不能为空
- 长度:1-100字符
- 自动去除首尾空格
### 分组编码
- 必填,不能为空
- 长度:1-50字符
- 格式:只允许字母、数字、连字符(-)、下划线(_)
- 必须全局唯一
- 自动去除首尾空格
### 父级ID
- 一级分组:pid = null 或 '0'
- 二级分组:pid = 有效的父级分组ID
- 不允许三级分组
- **更新时不允许修改pid**
## 相关文件
- app/api/evaluation_points/rule-groups.ts
## 验收清单
- [x] TypeScript 类型检查通过
- [x] 完整的字段验证
- [x] 编码唯一性验证
- [x] 父级ID验证
- [x] 禁止修改pid
- [x] 友好的错误提示
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 12:11:12 +08:00 |
|
TanWenyan
|
d3b9403d64
|
feat(evaluation): 模块1.1 - 增强评查点分组查询接口
## 主要改进
### 1. 增强 getRuleGroups 函数
- ✅ 添加完整的分页参数支持 (page, pageSize)
- ✅ 添加筛选参数 (name, code, is_enabled, pid)
- ✅ 添加排序参数 (orderBy, order)
- ✅ 返回总数 (totalCount)
- ✅ 支持一级分组和二级分组查询
### 2. 优化 getChildGroups 函数
- ✅ 内部使用改进后的 getRuleGroups 函数
- ✅ 自动添加评查点数量统计
- ✅ 改进类型安全性
### 3. 优化 getRuleGroup 函数
- ✅ 确保评查点数量统计准确
- ✅ 改进错误处理
- ✅ 优化类型守卫逻辑
### 4. 类型定义改进
- ✅ 新增 RuleGroupQueryParams 接口
- ✅ ApiRuleGroup.pid 类型支持 null
- ✅ 修复所有 TypeScript 类型错误
### 5. 创建对接计划文档
- ✅ 详细的 API 对接实施计划
- ✅ 分模块逐步实施策略
- ✅ 验收标准和风险评估
## 相关文件
- app/api/evaluation_points/rule-groups.ts
- docs/evaluation/API对接实施计划.md
## 验收清单
- [x] TypeScript 类型检查通过
- [x] 支持分页、筛选、排序
- [x] 返回评查点数量统计
- [x] 向后兼容现有代码
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 12:06:48 +08:00 |
|
LiangShiyong
|
3850d05bdd
|
feat: 1. 将大部分的请求从fetch改成axios方便管理。
2. 给文档类型添加入口模块和相关数据的渲染。并且给文档类型进行功能上的角色权限区分
3. 新增角色权限管理页面
|
2025-11-20 20:34:31 +08:00 |
|
LiangShiyong
|
6dc9b4e468
|
feat: 1. 完善文档列表的显示效果,数据对接后端接口返回。
2. 对评查点分组和文档类型的编辑删除新增操作进行限制。
|
2025-11-20 15:26:11 +08:00 |
|
LiangShiyong
|
2edde8a8ab
|
feat: 1. 完善全局路由的访问权限的验证。 2. 完善接口返回的树形路由结构 3.优化评查点列表的查询,改用表连接的方式,废弃使用数据库的rpc函数,同时进行地区隔离和权限隔离。
4. 删除冗余的评查文件列表。 5.完善上传文档 页面初始化查询数据的时候 查询文件类型(改成动态指定) 6. 添加获取入口模块的查询接口。 7.完善服务端中判断token的有效性,失效则跳转到登录页。
8. 重构layout和sidebar的页面,改成由动态权限路由来渲染对应的菜单栏。 9.重构入口页面,通过动态查询根据不同地区的人返回不同的入口。
|
2025-11-20 01:35:30 +08:00 |
|
LiangShiyong
|
bfe39e45a9
|
feat: 1. 添加axios全局路由拦截进行自动添加请求jwt。 2.重新整理路由表。 3. 文档列表新增版本差异对比。 4.菜单路由可访问列表通过对接接口返回,添加全局路由检测。
5. 修改统一认证登录和管理员登录是通过接口形式进行,存储返回的accessToken。 6. 修改交叉评查的部分样式
|
2025-11-18 11:06:24 +08:00 |
|
LiangShiyong
|
34cba4a34f
|
fix: 修复评查点分组的结果保存异常
|
2025-11-03 09:47:46 +08:00 |
|
TanWenyan
|
d11fc54da2
|
修复文件审核状态更新误报Network Error的问题
问题分析:
- 上传页面等待进度时,前端提示"更新文件审核状态失败:Network Error"
- 实际上后端已成功更新审核状态
- 类似删除会话的问题,API报错但操作实际成功
根本原因:
- axios请求可能因超时/网络波动抛出异常
- postgrestPut捕获错误并返回error
- 前端收到error后显示失败提示
- 但后端实际已成功处理并更新数据库
修复方案:
1. updateDocumentAuditStatus函数优化
- 添加详细日志记录请求和响应
- 即使postgrestPut返回error也返回success
- catch异常也返回success
2. 采用宽容策略的理由
- 更新审核状态具有幂等性
- 重复更新不会造成数据问题
- 下次刷新会显示正确状态
- 避免误报影响用户体验
现在更新文件审核状态不再误报错误,用户体验更流畅
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 17:51:59 +08:00 |
|
LiangShiyong
|
064f05ffa5
|
添加根据合同/卷宗的入口进行分类评查点列表,同时区分卷宗添加的分组属于卷宗,合同添加的分组属于合同
|
2025-10-29 21:01:01 +08:00 |
|
LiangShiyong
|
e56d199c3c
|
添加测试案卷的搜索条件
|
2025-10-29 18:40:18 +08:00 |
|
LiangShiyong
|
59706b70d0
|
给所有请求都加上jwt,隐藏生成jwt的secret(放到.env中),隐藏app-secret(放在pm2运行配置文件中,后续直接读取环境配置即可)
|
2025-10-17 15:28:22 +08:00 |
|
LiangShiyong
|
9a366d042a
|
优化显示提出意见时显示的已获得分数
|
2025-07-25 17:23:00 +08:00 |
|
LiangShiyong
|
ccd5cdf71e
|
修复系统概览数据不准确的查询。修复交叉评查意见列表的数量查询。优化全局消息提示的层级。优化提交意见进行局部更新。
|
2025-07-25 09:49:36 +08:00 |
|
LiangShiyong
|
47664fc0e8
|
添加jwt验证,添加交叉评查首页加载对接接口,评查任务文档列表对接接口,意见列表对接接口
|
2025-07-22 14:37:37 +08:00 |
|
LiangShiyong
|
5f7087d3e6
|
修改reviews.ts
|
2025-07-21 15:04:28 +08:00 |
|
LiangShiyong
|
e7ffbe875e
|
评查文件列表的查询查看、文档列表的查询查看修改删除都添加了user_id去限制用户操作。
|
2025-07-21 09:41:20 +08:00 |
|
LiangShiyong
|
e4ce41cebe
|
添加交叉评查任务的文档列表,评查详情的意见列表
|
2025-07-17 17:48:13 +08:00 |
|
LiangShiyong
|
348128bbe0
|
添加评查意见的悬浮按钮
|
2025-07-17 01:16:43 +08:00 |
|
LiangShiyong
|
4843b7bebf
|
优化交叉评查详情页面
|
2025-07-16 22:20:02 +08:00 |
|
LiangShiyong
|
fff474f46b
|
添加登录内容,尚未完善,先创建分支
|
2025-07-14 12:31:43 +08:00 |
|
LiangShiyong
|
87ad3376fe
|
完善卷宗和合同的数据隔离的效果
|
2025-06-03 21:06:48 +08:00 |
|
LiangShiyong
|
0397139ad8
|
添加合同和卷宗数据隔离
|
2025-06-03 12:16:31 +08:00 |
|
LiangShiyong
|
b02978508d
|
删除所有console.log输出,优化评查结果的表格的显示,添加新的页码获取逻辑
|
2025-06-02 18:55:00 +08:00 |
|
LiangShiyong
|
1f21c4c2d5
|
在显示评查点结果中,如果评查点是通过的,只显示通过的那一部分的规则组。如果是不通过,则显示不通过的那部分规则组。
|
2025-06-01 22:46:18 +08:00 |
|
LiangShiyong
|
529ed8072b
|
优化评查结果的显示效果
|
2025-06-01 18:30:39 +08:00 |
|
LiangShiyong
|
e9084ad500
|
优化评查结果显示
|
2025-05-30 19:48:37 +08:00 |
|
LiangShiyong
|
099d92f9ed
|
一致性规则渲染效果
|
2025-05-29 18:31:33 +08:00 |
|
LiangShiyong
|
2ff60421aa
|
修改评查点结果显示
|
2025-05-29 12:23:50 +08:00 |
|
LiangShiyong
|
690d369f57
|
完成智慧法务前端调整20250522,还有登录和主页需要完善
|
2025-05-27 23:48:28 +08:00 |
|
LiangShiyong
|
742a789244
|
完善通过评查点的显示优化
|
2025-05-27 10:05:12 +08:00 |
|
LiangShiyong
|
9c21be482b
|
将评查点的info类型也暂时统计为评查点结构警告这个范畴
|
2025-05-24 11:39:27 +08:00 |
|
LiangShiyong
|
53e82f9159
|
优化评查详情提示框的提示条件
|
2025-04-27 18:10:12 +08:00 |
|
LiangShiyong
|
9a22e9092f
|
修复提示框文字换行问题
|
2025-04-26 18:43:22 +08:00 |
|
LiangShiyong
|
65b7d0739a
|
完善列表和编辑页面的数据验证和交互,实现服务端和客户端两重数据验证
|
2025-04-24 18:33:09 +08:00 |
|
LiangShiyong
|
be99fdec79
|
优化评查详情,新增信息提示框组件
|
2025-04-23 20:48:32 +08:00 |
|
LiangShiyong
|
6261950356
|
修改时间范围组件,评查详情创建新的数据结构来适配新的返回格式
|
2025-04-22 20:49:18 +08:00 |
|
LiangShiyong
|
cd2f060d87
|
完善文档预览的效果修改
|
2025-04-21 23:02:29 +08:00 |
|
LiangShiyong
|
5c2c367856
|
新增提示Toast组件
|
2025-04-21 09:22:13 +08:00 |
|
LiangShiyong
|
01d93522b8
|
完善评查详情
|
2025-04-18 15:41:43 +08:00 |
|
LiangShiyong
|
947d61f5bc
|
修改评查详情
|
2025-04-16 18:47:22 +08:00 |
|
LiangShiyong
|
9a9ce5fa55
|
fixed
|
2025-04-15 23:24:32 +08:00 |
|
LiangShiyong
|
b315fc0fea
|
fixed
|
2025-04-14 17:44:30 +08:00 |
|
LiangShiyong
|
60680cd4bf
|
合并评查点新增代码
|
2025-04-13 15:09:01 +08:00 |
|
LiangShiyong
|
5cf05eca40
|
完成评查点分组的增删改
|
2025-04-07 22:40:51 +08:00 |
|
LiangShiyong
|
17f330d07d
|
创建评查点分组的API文件
|
2025-04-07 00:46:31 +08:00 |
|
LiangShiyong
|
145aec6aa6
|
封装评查点列表的接口,完成删除和查找
|
2025-04-03 19:59:57 +08:00 |
|
LiangShiyong
|
2bde2bd76e
|
封装评查点的相关接口,完成评查点列表的简单搜索和查询
|
2025-04-02 19:17:44 +08:00 |
|
LiangShiyong
|
706cea8705
|
完成文档列表页面ui,封装部分上传文件的公共组件,封装请求接口
|
2025-04-01 22:14:43 +08:00 |
|