|
|
<?php
namespace App\Admin\Controllers\v3;
use App\Admin\Repositories\v3\ServicePersonnel;use Dcat\Admin\Form;use Dcat\Admin\Grid;use Dcat\Admin\Show;use Dcat\Admin\Controllers\AdminController;use App\Models\v3\ServicePersonnel as ServicePersonnelModel;use App\Models\v3\Market as MarketModel;use App\Models\v3\User as UserModel;use App\Admin\Common\WeChatQrCode;
class ServicePersonnelController extends AdminController{ /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(new ServicePersonnel(), function (Grid $grid) { //市场
$marketList = MarketModel::getMarketArray();
$grid->column('id')->sortable(); $grid->column('head_url')->image('',50); $grid->column('name'); $grid->column('tel'); $grid->column('market_id')->display(function($marketId) use ($marketList){ return isset($marketList[$marketId]) ? $marketList[$marketId] : ''; }); $grid->column('type_text'); $grid->column('qr_url')->image('',50); $grid->column('status')->using(ServicePersonnelModel::$_STATUS)->label(config('label.status_label')); $grid->model()->orderby('id','desc');
$grid->filter(function (Grid\Filter $filter) use($marketList){ $filter->equal('id'); $filter->like('name'); $filter->equal('type')->select(ServicePersonnelModel::$_TYPE); $filter->equal('market_id')->select($marketList); }); // 每页10条
$grid->paginate(10); // $grid->disableDeleteButton();
}); }
/** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new ServicePersonnel(), function (Show $show) { $show->row(function (Show\Row $show) { $show->width(6)->id; $show->width(6)->field('name'); $show->width(6)->field('tel'); $show->width(6)->field('user_id')->as(function($userId){ $item = UserModel::getUserInfo($userId,'nick_name'); return empty($item) ? '' : '【'.$userId.'】:' . $item['nick_name']; }); $show->width(6)->field('head_url')->image(); $show->width(6)->field('qr_url')->image(); }); $show->row(function (Show\Row $show) { $show->width(6)->field('market_id')->as(function($marketId){ $item = MarketModel::getMarketInfo($marketId,'name'); return empty($item) ? '' : $item['name']; }); $show->width(6)->field('type_text'); $show->width(6)->field('status_text'); $show->width(6)->field('created_at')->as(function($createdAt){ return date('Y-m-d H:i:s',$createdAt); }); $show->width(6)->field('updated_at')->as(function($updatedAt){ return date('Y-m-d H:i:s',$updatedAt); }); }); }); }
/** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new ServicePersonnel(), function (Form $form) { $userId = $form->model()->user_id; //市场
$marketList = MarketModel::getMarketArray(); // 用户
// $userList = UserModel::getUserArray();
// 已绑定的用户
// $userHas = ServicePersonnelModel::pluck('user_id')->toArray();
// foreach($userList as $ku => $uv){
// if($ku != 0 && in_array($ku,$userHas) && !in_array($userId,$userHas)){
// unset($userList[$ku]);
// }
// }
$form->column(6,function(Form $form){ $form->hidden('id'); $form->text('name')->required(); $form->text('tel')->required(); $form->image('head_url')->autoUpload(); }); $form->column(6,function(Form $form) use($marketList){ $form->select('type')->options(ServicePersonnelModel::$_TYPE)->required(); $form->select('market_id')->options($marketList)->required(); // $form->select('user_id')->options($userList)->required();
$form->number('user_id')->required()->min(0); $statusList = ServicePersonnelModel::$_STATUS; unset($statusList[0],$statusList[2]); $form->radio('status')->options($statusList)->default(1); }); $form->saving(function(Form $form){ $id = $form->getKey(); $userId = $form->input('user_id'); if(!empty($id) && !empty($userId)){ $user = UserModel::getUserInfo($userId,'id'); if(empty($user)){ return $form->error('懒ID不存在'); } $store = ServicePersonnelModel::select('id')->where([ ['user_id','=',$userId], ['id','<>',$id?$id:0], ])->first(); if(!empty($store)){ return $form->error('用户已经为服务专员'); } } }); $form->saved(function(Form $form){ $id = $form->getKey(); if($form->isCreating() && !empty($id)){ $model = ServicePersonnelModel::find($id); $qrCode = new WeChatQrCode(); // 生成专员二维码
$qrCodeImg = $qrCode->getServicePersonnel($id); if($qrCodeImg['status']){ $model->qr_url = $qrCodeImg['path']; $model->save(); } } }); $form->disableResetButton(); $form->disableViewCheck(); $form->disableEditingCheck(); $form->disableCreatingCheck(); }); }}
|