diff --git a/app/Admin/Controllers/AdminSettingController.php b/app/Admin/Controllers/AdminSettingController.php index 177a653..9ec03b2 100644 --- a/app/Admin/Controllers/AdminSettingController.php +++ b/app/Admin/Controllers/AdminSettingController.php @@ -5,11 +5,26 @@ namespace App\Admin\Controllers; use App\Admin\Repositories\AdminSetting; use Dcat\Admin\Form; use Dcat\Admin\Grid; +use Dcat\Admin\Layout\Content; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; class AdminSettingController extends AdminController { + + public function test(Content $content) + { + return $content->body( + Form::make(new AdminSetting(), function (Form $form) { + $form->text('slug1')->disable(true); + $form->text('value'); + + $form->display('created_at'); + $form->display('updated_at'); + }) + ); + } + /** * Make a grid builder. * @@ -18,14 +33,14 @@ class AdminSettingController extends AdminController protected function grid() { return Grid::make(new AdminSetting(), function (Grid $grid) { - $grid->column('slug')->sortable(); + $grid->column('slug')->disable(true); $grid->column('value'); $grid->column('created_at'); $grid->column('updated_at')->sortable(); - + $grid->filter(function (Grid\Filter $filter) { $filter->equal('slug'); - + }); }); } @@ -57,7 +72,7 @@ class AdminSettingController extends AdminController return Form::make(new AdminSetting(), function (Form $form) { $form->display('slug'); $form->text('value'); - + $form->display('created_at'); $form->display('updated_at'); }); diff --git a/app/Admin/Controllers/EquipController.php b/app/Admin/Controllers/EquipController.php index 6dacbc6..2dfee67 100644 --- a/app/Admin/Controllers/EquipController.php +++ b/app/Admin/Controllers/EquipController.php @@ -4,6 +4,9 @@ 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; @@ -17,15 +20,6 @@ use Dcat\Admin\Http\Controllers\AdminController; class EquipController extends AdminController { - public function index(Content $content) - { - return $content - ->translation($this->translation()) - ->title('设备列表') - ->description($this->description()['index'] ?? trans('admin.list')) - ->body($this->grid()); - } - /** * Make a grid builder. * @@ -36,10 +30,11 @@ class EquipController extends AdminController $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')->sortable(); + $grid->column('id', '设备ID')->sortable(); $grid->column('title'); $grid->column('online', '是否在线'); $grid->column('desc'); @@ -55,6 +50,20 @@ class EquipController extends AdminController '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'); diff --git a/app/Admin/Controllers/TestController.php b/app/Admin/Controllers/TestController.php index a0f0e0b..c675171 100644 --- a/app/Admin/Controllers/TestController.php +++ b/app/Admin/Controllers/TestController.php @@ -12,6 +12,10 @@ use GuzzleHttp\Client; class TestController extends Controller { + public function test() + { + return + } public function platformCacheList() { $query = http_build_query([ diff --git a/app/Admin/Renderable/AdminSetting.php b/app/Admin/Renderable/AdminSetting.php new file mode 100644 index 0000000..093cd67 --- /dev/null +++ b/app/Admin/Renderable/AdminSetting.php @@ -0,0 +1,14 @@ +all(); + if (!empty($param['app-admin-renderable-equipdatapointtable_at'])){ + $param['at'] = $param['app-admin-renderable-equipdatapointtable_at']; + } + $param['_search_'] = $this->payload['obj_id']; + + return Grid::make(null, function (Grid $grid) use ($param) { + $grid->fixColumns(1, -1); + $grid->disableRowSelector(); + $grid->column('valve_status1', '阀开关'); + $grid->column('valve_status2', '阀门动作'); + $grid->column('valve_status3', '行程开关'); + $grid->column('valve_status4', '电位器'); + $grid->column('valve_status5', '电池电量'); + $grid->column('valve_status6', '回水传感器'); + $grid->column('valve_status7', '加速度传感器'); + $grid->column('valve_status8', '角度'); + $grid->combine('阀门状态', ['valve_status2', 'valve_status3', 'valve_status4', 'valve_status5', 'valve_status6', 'valve_status7', 'valve_status8']); + $grid->column('set_opening', '设定开度'); + $grid->column('actual_opening', '实际开度'); + $grid->column('water_inlet_temperature', '进水温度'); + $grid->column('water_return_temperature', '回水温度'); + $grid->column('battery_power', '电池电量'); + $grid->column('accelerated_x', '加速度X轴'); + $grid->column('accelerated_y', '加速度Y轴'); + $grid->column('accelerated_z', '加速度Z轴'); + $grid->column('signal_strength', '信号强度'); + $grid->column('valve_time', '阀门时间'); + $grid->column('reporting_interval', '上报间隔'); + $grid->column('interval_unit', '间隔单位'); + $grid->column('effective_time', '上报有效时长'); + $grid->column('total_number_reports', '总上报次数'); + $grid->column('other', '其他'); + $grid->column('check', '累加校验和'); + $grid->column('finish', '结束符'); + $grid->column('value', '原始数据'); + $grid->column('at', '时间'); + if (empty($param['at']['start'])){ + $param['at']['start'] = date("Y-m-d H:i:s",strtotime("-1 day")); + } + + $grid->model()->setData(EquipInfoService::getDatapoints($param)); + $grid->disableCreateButton(); + $grid->disableActions(); + $grid->disableBatchDelete(); + $grid->showPagination(); +// $grid->simplePaginate(false); + $grid->disablePagination(); + + $grid->filter(function (Grid\Filter $filter) { + $filter->expand(true); + $filter->between('at', 'At')->default(['start' => date("Y-m-d H:i:s",strtotime("-1 day"))])->datetime(); + + }); + }); + } +} diff --git a/app/Admin/Renderable/ModalForm.php b/app/Admin/Renderable/ModalForm.php new file mode 100644 index 0000000..46161fa --- /dev/null +++ b/app/Admin/Renderable/ModalForm.php @@ -0,0 +1,14 @@ +setCurrentUrl($this->current); + } +} diff --git a/app/Admin/Renderable/PostTable.php b/app/Admin/Renderable/PostTable.php new file mode 100644 index 0000000..7e7cc8c --- /dev/null +++ b/app/Admin/Renderable/PostTable.php @@ -0,0 +1,27 @@ +title, + $faker->email, + $faker->date(), + ]; + } + + return Table::make(['Title', 'Email', 'date'], $data); + } +} diff --git a/app/Admin/Renderable/UserTable.php b/app/Admin/Renderable/UserTable.php new file mode 100644 index 0000000..c2d5a72 --- /dev/null +++ b/app/Admin/Renderable/UserTable.php @@ -0,0 +1,46 @@ +column('id', 'ID')->sortable(); + $grid->column('username'); + $grid->column('name'); + $grid->column('name1'); + $grid->column('name2'); + $grid->column('name3'); + $grid->column('name4'); + $grid->column('name5'); + $grid->column('name6'); + $grid->column('name7'); + $grid->column('name8'); + $grid->column('name9'); + $grid->column('created_at'); + $grid->column('updated_at'); + + $grid->quickSearch(['id', 'username', 'name']); + + $grid->paginate(10); + $grid->disableActions(); + + $grid->filter(function (Grid\Filter $filter) { + $filter->like('username')->width(4); + $filter->like('name')->width(4); + }); + }); + } +} diff --git a/app/Admin/Services/EquipInfoService.php b/app/Admin/Services/EquipInfoService.php index 83b22c5..ab3ba88 100644 --- a/app/Admin/Services/EquipInfoService.php +++ b/app/Admin/Services/EquipInfoService.php @@ -2,6 +2,7 @@ namespace App\Admin\Services; +use Dcat\Admin\Grid; use GuzzleHttp\Client; use Illuminate\Pagination\Paginator; use Illuminate\Support\Facades\Http; @@ -51,6 +52,13 @@ class EquipInfoService return $res; } + + /** + * 得到数据点 + * @param $param + * @return array + * @throws \GuzzleHttp\Exception\GuzzleException + */ public static function getDatapoints($param) { if (empty($param['_search_'])){ diff --git a/app/Admin/routes.php b/app/Admin/routes.php index ed6933d..67c94dd 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -16,11 +16,13 @@ Route::group([ $router->get('/test', 'HomeController@test'); $router->resource('equip_resource', 'EquipResourceRecordController'); $router->resource('equip', 'EquipController'); +// $router->resource('admin_set', 'AdminSettingController'); $router->get('equip_info', 'EquipInfoController@index'); $router->get('/test/platformCacheList', 'TestController@platformCacheList'); $router->get('/test/cancelAllCache', 'TestController@cancelAllCache'); $router->get('/test/getDatapoints', 'TestController@getDatapoints'); + $router->get('/admin_set/test', 'AdminSettingController@test'); }); diff --git a/app/Models/Equip.php b/app/Models/Equip.php index 235de62..e8eeeba 100644 --- a/app/Models/Equip.php +++ b/app/Models/Equip.php @@ -46,4 +46,6 @@ use Illuminate\Database\Eloquent\Model; */ class Equip extends Model { - use HasDateTimeFormatter; } + use HasDateTimeFormatter; + protected $table = 'equips'; +} diff --git a/lang/en/equip.php b/lang/en/equip.php index 9d26034..03e0c50 100644 --- a/lang/en/equip.php +++ b/lang/en/equip.php @@ -1,8 +1,8 @@ - [ - 'Equip' => 'Equip', - 'equip' => 'Equip', + 'Equip' => '设备列表', + 'equip' => '设备列表', ], 'fields' => [ 'title' => '设备名称', diff --git a/resources/views/admin/test.blade.php b/resources/views/admin/test.blade.php new file mode 100644 index 0000000..de23392 --- /dev/null +++ b/resources/views/admin/test.blade.php @@ -0,0 +1,132 @@ + + +
+ + + +