URS推广模块后台Action按钮功能
任务概述
为URS推广模块的后台管理页面添加Action按钮功能,参考物品模块的实现方式,提供更便捷的操作功能。
实现内容
1. 创建Action类目录结构
app/Module/UrsPromotion/AdminControllers/Actions/
├── UpdateTalentAction.php # 更新单个用户达人等级
├── BatchUpdateTalentAction.php # 批量更新达人等级
├── ViewSourceDetailAction.php # 查看收益来源详情
├── RecalculateProfitAction.php # 重新计算收益
├── ViewReferralTreeAction.php # 查看推荐关系树
├── ValidateReferralAction.php # 验证推荐关系
├── SyncUserInfoAction.php # 同步用户信息
└── ValidateMappingAction.php # 验证映射关系
2. 各控制器Action功能
UrsUserTalentController (达人等级管理)
- UpdateTalentAction: 更新单个用户达人等级
- 调用UrsTalentService::updateUserTalent()
- 显示等级变化信息
- 支持等级名称显示
- BatchUpdateTalentAction: 批量更新所有用户达人等级
- 工具栏按钮,支持批量操作
- 显示进度和结果统计
- 添加确认对话框
UrsProfitController (收益记录管理)
- ViewSourceDetailAction: 查看收益来源详情
- 根据source_type跳转到对应详情页
- 支持land_harvest、user_register、promotion_reward等类型
- 只对有来源信息的记录显示
- RecalculateProfitAction: 重新计算收益
- 重新计算分成金额和比例
- 显示计算前后的变化
- 只对正常状态记录可用
UrsUserReferralController (推荐关系管理)
- ViewReferralTreeAction: 查看推荐关系树
- 显示三级推荐关系树结构
- 包含直推、间推、三推用户信息
- 支持农场用户信息显示
- 使用Modal弹窗展示
- ValidateReferralAction: 验证推荐关系
- 验证推荐关系有效性
- 更新状态并显示验证结果
- 提供详细的验证信息
UrsUserMappingController (用户绑定关系管理)
- SyncUserInfoAction: 同步用户信息
- 从URS系统同步用户信息到本地
- 显示更新字段和同步时间
- 只对有效映射关系可用
- ValidateMappingAction: 验证映射关系
- 验证URS用户与农场用户的映射有效性
- 更新状态并显示验证结果
- 提供详细的验证信息
3. 技术实现特点
Action类设计
- 继承自
UCore\DcatAdmin\RowActionHandler或Dcat\Admin\Grid\Tools\AbstractTool
- 实现
allowed()方法控制按钮显示条件
- 实现
handle()方法处理具体业务逻辑
- 支持确认对话框和响应消息
控制器集成
- 移除
$grid->disableActions()调用,确保操作列显示
- 在
$grid->actions()中添加自定义Action
- 为批量操作添加路由方法和注解
用户体验优化
- 提供中文操作提示和确认对话框
- 显示操作结果和详细信息
- 支持页面刷新和状态更新
- 错误处理和异常捕获
4. 修复的问题
- 移除了错误的
$grid->disableActions()调用
- 确保所有控制器的操作列正常显示
- 修复Action按钮不显示的问题
测试验证
通过浏览器测试验证了所有页面的Action按钮功能:
- ✅ URS达人等级页面 - 显示"更新等级"和"批量更新达人等级"按钮
- ✅ URS收益记录页面 - 显示"查看来源"和"重新计算"按钮
- ✅ URS推荐关系页面 - 显示"关系树"和"验证关系"按钮
- ✅ URS用户绑定关系页面 - 显示"同步信息"和"验证映射"按钮
技术要点
- 参考物品模块的Action实现模式
- 使用Dcat Admin的Action机制
- 支持行级操作和工具栏操作
- 提供丰富的用户交互体验
- 遵循模块化设计原则
后续建议
- 可以根据实际使用情况调整Action的显示条件
- 可以添加更多的批量操作功能
- 可以优化Action的响应速度和用户体验
- 可以添加操作日志记录功能