order-food-admin/app/Admin/Controllers/QuanTicketController.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');
});
}
}