TanWenyan
|
5073090bcb
|
feat: 添加 403 无权限弹窗提示
## 修改内容
在 axios 响应拦截器中添加 403 Forbidden 错误处理:
- 检测到 403 状态码时,显示 toast 警告提示
- 提示信息:"无权限访问该资源"
- 只在客户端环境显示,服务端不显示 toast
## 代码位置
- app/api/axios-client.ts:177-185
## 实现
```typescript
// 🔒 403 无权限错误处理
if (isAxiosError(error) && error.response?.status === 403) {
console.warn('⚠️ [403 Forbidden] 无权限访问:', error.config?.url);
// 只在客户端显示 toast 提示
if (typeof window !== 'undefined') {
toastService.warning('无权限访问该资源');
}
}
```
## 用户体验
- 用户访问无权限资源时,右上角显示黄色警告 toast
- toast 自动消失,不阻塞用户操作
- 控制台同时输出警告日志便于调试
|
2025-11-26 12:13:44 +08:00 |
|
LiangShiyong
|
83f8d80e12
|
合并代码
|
2025-11-25 20:50:34 +08:00 |
|
TanWenyan
|
87a1bf87e5
|
fix(axios-client): 修复 code 字段类型判断导致的误报错误
问题:
- axios-client 检查 API 响应中的 code 字段时,没有区分数字类型和字符串类型
- 当后端返回包含业务编码字段 code: "05PZSYTZSNRYZX" 的数据时,被误判为错误响应
- 导致 GET /api/v3/evaluation-points/:id 等接口报"API请求失败: 未知错误"
解决方案:
- 添加 typeof data.code === 'number' 类型检查
- 只有数字类型的 code 才被视为 API 状态码(0 或 200)
- 字符串类型的 code 被视为业务数据字段,不触发错误检查
影响范围:
- 所有返回包含字符串 code 字段的 API 响应
- 特别是评查点相关接口(code 是评查点编码)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 18:36:15 +08:00 |
|
TanWenyan
|
689ef6bc3d
|
fix: 修复角色权限管理模块的API认证和数据加载问题
主要修复:
1. 修复所有RBAC API函数使用axios-client(自动添加JWT token)
- getRoles, createRole, updateRole, deleteRole 从rbacFetch切换到axios-client
- 解决401未授权导致的数据加载失败问题
2. 修复用户ID字段不匹配问题
- getAllUsers函数使用user_id字段(兼容user.user_id || user.id)
- 确保角色分配时使用正确的用户ID
3. 修复路由ID不匹配问题
- getRoutes函数改用真实后端API(GET /rbac/user/routes)
- 解决前端Mock路由ID与数据库不一致导致的400错误
4. 增强axios-client成功响应识别
- 支持code=200作为成功状态(原本只支持code=0)
- 兼容不同后端API的响应格式
5. 实现用户单角色限制功能
- 添加getUserRoles API函数
- 分配角色前检查用户现有角色
- 在用户列表中显示当前角色标签
6. 改进创建角色的表单验证
- role_key必须以字母开头(正则:^[a-z][a-z0-9_]*$)
- 添加实时验证提示
- 更新提示文案说明规则
7. 添加删除操作的安全确认机制
- 删除角色/移除用户角色前显示确认模态框
- 3秒倒计时后才能确认删除
- 成功删除后自动刷新数据
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-24 18:03:57 +08:00 |
|
LiangShiyong
|
d09d5b709d
|
Merge branch 'PingChuan' into shiy-login
# Conflicts:
# app/config/api-config.ts
fix: 1. 修复无法加载数据的问题:没有从入口页中进来会缺少数据。
2. 加强后端接口关于token的校验错误和权限校验错误的管理。
feat: 1. 对接后端的数据看板的接口。
2. 将系统设置单独抽出来作为管理员的固定一个入口。
|
2025-11-22 15:57:22 +08:00 |
|
LiangShiyong
|
dab0835605
|
feat: 1.修改提示词模板的不用角色的操作权限。
2. 对接数据看板的数据。
3. 添加入口模块管理的页面。
|
2025-11-21 17:16:07 +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
|
59706b70d0
|
给所有请求都加上jwt,隐藏生成jwt的secret(放到.env中),隐藏app-secret(放在pm2运行配置文件中,后续直接读取环境配置即可)
|
2025-10-17 15:28:22 +08:00 |
|
LiangShiyong
|
6727d62272
|
修复登录问题,sidebar修复用户角色的问题
|
2025-07-28 10:56:59 +08:00 |
|
LiangShiyong
|
d465260daf
|
准备重构nginx的配置,先回退api-config配置,添加PM2的多端口服务的启动脚步
|
2025-07-25 15:06:47 +08:00 |
|
LiangShiyong
|
ccd5cdf71e
|
修复系统概览数据不准确的查询。修复交叉评查意见列表的数量查询。优化全局消息提示的层级。优化提交意见进行局部更新。
|
2025-07-25 09:49:36 +08:00 |
|
LiangShiyong
|
fff474f46b
|
添加登录内容,尚未完善,先创建分支
|
2025-07-14 12:31:43 +08:00 |
|
LiangShiyong
|
534e1ba153
|
修复提示框的弹出位置移动的问题
|
2025-06-09 19:06:50 +08:00 |
|
LiangShiyong
|
358e9ab745
|
优化客户端请求时候操作的页面不更新
|
2025-06-06 10:21:14 +08:00 |
|
LiangShiyong
|
ce4e621741
|
删除client文件,添加部分progrest的console输入内容
|
2025-06-05 21:28:00 +08:00 |
|
LiangShiyong
|
b02978508d
|
删除所有console.log输出,优化评查结果的表格的显示,添加新的页码获取逻辑
|
2025-06-02 18:55:00 +08:00 |
|
HuangZhiwen
|
d292dcfccf
|
合同基本列表数据查询基本完善
|
2025-05-30 17:40:19 +08:00 |
|
HuangZhiwen
|
9200654c35
|
minio 使用外网地址
|
2025-05-29 12:07:21 +08:00 |
|
LiangShiyong
|
491e1b119a
|
改用axios请求进行封装
|
2025-05-07 09:25:51 +08:00 |
|