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') ]) ); } }