You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.0 KiB
100 lines
2.0 KiB
<?php |
|
|
|
namespace App\Admin\Metrics\Examples; |
|
|
|
use Dcat\Admin\Admin; |
|
use Dcat\Admin\Widgets\Metrics\Donut; |
|
|
|
class NewDevices extends Donut |
|
{ |
|
protected $labels = ['Desktop', 'Mobile']; |
|
|
|
/** |
|
* 初始化卡片内容 |
|
*/ |
|
protected function init() |
|
{ |
|
parent::init(); |
|
|
|
$color = Admin::color(); |
|
$colors = [$color->primary(), $color->alpha('blue2', 0.5)]; |
|
|
|
$this->title('New Devices'); |
|
$this->subTitle('Last 30 days'); |
|
$this->chartLabels($this->labels); |
|
// 设置图表颜色 |
|
$this->chartColors($colors); |
|
} |
|
|
|
/** |
|
* 渲染模板 |
|
* |
|
* @return string |
|
*/ |
|
public function render() |
|
{ |
|
$this->fill(); |
|
|
|
return parent::render(); |
|
} |
|
|
|
/** |
|
* 写入数据. |
|
* |
|
* @return void |
|
*/ |
|
public function fill() |
|
{ |
|
$this->withContent(44.9, 28.6); |
|
|
|
// 图表数据 |
|
$this->withChart([44.9, 28.6]); |
|
} |
|
|
|
/** |
|
* 设置图表数据. |
|
* |
|
* @param array $data |
|
* |
|
* @return $this |
|
*/ |
|
public function withChart(array $data) |
|
{ |
|
return $this->chart([ |
|
'series' => $data |
|
]); |
|
} |
|
|
|
/** |
|
* 设置卡片头部内容. |
|
* |
|
* @param mixed $desktop |
|
* @param mixed $mobile |
|
* |
|
* @return $this |
|
*/ |
|
protected function withContent($desktop, $mobile) |
|
{ |
|
$blue = Admin::color()->alpha('blue2', 0.5); |
|
|
|
$style = 'margin-bottom: 8px'; |
|
$labelWidth = 120; |
|
|
|
return $this->content( |
|
<<<HTML |
|
<div class="d-flex pl-1 pr-1 pt-1" style="{$style}"> |
|
<div style="width: {$labelWidth}px"> |
|
<i class="fa fa-circle text-primary"></i> {$this->labels[0]} |
|
</div> |
|
<div>{$desktop}</div> |
|
</div> |
|
<div class="d-flex pl-1 pr-1" style="{$style}"> |
|
<div style="width: {$labelWidth}px"> |
|
<i class="fa fa-circle" style="color: $blue"></i> {$this->labels[1]} |
|
</div> |
|
<div>{$mobile}</div> |
|
</div> |
|
HTML |
|
); |
|
} |
|
}
|
|
|