contentWidth(0, 12); // 标题 //$this->title('财务统计'); $this->chartHeight = 500; // 设置下拉选项 $this->dropdown([ '1' => '日', '30' => '月', '365' => '年', ]); // 设置图表颜色 $this->chartColors([ $color->green(), ]); } /** * 处理请求 * * @param Request $request * * @return mixed|void */ public function handle(Request $request) { $query = User::query() ->where('agent_id',Admin::user()->id) ->select('*'); switch ($request->get('option')) { case '1': $query->addSelect(DB::raw("count(id) as sum_price,CONCAT(YEAR(created_at),'-',MONTH(created_at),'-',DAY(created_at)) AS statistics_time")); break; case '30': $query->addSelect(DB::raw("count(id) as sum_price,CONCAT(YEAR(created_at),'-',MONTH(created_at)) AS statistics_time")); break; case '365': $query->addSelect(DB::raw("count(id) as sum_price,CONCAT(YEAR(created_at)) AS statistics_time")); break; default: $query->addSelect(DB::raw("count(id) as sum_price,CONCAT(YEAR(created_at),'-',MONTH(created_at),'-',DAY(created_at)) AS statistics_time")); } $users = $query->groupBy('statistics_time') ->orderBy('statistics_time') ->get(); $userNum = 0; $userArr = []; foreach ($users as $user) { $userNum += $user->sum_price; array_push($userArr,$userNum); } $this->withChart( $userArr ); $this->chartLabels( Arr::pluck($users,'statistics_time') ); } /** * 设置图表数据. * * @param array $data * * @return $this */ public function withChart(array $data) { return $this->chart([ 'series' => [[ 'name' => '用户数', 'data' => $data ]], 'chart' => [ //'width' => '180%', 'type' => 'bar', 'events' => [ ], 'toolbar' => ['show' => false], ], 'colors' => $this->colors, 'plotOptions' => [ 'bar' => [ //'columnWidth' => '45%', 'distributed' => true, ] ], 'dataLabels' => [ 'enabled' => false ], 'legend' => [ 'show' => false ], 'xaxis' => [ //'categories' => // [75, 125, 225, 175, 125, 75, 25] //, 'labels' => [ 'show' => true, 'style' => [ 'colors' => $this->colors, 'fontSize' => '12px' ] ], ], 'yaxis' => [ 'show' => true ], 'tooltip' => [ 'x' => ['show' => true], ], ]); } }