<?php
namespace App\Admin\Controllers;
use App\Facades\CommonFacade;
use App\User;
use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\HasResourceActions;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Encore\Admin\Show;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\MessageBag;
class AdviserController extends Controller
{
use HasResourceActions;
public function index(Content $content)
{
return $content
->header('客服')
->description('列表')
->body($this->grid());
}
public function show($id, Content $content)
{
return $content
->header('客服')
->description('详情')
->body($this->detail($id));
}
public function edit($id, Content $content)
{
return $content
->header('编辑')
->description('客服')
->body($this->form()->edit($id));
}
public function create(Content $content)
{
return $content
->header('创建')
->description('客服')
->body($this->form());
}
protected function grid()
{
$grid = new Grid(new User);
$grid->model()->whereHas('roles', function($query) {
$query->where('slug', 'CustomerService')->orWhere('slug', 'ChannelService');
});
$grid->username('用户名');
$grid->roles('类型')->pluck('name')->label();
$grid->avatar('头像')->image('', 50,50);
$grid->name('姓名');
$grid->qq('QQ');
$grid->telephone('座机');
$grid->mail('邮箱');
return $grid;
}
protected function detail($id)
{
$show = new Show(User::findOrFail($id));
$show->username('用户名');
$show->avatar('头像')->image('', 50,50);
$show->name('姓名');
$show->qq('QQ');
$show->telephone('座机');
$show->mail('邮箱');
$show->desc('详细介绍')->textarea();
return $show;
}
protected function form()
{
$form = new Form(new User);
$roleModel = config('admin.database.roles_model');
$form->multipleSelect('roles', trans('admin.roles'))->options($roleModel::where('id', 6)->orWhere('id', 9)->pluck('name', 'id'))->rules('required');;
$form->text('name', '姓名')->rules('required');
$form->mobile('username', '手机')->options(['mask' => '99999999999'])->rules('required');
$form->password('password', trans('admin.password'))->rules('required|confirmed|')->default(function ($form) {
return $form->model()->password;
});
$form->password('password_confirmation', trans('admin.password_confirmation'))->rules('required')->default(function ($form) {
return $form->model()->password;
});
$form->ignore(['password_confirmation']);
$form->text('telephone', '座机');
$form->text('qq', 'QQ');
$form->file('wechat_img', '微信二维码');
$form->image('avatar', '头像');
$form->textarea('desc', '详细描述');
$form->saving(function (Form $form) {
if (!empty(User::where('username',$form->username)->first()) && $form->username != $form->model()->username) {
$error = new MessageBag([
'title' => '错误',
'message' => '该手机号已被占用,请更换',
]);
return back()->with(compact('error'));
}
if ($form->password && $form->model()->password != $form->password) {
$form->password = bcrypt($form->password);
}
});
return $form;
}
}