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.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							2.2 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Admin\Controllers;
							 | 
						|
								
							 | 
						|
								use App\Admin\Metrics\Examples\AgentStatistics;
							 | 
						|
								use Dcat\Admin\Admin;
							 | 
						|
								use Dcat\Admin\Layout\Column;
							 | 
						|
								use Dcat\Admin\Layout\Content;
							 | 
						|
								use Dcat\Admin\Layout\Row;
							 | 
						|
								use Dcat\Admin\Http\Controllers\AdminController;
							 | 
						|
								use Dcat\Admin\Widgets\Box;
							 | 
						|
								use Dcat\Admin\Widgets\Dropdown;
							 | 
						|
								use Illuminate\Support\Arr;
							 | 
						|
								use Illuminate\Support\Str;
							 | 
						|
								
							 | 
						|
								class SupplierStatisticsController extends AdminController
							 | 
						|
								{
							 | 
						|
									public function index(Content $content)
							 | 
						|
									{
							 | 
						|
										Admin::style(
							 | 
						|
											<<<CSS
							 | 
						|
											#date_time .block > div{display:inline-block;}
							 | 
						|
											.col-sm-12.d-flex{
							 | 
						|
												display: inline-block !important;
							 | 
						|
											}
							 | 
						|
											CSS
							 | 
						|
										);
							 | 
						|
								
							 | 
						|
										//数据
							 | 
						|
								
							 | 
						|
										//订单
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										return $content->title('供应商统计')
							 | 
						|
											->body(function (Row $row) {
							 | 
						|
												$row->column(12, function (Column $column) {
							 | 
						|
													$column->row(new \App\Admin\Tools\DataReportDate('data_report'));
							 | 
						|
												});
							 | 
						|
								
							 | 
						|
											})
							 | 
						|
											->body(function (Row $row) {
							 | 
						|
												// 构建下拉菜单,当点击菜单时发起请求获取数据重新渲染图表
							 | 
						|
												$menu = [
							 | 
						|
													'1' => '日',
							 | 
						|
													'30' => '月',
							 | 
						|
													'365' => '年',
							 | 
						|
												];
							 | 
						|
												$buttonName = '日';
							 | 
						|
												if (Arr::exists($menu, \request()->input('time_key', ''))) {
							 | 
						|
													$buttonName = $menu[\request()->input('time_key')];
							 | 
						|
												}
							 | 
						|
								
							 | 
						|
												$dropdown = Dropdown::make($menu)
							 | 
						|
													->button(current($menu))
							 | 
						|
													->button($buttonName)
							 | 
						|
													->click()
							 | 
						|
													->map(function ($v, $k) {
							 | 
						|
														$querys = \request()->all();
							 | 
						|
														$querys['time_key'] = $k;
							 | 
						|
														$queryString = http_build_query($querys);
							 | 
						|
														$str = Str::after(request()->path(),'/');
							 | 
						|
														$url = admin_url($str . '?' . $queryString);
							 | 
						|
														// 此处设置的 data-xxx 属性会作为post数据发送到后端api
							 | 
						|
														return "<a class='switch-bar' data-option='{$k}' href='$url'>{$v}</a>";
							 | 
						|
													});
							 | 
						|
								
							 | 
						|
												// 传递自定义参数
							 | 
						|
								
							 | 
						|
												$bar = AgentStatistics::make()
							 | 
						|
													->fetching('$("#my-box").loading()') // 设置loading效果
							 | 
						|
													->fetched('$("#my-box").loading(false)') // 移除loading效果
							 | 
						|
													->click('.switch-bar'); // 设置图表点击菜单则重新发起请求,且被点击的目标元素上的 data-xxx 属性会被作为post数据发送到后端API
							 | 
						|
								
							 | 
						|
												$box = Box::make('供应商统计图表', $bar)
							 | 
						|
													->id('my-box') // 设置盒子的ID
							 | 
						|
													->tool($dropdown); // 设置下拉菜单按钮
							 | 
						|
								
							 | 
						|
												$row->column(12, $box);
							 | 
						|
											});
							 | 
						|
								
							 | 
						|
									}
							 | 
						|
								}
							 |