1
0
Fork 0

处理其他设备数据显示

develop
vine_liutk 2023-03-24 20:12:53 +08:00
parent 7ef12f611e
commit 75adf7f1c8
4 changed files with 352 additions and 11 deletions

View File

@ -66,17 +66,17 @@ class CustomRegionController extends AdminController
[//有气象设备才有 [//有气象设备才有
'title' => '气象数据', 'title' => '气象数据',
'value' => 'qixiang', 'value' => 'qixiang',
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?type=qixiang')) 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-meteorological?id='.$region['id']))
], ],
[//有水质设备才有 [//有水质设备才有
'title' => '水质数据', 'title' => '水质数据',
'value' => 'shuizi', 'value' => 'shuizi',
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?type=shuizi')) 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-water?id='.$region['id']))
], ],
[//有土壤设备才有 [//有土壤设备才有
'title' => '土壤数据', 'title' => '土壤数据',
'value' => 'turang', 'value' => 'turang',
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?type=turang')) 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-soil?id='.$region['id']))
], ],
[//有通风设备才有 [//有通风设备才有
'title' => '通风设备', 'title' => '通风设备',

View File

@ -84,14 +84,14 @@ class DeviceController extends AdminController
], ],
] ]
]) ])
// ->filter([ ->filter([
// 'title' => '指定位置', 'title' => '搜索条件',
// 'body' => [ 'body' => [
// \amisMake()->TableControl()->name('name')->label('点位名称')->size('sm')->actions([ \amisMake()->TextControl()->name('name')->label('点位名称')->size('sm'),
// ["type"=> "submit","level"=> "primary","label"=> "查询"] amis('submit')->label(__('admin.search'))->level('primary'),
// ]) ]
// ] ])
// ]) ->actions([])
->itemClassName('col-sm-4') ->itemClassName('col-sm-4')
->card([ ->card([
'header' => [], 'header' => [],
@ -100,4 +100,326 @@ class DeviceController extends AdminController
->src('${src}') ->src('${src}')
]); ]);
} }
/**
* 气象图表
*/
public function meteorologicalChart(){
$randArr = function () {
$_arr = [];
for ($i = 0; $i < 7; $i++) {
$_arr[] = random_int(10, 200);
}
return '[' . implode(',', $_arr) . ']';
};
$random1 = $randArr();
$random2 = $randArr();
return $this->basePage()->title('')->body([
\amisMake()->grid()->columns([
\amisMake()->Form()->title('搜索条件')->mode('inline')->body([
\amisMake()->TextControl()->label('设备名称'),
\amisMake()->DateRangeControl()->label('时间范围'),
amis('submit')->label(__('admin.search'))->level('primary'),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '空气温度', subtext: '℃'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'空气温度', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '空气湿度', subtext: '%RH'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '空气湿度', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '光照强度LUX', },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: '光照强度LUX', },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '空气温度', subtext: '℃'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'空气温度', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '空气湿度', subtext: '%RH'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '空气湿度', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '光照强度LUX', },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: '光照强度LUX', },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
]),
]),
]);
}
/**
* 水质图表
*/
public function waterChart(){
$randArr = function () {
$_arr = [];
for ($i = 0; $i < 7; $i++) {
$_arr[] = random_int(10, 200);
}
return '[' . implode(',', $_arr) . ']';
};
$random1 = $randArr();
$random2 = $randArr();
return $this->basePage()->title('')->body([
\amisMake()->grid()->columns([
\amisMake()->Form()->title('搜索条件')->mode('inline')->body([
\amisMake()->TextControl()->label('设备名称'),
\amisMake()->DateRangeControl()->label('时间范围'),
amis('submit')->label(__('admin.search'))->level('primary'),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '氯', subtext: 'mg/L'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'氯', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '电导率', subtext: 'us/cm'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '电导率', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '氧气', subtext: 'mg/L'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: 'PH'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '温度', subtext: '℃'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'温度', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: '浊度', subtext: 'NTU'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '空气湿度', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
)
]),
]),
]);
}
/**
* 土壤图表
*/
public function soilChart(){
$randArr = function () {
$_arr = [];
for ($i = 0; $i < 7; $i++) {
$_arr[] = random_int(10, 200);
}
return '[' . implode(',', $_arr) . ']';
};
$random1 = $randArr();
$random2 = $randArr();
return $this->basePage()->title('')->body([
\amisMake()->grid()->columns([
\amisMake()->Form()->title('搜索条件')->mode('inline')->body([
\amisMake()->TextControl()->label('设备名称'),
\amisMake()->DateRangeControl()->label('时间范围'),
amis('submit')->label(__('admin.search'))->level('primary'),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '氯', subtext: 'mg/L'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'氯', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '电导率', subtext: 'us/cm'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '电导率', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '氧气', subtext: 'mg/L'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: 'PH'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '光照强度LUX', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
]),
]),
\amisMake()->grid()->columns([
amisMake()->Flex()->items([
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '温度', subtext: '℃'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'温度', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
amisMake()->Card()->body(
amisMake()->Chart()->config("{
title:{ text: '浊度', subtext: 'NTU'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name: '空气湿度', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
)
]),
]),
]);
}
} }

View File

@ -41,7 +41,18 @@ Route::group([
//特殊菜单 //特殊菜单
$router->get('custom-region/{type}', '\App\Admin\Controllers\CustomRegionController@regionIndex'); $router->get('custom-region/{type}', '\App\Admin\Controllers\CustomRegionController@regionIndex');
$router->post('custom-region-detail', '\App\Admin\Controllers\CustomRegionController@regionDetail'); $router->post('custom-region-detail', '\App\Admin\Controllers\CustomRegionController@regionDetail');
$router->get('custom-region-monitor', '\App\Admin\Controllers\DeviceController@monitorList');
$router->post('custom-region-monitor', '\App\Admin\Controllers\DeviceController@monitorList'); $router->post('custom-region-monitor', '\App\Admin\Controllers\DeviceController@monitorList');
$router->get('custom-region-meteorological', '\App\Admin\Controllers\DeviceController@meteorologicalChart');
$router->post('custom-region-meteorological', '\App\Admin\Controllers\DeviceController@meteorologicalChart');
$router->get('custom-region-water', '\App\Admin\Controllers\DeviceController@waterChart');
$router->post('custom-region-water', '\App\Admin\Controllers\DeviceController@waterChart');
$router->get('custom-region-soil', '\App\Admin\Controllers\DeviceController@soilChart');
$router->post('custom-region-soil', '\App\Admin\Controllers\DeviceController@soilChart');
$router->resource('system/settings', \App\Admin\Controllers\SettingController::class); $router->resource('system/settings', \App\Admin\Controllers\SettingController::class);
}); });

View File

@ -50,6 +50,14 @@ class AdminMenuSeeder extends Seeder
], ],
['title' => '设备管理', 'icon' => 'icon-park:devices', 'url' => '/devices'], ['title' => '设备管理', 'icon' => 'icon-park:devices', 'url' => '/devices'],
['title' => '设备数据', 'icon' => 'icon-park:data-switching', 'url' => '',
'children' => [
['title' => '视频监控', 'icon'=>'icon-park:videocamera', 'url'=> '/custom-region-monitor'],
['title' => '气象数据', 'icon'=>'icon-park:brightness', 'url'=> '/custom-region-meteorological'],
['title' => '土壤数据', 'icon'=>'icon-park:floor-tile', 'url'=> '/custom-region-water'],
['title' => '水质数据', 'icon'=>'icon-park:diving-bottle', 'url'=> '/custom-region-soil'],
]
],
['title' => '友情链接', 'icon' => 'icon-park:copy-link', 'url' => '/friend-links'], ['title' => '友情链接', 'icon' => 'icon-park:copy-link', 'url' => '/friend-links'],
['title' => '系统管理', 'icon' => 'icon-park:setting', 'url' => '/system', ['title' => '系统管理', 'icon' => 'icon-park:setting', 'url' => '/system',
'children' => [ 'children' => [