<?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,'欢迎登录');
            });
    }
}