# 管理后台功能增强 - 任务列表 ## 阶段一:基础设施和数据模型(优先级:高) ### 1. 环境准备和依赖安装 - [x] 1.1 安装spatie/laravel-activitylog包 - [x] 1.2 安装amidesfahani/filament-monaco-editor包 - [x] 1.3 安装maatwebsite/excel包 - [x] 1.4 发布配置文件和迁移文件 ### 2. 数据库迁移文件创建 - [x] 2.1 创建system_settings表迁移 - [x] 2.2 创建terminals表迁移 - [x] 2.3 创建terminal_knowledge_bases表迁移 - [x] 2.4 创建terminal_prompts表迁移 - [x] 2.5 创建terminal_sync_logs表迁移 - [x] 2.6 创建sop_templates表迁移 - [x] 2.7 创建sop_steps表迁移 - [x] 2.8 创建sop_interactive_tasks表迁移 - [x] 2.9 创建sop_template_versions表迁移 - [x] 2.10 运行所有迁移 ### 3. 模型创建 - [x] 3.1 创建SystemSetting模型 - [x] 3.2 创建Terminal模型及关联关系 - [x] 3.3 创建TerminalKnowledgeBase模型 - [x] 3.4 创建TerminalPrompt模型 - [x] 3.5 创建TerminalSyncLog模型 - [x] 3.6 创建SopTemplate模型及关联关系 - [x] 3.7 创建SopStep模型 - [x] 3.8 创建SopInteractiveTask模型 - [x] 3.9 创建SopTemplateVersion模型 - [x] 3.10 配置所有模型的LogsActivity trait ### 4. 模型工厂和种子数据 - [x] 4.1 创建SystemSetting工厂和种子 - [x] 4.2 创建Terminal工厂和种子 - [x] 4.3 创建SopTemplate工厂和种子 - [x] 4.4 运行种子数据填充 ## 阶段二:系统设置与操作日志功能(优先级:高) ### 5. 系统设置功能 - [x] 5.1 创建SystemSettingResource - [x] 5.1.1 定义表单字段(使用Tabs按group分组) - [x] 5.1.2 配置嵌入模型配置字段 - [x] 5.1.3 配置分块参数字段 - [x] 5.1.4 配置全局参数字段 - [x] 5.1.5 添加表单验证规则 - [x] 5.2 创建SystemSettingService - [x] 5.2.1 实现getGroupedSettings方法 - [x] 5.2.2 实现updateSettings方法 - [x] 5.2.3 实现配置缓存逻辑 - [x] 5.3 创建系统设置页面 - [x] 5.3.1 创建Filament Page - [x] 5.3.2 集成SystemSettingResource表单 - [x] 5.3.3 添加保存和重置按钮 - [x] 5.4 测试系统设置功能 - [x] 5.4.1 测试配置保存 - [x] 5.4.2 测试配置读取 - [x] 5.4.3 测试配置验证 ### 6. 操作日志功能 - [x] 6.1 创建ActivityLogResource - [x] 6.1.1 定义表格列(时间、用户、操作类型、对象、详情) - [x] 6.1.2 配置只读模式(禁用创建、编辑、删除) - [x] 6.1.3 添加默认排序(按时间倒序) - [x] 6.2 实现日志筛选功能 - [x] 6.2.1 添加时间范围筛选器 - [x] 6.2.2 添加操作类型筛选器 - [x] 6.2.3 添加用户筛选器 - [x] 6.2.4 添加对象类型筛选器 - [x] 6.3 实现日志详情功能 - [x] 6.3.1 创建LogDiffViewer组件 - [x] 6.3.2 实现JSON diff对比视图 - [x] 6.3.3 创建自定义ViewAction - [x] 6.3.4 添加详情弹窗 - [x] 6.4 实现日志导出功能 - [x] 6.4.1 创建ExportActivityLogAction - [x] 6.4.2 实现CSV导出 - [x] 6.4.3 实现Excel导出 - [x] 6.4.4 添加导出按钮到表格 - [x] 6.5 测试操作日志功能 - [x] 6.5.1 测试日志自动记录 - [x] 6.5.2 测试日志筛选 - [x] 6.5.3 测试日志详情查看 - [x] 6.5.4 测试日志导出 ## 阶段三:大屏配置管理功能(优先级:中) ### 7. 终端管理基础功能 - [x] 7.1 创建TerminalResource - [x] 7.1.1 定义表格列(名称、编码、IP、线站、在线状态) - [x] 7.1.2 添加在线状态Badge组件 - [x] 7.1.3 配置按线站分组 - [x] 7.1.4 添加搜索功能 - [x] 7.2 创建终端表单 - [x] 7.2.1 添加基本信息字段 - [x] 7.2.2 添加线站绑定选择器 - [x] 7.2.3 添加组态图URL字段 - [x] 7.2.4 添加显示配置字段 - [x] 7.2.5 添加表单验证 - [x] 7.3 测试终端CRUD功能 - [x] 7.3.1 测试终端创建 - [x] 7.3.2 测试终端编辑 - [x] 7.3.3 测试终端删除 - [x] 7.3.4 测试终端列表 ### 8. 知识库关联功能 - [x] 8.1 创建知识库关联选择器 - [x] 8.1.1 使用Select组件(多选模式) - [x] 8.1.2 添加搜索功能 - [x] 8.1.3 显示已选知识库列表 - [x] 8.1.4 添加优先级排序功能 - [x] 8.2 实现关联关系保存 - [x] 8.2.1 在终端表单中集成选择器 - [x] 8.2.2 实现关联数据保存逻辑 - [x] 8.2.3 实现关联数据加载逻辑 - [x] 8.3 测试知识库关联功能 - [x] 8.3.1 测试多选功能 - [x] 8.3.2 测试搜索功能 - [x] 8.3.3 测试优先级排序 ### 9. AI提示词编辑功能 - [x] 9.1 集成Monaco Editor - [x] 9.1.1 在终端表单中添加MonacoEditor字段 - [x] 9.1.2 配置语法高亮 - [x] 9.1.3 配置编辑器主题 - [x] 9.2 实现变量提示功能 - [x] 9.2.1 定义可用变量列表 - [x] 9.2.2 实现自动补全 - [x] 9.2.3 添加变量说明文档 - [x] 9.3 创建提示词模板 - [x] 9.3.1 创建常用模板库 - [x] 9.3.2 添加模板选择器 - [x] 9.3.3 实现模板应用功能 - [x] 9.4 实现提示词预览 - [x] 9.4.1 创建预览组件 - [x] 9.4.2 实现变量替换预览 - [x] 9.4.3 添加预览按钮 - [x] 9.5 测试提示词编辑功能 - [x] 9.5.1 测试编辑器功能 - [x] 9.5.2 测试变量提示 - [x] 9.5.3 测试模板应用 - [x] 9.5.4 测试预览功能 ### 10. 配置同步功能 - [x] 10.1 创建TerminalSyncService - [x] 10.1.1 实现syncConfiguration方法 - [x] 10.1.2 实现getConfigSnapshot方法 - [x] 10.1.3 实现同步状态更新逻辑 - [x] 10.2 创建SyncTerminalConfigJob - [x] 10.2.1 实现任务处理逻辑 - [x] 10.2.2 实现错误处理 - [x] 10.2.3 实现重试机制 - [x] 10.3 创建同步Action - [x] 10.3.1 创建SyncConfigAction - [x] 10.3.2 添加到终端资源 - [x] 10.3.3 添加批量同步功能 - [x] 10.4 实现同步状态展示 - [x] 10.4.1 创建同步状态Badge - [x] 10.4.2 在列表页显示同步状态 - [x] 10.4.3 创建同步历史查看页面 - [x] 10.5 测试配置同步功能 - [x] 10.5.1 测试单个终端同步 - [x] 10.5.2 测试批量同步 - [x] 10.5.3 测试同步失败处理 - [x] 10.5.4 测试同步历史记录 ## 阶段四:SOP模板管理功能(优先级:中) ### 11. SOP模板基础功能 - [x] 11.1 创建SopTemplateResource - [x] 11.1.1 定义表格列(名称、分类、版本、状态) - [x] 11.1.2 添加状态Badge - [x] 11.1.3 配置卡片视图 - [x] 11.1.4 添加搜索和筛选 - [x] 11.2 创建模板表单 - [x] 11.2.1 添加基本信息字段 - [x] 11.2.2 添加分类和标签字段 - [x] 11.2.3 添加适用范围字段 - [x] 11.2.4 添加版本管理字段 - [x] 11.2.5 添加表单验证 - [x] 11.3 实现状态管理 - [x] 11.3.1 创建状态转换逻辑 - [x] 11.3.2 添加状态转换Action - [x] 11.3.3 实现发布前验证 - [x] 11.4 测试模板CRUD功能 - [x] 11.4.1 测试模板创建 - [x] 11.4.2 测试模板编辑 - [x] 11.4.3 测试模板删除 - [x] 11.4.4 测试状态转换 ### 12. 步骤可视化编辑功能 - [x] 12.1 创建步骤编辑器组件 - [x] 12.1.1 使用Repeater组件 - [x] 12.1.2 配置步骤字段 - [x] 12.1.3 添加富文本编辑器 - [x] 12.1.4 实现拖拽排序 - [x] 12.2 实现步骤管理功能 - [x] 12.2.1 实现步骤添加 - [x] 12.2.2 实现步骤删除 - [x] 12.2.3 实现步骤复制 - [x] 12.2.4 实现步骤编号自动更新 - [x] 12.3 优化编辑体验 - [x] 12.3.1 实现步骤折叠/展开 - [x] 12.3.2 添加快捷操作按钮 - [x] 12.3.3 实现自动保存 - [x] 12.4 测试步骤编辑功能 - [x] 12.4.1 测试步骤CRUD - [x] 12.4.2 测试拖拽排序 - [x] 12.4.3 测试富文本编辑 ### 13. 交互任务配置功能 - [x] 13.1 创建任务配置组件 - [x] 13.1.1 使用Builder组件 - [x] 13.1.2 定义任务类型(确认、输入、选择、拍照、扫码) - [x] 13.1.3 为每种类型创建配置表单 - [x] 13.2 实现任务参数配置 - [x] 13.2.1 实现必填项配置 - [x] 13.2.2 实现验证规则配置 - [x] 13.2.3 实现默认值配置 - [x] 13.2.4 实现超时设置 - [x] 13.3 实现条件分支配置 - [x] 13.3.1 创建条件编辑器 - [x] 13.3.2 实现条件逻辑配置 - [x] 13.3.3 实现分支跳转配置 - [x] 13.4 测试交互任务功能 - [x] 13.4.1 测试任务创建 - [x] 13.4.2 测试参数配置 - [x] 13.4.3 测试条件分支 ### 14. 模板预览与发布功能 - [x] 14.1 创建模板预览功能 - [x] 14.1.1 创建PreviewAction - [x] 14.1.2 实现预览页面 - [x] 14.1.3 模拟实际使用场景 - [x] 14.2 实现发布流程 - [x] 14.2.1 创建PublishAction - [x] 14.2.2 实现发布前验证 - [x] 14.2.3 添加发布确认弹窗 - [x] 14.2.4 实现版本快照创建 - [x] 14.3 实现版本管理 - [x] 14.3.1 创建版本历史页面 - [x] 14.3.2 实现版本对比功能 - [x] 14.3.3 实现版本回滚功能 - [x] 14.4 测试预览和发布功能 - [x] 14.4.1 测试预览功能 - [x] 14.4.2 测试发布流程 - [x] 14.4.3 测试版本管理 ### 15. 模板导入导出功能 - [x] 15.1 创建SopTemplateService - [x] 15.1.1 实现exportToJson方法 - [x] 15.1.2 实现exportToPdf方法 - [x] 15.1.3 实现importFromJson方法 - [x] 15.2 创建导出Action - [x] 15.2.1 创建ExportAction - [x] 15.2.2 添加格式选择 - [x] 15.2.3 实现文件下载 - [x] 15.3 创建导入功能 - [x] 15.3.1 创建ImportAction - [x] 15.3.2 实现文件上传 - [x] 15.3.3 实现数据验证 - [x] 15.3.4 实现批量导入 - [x] 15.4 测试导入导出功能 - [x] 15.4.1 测试JSON导出 - [x] 15.4.2 测试PDF导出 - [x] 15.4.3 测试JSON导入 - [x] 15.4.4 测试批量导入 ## 阶段五:权限管理系统(优先级:高) ### 16. Spatie Permission 包安装和配置 - [x] 16.1 安装 Spatie Permission 包 - [x] 16.1.1 运行 composer require spatie/laravel-permission - [x] 16.1.2 发布配置文件和迁移文件 - [x] 16.1.3 运行迁移创建权限表 - [x] 16.1.4 清除缓存 - [x] 16.2 配置 User 模型 - [x] 16.2.1 在 User 模型中添加 HasRoles trait - [x] 16.2.2 配置守卫(guard) - [x] 16.2.3 测试基本权限方法 - [x] 16.3 创建权限种子数据 - [x] 16.3.1 创建 PermissionSeeder - [x] 16.3.2 定义所有功能模块的权限(45个权限) - [x] 16.3.3 创建预设角色(super-admin、admin、user) - [x] 16.3.4 为角色分配权限 - [x] 16.3.5 运行种子数据 ### 17. 角色管理功能 - [x] 17.1 创建 RoleResource - [x] 17.1.1 定义表格列(名称、守卫、权限数、用户数) - [x] 17.1.2 添加搜索和筛选功能 - [x] 17.1.3 添加系统角色标识(super-admin不可删除) - [x] 17.2 创建角色表单 - [x] 17.2.1 添加基本信息字段(名称、守卫) - [x] 17.2.2 添加权限选择器(使用 CheckboxList,按模块分组) - [x] 17.2.3 添加表单验证规则 - [x] 17.2.4 实现权限同步逻辑(使用 syncPermissions) - [x] 17.3 实现角色删除保护 - [x] 17.3.1 检查角色是否为 super-admin - [x] 17.3.2 检查角色是否有关联用户 - [x] 17.3.3 添加删除确认提示 - [x] 17.4 测试角色管理功能 - [x] 17.4.1 测试角色 CRUD 操作 - [x] 17.4.2 测试权限分配(syncPermissions) - [x] 17.4.3 测试删除保护 ### 18. 用户权限管理功能 - [x] 18.1 更新 UserResource - [x] 18.1.1 添加角色分配字段(使用 Select,支持多选) - [x] 18.1.2 添加分组关联字段 - [x] 18.1.3 添加直接权限配置 Section(使用 CheckboxList) - [x] 18.1.4 显示用户的所有权限预览(角色权限+直接权限) - [x] 18.2 实现用户权限保存逻辑 - [x] 18.2.1 使用 syncRoles 同步角色 - [x] 18.2.2 使用 syncPermissions 同步直接权限 - [x] 18.2.3 处理权限冲突(直接权限优先) - [x] 18.3 创建权限预览组件 - [x] 18.3.1 使用 Placeholder 组件显示权限 - [x] 18.3.2 按模块分组显示 - [x] 18.3.3 标识权限来源(角色/直接授予) - [x] 18.3.4 支持权限搜索 - [x] 18.4 测试用户权限功能 - [x] 18.4.1 测试角色分配(assignRole、syncRoles) - [x] 18.4.2 测试直接权限配置(givePermissionTo、syncPermissions) - [x] 18.4.3 测试权限检查(hasPermissionTo、can) ### 19. 权限策略实现 - [x] 19.1 DocumentPolicy(已部分实现,需完善) - [x] 19.1.1 在 viewAny 中添加权限检查(document.view) - [x] 19.1.2 在 view 中添加权限检查(document.view) - [x] 19.1.3 在 create 中添加权限检查(document.create) - [x] 19.1.4 在 update 中添加权限检查(document.update) - [x] 19.1.5 在 delete 中添加权限检查(document.delete) - [x] 19.1.6 在 download 中添加权限检查(document.download) - [x] 19.1.7 保留现有的分组访问控制逻辑 - [x] 19.2 SystemSettingPolicy - [x] 19.2.1 实现 viewAny(system-setting.view) - [x] 19.2.2 实现 view(system-setting.view) - [x] 19.2.3 实现 update(system-setting.update) - [x] 19.3 ActivityLogPolicy - [x] 19.3.1 实现 viewAny(activity-log.view) - [x] 19.3.2 实现 view(activity-log.view) - [x] 19.3.3 实现 export(activity-log.export) - [x] 19.4 TerminalPolicy(已部分实现,需完善) - [x] 19.4.1 在所有方法中添加权限检查 - [x] 19.4.2 实现 sync 权限检查(terminal.sync) - [x] 19.4.3 保留现有的管理员检查作为后备 - [x] 19.5 SopTemplatePolicy(已部分实现,需完善) - [x] 19.5.1 在所有方法中添加权限检查 - [x] 19.5.2 实现 publish 权限检查(sop-template.publish) - [x] 19.5.3 实现 archive 权限检查(sop-template.archive) - [x] 19.5.4 保留现有的状态检查逻辑 - [x] 19.6 GroupPolicy - [x] 19.6.1 实现 viewAny(group.view) - [x] 19.6.2 实现 view(group.view) - [x] 19.6.3 实现 create(group.create) - [x] 19.6.4 实现 update(group.update) - [x] 19.6.5 实现 delete(group.delete,需检查关联文档) - [x] 19.7 UserPolicy - [x] 19.7.1 实现 viewAny(user.view) - [x] 19.7.2 实现 view(user.view) - [x] 19.7.3 实现 create(user.create) - [x] 19.7.4 实现 update(user.update) - [x] 19.7.5 实现 delete(user.delete,不能删除自己) - [x] 19.8 RolePolicy - [x] 19.8.1 实现 viewAny(role.viewAny) - [x] 19.8.2 实现 view(role.view) - [x] 19.8.3 实现 create(role.create) - [x] 19.8.4 实现 update(role.update) - [x] 19.8.5 实现 delete(role.delete,super-admin 保护) - [x] 19.9 策略注册 - [x] 19.9.1 在 AppServiceProvider 中注册所有策略 - [x] 19.9.2 配置策略自动发现 ### 20. Filament 资源权限集成 - [x] 20.1 更新所有 Resource 的权限检查 - [x] 20.1.1 DocumentResource 集成权限(使用 can 方法) - [x] 20.1.2 SystemSettingResource 集成权限 - [x] 20.1.3 ActivityLogResource 集成权限 - [x] 20.1.4 TerminalResource 集成权限 - [x] 20.1.5 SopTemplateResource 集成权限 - [x] 20.1.6 GroupResource 集成权限 - [x] 20.1.7 UserResource 集成权限 - [x] 20.1.8 RoleResource 集成权限 - [x] 20.2 实现导航菜单权限控制 - [x] 20.2.1 配置 Resource 的 shouldRegisterNavigation 方法 - [x] 20.2.2 使用 auth()->user()->can() 检查权限 - [x] 20.2.3 根据权限动态显示/隐藏菜单项 - [ ] 20.3 实现操作按钮权限控制 - [ ] 20.3.1 配置 Action 的 visible 方法 - [ ] 20.3.2 使用 $this->can() 检查权限 - [ ] 20.3.3 根据权限动态显示/隐藏按钮 - [ ] 20.4 实现批量操作权限控制 - [ ] 20.4.1 配置 BulkAction 的 visible 方法 - [ ] 20.4.2 根据权限控制批量操作可用性 - [ ] 20.5 实现中间件保护 - [ ] 20.5.1 在路由中使用 permission 中间件 - [ ] 20.5.2 在路由中使用 role 中间件 - [ ] 20.5.3 测试未授权访问的重定向 ### 21. 权限测试 - [ ] 21.1 单元测试 - [ ] 21.1.1 测试 User 模型的 HasRoles trait - [ ] 21.1.2 测试 hasPermissionTo 方法 - [ ] 21.1.3 测试 hasRole 方法 - [ ] 21.1.4 测试 assignRole 和 removeRole - [ ] 21.1.5 测试 givePermissionTo 和 revokePermissionTo - [ ] 21.1.6 测试权限缓存 - [ ] 21.2 策略测试 - [ ] 21.2.1 测试所有 Policy 的权限检查 - [ ] 21.2.2 测试 super-admin 角色的完整权限 - [ ] 21.2.3 测试 admin 角色的权限 - [ ] 21.2.4 测试普通用户的权限限制 - [ ] 21.2.5 测试直接权限覆盖角色权限 - [ ] 21.3 集成测试 - [ ] 21.3.1 测试角色分配后的权限生效 - [ ] 21.3.2 测试权限撤销后的访问限制 - [ ] 21.3.3 测试跨分组访问控制 - [ ] 21.3.4 测试数据级权限过滤 - [ ] 21.4 UI 测试 - [ ] 21.4.1 测试菜单项权限控制 - [ ] 21.4.2 测试操作按钮权限控制 - [ ] 21.4.3 测试批量操作权限控制 - [ ] 21.4.4 测试未授权访问的错误提示 ## 阶段六:测试和优化(优先级:低) ### 22. 单元测试 - [ ] 22.1 SystemSetting模型测试 - [ ] 22.1.1 测试get方法 - [ ] 22.1.2 测试set方法 - [ ] 22.2 Terminal模型测试 - [ ] 22.2.1 测试关联关系 - [ ] 22.2.2 测试作用域 - [ ] 22.3 SopTemplate模型测试 - [ ] 22.3.1 测试关联关系 - [ ] 22.3.2 测试状态转换 - [ ] 22.4 Service类测试 - [ ] 22.4.1 测试SystemSettingService - [ ] 22.4.2 测试TerminalSyncService - [ ] 22.4.3 测试SopTemplateService ### 23. 功能测试 - [ ] 23.1 系统设置功能测试 - [ ] 23.1.1 测试配置保存 - [ ] 23.1.2 测试配置读取 - [ ] 23.2 操作日志功能测试 - [ ] 23.2.1 测试日志记录 - [ ] 23.2.2 测试日志筛选 - [ ] 23.2.3 测试日志导出 - [ ] 23.3 终端管理功能测试 - [ ] 23.3.1 测试终端CRUD - [ ] 23.3.2 测试配置同步 - [ ] 23.4 SOP模板功能测试 - [ ] 23.4.1 测试模板CRUD - [ ] 23.4.2 测试步骤编辑 - [ ] 23.4.3 测试模板发布 - [ ] 23.4.4 测试导入导出 ### 24. 性能优化 - [ ] 24.1 数据库优化 - [ ] 24.1.1 添加必要索引 - [ ] 24.1.2 优化查询语句 - [ ] 24.1.3 实现Eager Loading - [ ] 24.2 缓存优化 - [ ] 24.2.1 实现系统设置缓存 - [ ] 24.2.2 实现终端状态缓存 - [ ] 24.2.3 实现模板列表缓存 - [ ] 24.2.4 实现权限缓存 - [ ] 24.3 前端优化 - [ ] 24.3.1 实现Lazy Loading - [ ] 24.3.2 优化Monaco Editor加载 - [ ] 24.3.3 优化图片加载 - [ ] 24.4 性能测试 - [ ] 24.4.1 测试日志查询性能 - [ ] 24.4.2 测试终端列表性能 - [ ] 24.4.3 测试模板编辑性能 - [ ] 24.4.4 测试权限检查性能 ## 阶段七:文档和部署(优先级:低) ### 25. 文档编写 - [ ] 25.1 编写用户手册 - [ ] 25.1.1 系统设置使用说明 - [ ] 25.1.2 操作日志使用说明 - [ ] 25.1.3 终端管理使用说明 - [ ] 25.1.4 SOP模板使用说明 - [ ] 25.1.5 权限管理使用说明 - [ ] 25.2 编写开发文档 - [ ] 25.2.1 API文档 - [ ] 25.2.2 数据库设计文档 - [ ] 25.2.3 部署文档 - [ ] 25.2.4 权限系统架构文档 - [ ] 25.3 编写测试文档 - [ ] 25.3.1 测试用例文档 - [ ] 25.3.2 测试报告模板 ### 26. 部署准备 - [ ] 26.1 准备生产环境配置 - [ ] 26.1.1 更新.env.production - [ ] 26.1.2 配置队列服务 - [ ] 26.1.3 配置缓存服务 - [ ] 26.2 数据迁移准备 - [ ] 26.2.1 准备迁移脚本 - [ ] 26.2.2 准备回滚脚本 - [ ] 26.2.3 准备种子数据 - [ ] 26.3 部署到生产环境 - [ ] 26.3.1 执行数据库迁移 - [ ] 26.3.2 发布静态资源 - [ ] 26.3.3 重启服务 - [ ] 26.4 生产环境验证 - [ ] 26.4.1 验证所有功能 - [ ] 26.4.2 验证性能指标 - [ ] 26.4.3 验证安全配置 ## 任务统计 - 总任务数:26个主任务 - 子任务数:约250+个子任务 - 预计工作量:50-70工作日 - 优先级分布: - 高优先级:阶段一、二、五(约40%) - 中优先级:阶段三、四(约35%) - 低优先级:阶段六、七(约25%)