_data = $data; $this->setUpOptions(); } /** * 初始化图表配置 */ protected function setUpOptions() { $color = Admin::color(); $colors = [$color->primary(), $color->primaryDarker()]; $this->options([ 'colors' => $colors, 'chart' => [ 'type' => 'bar', 'height' => 430, ], 'plotOptions' => [ 'bar' => [ 'horizontal' => false, 'dataLabels' => [ 'position' => 'top', ], ] ], 'dataLabels' => [ 'enabled' => true, 'offsetX' => -6, 'style' => [ 'fontSize' => '12px', 'colors' => ['#fff'] ] ], 'stroke' => [ 'show' => true, 'width' => 1, 'colors' => ['#fff'] ], 'xaxis' => [ 'categories' => [], ], ]); } /** * 处理图表数据 */ protected function buildData() { $orderType = request()->input('order_type')??'amount'; // 执行你的数据查询逻辑 $data = [ [ 'name'=>$orderType=='num'?'订单数':'订单金额', 'data' =>$orderType=='num'? $this->_data['num']:$this->_data['amount'] ], ]; $categories = $this->_data['time']; $this->withData($data); $this->withCategories($categories); } /** * 设置图表数据 * * @param array $data * * @return $this */ public function withData(array $data) { return $this->option('series', $data); } /** * 设置图表类别. * * @param array $data * * @return $this */ public function withCategories(array $data) { return $this->option('xaxis.categories', $data); } /** * 渲染图表 * * @return string */ public function render() { $this->buildData(); return parent::render(); } }