pageTitle = '育秧列表'; $categoryId = 1; break; case 'daotian': // $this->pageTitle = '稻田列表'; $categoryId = 2; break; } $page = $this->basePage()->body([ \amisMake()->GridNav()->options( $this->regionList($categoryId) ) ]); return $this->response()->success($page); } private function regionList($categoryId){ $regionList = Region::with('devices')->where('category_id', $categoryId)->get(); $resList = []; foreach($regionList as $region){ $tabs = [ [ 'title' => '基地详情', 'value' => 'detail', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 0, ], ]; if($region->devices){ foreach($region->devices as $device){ switch($device->type) { case Device::TYPE_MONITOR: $tabs[] = [//有监控设备才有 'title' => '监控视频', 'value' => 'monitor', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-monitor?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 1, ]; break; case Device::TYPE_SOIL: $tabs[] = [//有土壤设备才有 'title' => '土壤数据', 'value' => 'turang', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-soil?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 2, ]; break; case Device::TYPE_WATER_QUALITY: $tabs[] = [//有水质设备才有 'title' => '水质数据', 'value' => 'shuizi', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-water?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 3, ]; break; case Device::TYPE_METEOROLOGICAL: $tabs[] = [//有气象设备才有 'title' => '气象数据', 'value' => 'qixiang', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-meteorological?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 4, ]; break; case Device::TYPE_AIR: $tabs[] = [//有通风设备才有 'title' => '通风设备', 'value' => 'air', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-air?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 5, ]; break; case Device::TYPE_ATOMIZING: $tabs[] = [//有喷雾设备才有 'title' => '喷雾设备', 'value' => 'wasserstrahl', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-wasserstrahl?id='.$region->id)), 'unmountOnExit' => true,//每次切换tab都要销毁 'sort' => 6, ]; break; } continue; } } $tabs = array_merge(collect($tabs)->sortBy('sort')->toArray(), []); $resList[] = [ "icon"=> $region->cover ?? '', "text"=> $region->name, 'clickAction' => [ 'actionType'=> 'dialog', 'dialog' => \amisMake()->Dialog()->title($region['name']) ->size('full')->actions([])->body([ \amisMake()->Tabs()->tabsMode('simple')->name('detailTab')->tabs($tabs), ]) ] ]; } return $resList; } public function regionDetail(Request $request) { $id = $request->id; $region = Region::find($id); return amisMake()->Grid()->columns([ amisMake()->Wrapper()->sm(4)->body([ amisMake()->Panel()->title('基础详情') ->subFormMode('horizontal') ->labelWidth(100) // ->headerClassName('text-white') ->body([ \amisMake()->TextControl()->static(true)->name('name')->label('名称')->value('试验田1'), \amisMake()->TextControl()->static(true)->name('name1')->label('负责人')->value('负责人'), \amisMake()->TextControl()->static(true)->name('category')->label('分类')->value($region->category?->name ?? ''), \amisMake()->TextControl()->static(true)->name('area')->label('面积m²')->value($region?->area ?? ''), \amisMake()->TextControl()->static(true)->name('sort')->label('排序')->value($region?->sort ?? '0'), \amisMake()->SwitchControl()->static(true)->name('is_enable')->name('is_enable')->label('显示')->value($region?->is_enable ?? 0), ]), amisMake()->Panel()->title('基础介绍') // ->headerClassName('text-white') ->body([ amisMake()->Tpl()->tpl($region?->content ?? '') ]) ]), amisMake()->Wrapper()->sm(8)->body([ amisMake()->Panel()->title('种植记录') // ->headerClassName('text-white') ->body([ \amisMake()->Button()->className('absolute top-1 right-4')->actionType('dialog')->label('新增')->dialog([ "title"=> "种植记录", "body"=> [ "type"=> "form", "api"=> "post:/amis/api/mock2/sample", "body"=> [ \amisMake()->TextControl()->label('作物名称'), \amisMake()->TextControl()->label('负责人'), \amisMake()->TextControl()->label('种植面积'), \amisMake()->DateControl()->label('种植时间'), ] ] ])->level('enhance'), \amisMake()->CRUDTable()->title('') ->data([ 'items' => [ [ 'name'=> '作物名称', 'name1'=> '负责人', 'area'=> '100', 'time1'=> '2023-03-21', ], [ 'name'=> '作物名称2', 'name1'=> '负责人', 'area'=> '100', 'time1'=> '2023-03-21', ] ] ]) ->columns([ amisMake()->TableColumn()->name('name')->label('名称'), amisMake()->TableColumn()->name('name1')->label('负责人'), amisMake()->TableColumn()->name('area')->label('种植面积'), amisMake()->TableColumn()->name('time1')->label('种植时间'), ]) ->itemAction([ 'type'=>'button', 'actionType'=>'dialog', 'dialog'=> \amisMake()->Dialog()->title('作物名称') ->size('full')->actions([])->body([ \amisMake()->Tabs()->tabsMode('simple')->name('detailTab')->tabs([ [ 'title' => '种植详情', 'value' => 'detail', 'tab'=>\amisMake()->Service()->schemaApi(admin_url('crop-plan-detail?id=')),//传id 'unmountOnExit' => true//每次切换tab都要销毁 ], [ 'title' => '报警记录', 'value' => 'warning', // 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region['id'])), 'unmountOnExit' => true//每次切换tab都要销毁 ], [ 'title' => '虫情记录', 'value' => 'warning', // 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region['id'])), 'unmountOnExit' => true//每次切换tab都要销毁 ], ]) ]) ]) // ->itemActions([ // \amisMake()->DialogAction()->label('新增收获')->level('link') // ]) ]) ]), ]); } }