guessing-miniprogram/app/Admin/Controllers/UserGiftController.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, '发货');
}
}