generated from liutk/owl-admin-base
113 lines
4.6 KiB
PHP
113 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Slowlyo\OwlAdmin\Admin;
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
|
use Slowlyo\OwlAdmin\Renderers\Operation;
|
|
use Slowlyo\OwlAdmin\Renderers\Dialog;
|
|
use Slowlyo\OwlAdmin\Renderers\DialogAction;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
use App\Services\Admin\UserGiftService;
|
|
use App\Models\UserGift;
|
|
use App\Models\Activity;
|
|
use Illuminate\Http\Request;
|
|
|
|
class UserGiftController extends AdminController
|
|
{
|
|
protected string $serviceName = UserGiftService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
$crud = $this->baseCRUD()->tableLayout('fixed')
|
|
->headerToolbar([
|
|
amis('reload')->align('right'),
|
|
amis('filter-toggler')->align('right'),
|
|
])
|
|
->filter($this->baseFilter()->labelWidth('80px')->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amis()->SelectControl('activity', __('admin.activities.name'))->options(Activity::sort()->pluck('name', 'id')->toArray()),
|
|
amis()->TextControl('user_name', __('admin.users.nick_name'))
|
|
->placeholder(__('admin.users.nick_name')),
|
|
amis()->TextControl('user_phone', __('admin.users.phone'))
|
|
->placeholder(__('admin.users.phone')),
|
|
amis()->SelectControl('state', __('admin.user_gifts.state'))
|
|
->options([
|
|
1=>'未发货',2=>'已发货',0=>'未领取'
|
|
]),
|
|
])
|
|
]))
|
|
->columns([
|
|
amis()->TableColumn('activity.name', __('admin.activities.name')),
|
|
amis()->TableColumn('gift.name', __('admin.activity_gifts.name')),
|
|
amis()->TableColumn('user.nick_name', __('admin.users.nick_name')),
|
|
amis()->TableColumn('user.phone', __('admin.users.phone'))->copyable(),
|
|
amis()->TableColumn('state', __('admin.user_gifts.state'))->type('mapping')->map([
|
|
"0"=>"<span class='label label-default'>未领取</span>",
|
|
"1"=>"<span class='label label-danger'>未发货</span>",
|
|
"2"=>"<span class='label label-success'>已发货</span>",
|
|
"*"=> '其他:${state}'
|
|
]),
|
|
amis()->TableColumn('consignee', __('admin.user_gifts.consignee')),
|
|
amis()->TableColumn('address', __('admin.user_gifts.address')),
|
|
amis()->TableColumn('phone', __('admin.user_gifts.phone')),
|
|
amis()->TableColumn('shipping_company', __('admin.user_gifts.shipping_company')),
|
|
amis()->TableColumn('shipping_number', __('admin.user_gifts.shipping_number'))->copyable(),
|
|
Operation::make()->label(__('admin.actions'))->buttons([
|
|
amisMake()->DialogAction()->label('发货')
|
|
->level('link')
|
|
->dialog(Dialog::make()->title('填写发货信息')->body([
|
|
amisMake()->form()->title('')
|
|
->api('post:' .admin_url('user_gifts/${id}/shipping'))
|
|
->body([
|
|
amis()->TextControl('shipping_company', __('admin.user_gifts.shipping_company'))->required(),
|
|
amis()->TextControl('shipping_number', __('admin.user_gifts.shipping_number'))->required(),
|
|
])
|
|
]))->visibleOn('${state == 1}'),
|
|
])
|
|
]);
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form($isEdit = false): Form
|
|
{
|
|
return $this->baseForm()->body([
|
|
|
|
]);
|
|
}
|
|
|
|
public function detail()
|
|
{
|
|
$form = amisMake()->form()->title('')->panelClassName('border-r border-t-0 border-b-0 border-l-0')->mode('horizontal')
|
|
->static(true)->actions([])
|
|
->body([
|
|
|
|
]);
|
|
|
|
return amisMake()->Grid()->columns([
|
|
amis()->Column()->body($form)->md(4),
|
|
amis()->Column()->body([
|
|
])->md(8),
|
|
]);
|
|
}
|
|
|
|
public function detailActions()
|
|
{
|
|
return [
|
|
//返回
|
|
amis()->Button()->actionType('cancel')->label(__('admin.back'))->primary()
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 发货
|
|
*/
|
|
public function shipping(UserGift $userGift, Request $request)
|
|
{
|
|
$res = $this->service->shippingGift($userGift, $request->input());
|
|
|
|
return $this->autoResponse($res, '发货');
|
|
}
|
|
} |