<?php

namespace App\Admin\Controllers;

use App\Admin\Metrics\Examples;
use App\Http\Controllers\Controller;
use App\Models\Good;
use App\Models\OrderInfo;
use Dcat\Admin\Http\Controllers\Dashboard;
use Dcat\Admin\Layout\Column;
use Dcat\Admin\Grid;
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;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;

class HomeController extends Controller
{
    public function index(Content $content)
    {
        // 创建表单构建器
        $form = Form::make()->action(admin_url('orderInfo'));

        // 添加日期范围搜索
        $form->dateRange('date', '日期范围')->default(function () {
            return [
                date('Y-m-d 00:00:00', strtotime('-1 day')),
                date('Y-m-d 23:59:59', strtotime('-1 day'))
            ];
        });

        // 添加搜索按钮
        //$form->disableResetBtn();
        //$form->submit('搜索');

        // 使用卡片视图展示统计数据
        $card123 = Card::make('统计数据')
            ->content(function () use ($form) {
                // 获取表单提交的日期参数
                $dates = $form->getFieldValue('date');

                // // 查询数据库,这里以AdminLog为例
                //$logs = OrderInfo::whereBetween('created_at', $dates)->get();

                // // 统计数据
                // $count = $logs->count();

                return "共有记录 100 条";
            });
        //-----
        // 构建下拉菜单,当点击菜单时发起请求获取数据重新渲染图表
        $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); // 设置下拉菜单按钮
        //------
        //商品列表
        $goodsQuery = Good::where('is_show', 0)->orderBy('created_at', 'desc');
        return $content
            ->header('Dashboard')
            ->description('Description...')
            ->body(function (Row $row) use ($box, $goodsQuery, $card123) {
                //$row->column(12, $card123);

                $row->column(12, function (Column $column) use ($box, $goodsQuery) {
                    $column->row(function (Row $row) use ($box, $goodsQuery) {
                        $row->column(6, new Examples\OrderWaitCount());
                        $row->column(6, new Examples\OrderPickCount());
                        //$row->column(12, Card::make('订单信息', Examples\MyBar::make()));
                        $row->column(12, Card::make('订单信息', $box));
                        $row->column(12, new Examples\Product());
                        // $row->column(12, function (Column $column) use ($goodsQuery) {
                        //     $column->row(
                        //         Grid::make($goodsQuery, function (Grid $grid) {
                        //             $grid->disableRefreshButton();
                        //             $grid->disableCreateButton();
                        //             $grid->disableActions();
                        //             $grid->disableRowSelector();
                        //             $grid->addTableClass(['table-text-left']);
                        //             //$grid->simplePaginate();
                        //             $grid->column('cover_img', '商品图片')->image('', 100, 100)->width(280);
                        //             $grid->column('goods_name', '商品名称');
                        //             $grid->column('sale', '销量')->width(250);
                        //         })
                        //     );
                        // });
                    });
                });


                // $row->column(12,'欢迎登录');
            });
    }
}