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.
150 lines
5.4 KiB
150 lines
5.4 KiB
<?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')->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();
|
|
});
|
|
}
|
|
}
|