1
0
Fork 0

Compare commits

..

No commits in common. "8dc26a1b30039b936d22fe015c66e96629423aa9" and "d589404415e5dfa983ad77a4a63dd8d4eeaa15dc" have entirely different histories.

11 changed files with 100 additions and 3033 deletions

View File

@ -4,12 +4,9 @@ namespace App\Admin\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Slowlyo\OwlAdmin\Controllers\AdminController; use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\CropPlanService;
class CropController extends AdminController class CropController extends AdminController
{ {
protected string $serviceName = CropPlanService::class;
public function planDetail(Request $request) public function planDetail(Request $request)
{ {
$randArr = function () { $randArr = function () {

View File

@ -8,9 +8,6 @@ use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Admin\Components; use App\Admin\Components;
use App\Models\Region; use App\Models\Region;
use App\Models\Device; use App\Models\Device;
use Slowlyo\OwlAdmin\Renderers\DialogAction;
use Slowlyo\OwlAdmin\Renderers\Dialog;
use Slowlyo\OwlAdmin\Renderers\Service;
class CustomRegionController extends AdminController class CustomRegionController extends AdminController
{ {
@ -118,11 +115,13 @@ class CustomRegionController extends AdminController
$resList[] = [ $resList[] = [
"icon"=> $region->cover ?? '', "icon"=> $region->cover ?? '',
"text"=> $region->name, "text"=> $region->name,
'clickAction' => DialogAction::make()->dialog( 'clickAction' => [
Dialog::make()->title($region['name'])->body([ 'actionType'=> 'dialog',
\amisMake()->Tabs()->tabsMode('simple')->name('detailTab')->tabs($tabs), 'dialog' => \amisMake()->Dialog()->title($region['name'])
])->size('full') ->size('full')->actions([])->body([
), \amisMake()->Tabs()->tabsMode('simple')->name('detailTab')->tabs($tabs),
])
]
]; ];
} }
return $resList; return $resList;
@ -132,122 +131,98 @@ class CustomRegionController extends AdminController
{ {
$id = $request->id; $id = $request->id;
$region = Region::find($id); $region = Region::find($id);
$page = $this->basePage()->body([ return amisMake()->Grid()->columns([
amisMake()->Grid()->columns([ amisMake()->Wrapper()->sm(4)->body([
amisMake()->Wrapper()->sm(4)->body([ amisMake()->Panel()->title('基础详情')
amisMake()->Panel()->title('基础详情') ->subFormMode('horizontal')
->subFormMode('horizontal') ->labelWidth(100)
->labelWidth(100) // ->headerClassName('text-white')
->body([
\amisMake()->TextControl()->static(true)->name('name')->label('名称')->value($region->name),
\amisMake()->TextControl()->static(true)->name('director')->label('负责人')->value($region->director),
\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('基础介绍')
->body([ ->body([
amisMake()->Tpl()->tpl($region?->content ?? '') \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()->Wrapper()->sm(8)->body([ \amisMake()->TextControl()->static(true)->name('area')->label('面积m²')->value($region?->area ?? ''),
amisMake()->Panel()->title('种植记录') \amisMake()->TextControl()->static(true)->name('sort')->label('排序')->value($region?->sort ?? '0'),
->body([ \amisMake()->SwitchControl()->static(true)->name('is_enable')->name('is_enable')->label('显示')->value($region?->is_enable ?? 0),
DialogAction::make()->className('absolute top-1 right-4')->label(__('admin.create'))->dialog( ]),
Dialog::make()->title('新增种植记录')->body($this->plantCreateForm($region)) amisMake()->Panel()->title('基础介绍')
), // ->headerClassName('text-white')
\amisMake()->CRUDTable() ->body([
->title('') amisMake()->Tpl()->tpl($region?->content ?? '')
->api(admin_url('crop-plans').'?_action=getData&region_id='.$region->id) ])
->columns([ ]),
amisMake()->TableColumn()->name('plant_name')->label('名称'), amisMake()->Wrapper()->sm(8)->body([
amisMake()->TableColumn()->name('director')->label('负责人'), amisMake()->Panel()->title('种植记录')
amisMake()->TableColumn()->name('area')->label('种植面积'), // ->headerClassName('text-white')
amisMake()->TableColumn()->name('start_at')->label('种植时间'), ->body([
]) \amisMake()->Button()->className('absolute top-1 right-4')->actionType('dialog')->label('新增')->dialog([
->itemAction([ "title"=> "种植记录",
'type'=>'button', "body"=> [
'actionType'=>'dialog', "type"=> "form",
'dialog'=> \amisMake()->Dialog()->title('作物名称') "api"=> "post:/amis/api/mock2/sample",
->size('full')->actions([])->body([ "body"=> [
\amisMake()->Tabs()->tabsMode('simple')->name('detailTab')->tabs([ \amisMake()->TextControl()->label('作物名称'),
[ \amisMake()->TextControl()->label('负责人'),
'title' => '种植详情', \amisMake()->TextControl()->label('种植面积'),
'value' => 'detail', \amisMake()->DateControl()->label('种植时间'),
'tab'=>\amisMake()->Service()->schemaApi(admin_url('crop-plan-detail?id=')),//传id ]
'unmountOnExit' => true//每次切换tab都要销毁 ]
], ])->level('enhance'),
[ \amisMake()->CRUDTable()->title('')
'title' => '报警记录', ->data([
'value' => 'warning', 'items' => [
// 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region['id'])), [
'unmountOnExit' => true//每次切换tab都要销毁 'name'=> '作物名称',
], 'name1'=> '负责人',
[ 'area'=> '100',
'title' => '虫情记录', 'time1'=> '2023-03-21',
'value' => 'warning', ],
// 'tab'=>\amisMake()->Service()->schemaApi(admin_url('custom-region-detail?id='.$region['id'])), [
'unmountOnExit' => true//每次切换tab都要销毁 '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('编辑')->dialog( // ->itemActions([
Dialog::make()->title('编辑种植记录')->body($this->plantEditForm()) // \amisMake()->DialogAction()->label('新增收获')->level('link')
), // ])
\amisMake()->AjaxAction()->label('删除')->level('link') ])
->actionType('ajax') ]),
->confirmText(__('admin.confirm_delete'))
->api([
'method' => 'delete',
'url' => admin_url('crop-plans/${id}')
])
])
])
]),
])
]); ]);
return $this->response()->success($page);
}
private function plantCreateForm(Region $region = null){
return amisMake()->Form()
->api([
'method'=>'post',
'url'=>admin_url('crop-plans'),
"data" => [
'region_id'=>'${region_id}',
'plant_name'=>'${plant_name}',
'director'=>'${plant_director}',
'area'=>'${plant_area}',
'start_at'=>'${start_at}',
],
])
->body([
\amisMake()->TextControl()->name('region_id')->label('区域ID')->hidden(true)->value($region?->id ?? 0),
\amisMake()->TextControl()->name('plant_name')->label('作物名称')->required(true),
\amisMake()->TextControl()->name('plant_director')->label('负责人')->required(true),
Components::make()->decimalControl('plant_area','种植面积')->required(true),
\amisMake()->DateControl()->name('start_at')->format('YYYY-MM-DD HH:mm:ss')->label('种植时间')->required(true),
]);
}
private function plantEditForm(){
return amisMake()->Form()
->api([
'method'=>'put',
'url'=>admin_url('crop-plans/${id}'),
])->initApi(admin_url('crop-plans/${id}/edit').'?_action=getData')
->body([
\amisMake()->TextControl()->name('id')->hidden(true),
\amisMake()->TextControl()->name('region_id')->label('区域ID')->hidden(true),
\amisMake()->TextControl()->name('plant_name')->label('作物名称')->required(true),
\amisMake()->TextControl()->name('director')->label('负责人')->required(true),
Components::make()->decimalControl('area','种植面积')->required(true),
\amisMake()->DateControl()->name('start_at')->format('YYYY-MM-DD HH:mm:ss')->label('种植时间')->required(true),
]);
} }
} }

View File

@ -78,7 +78,6 @@ Route::group([
$router->post('custom-region-wasserstrahl', '\App\Admin\Controllers\DeviceController@wasserstrahlDetail'); $router->post('custom-region-wasserstrahl', '\App\Admin\Controllers\DeviceController@wasserstrahlDetail');
//种植记录 //种植记录
$router->resource('crop-plans', \App\Admin\Controllers\CropController::class)->only(['index','store', 'edit', 'update', 'destroy']);
$router->post('crop-plan-detail', '\App\Admin\Controllers\CropController@planDetail'); $router->post('crop-plan-detail', '\App\Admin\Controllers\CropController@planDetail');
$router->resource('system/settings', \App\Admin\Controllers\SettingController::class); $router->resource('system/settings', \App\Admin\Controllers\SettingController::class);

View File

@ -1,14 +0,0 @@
<?php
namespace App\Services\Admin;
use App\Models\RegionPlantLog;
/**
* @method RegionPlantLog getModel()
* @method RegionPlantLog|\Illuminate\Database\Query\Builder query()
*/
class CropPlanService extends BaseService
{
protected string $modelName = RegionPlantLog::class;
}

View File

@ -19,7 +19,6 @@ return new class extends Migration
$table->string('plant_name')->comment('种植名称'); $table->string('plant_name')->comment('种植名称');
$table->string('director')->nullable()->comment('负责人'); $table->string('director')->nullable()->comment('负责人');
$table->text('description')->nullable()->comment('描述'); $table->text('description')->nullable()->comment('描述');
$table->decimal('area')->default(0.00)->comment('面积/平米');
$table->timestamp('start_at')->nullable()->comment('种植开始时间'); $table->timestamp('start_at')->nullable()->comment('种植开始时间');
$table->unsignedTinyInteger('status')->default(0)->comment('0未开始1种植中2已结束'); $table->unsignedTinyInteger('status')->default(0)->comment('0未开始1种植中2已结束');
$table->timestamps(); $table->timestamps();

View File

@ -56,7 +56,7 @@ class AdminMenuSeeder extends Seeder
['title' => '历史视频', 'icon'=>'icon-park:film', 'url'=> '/custom-region-monitor-video', 'order'=>2], ['title' => '历史视频', 'icon'=>'icon-park:film', 'url'=> '/custom-region-monitor-video', 'order'=>2],
['title' => '气象数据', 'icon'=>'icon-park:brightness', 'url'=> '/custom-region-meteorological', 'order'=>3], ['title' => '气象数据', 'icon'=>'icon-park:brightness', 'url'=> '/custom-region-meteorological', 'order'=>3],
['title' => '土壤数据', 'icon'=>'icon-park:floor-tile', 'url'=> '/custom-region-water', 'order'=>4], ['title' => '土壤数据', 'icon'=>'icon-park:floor-tile', 'url'=> '/custom-region-water', 'order'=>4],
// ['title' => '水质数据', 'icon'=>'icon-park:diving-bottle', 'url'=> '/custom-region-soil', 'order'=>5], ['title' => '水质数据', 'icon'=>'icon-park:diving-bottle', 'url'=> '/custom-region-soil', 'order'=>5],
] ]
], ],
['title' => '设备预警', 'icon' => 'icon-park:alarm', 'url' => '', 'order'=>8, ['title' => '设备预警', 'icon' => 'icon-park:alarm', 'url' => '', 'order'=>8,
@ -65,7 +65,7 @@ class AdminMenuSeeder extends Seeder
['title' => '报警记录', 'icon'=>'icon-park:massage-chair-one', 'url'=> '/warning-notice', 'order'=>2], ['title' => '报警记录', 'icon'=>'icon-park:massage-chair-one', 'url'=> '/warning-notice', 'order'=>2],
] ]
], ],
// ['title' => '友情链接', 'icon' => 'icon-park:copy-link', 'url' => '/friend-links', 'order'=>9], ['title' => '友情链接', 'icon' => 'icon-park:copy-link', 'url' => '/friend-links', 'order'=>9],
['title' => '系统管理', 'icon' => 'icon-park:setting', 'url' => '/system', 'order'=>10, ['title' => '系统管理', 'icon' => 'icon-park:setting', 'url' => '/system', 'order'=>10,
'children' => [ 'children' => [
['title' => '用户管理', 'icon' => 'icon-park:people-plus', 'url' => '/system/admin_users', 'order'=>1], ['title' => '用户管理', 'icon' => 'icon-park:people-plus', 'url' => '/system/admin_users', 'order'=>1],

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge"/> <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<title></title> <title></title>
<script type="module" crossorigin src="/admin/assets/index.6254441a.js"></script> <script type="module" crossorigin src="/admin/assets/index.6254441a.js"></script>
<link rel="stylesheet" href="/admin/assets/index.7e62ffe4.css"> <link rel="stylesheet" href="/admin/assets/index.0b145e6a.css">
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>