海南旅游SAAS
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.
 
 
 

132 lines
3.9 KiB

<?php
namespace App\AdminAgent\Controllers;
use App\AdminAgent\Lazys\DemandBiddingLazys;
use App\AdminAgent\Repositories\Demand;
use App\Models\DemandBidding;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use App\Traits\DemandTraits;
use Illuminate\Support\Arr;
class MyDemandController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Demand(['publisher','biddingUser']), function (Grid $grid) {
$grid->model()->where(['publisher_id' => Admin::user()->id,'publisher_type' => Arr::first(DemandTraits::$col)]);
$grid->column('id')->sortable();
$grid->column('title');
$grid->column('detail','内容')->display('查看')->modal('详情',function ($modal) {
$modal->xl();
return $this->comment;
});
$grid->column('images','图片')->display(function ($image) {
return json_decode($image,true);
})->image();
$grid->column('deadline');
$grid->column('biddingUser.name','中标人');
$grid->column('bidding_user_type','竞标用户类型')->using(DemandTraits::$polymorphic);
$grid->column('price');
$grid->column('stock');
$grid->column('state')->using(DemandTraits::$state)->dot(
[
1 => 'yellow',
2 => 'success',
3 => 'danger',
]
);
$grid->column('bidding','竞标明细')
->display(function (){
return '竞标数 : '. DemandBidding::query()->where('demand_id',$this->id)->count();
})
->modal('竞标明细',function () {
return DemandBiddingLazys::make(['demand_id' => $this->id]);
});
$grid->column('created_at')->sortable();
$grid->disableDeleteButton();
$grid->disableEditButton();
$grid->disableQuickEditButton();
$grid->disableViewButton();
$grid->disableActions();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
$filter->equal('bidding_user_type','竞标用户类型')->select(DemandTraits::$polymorphic);
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Demand(['publisher','biddingUser']), function (Show $show) {
$show->field('id');
$show->field('title');
$show->field('comment');
$show->field('images')->image();
$show->field('deadline');
$show->field('bidding_user_type','竞标用户类型')->using(DemandTraits::$polymorphic);
$show->field('price');
$show->field('stock');
$show->field('state')->using(DemandTraits::$state)->dot(
[
1 => 'yellow',
2 => 'danger',
3 => 'success',
]
);;
$show->field('created_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Demand(), function (Form $form) {
$form->display('id');
$form->text('title');
$form->text('comment');
$form->multipleImage('images','图片');
$form->hidden('deadline');
$form->select('bidding_user_type','竞标用户类型')->options([
'App\models\Supplier' => '供应商',
'App\models\Guides' => '地接'
]);
$form->decimal('price');
$form->number('stock');
$form->hidden('publisher_type');
$form->hidden('publisher_id');
$form->saving(function (Form $form) {
// 判断是否是新增操作
if ($form->isCreating()) {
//处理流拍时间
$form->deadline = now()->addDays(5);
//发布人身份
$form->publisher_type = 'App\models\Agent';
$form->publisher_id = Admin::user()->id;
}
});
});
}
}