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.
 
 

140 lines
4.4 KiB

<?php
namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\CloneEquipResourceRecordAction;
use App\Admin\Forms\EquipCacheForm;
use App\Admin\Renderable\EquipDatapointTable;
use App\Admin\Renderable\PostTable;
use App\Admin\Renderable\UserTable;
use App\Admin\Renders\EquipResourceRecordRender;
use App\Admin\Repositories\AdminSetting;
use App\Admin\Repositories\Equip;
use App\Admin\Services\AdminSettingService;
use App\Admin\Services\EquipInfoService;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class EquipController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$api_key = AdminSettingService::getConfig('onenet_api_key');
return Grid::make(null, function (Grid $grid) use ($api_key) {
$grid->disableCreateButton();
$grid->quickSearch()->placeholder('设备ID');
$param = request()->all();
$grid->column('id', '设备ID')->sortable();
$grid->column('title');
$grid->column('online', '是否在线');
$grid->column('desc');
$grid->column('缓存命令')->display('写设备资源')->modal(function (Grid\Displayers\Modal $modal) use ($api_key) {
// 标题
$modal->title('缓存命令-写设备资源');
// 自定义图标
$modal->icon('feather icon-edit');
// 传递当前行字段值
return EquipCacheForm::make()->payload([
'imei' => key($this->auth_info),
'obj_id' => $this->id,
'api_key' => $api_key,
]);
});
// $grid->column('设备数据点')->display('设备数据点')
// ->modal('设备数据点', UserTable::make());
$grid->column('设备数据点')->display('设备数据点')
->modal(function (Grid\Displayers\Modal $modal) use ($api_key) {
// 标题
$modal->title('缓存命令-写设备资源');
// 自定义图标
$modal->icon('feather icon-edit');
// 传递当前行字段值
return EquipDatapointTable::make()->payload([
'obj_id' => $this->id,
]);
});
$grid->column('tags');
$grid->column('protocol');
$grid->column('location');
$grid->column('auth_info');
$grid->column('other');
$grid->column('create_time', '设备创建时间');
$grid->disableActions();
$grid->model()->setData(EquipInfoService::getInfos($param));
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Equip(), function (Show $show) {
$show->field('id');
$show->field('title');
$show->field('desc');
$show->field('tags');
$show->field('protocol');
$show->field('location');
$show->field('private');
$show->field('auth_info');
$show->field('auth');
$show->field('obsv');
$show->field('other');
$show->field('chip');
$show->field('psk');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Equip(), function (Form $form) {
$form->display('id');
$form->text('title');
$form->text('desc');
$form->text('tags');
$form->text('protocol');
$form->text('location');
$form->text('private');
$form->text('auth_info');
$form->text('auth');
$form->text('obsv');
$form->text('other');
$form->text('chip');
$form->text('psk');
$form->display('created_at');
$form->display('updated_at');
});
}
}