|
|
|
@ -7,6 +7,10 @@ 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 |
|
|
|
{ |
|
|
|
@ -18,22 +22,32 @@ class ServicePersonnelController extends AdminController |
|
|
|
protected function grid() |
|
|
|
{ |
|
|
|
return Grid::make(new ServicePersonnel(), function (Grid $grid) { |
|
|
|
//市场
|
|
|
|
$marketList = MarketModel::getMarketArray(); |
|
|
|
|
|
|
|
$grid->column('id')->sortable(); |
|
|
|
$grid->column('user_id'); |
|
|
|
|
|
|
|
$grid->column('head_url')->image('',50); |
|
|
|
$grid->column('name'); |
|
|
|
$grid->column('tel'); |
|
|
|
$grid->column('market_id'); |
|
|
|
$grid->column('type'); |
|
|
|
$grid->column('status'); |
|
|
|
$grid->column('qr_url'); |
|
|
|
$grid->column('head_url'); |
|
|
|
$grid->column('created_at'); |
|
|
|
$grid->column('updated_at')->sortable(); |
|
|
|
|
|
|
|
$grid->filter(function (Grid\Filter $filter) { |
|
|
|
$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(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
@ -47,17 +61,33 @@ class ServicePersonnelController extends AdminController |
|
|
|
protected function detail($id) |
|
|
|
{ |
|
|
|
return Show::make($id, new ServicePersonnel(), function (Show $show) { |
|
|
|
$show->field('id'); |
|
|
|
$show->field('user_id'); |
|
|
|
$show->field('name'); |
|
|
|
$show->field('tel'); |
|
|
|
$show->field('market_id'); |
|
|
|
$show->field('type'); |
|
|
|
$show->field('status'); |
|
|
|
$show->field('qr_url'); |
|
|
|
$show->field('head_url'); |
|
|
|
$show->field('created_at'); |
|
|
|
$show->field('updated_at'); |
|
|
|
$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); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
@ -69,18 +99,52 @@ class ServicePersonnelController extends AdminController |
|
|
|
protected function form() |
|
|
|
{ |
|
|
|
return Form::make(new ServicePersonnel(), function (Form $form) { |
|
|
|
$form->display('id'); |
|
|
|
$form->text('user_id'); |
|
|
|
$form->text('name'); |
|
|
|
$form->text('tel'); |
|
|
|
$form->text('market_id'); |
|
|
|
$form->text('type'); |
|
|
|
$form->text('status'); |
|
|
|
$form->text('qr_url'); |
|
|
|
$form->text('head_url'); |
|
|
|
|
|
|
|
$form->display('created_at'); |
|
|
|
$form->display('updated_at'); |
|
|
|
$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')->required(); |
|
|
|
}); |
|
|
|
$form->column(6,function(Form $form) use($marketList,$userList){ |
|
|
|
$form->select('type')->options(ServicePersonnelModel::$_TYPE)->required(); |
|
|
|
$form->select('market_id')->options($marketList)->required(); |
|
|
|
$form->select('user_id')->options($userList)->required(); |
|
|
|
$statusList = ServicePersonnelModel::$_STATUS; |
|
|
|
unset($statusList[0],$statusList[2]); |
|
|
|
$form->radio('status')->options($statusList)->default(1); |
|
|
|
}); |
|
|
|
|
|
|
|
$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(); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |