From e15ea3e8c70eaf27a93ed38d02089baa423a2f8c Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Fri, 19 May 2023 10:56:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A2=84=E8=AD=A6=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/WarningSettingController.php | 25 +++++++++++++++---- app/Admin/routes.php | 1 + database/seeders/SettingSeeder.php | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/Admin/Controllers/WarningSettingController.php b/app/Admin/Controllers/WarningSettingController.php index 857c1a0..bb11046 100644 --- a/app/Admin/Controllers/WarningSettingController.php +++ b/app/Admin/Controllers/WarningSettingController.php @@ -43,11 +43,13 @@ class WarningSettingController extends AdminController ]); } - public function modeForm($type) + private function modeForm($type) { - //获取当前已设置警报内容 + $formData = $formBody = $fields = []; - $formBody = $fields = []; + //获取当前已设置警报内容 + $data = settings()->get('mode_warning_'.$type); + $data && $formData = $data; foreach(MonitorMode::fieldMap($type) as $field => $fieldName){ $fields[] = [ 'label' => $fieldName, 'type'=>'number','step'=>'0.01','name'=>$field, @@ -56,15 +58,28 @@ class WarningSettingController extends AdminController } foreach(WarningNotice::lvMap() as $lv => $lvName){ - $formData[str($lv).'.conjunction'] = 'or'; + if(!isset($formData[str($lv).'.conjunction'] )){ + $formData[str($lv).'.conjunction'] = 'or'; + } $formBody[] = amisMake()->ConditionBuilderControl(str($lv), $lvName)->fields( $fields); } return \amisMake()->Form() ->data($formData) + ->api(admin_url('warning-setting-save')) ->title('')->body(array_merge($formBody, [ - amisMake()->TextControl('type', '类别')->value($type)->hidden(true), + amisMake()->TextControl('type', '类别')->value('mode_warning_'.$type)->hidden(true), amis('submit')->label(__('admin.save'))->level('primary') ]) ); } + + public function saveSettingConfig(Request $request){ + $data = $request->input(); + $key = $data['type'] ?? ''; + if($key){ + unset($data['type']); + return settings()->set($key, $data); + } + return false; + } } \ No newline at end of file diff --git a/app/Admin/routes.php b/app/Admin/routes.php index aee12e0..20c950f 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -48,6 +48,7 @@ Route::group([ //设备预警 $router->get('warning-setting', '\App\Admin\Controllers\WarningSettingController@settingIndex'); + $router->post('warning-setting-save', '\App\Admin\Controllers\WarningSettingController@saveSettingConfig'); $router->get('warning-notice', '\App\Admin\Controllers\WarningNoticeController@index'); //监测点位 diff --git a/database/seeders/SettingSeeder.php b/database/seeders/SettingSeeder.php index 815ab21..a81993f 100644 --- a/database/seeders/SettingSeeder.php +++ b/database/seeders/SettingSeeder.php @@ -16,7 +16,7 @@ class SettingSeeder extends Seeder public function run() { $settings = [ - ['key' => 'rtsp_url', 'values' => json_encode('ws://117.176.117.148:8100/rtsp?url=')] + ['key' => 'rtsp_url', 'values' => json_encode('ws://117.176.117.148:8100/rtsp?url=')], ]; AdminSetting::truncate(); AdminSetting::insert($settings);