|
|
06cf30130d
|
refactor: 修改 seeder 数据以适配光束线场景
- DatabaseSeeder: 将分组改为十条光束线(BL02U1-BL16U1)
- 修改文档数据为光束线相关内容
- SopTemplateSeeder: 创建光束线操作相关的 SOP 模板
- 光束线标准开机流程
- 用户实验准备标准流程
- 光束线日常维护流程(草稿)
- TerminalSeeder: 为每条光束线创建智慧屏终端
- 每条光束线对应一个智慧屏终端
- 配置光束线专用的 AI 助手提示词
- 设置合理的在线/离线状态
|
2026-03-12 17:54:51 +08:00 |
|
|
|
f89acbb2dc
|
fix: 修复终端统计组件字段名称错误
- 将 is_active 改为 is_online(与数据库表结构一致)
- 更新描述文本从'激活'改为'在线'
|
2026-03-12 17:30:34 +08:00 |
|
|
|
b5af8a8d61
|
fix: 修复文档预览临时目录权限问题
- 在设置 PHPWord 临时目录前先创建目录
- 确保临时目录存在并具有正确的权限(0755)
- 修复服务器环境下 tempnam() 权限错误
|
2026-03-12 16:30:00 +08:00 |
|
|
|
6313181658
|
feat: 自定义仪表板,添加知识库和终端统计组件
- 创建自定义 Dashboard 页面替换默认仪表板
- 新增 KnowledgeBaseStatsWidget 显示知识库统计信息
- 文档总数、转换完成数、转换失败数、处理中数量
- 知识库分组数量
- 转换成功率计算
- 新增 TerminalStatsWidget 显示终端统计信息
- 终端总数和激活状态
- 知识库关联数、提示词配置数
- 今日同步成功/失败统计
- 移除默认的 FilamentInfoWidget
- 统计卡片支持点击跳转到相关管理页面
|
2026-03-12 16:24:03 +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 |
|
|
|
32cf642f6f
|
chore: deploy
|
2026-03-12 14:42:04 +08:00 |
|
|
|
0fb9b1938d
|
fix(队列&seeder): 修复队列超时和文档创建问题
- 修复队列超时问题:
- 将 queue:listen 改为 queue:work,提高性能和稳定性
- 增加超时时间从 300 秒到 600 秒,确保大文件转换任务有足够时间
- 同时更新 dev 和 dev-octane 脚本
- 修复 DatabaseSeeder 文档创建问题:
- 不再使用 factory 创建文档,避免生成不存在的文件路径
- 直接使用 Document::create() 明确指定所有字段
- 所有文档状态设置为 pending,表示等待转换
- 使用 UUID 生成唯一文件路径,便于管理
|
2026-03-12 14:37:15 +08:00 |
|
|
|
704d1225e6
|
fix(seeder): 修复 DatabaseSeeder 和 SopTemplateSeeder 的问题
- DatabaseSeeder 添加 PermissionSeeder 调用,确保权限系统正确初始化
- 为所有演示用户分配相应角色(super-admin, admin, user)
- 修复 SopTemplateSeeder 中被截断的正则表达式
- 更新测试账号信息,显示用户角色
- 验证所有 seeder 正常执行,数据创建成功
|
2026-03-12 13:21:02 +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 |
|
|
|
8018f4625c
|
docs: 更新任务状态 - 完成 Filament 资源权限集成(导航菜单部分)
|
2026-03-11 10:14:37 +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 |
|
|
|
73d039bcd6
|
docs: 更新任务状态 - 完成权限策略实现
|
2026-03-11 10:09:00 +08:00 |
|
|
|
386fe42f76
|
feat(权限): 完善所有策略的权限检查
- 更新 DocumentPolicy 添加权限检查
- viewAny/view/create/update/delete/download 都检查相应权限
- 保留现有的分组访问控制逻辑
- 保留安全日志记录功能
- 更新 TerminalPolicy 添加权限检查
- 所有方法都基于 terminal.* 权限
- 新增 sync 方法用于配置同步权限检查
- 更新 SopTemplatePolicy 添加权限检查
- 所有方法都基于 sop-template.* 权限
- 保留现有的状态检查逻辑(已发布不可编辑/删除)
- 创建 SystemSettingPolicy
- 实现 viewAny/view/update 权限检查
- 创建 ActivityLogPolicy
- 实现 viewAny/view/export 权限检查
- 创建 GroupPolicy
- 实现完整的 CRUD 权限检查
- 删除前检查关联文档和用户
- 在 AppServiceProvider 中注册所有策略
|
2026-03-11 10:08:22 +08:00 |
|
|
|
c2b83e7857
|
docs: 更新任务状态 - 完成用户权限管理功能
|
2026-03-11 10:04:19 +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 |
|
|
|
7d13a560f3
|
feat(权限): 安装和配置 Spatie Permission 包
- 安装 spatie/laravel-permission 包(v6.24.1)
- 发布配置文件和迁移文件
- 运行迁移创建权限表
- 在 User 模型中添加 HasRoles trait
- 添加 isSuperAdmin 和 isAdmin 辅助方法
- 创建 PermissionSeeder 定义 45 个权限
- 创建 3 个预设角色(super-admin、admin、user)
- 为角色分配相应权限
- 为第一个用户分配超级管理员角色
|
2026-03-11 09:55:40 +08:00 |
|
|
|
7a4fa7cc18
|
docs: 更新 README.md 文档,完善功能模块说明
- 新增功能模块概览表格
- 添加 SOP 标准作业流程管理说明
- 添加终端配置管理系统说明
- 添加 AI 提示词模板系统说明
- 添加系统设置管理说明
- 添加活动日志审计系统说明
- 更新技术栈版本信息(Laravel 12.x, PHP 8.2+)
- 新增 Laravel Octane、Spatie Activity Log、Monaco Editor 等组件说明
- 完善项目结构说明
- 新增常用命令参考(开发、数据库、搜索、缓存等)
- 更新部署和配置说明
- 更新版本日志至 v1.0.0 (2026-03-09)
- 扩展文档链接列表
|
2026-03-09 14:32:03 +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 |
|
|
|
93919956b7
|
docs: 添加 Meilisearch 配置指南
- 说明如何配置 Meilisearch
- 提供 Docker 运行命令
- 包含常见问题和解决方案
- 说明索引管理和搜索配置
- 提供生产环境配置建议
- 包含性能优化建议
|
2026-03-09 14:07:26 +08:00 |
|
|
|
bf002f9349
|
fix: 修复 Meilisearch API 密钥配置
- 将 MEILISEARCH_KEY 更新为 dev-master-key
- 与 Docker 容器中的配置保持一致
- 修复文档上传时的 'invalid API key' 错误
- 更新 .env.example 文件
|
2026-03-09 14:06:31 +08:00 |
|
|
|
599a917246
|
docs: 添加队列系统设置指南
- 创建 QUEUE_SETUP.md 文档
- 说明队列系统的配置和使用方法
- 解释文档转换状态问题的原因
- 提供开发环境和生产环境的配置方案
- 包含常见问题和解决方案
- 说明如何使用 Supervisor 管理队列
- 说明如何使用 composer run dev 启动服务
|
2026-03-09 14:02:53 +08:00 |
|
|
|
d37d1101fe
|
fix: 显式注册所有策略以确保资源正确显示
- 在 AppServiceProvider 中注册 DocumentPolicy
- 在 AppServiceProvider 中注册 TerminalPolicy
- 修复文档管理、终端管理、SOP模板在导航中不显示的问题
- 确保所有资源的权限检查正常工作
|
2026-03-09 13:41:12 +08:00 |
|
|
|
225d04efc5
|
docs(阶段四): 更新任务完成状态
- 标记任务 11-15 的所有子任务为已完成
- 阶段四:SOP模板管理功能全部完成
- 共完成 5 个主任务,约 60 个子任务
|
2026-03-09 13:26:08 +08:00 |
|
|
|
f4ca8372c0
|
test(阶段四): 添加 SOP 模板功能测试
- 创建 SopTemplateTest 测试文件(13个测试)
- 测试模板 CRUD 操作
- 测试步骤管理和排序
- 测试交互任务关联
- 测试状态转换
- 测试版本快照
- 测试活动日志
- 测试筛选和软删除
- 创建 SopTemplateServiceTest 测试文件(12个测试)
- 测试 JSON 导出导入
- 测试发布和归档
- 测试版本管理
- 测试模板复制
- 测试数据验证
所有 25 个测试通过
|
2026-03-09 13:25:17 +08:00 |
|
|
|
74de79e4c3
|
feat(阶段四): 添加 SOP 模板权限策略
- 创建 SopTemplatePolicy 策略类
- 实现查看、创建、更新、删除权限
- 实现发布和归档权限
- 已发布的模板不能编辑和删除
- 只有草稿状态可以发布
- 只有已发布状态可以归档
- 在 AppServiceProvider 中注册策略
|
2026-03-09 13:25:05 +08:00 |
|
|
|
ebd1392580
|
feat(阶段四): 实现 SOP 模板导入导出功能
- 创建导出 Action(ExportSopTemplateAction)
- 创建导入 Action(ImportSopTemplateAction)
- 支持导出为 JSON 格式
- 支持从 JSON 文件导入
- 导入时验证文件格式和数据有效性
- 导入成功后跳转到编辑页面
- 文件大小限制 5MB
|
2026-03-09 13:24:37 +08:00 |
|
|
|
f0c207693b
|
feat(阶段四): 创建 SOP 模板服务类
- 实现 exportToJson 方法(导出为 JSON)
- 实现 importFromJson 方法(从 JSON 导入)
- 实现 publish 方法(发布模板)
- 实现 createVersion 方法(创建版本快照)
- 实现 archive 方法(归档模板)
- 实现 duplicate 方法(复制模板)
- 导入时验证数据结构和必需字段
- 复制时包含所有步骤和交互任务
|
2026-03-09 13:24:24 +08:00 |
|
|
|
6102ec95d2
|
feat(阶段四): 实现 SOP 模板状态管理功能
- 创建发布 Action(PublishSopTemplateAction)
- 创建归档 Action(ArchiveSopTemplateAction)
- 创建预览 Action(PreviewSopTemplateAction)
- 发布前验证模板是否有步骤
- 发布时自动创建版本快照
- 预览模式显示完整模板内容
|
2026-03-09 13:24:14 +08:00 |
|
|
|
c4ab592fd5
|
feat(阶段四): 创建 SOP 模板资源和页面
- 创建 SopTemplateResource 资源类
- 实现模板列表、创建、编辑、查看页面
- 添加步骤编辑器(Repeater 组件)
- 支持富文本编辑步骤内容
- 支持拖拽排序步骤
- 添加状态筛选和分类筛选
- 显示步骤数统计
|
2026-03-09 13:24:02 +08:00 |
|
|
|
05b1bea2f1
|
docs(阶段三): 更新任务完成状态
- 标记任务7-10的所有子任务为已完成
- 阶段三:大屏配置管理功能全部完成
- 包含:终端管理、知识库关联、AI提示词编辑、配置同步
|
2026-03-09 10:59:59 +08:00 |
|
|
|
8bbd5dc30f
|
test(阶段三): 添加终端管理功能测试
- TerminalResourceTest: 18个测试用例,测试终端CRUD和筛选功能
- TerminalKnowledgeBaseAssociationTest: 5个测试用例,测试知识库关联
- TerminalKnowledgeBaseFormTest: 6个测试用例,测试表单关联功能
- TerminalPromptTest: 6个测试用例,测试提示词模型
- TerminalPromptFormTest: 3个测试用例,测试提示词表单
- PromptTemplateTest: 16个测试用例,测试模板和变量功能
- TerminalSyncTest: 8个测试用例,测试配置同步功能
- 总计62个测试用例,覆盖所有核心功能
|
2026-03-09 10:59:54 +08:00 |
|
|
|
6b6afd1b75
|
feat(阶段三): 实现配置同步功能
- 创建 TerminalSyncService 服务类
- 实现配置快照生成(包含终端、知识库、提示词)
- 创建 SyncTerminalConfigJob 异步任务
- 实现重试机制(最多3次,指数退避)
- 创建 SyncConfigAction(单个和批量同步)
- 在终端列表页添加同步状态列
- 在终端详情页添加同步历史展示
- 支持同步状态追踪(pending/syncing/synced/failed)
|
2026-03-09 10:59:50 +08:00 |
|
|
|
1d30fb1d4c
|
feat(阶段三): 实现AI提示词编辑功能
- 集成 Monaco Editor 用于提示词编辑
- 创建提示词变量配置(14个可用变量)
- 创建提示词模板库(5个预设模板)
- 实现 PromptTemplateService 服务类
- 创建变量替换和预览功能
- 添加 PreviewPromptAction 用于预览提示词
- 创建变量帮助文档和模板选择器视图组件
- 支持变量验证和自动替换
|
2026-03-09 10:59:45 +08:00 |
|
|
|
3b90d97f02
|
feat(阶段三): 添加终端知识库关联功能
- 在 Terminal 模型中添加 knowledgeBases 关联关系
- 在 TerminalResource 表单中添加知识库关联选择器
- 使用 Repeater 组件实现多选和优先级管理
- 支持搜索、拖拽排序、防重复选择
- 自动保存和加载关联数据
|
2026-03-09 10:59:37 +08:00 |
|
|
|
6a6c59e3e4
|
feat(阶段三): 实现终端管理基础功能
- 创建 TerminalResource 及其所有页面(列表、创建、编辑、查看)
- 实现终端基本信息管理(名称、编码、IP、线站、组态图)
- 添加显示配置管理(KeyValue 组件)
- 实现在线状态显示和筛选
- 添加按线站分组功能
- 创建 TerminalPolicy 权限策略
- 支持搜索、排序、批量删除等功能
|
2026-03-09 10:59:29 +08:00 |
|
|
|
333034d2f1
|
feat(阶段三): 添加知识库模型和迁移
- 创建 knowledge_bases 表迁移
- 创建 KnowledgeBase 模型
- 创建 KnowledgeBaseFactory 工厂类
- 支持与终端的多对多关联关系
|
2026-03-09 10:59:20 +08:00 |
|
|
|
29f72eb65e
|
docs: 添加管理后台功能增强规格文档
- requirements.md: 需求文档
- design.md: 设计文档
- tasks.md: 任务列表
- validation-rules-summary.md: 验证规则总结
阶段二(系统设置与操作日志功能)已完成 ✓
|
2026-03-09 10:09:28 +08:00 |
|
|
|
aee27ec4c0
|
chore: 添加前端资源文件
- Filament Monaco Editor 静态资源
- Filament 公共资源文件
|
2026-03-09 10:09:10 +08:00 |
|
|
|
112aec6b09
|
test: 添加系统设置和操作日志测试
单元测试:
- SystemSettingServiceTest: 测试服务类方法
- SystemSettingServiceCacheTest: 测试缓存功能
功能测试:
- SystemSettingsTest: 测试系统设置基础功能
- SystemSettingValidationTest: 测试表单验证规则
- ActivityLogTest: 测试操作日志功能
测试覆盖:
- 配置的读取和保存
- 配置验证规则
- 缓存机制
- 日志自动记录
- 日志筛选功能
- 日志详情查看
所有测试通过 ✓
|
2026-03-09 10:08:57 +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 |
|
|
|
232db047f1
|
feat: 创建操作日志导出功能
- ActivityLogExport: 日志导出类
- 支持 Excel (XLSX) 格式导出
- 支持 CSV 格式导出
- 自动格式化中文字段名和值
- 支持根据筛选条件导出数据
|
2026-03-09 10:08:29 +08:00 |
|