1
0
Fork 0
internet-everythings-agricu.../app/Admin/Controllers/WarningSettingController.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')
])
);
}
}