store-manage/app/Admin/Controllers/Finance/StoreStatisticController.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(),
])
)
);
}
}