1
0
Fork 0
internet-everythings-agricu.../app/Admin/Controllers/CropPlantController.php

106 lines
5.3 KiB
PHP

<?php
namespace App\Admin\Controllers;
use Illuminate\Http\Request;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use Slowlyo\OwlAdmin\Renderers\DialogAction;
use Slowlyo\OwlAdmin\Renderers\Dialog;
use App\Services\Admin\CropPlantService;
use App\Admin\Components;
use App\Models\RegionPlantLog;
class CropPlantController extends AdminController
{
protected string $serviceName = CropPlantService::class;
public function plantDetail(Request $request)
{
$randArr = function () {
$_arr = [];
for ($i = 0; $i < 7; $i++) {
$_arr[] = random_int(10, 200);
}
return '[' . implode(',', $_arr) . ']';
};
$random1 = $randArr();
$random2 = $randArr();
$id = $request->id;
$plant = RegionPlantLog::find($id);
$page = $this->basePage()->body([
amisMake()->Grid()->columns([
amisMake()->Wrapper()->sm(6)->body([
amisMake()->Panel()->title('种植详情')
->subFormMode('horizontal')
->labelWidth(100)
->body([
\amisMake()->TextControl()->static(true)->name('plant_name')->label('作物名称')->value($plant->plant_name),
\amisMake()->TextControl()->static(true)->name('director')->label('负责人')->value($plant->director),
\amisMake()->TextControl()->static(true)->name('area')->label('种植面积m²')->value($plant->area),
\amisMake()->TextControl()->static(true)->name('start_at')->label('种植时间')->value($plant->start_at),
]),
amisMake()->Panel()->title('收获记录')
->body([
DialogAction::make()->className('absolute top-1 right-4')->label(__('admin.create'))->dialog(
Dialog::make()->title('收获记录')->body($this->harvestCreateForm($plant))
),
\amisMake()->CRUDTable()
->api(admin_url('crop-harvestes').'?_action=getData&plant_id='.$plant->id)
->title('')
->columns([
amisMake()->TableColumn()->name('name')->label('负责人'),
amisMake()->TableColumn()->name('name1')->label('收获面积m²'),
amisMake()->TableColumn()->name('area')->label('收获产量kg'),
amisMake()->TableColumn()->name('time1')->label('收获时间'),
])
]),
]),
amisMake()->Wrapper()->sm(6)->body([
\amisMake()->grid()->columns([
\amisMake()->Form()->title('搜索条件')->mode('inline')->body([
\amisMake()->DateRangeControl()->label('时间范围'),
amis('submit')->label(__('admin.search'))->level('primary'),
]),
]),
amisMake()->Card()->className('m-r')->body(
amisMake()->Chart()->config("{
title:{ text: '种植情况'},
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', boundaryGap: false, data: ['2023-03-01', '2023-03-10', '2023-03-15', '2023-03-15', '2023-03-20', '2023-03-25', '2023-03-31'] },
yAxis: { type: 'value' },
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
series: [
{ name:'面积', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
{ name:'产量', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
]}")
),
]),
])
]);
return $page;
}
public function harvestCreateForm(RegionPlantLog $plant = null) {
return amisMake()->Form()
->api([
'method'=>'post',
'url'=>admin_url('crop-harvestes'),
"data" => [
'plant_id'=>'${plant_id}',
'director'=>'${harbest_director}',
'area'=>'${harbest_area}',
'output'=>'${output}',
'harvest_at'=>'${harvest_at}',
],
])
->body([
\amisMake()->TextControl()->name('plant_id')->label('计划ID')->hidden(true)->value($plant?->id ?? 0),
\amisMake()->TextControl()->name('harbest_director')->label('负责人')->required(true),
Components::make()->decimalControl('harbest_area','收获面积m²')->required(true),
Components::make()->decimalControl('output','收获产量kg')->required(true),
\amisMake()->DateControl()->name('harvest_at')->format('YYYY-MM-DD HH:mm:ss')->label('收获时间')->required(true),
]);
}
}