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.
86 lines
2.5 KiB
86 lines
2.5 KiB
<?php |
|
|
|
namespace Tests\Controllers; |
|
|
|
use Dcat\Admin\Admin; |
|
use Dcat\Admin\Layout\Content; |
|
use Dcat\Admin\Layout\Row; |
|
use Dcat\Admin\Widgets\Box; |
|
use Dcat\Admin\Widgets\Dropdown; |
|
use Illuminate\Routing\Controller; |
|
|
|
class DropdownController extends Controller |
|
{ |
|
protected $tian = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; |
|
protected $di = ['寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑']; |
|
|
|
public function index(Content $content) |
|
{ |
|
return $content->header('Dropdown Menu') |
|
->row(function (Row $row) { |
|
$row->column(3, $this->example1()); |
|
$row->column(3, $this->example2()); |
|
$row->column(3, $this->example3()); |
|
}); |
|
} |
|
|
|
protected function example1() |
|
{ |
|
$menu1 = Dropdown::make($this->tian)->button('天干'); |
|
|
|
$menu2 = Dropdown::make() |
|
->button('使用标题') |
|
->buttonClass('btn btn-sm btn-inverse') |
|
->options($this->tian, '天干') |
|
->options($this->di, '地支'); |
|
|
|
$menu3 = Dropdown::make([1, 2, 3, Dropdown::DIVIDER, 4, 5])->button('中间加分隔线'); |
|
|
|
return Box::make( |
|
'Example1', |
|
$menu1->render().' '.$menu2->render().' '.$menu3->render() |
|
); |
|
} |
|
|
|
protected function example2() |
|
{ |
|
$menu = Dropdown::make($this->tian); |
|
|
|
$menu->map(function ($v, $k) { |
|
if ($k === 7) { |
|
$this->divider(); |
|
} |
|
$k++; |
|
|
|
return "{$k}. $v"; |
|
}); |
|
|
|
return Box::make('Example2', function () use ($menu) { |
|
return "<div class='dropdown'><a class='btn no-shadow text-muted' data-toggle='dropdown' href='javascript:void(0)'><i class='ti-email'></i> 自定义按钮 </a>{$menu->render()}</div>"; |
|
}); |
|
} |
|
|
|
protected function example3() |
|
{ |
|
$menu1 = Dropdown::make() |
|
->options($this->tian, '天干') |
|
->options($this->di, '地支') |
|
->click() |
|
->buttonClass('btn btn-sm btn-light') |
|
->map(function ($v, $k) { |
|
$k++; |
|
|
|
return "<a class='test_item' data-id='$k', data-value='{$v}' data-test='Hello world.' href='javascript:void(0)'>{$k}. $v</a>"; |
|
}); |
|
|
|
Admin::script( |
|
<<<'JS' |
|
$('.test_item').click(function () { |
|
LA.info("Selected: " + JSON.stringify($(this).data())); |
|
}); |
|
JS |
|
); |
|
|
|
return Box::make('Example3', $menu1); |
|
} |
|
}
|
|
|