labels = array_values(AgentType::array()); $color = Admin::color(); $colors = [$color->primary(), $color->alpha('blue2', 0.5),Admin::color()->yellow()]; $this->title('代理商类型');; $this->chartLabels($this->labels); // 设置图表颜色 $this->chartColors($colors); } /** * 渲染模板 * * @return string */ public function render() { $this->fill(); return parent::render(); } /** * 写入数据. * * @return void */ public function fill() { $agent = AgentModel::whereHas('agentProduct', function($query) { //只统计在售产品的代理商 return $query->where('status', ProductStatus::ON_SALE) ->whereHas('product', function ($query) { return $query->where(['supplier_id' => Admin::user()->id, 'status' => ProductStatus::ON_SALE]); }); }); $agent = $agent->pluck('type'); $operator = $supplier = $cluster = 0; foreach ($agent as $v) { if ($v == AgentType::CLUSTER) { $operator++; } elseif ($v == AgentType::SUPPLIER) { $supplier++; } elseif($v == AgentType::OPERATOR) { $cluster++; } } $this->withContent($operator, $supplier, $cluster); // 图表数据 $this->withChart([$operator,$supplier, $cluster]); } /** * 设置图表数据. * * @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, $unkonw) { $blue = Admin::color()->alpha('blue2', 0.5); $yellow = Admin::color()->yellow(); $style = 'margin-bottom: 8px'; $labelWidth = 120; return $this->content( <<