| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Module\Mex\AdminControllers;
- use App\Module\Mex\Metrics\PriceTrendChart;
- use App\Module\Mex\Metrics\VolumeTrendChart;
- use Dcat\Admin\Layout\Content;
- use Dcat\Admin\Layout\Row;
- use Spatie\RouteAttributes\Attributes\Get;
- use Spatie\RouteAttributes\Attributes\Resource;
- use UCore\DcatAdmin\AdminController;
- /**
- * 农贸市场图表控制器
- *
- * 路由:/admin/mex-charts
- */
- #[Resource('mex-charts', names: 'dcat.admin.mex-charts')]
- class MexChartsController extends AdminController
- {
- /**
- * 页面标题
- */
- protected $title = '农贸市场图表分析';
- /**
- * 主页面 - 显示所有果实的价格趋势和成交趋势图表
- */
- #[Get('admin/mex-charts', name: 'admin.mex-charts.index')]
- public function index(Content $content)
- {
- return $content
- ->title('农贸市场图表分析')
- ->description('价格趋势与成交量分析')
- ->body(function (Row $row) {
- // 获取所有果实物品
- $fruits = $this->getFruitItems();
-
- foreach ($fruits as $fruit) {
- $row->column(12, function ($column) use ($fruit) {
- // 果实标题
- $column->row("<h4 class='mb-3'>{$fruit['name']} (ID: {$fruit['id']})</h4>");
-
- // 价格趋势图和成交趋势图并排显示
- $column->row(function ($subRow) use ($fruit) {
- // 价格趋势图 - 多线(最低,最高,均价)
- $subRow->column(6, new PriceTrendChart($fruit['id'], $fruit['name']));
-
- // 成交趋势图 - 多线(买入,卖出)
- $subRow->column(6, new VolumeTrendChart($fruit['id'], $fruit['name']));
- });
- });
- }
- });
- }
- /**
- * 获取所有果实物品
- *
- * @return array
- */
- protected function getFruitItems(): array
- {
- // 根据数据库查询结果,返回主要的果实物品
- return [
- ['id' => 2, 'name' => '萝卜'],
- ['id' => 3, 'name' => '辣椒'],
- ['id' => 4, 'name' => '苹果'],
- ['id' => 5, 'name' => '西瓜'],
- ['id' => 6, 'name' => '草莓'],
- ['id' => 7, 'name' => '南瓜'],
- ['id' => 8, 'name' => '核桃'],
- ['id' => 9, 'name' => '可可'],
- ['id' => 10, 'name' => '人参'],
- ['id' => 11, 'name' => '玫瑰'],
- ];
- }
- }
|