generated from liutk/owl-admin-base
调整后台首页
parent
1788620e8f
commit
3c19d5e4e5
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Admin\Controllers;
|
namespace App\Admin\Controllers;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Card;
|
use Slowlyo\OwlAdmin\Renderers\Card;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Flex;
|
use Slowlyo\OwlAdmin\Renderers\Flex;
|
||||||
|
|
@ -14,19 +15,20 @@ use Slowlyo\OwlAdmin\Renderers\Custom;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Wrapper;
|
use Slowlyo\OwlAdmin\Renderers\Wrapper;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
class HomeController extends AdminController
|
class HomeController extends AdminController
|
||||||
{
|
{
|
||||||
public function index(): JsonResponse|JsonResource
|
public function index(): JsonResponse|JsonResource
|
||||||
{
|
{
|
||||||
$page = $this->basePage()->css($this->css())->body([
|
$page = $this->basePage()->css($this->css())->body([
|
||||||
Grid::make()->columns([
|
// Grid::make()->columns([
|
||||||
$this->frameworkInfo()->md(5),
|
// $this->frameworkInfo()->md(5),
|
||||||
Flex::make()->items([
|
// Flex::make()->items([
|
||||||
$this->pieChart(),
|
// $this->pieChart(),
|
||||||
$this->cube(),
|
// $this->cube(),
|
||||||
]),
|
// ]),
|
||||||
]),
|
// ]),
|
||||||
Grid::make()->columns([
|
Grid::make()->columns([
|
||||||
$this->lineChart()->md(8),
|
$this->lineChart()->md(8),
|
||||||
Flex::make()->className('h-full')->items([
|
Flex::make()->className('h-full')->items([
|
||||||
|
|
@ -171,28 +173,43 @@ JS
|
||||||
|
|
||||||
public function lineChart(): Card
|
public function lineChart(): Card
|
||||||
{
|
{
|
||||||
$randArr = function () {
|
$days = [];
|
||||||
$_arr = [];
|
for($i=0; $i<7; $i++){
|
||||||
for ($i = 0; $i < 7; $i++) {
|
$days[] = now()->subDays($i)->format('Y-m-d');
|
||||||
$_arr[] = random_int(10, 200);
|
}
|
||||||
|
$createUser = User::selectRaw('DATE(`created_at`) as day, count(id) as num')
|
||||||
|
->whereBetween('created_at', [now()->subDays(6)->startOfDay(), now()])
|
||||||
|
->groupBy('day')
|
||||||
|
->get()->pluck('num', 'day')->toArray();
|
||||||
|
|
||||||
|
$bindUser = User::selectRaw('DATE(`bind_phone_at`) as day, count(id) as num')
|
||||||
|
->whereBetween('bind_phone_at', [now()->subDays(6)->startOfDay(), now()])
|
||||||
|
->groupBy('day')
|
||||||
|
->get()->pluck('num', 'day')->toArray();
|
||||||
|
|
||||||
|
foreach($days as $day){
|
||||||
|
if(!isset($createUser[$day])){
|
||||||
|
$createUser[$day] = 0;
|
||||||
}
|
}
|
||||||
return '[' . implode(',', $_arr) . ']';
|
if(!isset($bindUser[$day])){
|
||||||
};
|
$bindUser[$day] = 0;
|
||||||
|
}
|
||||||
$random1 = $randArr();
|
}
|
||||||
$random2 = $randArr();
|
asort($createUser);asort($bindUser);
|
||||||
|
$createUser = '['.implode(',', $createUser).']';
|
||||||
|
$bindUser = '['.implode(',', $bindUser).']';
|
||||||
|
|
||||||
$chart = Chart::make()->height(380)->className('h-96')->config("{
|
$chart = Chart::make()->height(380)->className('h-96')->config("{
|
||||||
backgroundColor:'',
|
backgroundColor:'',
|
||||||
title:{ text: '会员增长情况', },
|
title:{ text: '会员增长情况', },
|
||||||
tooltip: { trigger: 'axis' },
|
tooltip: { trigger: 'axis' },
|
||||||
xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
|
xAxis: { type: 'category', boundaryGap: false, data: ['".implode("','", $days)."']},
|
||||||
yAxis: { type: 'value' },
|
yAxis: { type: 'value' },
|
||||||
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
|
grid:{ left: '7%', right:'3%', top: 60, bottom: 30, },
|
||||||
legend: { data: ['访问量','注册量'] },
|
legend: { data: ['访问量','注册量'] },
|
||||||
series: [
|
series: [
|
||||||
{ name: '访问量', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
|
{ name: '访问量', data: {$createUser}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
|
||||||
{ name:'注册量', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
|
{ name:'注册量', data: {$bindUser}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', },
|
||||||
]}");
|
]}");
|
||||||
|
|
||||||
return Card::make()->className('clear-card-mb')->body($chart);
|
return Card::make()->className('clear-card-mb')->body($chart);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// 应用名称
|
// 应用名称
|
||||||
'name' => 'Owl Admin',
|
'name' => '竞猜小程序',
|
||||||
|
|
||||||
// 应用 logo
|
// 应用 logo
|
||||||
'logo' => '/admin-assets/logo.png',
|
'logo' => '/admin-assets/logo.png',
|
||||||
|
|
@ -86,7 +86,7 @@ return [
|
||||||
|
|
||||||
'layout' => [
|
'layout' => [
|
||||||
// 浏览器标题, 功能名称使用 %title% 代替
|
// 浏览器标题, 功能名称使用 %title% 代替
|
||||||
'title' => '%title% | OwlAdmin',
|
'title' => '%title% | 竞猜小程序',
|
||||||
'header' => [
|
'header' => [
|
||||||
// 是否显示 [刷新] 按钮
|
// 是否显示 [刷新] 按钮
|
||||||
'refresh' => true,
|
'refresh' => true,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue