Commit Graph

20 Commits

Author SHA1 Message Date
58f42de9df refactor: 修复知识库和操作指引 2026-03-16 00:05:06 +08:00
578fc3be82 fix: 修复用户管理中权限数量显示为0的问题
- 使用 getAllPermissions() 获取用户所有权限
- 包括直接分配的权限和通过角色继承的权限
- 修复排序功能以支持新的计算方式
2026-03-12 16:12:12 +08:00
29c209116e feat: 增强文档转换失败处理机制
- 新增 FixStuckDocuments 命令用于修复卡住的文档
- 支持批量检测和修复超时的转换任务
- 改进重试按钮,支持 failed/processing/pending 状态
- 在确认对话框中显示当前状态和错误信息
- 提供 dry-run 模式预览修复操作
2026-03-12 15:58:24 +08:00
ed9260d5a6 refactor: 区分导航栏中的系统设置菜单
- 将 SystemSettingResource 导航标签改为'配置项管理'
- 将 ManageSystemSettings 导航标签改为'系统配置'
- 明确区分配置项管理和系统配置功能
2026-03-12 15:08:41 +08:00
b3f319fc48 refactor(权限): 统一权限命名规范并精简权限数量
- 移除冗余的 viewAny 权限,统一使用 view 权限
- 简化权限描述,去掉「列表」和「详情」的区分
- 权限数量从 45 个精简到 32 个
- 更新 RolePolicy 使用统一的 role.view 权限
- 创建迁移脚本自动更新现有权限并合并关联
- 验证所有角色权限分配正确(super-admin: 32, admin: 28, user: 6)
2026-03-12 13:15:17 +08:00
ec54f0958d feat(文档): 增加转换失败报错提醒和重试功能
- 在文档列表添加「重试转换」和「查看错误」操作按钮
- 在文档详情页添加「重试转换」功能和转换错误信息展示
- 创建错误详情视图,提供友好的错误信息和解决方案
- 重试功能会重置文档状态并重新派发转换任务
- 优化用户体验,提供清晰的错误提示和操作指引
2026-03-11 15:19:58 +08:00
267bb9a36f feat(导航): 优化左侧导航菜单分组结构
调整导航分组,使菜单结构更加清晰合理:

📚 知识库管理(1个菜单)
  1. 文档管理

💼 业务管理(2个菜单)
  1. SOP模板
  2. 终端管理

🔐 权限管理(3个菜单)
  1. 用户管理
  2. 角色管理
  3. 分组管理

⚙️ 系统管理(2个菜单)
  1. 系统设置
  2. 操作日志

优化说明:
- 按照业务逻辑将菜单分为4个主要分组
- 每个分组内的菜单按照使用频率和重要性排序
- 知识库管理独立分组,突出核心功能
- 业务管理包含 SOP 和终端,体现业务流程
- 权限管理集中管理用户、角色、分组
- 系统管理包含系统配置和日志监控

导航结构更加清晰,用户可以快速找到需要的功能模块
2026-03-11 10:29:45 +08:00
3e7083d7c1 fix(权限): 修复权限编辑时的自动勾选显示问题
问题:
- 使用 Tabs 组件时,每个 Tab 中的 CheckboxList 都使用相同的字段名 'permissions'
- 导致字段冲突,无法正确加载和保存已有权限

解决方案:
- 为每个模块使用唯一的字段名(permissions_document, permissions_user 等)
- 添加 afterStateHydrated 钩子,在编辑时自动加载该模块的已有权限
- 添加隐藏字段 all_permissions 收集所有模块的权限
- 在 mutateFormDataBeforeSave/mutateFormDataBeforeCreate 中处理权限数据
- 在 afterSave/afterCreate 中使用 syncPermissions 同步权限到数据库

改进:
- RoleResource: 编辑角色时,每个模块的权限会自动勾选显示
- UserResource: 编辑用户时,直接权限会自动勾选显示
- 保存时正确收集所有模块的权限并同步到数据库
- super-admin 角色的权限字段保持禁用状态

现在编辑角色或用户时,已有的权限会正确显示为勾选状态
2026-03-11 10:25:43 +08:00
788101d21f feat(权限): 优化角色和用户详情页的权限列表显示
- ViewRole 页面优化:
  - 使用 HTML 格式按模块分组显示权限
  - 每个模块使用 Emoji 图标标识(📄 文档管理、⚙️ 系统设置等)
  - 模块名称加粗显示,权限操作用顿号分隔
  - 模块之间使用空行分隔,更加清晰
  - super-admin 角色显示特殊说明

- ViewUser 页面优化:
  - 所有权限:显示用户拥有的全部权限(角色+直接)
  - 直接权限:单独显示直接分配的权限
  - 同样使用 Emoji 图标和分组显示
  - 使用 HTML 格式提升可读性

优化后的显示效果:
📄 文档管理:查看详情、创建、编辑、删除、下载

⚙️ 系统设置:查看详情、编辑

更加直观、易读,用户可以快速了解权限分布情况
2026-03-11 10:21:01 +08:00
1843fa2883 feat(权限): 优化权限列表显示方式,按功能模块分组
- RoleResource: 使用 Tabs 组件按模块分组显示权限
  - 每个模块一个标签页,带有对应的图标
  - 权限名称简化为操作名称(如:查看详情、创建、编辑等)
  - 支持批量选择和取消选择
  - super-admin 角色的权限不可修改
- UserResource: 同样使用 Tabs 组件优化直接权限显示
  - 与角色权限保持一致的显示风格
  - 更清晰地展示权限的模块归属
- 添加 getPermissionTabs() 方法统一生成权限标签页
- 模块包括:文档管理、系统设置、操作日志、终端管理、SOP模板、分组管理、用户管理、角色管理

优化后的界面更加清晰易用,用户可以快速找到需要的权限模块
2026-03-11 10:18:10 +08:00
a100b2dce7 feat(权限): 为所有 Filament 资源添加导航菜单权限控制
- DocumentResource: 添加 document.view 权限检查
- SystemSettingResource: 添加 system-setting.view 权限检查
- ActivityLogResource: 添加 activity-log.view 权限检查
- TerminalResource: 添加 terminal.view 权限检查
- SopTemplateResource: 添加 sop-template.view 权限检查
- GroupResource: 添加 group.view 权限检查
- UserResource: 添加 user.view 权限检查
- RoleResource: 添加 role.viewAny 权限检查

所有资源都实现了 shouldRegisterNavigation() 方法
根据用户权限动态显示/隐藏导航菜单项
2026-03-11 10:14:16 +08:00
dfe0ff42bc feat(权限): 实现用户权限管理功能
- 更新 UserResource 添加角色和权限管理
  - 添加角色选择字段(多选)
  - 添加直接权限配置(按模块分组的复选框列表)
  - 在用户列表中显示角色和权限数量
  - 添加角色筛选器
  - 防止删除超级管理员
- 创建 ViewUser 页面显示用户详细权限信息
  - 显示所有权限(角色权限 + 直接权限)
  - 按模块分组展示权限
  - 区分显示直接权限
- 创建 UserPolicy 控制用户管理权限
  - 基于 user.* 权限控制访问
  - 保护超级管理员不被编辑和删除
  - 防止用户删除自己
- 在 AppServiceProvider 中注册 UserPolicy
2026-03-11 10:03:21 +08:00
a17fe167b0 feat(权限): 创建角色管理资源(RoleResource)
- 创建 RoleResource 及其所有页面类
- 实现角色列表、创建、编辑、查看功能
- 权限选择器按模块分组显示,支持批量选择
- 实现 super-admin 角色保护(不可编辑和删除)
- 实现角色删除前检查(有关联用户时不可删除)
- 创建 RolePolicy 控制角色管理权限
- 在 AppServiceProvider 中注册 RolePolicy
- 角色列表显示权限数量和用户数量
- 完整的中文界面和提示信息
2026-03-11 10:00:29 +08:00
5dc6188802 fix: 修复操作日志导出功能错误
- 移除不存在的 getFilteredTableQuery() 方法调用
- 改为使用 Activity::query() 直接获取查询
- 更新导出说明文字
2026-03-09 14:13:22 +08:00
9f411b742a fix: 修复操作日志用户筛选器错误
- 将 relationship 方式改为 options 方式
- 修复 'no such column: activity_log.name' 错误
- 用户筛选器现在可以正常工作
2026-03-09 14:10:38 +08:00
c4ab592fd5 feat(阶段四): 创建 SOP 模板资源和页面
- 创建 SopTemplateResource 资源类
- 实现模板列表、创建、编辑、查看页面
- 添加步骤编辑器(Repeater 组件)
- 支持富文本编辑步骤内容
- 支持拖拽排序步骤
- 添加状态筛选和分类筛选
- 显示步骤数统计
2026-03-09 13:24:02 +08:00
6a6c59e3e4 feat(阶段三): 实现终端管理基础功能
- 创建 TerminalResource 及其所有页面(列表、创建、编辑、查看)
- 实现终端基本信息管理(名称、编码、IP、线站、组态图)
- 添加显示配置管理(KeyValue 组件)
- 实现在线状态显示和筛选
- 添加按线站分组功能
- 创建 TerminalPolicy 权限策略
- 支持搜索、排序、批量删除等功能
2026-03-09 10:59:29 +08:00
b9c897cd64 feat: 实现操作日志管理界面
- ActivityLogResource: Filament 资源类
  - 只读模式(禁用创建、编辑、删除)
  - 表格列:时间、用户、操作类型、对象、详情
  - 按时间倒序排序
  - 支持多维度筛选(时间范围、操作类型、用户、对象类型)
  - 集成导出功能(Excel/CSV)

- ViewActivityLog: 日志详情页面
  - 完整的变更信息展示
  - JSON diff 对比视图
  - 支持查看原始 JSON 数据

- activity-log-diff.blade.php: Diff 对比组件
  - 字段级别的变更对比
  - 使用颜色区分新旧值(绿色/红色)
  - 支持 JSON 数据格式化显示
2026-03-09 10:08:44 +08:00
752dd908f0 feat: 实现系统设置管理界面
- SystemSettingResource: Filament 资源类
  - 使用 Tabs 组件按 group 分组显示配置
  - 使用 KeyValue 组件编辑 JSON 配置
  - 支持筛选、排序、搜索功能
  - 配置彩色徽章显示分组

- ManageSystemSettings: 系统设置管理页面
  - 按配置类型分组(嵌入模型/分块参数/系统配置/搜索配置)
  - 完整的表单验证规则
  - 保存和重置功能
  - 集成 SystemSettingService

- 创建对应的 Blade 视图和页面类
2026-03-09 10:08:17 +08:00
Knowledge Base System
acf549c43c feat: 初始化知识库系统项目
- 实现基于 Laravel 11 和 Filament 3.X 的文档管理系统
- 添加用户认证和分组管理功能
- 实现文档上传、分类和权限控制
- 集成 Word 文档自动转换为 Markdown
- 集成 Meilisearch 全文搜索引擎
- 实现文档在线预览功能
- 添加安全日志和审计功能
- 完整的简体中文界面
- 包含完整的项目文档和部署指南

技术栈:
- Laravel 11.x
- Filament 3.X
- Meilisearch 1.5+
- Pandoc 文档转换
- Redis 队列系统
- Pest PHP 测试框架
2025-12-05 14:44:44 +08:00