171 lines
8.5 KiB
PHP
171 lines
8.5 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
use App\Admin\Components;
|
|
use App\Models\Region;
|
|
|
|
class CustomRegionController extends AdminController
|
|
{
|
|
protected string $pageTitle = '标题';
|
|
|
|
protected string $queryPath = 'custom-region';
|
|
|
|
public function regionIndex($type)
|
|
{
|
|
|
|
switch($type){
|
|
case 'yuyang':
|
|
$this->pageTitle = '育秧列表';
|
|
break;
|
|
case 'daotian':
|
|
$this->pageTitle = '稻田列表';
|
|
break;
|
|
}
|
|
|
|
$page = $this->basePage()->body([
|
|
\amisMake()->GridNav()->options(
|
|
$this->regionList()
|
|
)
|
|
]);
|
|
|
|
return $this->response()->success($page);
|
|
}
|
|
|
|
private function regionList(){
|
|
$regionList = [
|
|
[
|
|
'id' => 1,
|
|
'name' => '实验田1',
|
|
'cover' => 'https://internal-amis-res.cdn.bcebos.com/images/icon-1.png'
|
|
]
|
|
];
|
|
return array_map(function($region){
|
|
return [
|
|
"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([
|
|
[
|
|
'title' => '基地详情',
|
|
'value' => 'detail',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有监控设备才有
|
|
'title' => '监控视频',
|
|
'value' => 'monitor',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-monitor?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有气象设备才有
|
|
'title' => '气象数据',
|
|
'value' => 'qixiang',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-meteorological?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有水质设备才有
|
|
'title' => '水质数据',
|
|
'value' => 'shuizi',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-water?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有土壤设备才有
|
|
'title' => '土壤数据',
|
|
'value' => 'turang',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-soil?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有通风设备才有
|
|
'title' => '通风设备',
|
|
'value' => 'air',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-air?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
[//有喷灌设备才有
|
|
'title' => '喷灌设备',
|
|
'value' => 'wasserstrahl',
|
|
'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-wasserstrahl?id='.$region['id'])),
|
|
'unmountOnExit' => true//每次切换tab都要销毁
|
|
],
|
|
|
|
]),
|
|
])
|
|
]
|
|
];
|
|
}, $regionList);
|
|
}
|
|
|
|
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)
|
|
->className('Panel--success')
|
|
->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('基础介绍')
|
|
->className('Panel--success')
|
|
->body([
|
|
amisMake()->Tpl()->tpl($region?->content ?? '')
|
|
])
|
|
]),
|
|
amisMake()->Wrapper()->sm(8)->body([
|
|
amisMake()->Panel()->title('种植记录')
|
|
->className('Panel--success')
|
|
->body([
|
|
\amisMake()->Button()->className('absolute top-2 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('primary'),
|
|
\amisMake()->CRUDTable()->title('')
|
|
->data([
|
|
'items' => [
|
|
[
|
|
'name'=> '作物名称',
|
|
'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('开始时间'),
|
|
])
|
|
->itemActions([
|
|
\amisMake()->DialogAction()->label('收获记录')->level('link')
|
|
])
|
|
])
|
|
]),
|
|
]);
|
|
}
|
|
}
|