<?php
namespace App\Admin\Controllers;
use App\Admin\Metrics\Examples;
use App\Http\Controllers\Controller;
use Dcat\Admin\Http\Controllers\Dashboard;
use Dcat\Admin\Layout\Column;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Layout\Row;
use Dcat\Admin\Widgets\Card;
use Dcat\Admin\Widgets\Dropdown;
use Dcat\Admin\Widgets\Box;
class HomeController extends Controller
{
public function index(Content $content)
{
//-----
// 构建下拉菜单,当点击菜单时发起请求获取数据重新渲染图表
$menu = [
'7' => '最近7天',
'30' => '最近30天',
'365' => '最近一年',
];
$dropdown = Dropdown::make($menu)
->button(current($menu))
->click()
->map(function ($v, $k) {
// 此处设置的 data-xxx 属性会作为post数据发送到后端api
return "<a class='switch-bar' data-option='{$k}'>{$v}</a>";
});
// 传递自定义参数
$id = 1;
$username = 'jack';
$bar = Examples\OrderAjaxBar::make($id, $username)
->fetching('$("#my-box").loading()') // 设置loading效果
->fetched('$("#my-box").loading(false)') // 移除loading效果
->click('.switch-bar'); // 设置图表点击菜单则重新发起请求,且被点击的目标元素上的 data-xxx 属性会被作为post数据发送到后端API
$box = Box::make('销售额趋势', $bar)
->id('my-box') // 设置盒子的ID
->tool($dropdown); // 设置下拉菜单按钮
//------
return $content
->header('Dashboard')
->description('Description...')
->body(function (Row $row) use ($box) {
$row->column(12, function (Column $column) use ($box) {
$column->row(function (Row $row) use ($box) {
$row->column(6, new Examples\OrderWaitCount());
$row->column(6, new Examples\OrderPickCount());
//$row->column(12, new Examples\StoreOrderChats());
//$row->column(12, Card::make('订单信息', Examples\MyBar::make()));
$row->column(12, Card::make('订单信息', $box));
$row->column(12, new Examples\Product());
});
});
// $row->column(12,'欢迎登录');
});
}
}