UserController.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Model\User;
  5. use App\Model\Menu;
  6. use Encore\Admin\Form;
  7. use Encore\Admin\Grid;
  8. use Encore\Admin\Facades\Admin;
  9. use Encore\Admin\Layout\Content;
  10. use Encore\Admin\Controllers\ModelForm;
  11. use function Clue\StreamFilter\fun;
  12. class UserController extends Controller
  13. {
  14. use ModelForm;
  15. public function index()
  16. {
  17. return Admin::content(function (Content $content) {
  18. $content->header('用户信息');
  19. $content->description('列表');
  20. $content->body($this->grid());
  21. });
  22. }
  23. public function create()
  24. {
  25. return Admin::content(function (Content $content) {
  26. $content->header('用户信息');
  27. $content->description('新增');
  28. $content->body($this->form());
  29. });
  30. }
  31. public function edit($id)
  32. {
  33. return Admin::content(function (Content $content) use ($id) {
  34. $content->header('用户信息');
  35. $content->description('列表');
  36. $content->body($this->form($id)->edit($id));
  37. });
  38. }
  39. protected function form($id = '')
  40. {
  41. return Admin::form(User::class, function (Form $form) use ($id) {
  42. $form->display( 'uid' , 'Uid');
  43. $form->text( 'company_name' , '单位名称')->required();
  44. $form->text( 'department' , '部门')->required();
  45. $form->text( 'username' , '用户名')->required();
  46. $form->text( 'phone' , '手机号')->rules('required|min:11');
  47. $form->email( 'email' , '邮箱')->required();
  48. $form->password('password' , '密码')->rules('required|min:6');
  49. $form->select( 'status' , '账号状态')->options([1 => '正常' , 2 => '冻结' , 3 => '待审核'])->required();
  50. $form->multipleSelect('privilege_menu' , '权限菜单')->options(Menu::all()->pluck('menu_name' ,'id'));
  51. // $form->number( 'chatgpt_num' , 'chatgpt使用次数');
  52. $form->hidden( 'create_time');
  53. $form->saving(function (Form $form) {
  54. if(strlen($form->password) != 32) {
  55. $form->password = md5(sha1($form->password));
  56. $form->create_time = time();
  57. }
  58. });
  59. });
  60. }
  61. // Grid
  62. protected function grid()
  63. {
  64. return Admin::grid(User::class, function (Grid $grid) {
  65. $grid->uid('编号')->sortable();
  66. $grid->model()->orderBy('uid','desc');
  67. $grid->company_name('单位名称');
  68. $grid->department('部门');
  69. $grid->username('用户名');
  70. $grid->phone('手机号');
  71. $grid->email('邮箱');
  72. $grid->create_time('创建时间')->display(function ($create_time) {
  73. return date('Y-m-d H:i:s' , $create_time);
  74. });
  75. $grid->status('账号状态')->display(function ($status){
  76. if(1 == $status) {
  77. return "<span class='btn btn-success'>正常</span>";
  78. }
  79. if(2 == $status) {
  80. return "<span class='btn btn-danger'>冻结</span>";
  81. }
  82. if(3 == $status) {
  83. return "<span class='btn btn-primary'>待审核</span>";
  84. }
  85. return '---';
  86. });
  87. $grid->user_tag('用户标识')->display(function ($user_tag){
  88. if(1 == $user_tag) {
  89. return "菁苗";
  90. }
  91. if(2 == $user_tag) {
  92. return "chatGpt";
  93. }
  94. return '---';
  95. });
  96. // $grid->chatgpt_num('chatgpt可使用次数');
  97. $grid->privilege_menu('可查看菜单');
  98. // 禁用导出数据按钮
  99. $grid->actions(function ($actions) {
  100. $actions->disableView();
  101. //$actions->disableEdit();
  102. });
  103. $grid->filter(function($filter){
  104. // 去掉默认的id过滤器
  105. $filter->disableIdFilter();
  106. // 在这里添加字段过滤器
  107. $filter->equal('phone' , '输入手机号');
  108. $filter->like('company_name' , '输入公司关键字');
  109. $filter->equal('status' , '账号状态')->select([1 => '正常' , 2 => '冻结' , 3 => '待审核']);
  110. });
  111. });
  112. }
  113. }