Action.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 海豚PHP框架 [ DolphinPHP ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2016~2019 广东卓锐软件有限公司 [ http://www.zrthink.com ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://dolphinphp.com
  8. // +----------------------------------------------------------------------
  9. namespace app\admin\controller;
  10. use app\common\builder\ZBuilder;
  11. use app\admin\model\Action as ActionModel;
  12. use app\admin\model\Module as ModuleModel;
  13. /**
  14. * 行为管理控制器
  15. * @package app\admin\controller
  16. */
  17. class Action extends Admin
  18. {
  19. /**
  20. * 首页
  21. * @author 蔡伟明 <314013107@qq.com>
  22. * @return mixed
  23. * @throws \think\Exception
  24. * @throws \think\exception\DbException
  25. */
  26. public function index()
  27. {
  28. // 查询
  29. $map = $this->getMap();
  30. // 数据列表
  31. $data_list = ActionModel::where($map)->order('id desc')->paginate();
  32. // 所有模块的名称和标题
  33. $list_module = ModuleModel::getModule();
  34. // 新增或编辑页面的字段
  35. $fields = [
  36. ['hidden', 'id'],
  37. ['select', 'module', '所属模块', '', $list_module],
  38. ['text', 'name', '行为标识', '由英文字母和下划线组成'],
  39. ['text', 'title', '行为名称', ''],
  40. ['textarea', 'remark', '行为描述'],
  41. ['textarea', 'rule', '行为规则', '不写则只记录日志'],
  42. ['textarea', 'log', '日志规则', '记录日志备注时按此规则来生成,支持[变量|函数]。目前变量有:user,time,model,record,data,details'],
  43. ['radio', 'status', '立即启用', '', ['否', '是'], 1]
  44. ];
  45. // 使用ZBuilder快速创建数据表格
  46. return ZBuilder::make('table')
  47. ->setPageTitle('行为管理') // 设置页面标题
  48. ->setSearch(['name' => '标识', 'title' => '名称']) // 设置搜索框
  49. ->addColumns([ // 批量添加数据列
  50. ['id', 'ID'],
  51. ['name', '标识'],
  52. ['title', '名称'],
  53. ['remark', '描述'],
  54. ['module', '所属模块', 'callback', function($module, $list_module){
  55. return isset($list_module[$module]) ? $list_module[$module] : '未知';
  56. }, $list_module],
  57. ['status', '状态', 'switch'],
  58. ['right_button', '操作', 'btn']
  59. ])
  60. ->autoAdd($fields, '', true, true) // 添加自动新增按钮
  61. ->autoEdit($fields, '', true, true) // 添加自动编辑按钮
  62. ->addTopButtons('enable,disable,delete') // 批量添加顶部按钮
  63. ->addRightButtons('delete') // 批量添加右侧按钮
  64. ->addFilter('module', $list_module)
  65. ->setRowList($data_list) // 设置表格数据
  66. ->fetch(); // 渲染模板
  67. }
  68. }