海工商新版后台
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

<?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>&nbsp;&nbsp;&nbsp;&nbsp;')
->body(FollowAdminShowForm::make()->payload(['user_id' => $actions->row['id']])));
});
});
}
}