old-hotel-new/app/Admin/Controllers/HydropowerFeeController.php

111 lines
4.4 KiB
PHP

<?php
namespace App\Admin\Controllers;
use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\HydropowerFeeService;
use App\Models\Oldmen;
use Slowlyo\OwlAdmin\Renderers\TableColumn;
use App\Admin\Components;
/**
* 水电续费
*
* @property HydropowerFeeService $service
*/
class HydropowerFeeController extends AdminController
{
protected string $serviceName = HydropowerFeeService::class;
public function list(): Page
{
$crud = $this->baseCRUD()
->filterTogglable(false)
->headerToolbar([
$this->createButton(true, 'lg'),
...$this->baseHeaderToolBar()
])
->filter(
$this->baseFilter()->body([
amisMake()->TextControl('name', '姓名')->size('md'),
amisMake()->TextControl('card_no', '身份证')->size('md'),
amisMake()->TextControl('sn', '单据编号')->size('md'),
amis('button')->label(__('admin.reset'))->actionType('clear-and-submit'),
amis('submit')->label(__('admin.search'))->level('primary'),
])->actions([])
)
->columns([
amisMake()->TableColumn('sn', '单据编号')->sortable(),
amisMake()->TableColumn('oldman.name', '客人'),
amisMake()->TableColumn('start_at', '开始时间')->type('datetime')->sortable(true),
amisMake()->TableColumn('end_at', '结束时间')->type('datetime')->sortable(true),
amisMake()->TableColumn('money', '金额'),
amisMake()->TableColumn('created_at', '办理时间')->type('datetime')->sortable(true),
amisMake()->Operation()->label(__('admin.actions'))->buttons([
amisMake()->Button()->label('打印预览')->actionType('url')->blank(true)
->url(url('/print-water-fee').'?id=${id}')->level('link'),
$this->rowEditButton(true, 'lg'),
$this->rowDeleteButton()
]),
]);
return $this->baseList($crud);
}
public function form($isEdit = false): Form
{
return $this->baseForm()->body([
amisMake()->PickerControl('oldman_id', '姓名')
->valueField('id')
->labelField('name')
->joinValues(false)->extractValue(true)
->size('md')
->source([
'method' => 'get',
'url' => admin_url('oldmen?_action=getData&live_in='.Oldmen::STATUS_NORMAL),
'data' => [
'name'=>'${term}',
]
])
->pickerSchema(
[
'mode' => 'table',
'name' => 'monitor_list',
'headerToolbar' => amisMake()->form()
->wrapWithPanel(false)
->className('text-right')
->target('monitor_list')
->mode('inline')
->body([
amisMake()->TextControl('term', '姓名/身份证号')->addOn(
amis('submit')->label(__('admin.search'))->level('primary')
)
]),
'columns' => [
TableColumn::make()->name('name')->label('姓名'),
TableColumn::make()->name('card_no')->label('身份证号码'),
]
]
)->value(0)
->required(true),
amisMake()->GroupControl()->body([
amisMake()->DateControl('start_at', '开始时间')->format('YYYY-MM-DD 00:00:00')->required(true),
amisMake()->DateControl('end_at', '结束时间')->format('YYYY-MM-DD 23:59:59')->required(true),
]),
Components::make()->decimalControl('money', '金额')->required(true),
]);
}
public function detail(): Form
{
return $this->baseDetail()->body([
amisMake()->TextControl('id', 'ID')->static(),
amisMake()->TextControl('created_at', __('admin.created_at'))->static(),
amisMake()->TextControl('updated_at', __('admin.updated_at'))->static()
]);
}
}