134 lines
4.7 KiB
PHP
134 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Admin\Repositories\QuanTicket;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
|
|
class QuanTicketController extends AdminController
|
|
{
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(QuanTicket::with(['cateValue', 'goodsValue']), function (Grid $grid) {
|
|
$grid->column('id')->sortable();
|
|
$grid->column('quan_name');
|
|
// $grid->column('ticket_type');
|
|
$grid->column('ticket_value');
|
|
$grid->column('the_type')->using([0=>'全场通用',1=>'指定商品',2=>'指定分类'])->label([
|
|
0 => 'primary',
|
|
1 => 'danger',
|
|
2 => 'success',
|
|
]);
|
|
$grid->column('the_value')->display(function(){
|
|
if($this->the_type == 1){
|
|
return array_column($this->goodsValue->toArray(), 'goods_name');
|
|
}
|
|
if($this->the_type == 2){
|
|
return array_column($this->cateValue->toArray(), 'category_name');
|
|
}
|
|
return ['全场通用'];
|
|
})->label();
|
|
$grid->column('use_limit');
|
|
$grid->column('use_day')->append('天');
|
|
$grid->column('is_use')->switch();
|
|
$grid->column('created_at');
|
|
|
|
$grid->actions(function (Grid\Displayers\Actions $actions) {
|
|
$actions->append('<a href="'.admin_route('user_ticket.index', ['quan_id'=>$actions->getKey()]).'" title="领取列表"><i class="feather icon-align-right"></i></a> ');
|
|
});
|
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
// $filter->equal('id');
|
|
$filter->like('quan_name');
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
*
|
|
* @param mixed $id
|
|
*
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new QuanTicket(), function (Show $show) {
|
|
$show->field('id');
|
|
$show->field('quan_name');
|
|
// $show->field('ticket_type');
|
|
$show->field('ticket_value');
|
|
$show->field('the_type');
|
|
$show->field('use_limit');
|
|
$show->field('use_day');
|
|
$show->field('is_use');
|
|
$show->field('created_at');
|
|
$show->field('updated_at');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(QuanTicket::with(['cateValue', 'goodsValue']), function (Form $form) {
|
|
$form->display('id');
|
|
$form->text('quan_name')->required();
|
|
// $form->radio('ticket_type')->options(['0'=>'现金券','1'=>'折扣券']);
|
|
$form->currency('ticket_value')->symbol('¥')->default(0)->required();
|
|
$form->currency('use_limit')->symbol('¥')->default(0)->required();
|
|
$form->radio('the_type')->when(0, function (Form $form) {
|
|
// $form->
|
|
})->when(1, function (Form $form) {
|
|
$form->multipleSelect('goodsValue', '指定商品')->options(admin_route('goods.api'))->customFormat(function ($v) {
|
|
if (! $v) {
|
|
return [];
|
|
}
|
|
|
|
// 从数据库中查出的二维数组中转化成ID
|
|
return array_column($v, 'id');
|
|
});
|
|
})->when(2, function (Form $form) {
|
|
$form->multipleSelect('cateValue', '指定分类')->options(admin_route('goods_categories.api'))->customFormat(function ($v) {
|
|
if (! $v) {
|
|
return [];
|
|
}
|
|
// 从数据库中查出的二维数组中转化成ID
|
|
return array_column($v, 'id');
|
|
});;
|
|
})->options(['0'=>'全场通用','1'=>'指定商品','2'=>'指定分类'])->default(0);
|
|
|
|
$form->number('use_day')->default(1)->required();
|
|
$form->switch('is_use')->default(1);
|
|
$form->text('use_rule');
|
|
|
|
$form->saving(function(Form $form){
|
|
//清除
|
|
if($form->the_type == 1){
|
|
$form->cateValue = [];
|
|
}
|
|
else if($form->the_type == 2){
|
|
$form->goodsValue = [];
|
|
}else{
|
|
$form->cateValue = [];
|
|
$form->goodsValue = [];
|
|
}
|
|
});
|
|
|
|
$form->display('created_at');
|
|
$form->display('updated_at');
|
|
});
|
|
}
|
|
}
|