123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- namespace App\Admin\Controllers;
- use App\Http\Controllers\Controller;
- use App\Model\User;
- use App\Model\Menu;
- use Encore\Admin\Form;
- use Encore\Admin\Grid;
- use Encore\Admin\Facades\Admin;
- use Encore\Admin\Layout\Content;
- use Encore\Admin\Controllers\ModelForm;
- use function Clue\StreamFilter\fun;
- class UserController extends Controller
- {
- use ModelForm;
- public function index()
- {
- return Admin::content(function (Content $content) {
- $content->header('用户信息');
- $content->description('列表');
- $content->body($this->grid());
- });
- }
- public function create()
- {
- return Admin::content(function (Content $content) {
- $content->header('用户信息');
- $content->description('新增');
- $content->body($this->form());
- });
- }
- public function edit($id)
- {
- return Admin::content(function (Content $content) use ($id) {
- $content->header('用户信息');
- $content->description('列表');
- $content->body($this->form($id)->edit($id));
- });
- }
- protected function form($id = '')
- {
- return Admin::form(User::class, function (Form $form) use ($id) {
- $form->display( 'uid' , 'Uid');
- $form->text( 'company_name' , '单位名称')->required();
- $form->text( 'department' , '部门')->required();
- $form->text( 'username' , '用户名')->required();
- $form->text( 'phone' , '手机号')->rules('required|min:11');
- $form->email( 'email' , '邮箱')->required();
- $form->password('password' , '密码')->rules('required|min:6');
- $form->select( 'status' , '账号状态')->options([1 => '正常' , 2 => '冻结' , 3 => '待审核'])->required();
- $form->multipleSelect('privilege_menu' , '权限菜单')->options(Menu::all()->pluck('menu_name' ,'id'));
- // $form->number( 'chatgpt_num' , 'chatgpt使用次数');
- $form->hidden( 'create_time');
- $form->saving(function (Form $form) {
- if(strlen($form->password) != 32) {
- $form->password = md5(sha1($form->password));
- $form->create_time = time();
- }
- });
- });
- }
- // Grid
- protected function grid()
- {
- return Admin::grid(User::class, function (Grid $grid) {
- $grid->uid('编号')->sortable();
- $grid->model()->orderBy('uid','desc');
- $grid->company_name('单位名称');
- $grid->department('部门');
- $grid->username('用户名');
- $grid->phone('手机号');
- $grid->email('邮箱');
- $grid->create_time('创建时间')->display(function ($create_time) {
- return date('Y-m-d H:i:s' , $create_time);
- });
- $grid->status('账号状态')->display(function ($status){
- if(1 == $status) {
- return "<span class='btn btn-success'>正常</span>";
- }
- if(2 == $status) {
- return "<span class='btn btn-danger'>冻结</span>";
- }
- if(3 == $status) {
- return "<span class='btn btn-primary'>待审核</span>";
- }
- return '---';
- });
- $grid->user_tag('用户标识')->display(function ($user_tag){
- if(1 == $user_tag) {
- return "菁苗";
- }
- if(2 == $user_tag) {
- return "chatGpt";
- }
- return '---';
- });
- // $grid->chatgpt_num('chatgpt可使用次数');
- $grid->privilege_menu('可查看菜单');
- // 禁用导出数据按钮
- $grid->actions(function ($actions) {
- $actions->disableView();
- //$actions->disableEdit();
- });
- $grid->filter(function($filter){
- // 去掉默认的id过滤器
- $filter->disableIdFilter();
- // 在这里添加字段过滤器
- $filter->equal('phone' , '输入手机号');
- $filter->like('company_name' , '输入公司关键字');
- $filter->equal('status' , '账号状态')->select([1 => '正常' , 2 => '冻结' , 3 => '待审核']);
- });
- });
- }
- }
|