You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.6 KiB
66 lines
2.6 KiB
<?php |
|
|
|
namespace App\Admin\Controllers; |
|
|
|
use App\Admin\Actions\Form\Follow\FollowAdminShowForm; |
|
use App\Models\AdminFollowShow; |
|
use App\Models\SecondaryCollege; |
|
use App\Models\Speciality; |
|
use Dcat\Admin\Grid; |
|
use Dcat\Admin\Http\Controllers\AdminController; |
|
use Dcat\Admin\Http\Repositories\Administrator; |
|
use Dcat\Admin\Widgets\Modal; |
|
|
|
class AdminFollowShowController extends AdminController |
|
{ |
|
public $title = '数据分配'; |
|
|
|
protected function grid(): Grid |
|
{ |
|
return Grid::make(new Administrator(), function (Grid $grid) { |
|
$grid->column('id')->sortable(); |
|
$grid->column('username'); |
|
$grid->column('name'); |
|
$grid->column('roles')->pluck('name')->label('primary', 3); |
|
$grid->column('展示的数据')->display(function () { |
|
$info = AdminFollowShow::query()->where(['user_id' => $this['id']])->first(); |
|
if (!$info) { |
|
return ""; |
|
} else if ($info['type'] == '1') { |
|
return SecondaryCollege::query()->whereIn('id', $info['secondary_college_id'])->pluck("name", "id")->toArray(); |
|
} else if ($info['type'] == '2') { |
|
$list = Speciality::query()->whereIn('id', $info['speciality_id'])->get()->toArray(); |
|
if (empty($list)) { |
|
return []; |
|
} |
|
$select = []; |
|
foreach ($list as $item) { |
|
$college = SecondaryCollege::query()->where("id", $item["secondary_college_id"])->first(); |
|
$select[$item["id"]] = $item["speciality_name"] . "({$college->name})"; |
|
} |
|
|
|
return $select; |
|
} |
|
})->label('primary'); |
|
|
|
$grid->filter(function (Grid\Filter $filter) { |
|
$filter->panel(); |
|
$filter->expand(); |
|
$filter->equal('username')->width(2); |
|
$filter->equal('name')->width(2); |
|
}); |
|
$grid->disableCreateButton(); |
|
$grid->disableViewButton(); |
|
$grid->disableEditButton(); |
|
$grid->disableDeleteButton(); |
|
|
|
$grid->actions(function (Grid\Displayers\Actions $actions) { |
|
$actions->append(Modal::make() |
|
->xl() |
|
->title('绑定数据') |
|
->button('<i class="feather icon-plus btn-sm"> 绑定数据</i> ') |
|
->body(FollowAdminShowForm::make()->payload(['user_id' => $actions->row['id']]))); |
|
}); |
|
}); |
|
} |
|
}
|
|
|