null, 'title' => null, 'header' => null, 'content' => null, 'footer' => null, 'dropdown' => [], ]; /** * 卡片高度. * * @var int */ protected $height = 250; /** * 图表高度. * * @var int */ protected $chartHeight = 210; /** * 内容宽度. * * @var array */ protected $contentWidth = [ 5, 7 ]; /** * 图表上间距. * * @var int */ protected $chartMarginTop = -10; /** * 图表下间距. * * @var int */ protected $chartMarginBottom = -20; /** * 图表默认配置. * * @return array */ protected function defaultChartOptions() { return [ 'chart' => [ 'height' => 200, 'type' => 'treemap', ], 'legend' => [ 'show' => false, ], 'plotOptions' => [ 'treemap' => [ 'distributed' => true, 'enableShades' => false ] ], ]; } /** * 设置圆圈宽度. * * @param int $size * @return $this */ public function chartRadialBarSize(int $size) { return $this->chartOption('plotOptions.radialBar.size', $size); } /** * 设置圆圈间距. * * @param int $margin * @return $this */ public function chartRadialBarMargin(int $margin) { return $this->chartOption('plotOptions.radialBar.track.margin', $margin); } /** * 设置图表统计总数信息. * * @param string $label * @param int $number * @return $this */ public function chartTotal(string $label, int $number) { return $this->chartOption('plotOptions.radialBar.dataLabels.total', [ 'show' => true, 'label' => $label, 'formatter' => JavaScript::make("function () { return {$number}; }"), ]); } /** * 设置图表数据. * * @param array $data 键值对 * * @return $this */ public function withChart(array $data) { $data2=[]; foreach ($data as $k=>$v){ $data2[]=[ 'y'=>$v, 'x'=>$k, ]; } return $this->chart([ 'series' => [ 'data'=>$data2 ], ]); } /** * 卡片内容. * * @param int $finished * @param int $pending * @param int $rejected * * @return $this */ public function withContent($count, $in,$out) { return $this->content( <<