70 lines
2.2 KiB
PHP
70 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Models\Device;
|
|
use App\Models\MonitorMode;
|
|
use App\Models\WarningNotice;
|
|
use Illuminate\Http\Request;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
|
|
class WarningSettingController extends AdminController
|
|
{
|
|
public function settingIndex(){
|
|
$page = $this->basePage()->body([
|
|
amisMake()->Card()->className('border-0')->body([
|
|
$this->settingForm()
|
|
]),
|
|
]);
|
|
|
|
return $this->response()->success($page);
|
|
}
|
|
|
|
private function settingForm(){
|
|
return \amisMake()->Tabs()->name('detailTab')->tabs([
|
|
[
|
|
'title' => '气象预警',
|
|
'value' => 'meteorological',
|
|
'tab'=>$this->modeForm(MonitorMode::TYPE_METEOROLOGICAL),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
// [
|
|
// 'title' => '水质预警',
|
|
// 'value' => 'detail',
|
|
// 'tab'=>'',
|
|
// 'unmountOnExit' => true//每次切换tab都要销毁
|
|
// ],
|
|
[
|
|
'title' => '土壤预警',
|
|
'value' => 'detail',
|
|
'tab'=>$this->modeForm(MonitorMode::TYPE_SOIL),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
]);
|
|
}
|
|
|
|
public function modeForm($type)
|
|
{
|
|
//获取当前已设置警报内容
|
|
|
|
$formBody = $fields = [];
|
|
foreach(MonitorMode::fieldMap($type) as $field => $fieldName){
|
|
$fields[] = [
|
|
'label' => $fieldName, 'type'=>'number','step'=>'0.01','name'=>$field,
|
|
'operators'=> ['between']
|
|
];
|
|
}
|
|
|
|
foreach(WarningNotice::lvMap() as $lv => $lvName){
|
|
$formData[str($lv).'.conjunction'] = 'or';
|
|
$formBody[] = amisMake()->ConditionBuilderControl(str($lv), $lvName)->fields( $fields);
|
|
}
|
|
return \amisMake()->Form()
|
|
->data($formData)
|
|
->title('')->body(array_merge($formBody, [
|
|
amisMake()->TextControl('type', '类别')->value($type)->hidden(true),
|
|
amis('submit')->label(__('admin.save'))->level('primary')
|
|
])
|
|
);
|
|
}
|
|
} |