123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- namespace App\Admin\Controllers;
- use App\Admin\Actions\Users\UserCourse;
- use App\Models\Course;
- use App\Models\CourseUser;
- use App\Models\User;
- use App\Services\Api\UserService;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Http\Controllers\AdminController;
- use Dcat\Admin\Show;
- class CourseUserController extends AdminController
- {
- /**
- * Make a grid builder.
- *
- * @return Grid
- */
- protected function grid()
- {
- $grid = new Grid(new CourseUser());
- $grid->model()->with(['user:id,name,avatar', 'course:id,name'])->orderByDesc('id');
- $grid->column('id')->sortable();
- $grid->column('user_id')->display(function () {
- if ($this->user) {
- $str = "";
- $str .= "<div style='margin-right:10px;display: flex;align-items: center'>";
- $str .= '<img data-action="preview-img" src="' . $this->user->avatar . '" style="max-width:50px;max-height:50px;cursor:pointer;margin-right:5px;" class="img img-thumbnail">';
- $str .= '<div>';
- $str .= '<p style="margin-bottom: 2px">ID:' . $this->user->id . '</p>';
- $str .= '<p>' . trans('user.fields.name') . ':' . $this->user->name . '</p>';
- $str .= "</div>";
- $str .= "</div>";
- return $str;
- } else {
- return '';
- }
- });
- $grid->column('course.name', trans('course-user.fields.course_id'));
- $grid->column('member_name');
- $grid->column('member_no');
- $grid->column('whs');
- $grid->column('type')->using([
- 1 => trans('course-user.fields.home'),
- 2 => trans('course-user.fields.vice')])->label(['', 'green', 'blue']);
- $grid->column('status')->using([
- 0 => trans('course-user.fields.check_pending'),
- 1 => trans('course-user.fields.pass'),
- 2 => trans('course-user.fields.refuse')])->label(['yellow', 'green', 'danger']);
- $grid->column('created_at');
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->equal('id')->width(3);
- $filter->like('user.name')->width(3);
- $filter->like('course.name')->width(3);
- });
- //操作管理
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableView();
- $actions->disableEdit();
- if ($actions->row->status == 0) {
- $actions->append(new UserCourse());
- }
- });
- return $grid;
- }
- /**
- * Make a form builder.
- * @return Form
- */
- protected function form()
- {
- return Form::make(new CourseUser(), function (Form $form) {
- $form->display('id');
- $form->select('course_id')->options(function () {
- return Course::query()->whereNull('deleted_at')->orderBy('id')->pluck('name', 'id');
- })->width(6)->required();
- $form->select('user_id')->options(function () {
- return User::query()->whereNull('deleted_at')->orderBy('id')->pluck('name', 'id');
- })->width(6)->required();
- $form->radio('type')->options([
- 1 => trans('course-user.fields.home'),
- 2 => trans('course-user.fields.vice')])->default(2)->width(6)->required();
- $form->text('member_name')->width(6)->required();
- $form->text('member_no')->width(6)->required();
- $form->text('whs')->width(6)->required();
- $form->hidden('action_from')->value(2); //后台添加
- $form->hidden('status')->value(1); //后台添加的直接通过
- $form->saving(function (Form $form) {
- if ($form->type == 1) {
- CourseUser::where('user_id', $form->user_id)->update(['type' => 2]);
- }
- });
- $form->saved(function (Form $form) {
- if ($form->isCreating()) {
- info($form->user_id);
- UserService::changeIntegral($form->user_id, 4); //赠送积分
- }
- });
- $form->footer(function ($footer) {
- // 去掉`查看`checkbox
- $footer->disableViewCheck();
- // 去掉`继续编辑`checkbox
- $footer->disableEditingCheck();
- // 去掉`继续创建`checkbox
- $footer->disableCreatingCheck();
- });
- });
- }
- }
|