jandejang
|
dce5ac0c9a
|
保存规则库 YAML 维护改造进展
|
2026-04-28 22:00:00 +08:00 |
|
LiangShiyong
|
66d2f7cef4
|
1.添加移动端用户的检测工具类,移动端用户只能访问对话页面。
2.评查点列表添加文档属性类型字段。
3.优化dify的对话侧边栏的显示效果。
4.评查点规则添加使用文档属性类型的输入框。添加多实体开关的操作开关。
|
2025-12-30 18:35:48 +08:00 |
|
TanWenyan
|
32fe0da48a
|
refactor: 移除dify:dataset:manage权限映射
数据库已经删除了统一的dify:dataset:manage权限(id:103),
保留了细分的CRUD权限:
- dify:bind:list (查看)
- dify:bind:create (创建)
- dify:bind:update (更新)
- dify:bind:delete (删除)
修改内容:
1. 从permission-mapper.ts中移除所有权限键映射
2. 现在前端直接显示数据库权限键,不再进行任何转换
3. 权限检查直接使用数据库中的细分权限
优势:
- 更灵活的角色权限配置
- 不同角色可以拥有不同的操作组合
- 符合最小权限原则
|
2025-12-08 15:47:26 +08:00 |
|
TanWenyan
|
d3418ef31b
|
fix: 修复权限映射的反向保存逻辑
问题:权限映射只在显示层面进行,但保存时还需要反向映射回数据库权限键
解决方案:
1. 分离显示权限和原始权限:
- originalRoutePermissionsMap:存储未映射的原始权限(用于保存)
- routePermissionsMap:存储映射后的权限(用于显示)
- originalAllPermissions:存储所有原始权限的列表
2. 加载角色权限时:
- 从API获取角色已分配的权限ID(原始ID)
- 直接存储到 selectedPermissionIds
- 不做任何映射转换
3. 显示权限列表时:
- 从原始权限构建映射后的权限(合并相同的)
- 用户看到的就是映射后的权限(如dify:dataset:manage)
- 但勾选状态基于原始权限ID
4. 保存权限时:
- 直接使用 selectedPermissionIds(原始ID)
- 无需反向映射
验证方式:
1. 取消勾选 dify:dataset:manage → 数据库中4个bind权限被DENY → 接口返回403
2. 重新勾选 dify:dataset:manage → 数据库中4个bind权限被GRANT → 接口可访问
|
2025-12-08 15:39:39 +08:00 |
|
TanWenyan
|
547633bf38
|
feat: 修复权限键不匹配问题 - 前端权限映射
问题:前端权限列表显示dify:bind:*,但路由实际检查dify:dataset:*和dify:file:*
导致取消勾选后权限控制失效
解决方案:
1. 创建权限映射工具(permission-mapper.ts)
- dify:bind:list/create/update/delete → dify:dataset:manage
- 自动将数据库权限键映射为实际生效的权限键
2. 修改角色权限管理页面
- 加载角色权限时应用权限键映射
- 渲染权限列表时显示实际生效的权限键
- 保存权限时使用映射后的权限ID
影响范围:
- 知识库管理权限(/chat-with-llm/dataset-manager)
- 角色权限分配页面(/role-permissions)
验证方式:
取消勾选dify:dataset:manage后,知识库管理接口应返回403
|
2025-12-08 15:29:31 +08:00 |
|
PingChuan
|
c94cc00138
|
feat:前端新增初版知识库管理页面
|
2025-11-30 19:27:01 +08:00 |
|
PingChuan
|
9614899171
|
feat:重构dify前端组件以及转发逻辑
|
2025-11-30 16:24:35 +08:00 |
|
LiangShiyong
|
bfe39e45a9
|
feat: 1. 添加axios全局路由拦截进行自动添加请求jwt。 2.重新整理路由表。 3. 文档列表新增版本差异对比。 4.菜单路由可访问列表通过对接接口返回,添加全局路由检测。
5. 修改统一认证登录和管理员登录是通过接口形式进行,存储返回的accessToken。 6. 修改交叉评查的部分样式
|
2025-11-18 11:06:24 +08:00 |
|
TanWenyan
|
c93a87a65e
|
优化思考模式AI回复的UI显示,支持<think>标签解析
新增功能:
1. 创建消息解析工具 message-parser.ts
- 解析 <think> 标签,提取思考过程
- 分离思考内容和实际回复
2. 创建思考过程展示组件 thinking-block.tsx
- 可折叠/展开的思考过程区域
- 参考 GPT-5 和 Claude 网页版设计
- 默认折叠,点击展开查看详细思考过程
3. 修改聊天消息组件 chat-message.tsx
- 集成思考过程解析和展示
- 思考过程单独显示在顶部
- 实际回复正常显示在下方
4. 新增样式 thinking-block.css
- 契合当前淡绿色(#a4e2ad)配色方案
- 渐变背景和流畅动画效果
- 灯泡图标标识思考过程
- 完整的响应式设计
UI效果:
- 思考过程:淡绿色渐变背景,可折叠区域
- 实际回复:正常Markdown渲染
- 交互流畅:展开/折叠动画平滑
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 15:21:27 +08:00 |
|
TanWenyan
|
cf6e9c2421
|
紧急修复:客户端改为调用Remix API routes,不再直接调用Dify API
根本问题:客户端代码直接调用Dify API(12980端口),绕过了服务端代理
修改内容:
1. app/config/api-config.ts
- 添加独立的 difyBaseUrl 配置(指向外网 nas.7bm.co:8000)
- 导出 DIFY_BASE_URL 供服务端使用
2. app/config/chat.ts
- 移除直接Dify API配置(NEXT_PUBLIC_API_URL, APP_ID, API_KEY)
- 移除 generateUserId 函数
- API_URL 改为 '/api'(指向Remix API routes)
3. app/services/api.client.ts
- 所有fetch调用改为相对路径 /api/*
- 移除所有 Authorization 头(服务端自动处理JWT)
- 移除所有 user 参数传递(服务端从JWT提取)
- credentials 改为 'include' 以携带cookie
4. app/services/dify-client.server.ts
- 使用 DIFY_BASE_URL 替代 API_BASE_URL
5. app/utils/dify-test.client.ts
- 测试函数改为调用Remix API routes
调用链路:
客户端 → /api/* → Remix API routes → dify-client.server.ts → FastAPI /dify → Dify
解决问题:
- ✅ 不再直接调用 nas.7bm.co:12980(Dify端口)
- ✅ 统一通过 nas.7bm.co:8000/dify(FastAPI代理)
- ✅ 所有请求都经过JWT认证
- ✅ user字段由后端自动管理
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 11:25:37 +08:00 |
|
TanWenyan
|
e41c457076
|
修复session中的user生成逻辑
问题:
- session.server.ts 还在调用已删除的 generateUserId 函数
- 生成的 user 格式为 user_{APP_ID}:{sessionId},与后端期望的 username 不符
- 导致后端无法正确识别用户
修复:
- 移除 difyUtils 导入
- 移除 getSessionInfo 中的 user 字段生成
- 现在完全由后端从 JWT 中提取 username 管理 user 字段
影响:
- getSessionInfo 返回值不再包含 user 字段
- 所有 API 路由已经不再使用 session 中的 user
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 10:48:18 +08:00 |
|
LiangShiyong
|
59706b70d0
|
给所有请求都加上jwt,隐藏生成jwt的secret(放到.env中),隐藏app-secret(放在pm2运行配置文件中,后续直接读取环境配置即可)
|
2025-10-17 15:28:22 +08:00 |
|
LiangShiyong
|
ccd5cdf71e
|
修复系统概览数据不准确的查询。修复交叉评查意见列表的数量查询。优化全局消息提示的层级。优化提交意见进行局部更新。
|
2025-07-25 09:49:36 +08:00 |
|
LiangShiyong
|
47664fc0e8
|
添加jwt验证,添加交叉评查首页加载对接接口,评查任务文档列表对接接口,意见列表对接接口
|
2025-07-22 14:37:37 +08:00 |
|
LiangShiyong
|
328f326db3
|
优化登录逻辑的实现,将认证请求和token验证的处理分成两个逻辑文件。新增交叉评查任务列表的页面(尚未对接真实数据)。
|
2025-07-16 14:32:20 +08:00 |
|
LiangShiyong
|
d876d66dcb
|
添加交叉评查菜单页面,添加单点登录相关逻辑(待完善)
|
2025-07-15 20:17:51 +08:00 |
|
LiangShiyong
|
fff474f46b
|
添加登录内容,尚未完善,先创建分支
|
2025-07-14 12:31:43 +08:00 |
|
pingchuan
|
ce851cc448
|
取消统一转发Dify请求,改为由客户端直接发送
|
2025-07-01 15:54:28 +08:00 |
|
pingchuan
|
af33de09db
|
基于 shiy-temp分支修改
|
2025-06-04 11:18:52 +08:00 |
|