generated from liutk/owl-admin-base
59 lines
2.2 KiB
PHP
59 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers\Finance;
|
|
|
|
use App\Admin\Controllers\AdminController;
|
|
use App\Services\StatisticService;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class StoreStatisticController extends AdminController
|
|
{
|
|
public function index()
|
|
{
|
|
if ($this->actionOfGetData()) {
|
|
$input = Arr::except(request()->input(), ['orderBy', 'orderDir']);
|
|
|
|
$orderBy = request()->input('orderBy') ?: 'sales';
|
|
$orderDir = request()->input('orderDir') ?: 'desc';
|
|
|
|
$input['sort'] = ($orderDir === 'desc' ? '-' : '').$orderBy;
|
|
|
|
return $this->response()->success([
|
|
'items' => (new StatisticService())->storeRanking($input),
|
|
]);
|
|
}
|
|
|
|
return $this->response()->success(
|
|
$this->baseList(
|
|
$this->baseCRUD()
|
|
->headerToolbar([
|
|
amis('filter-toggler')->align('right'),
|
|
])
|
|
->footerToolbar([])
|
|
->bulkActions([])
|
|
->filter($this->baseFilter()->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amis()->DateRangeControl('date_range', '日期')
|
|
->valueFormat('YYYY-MM-DD'),
|
|
amis()->InputCityControl('region', '区域')
|
|
->allowDistrict(false)
|
|
->extractValue(false),
|
|
amis()->SelectControl('store_id', __('finance.ledger.store'))
|
|
->source(admin_url('api/stores?region=${region}'))
|
|
->labelField('title')
|
|
->valueField('id')
|
|
->clearable(),
|
|
]),
|
|
]))
|
|
->filterDefaultVisible()
|
|
->columns([
|
|
amis()->TableColumn('ranking', '排序'),
|
|
amis()->TableColumn('store.title', '门店'),
|
|
amis()->TableColumn('sales', '收入')->sortable(),
|
|
amis()->TableColumn('expenditure', '支出')->sortable(),
|
|
])
|
|
)
|
|
);
|
|
}
|
|
}
|