Browse Source

懒族员工表完成

master
liangyuyan 5 years ago
parent
commit
1fb4eab05f
  1. 95
      app/Admin/Controllers/v3/LanzuEmployeesController.php
  2. 110
      app/Admin/Controllers/v3/UserController.php
  3. 16
      app/Admin/Repositories/v3/User.php
  4. 1
      app/Admin/routes.php
  5. 10
      app/Models/v3/LanzuEmployees.php
  6. 19
      app/Models/v3/User.php
  7. 42
      config/role.php
  8. 4
      resources/lang/zh-CN/lanzu-employees.php
  9. 25
      resources/lang/zh-CN/user.php

95
app/Admin/Controllers/v3/LanzuEmployeesController.php

@ -10,6 +10,8 @@ use Dcat\Admin\Controllers\AdminController;
use App\Models\v3\LanzuEmployees as EmployeesModel;
use App\Models\v3\User as UserModel;
use App\Models\v3\Store as StoreModel;
use App\Models\v3\ServicePersonnel as ServicePersonnelModel;
use App\Models\v3\Market as MarketModel;
class LanzuEmployeesController extends AdminController
{
@ -21,26 +23,39 @@ class LanzuEmployeesController extends AdminController
protected function grid()
{
return Grid::make(new LanzuEmployees(), function (Grid $grid) {
//市场
$marketList = MarketModel::getMarketArray();
$roleList = config('role.position');
$grid->column('id')->sortable();
$grid->column('market_id');
$grid->column('market_id')->display(function($marketId) use($marketList){
return isset($marketList[$marketId]) ? $marketList[$marketId] : '';
});
$grid->column('user_id')->display(function($userId){
$item = UserModel::getUserInfo($userId,'real_name');
return empty($item) ? '' : $$item['real_name'];
return empty($item) ? '' : $item->real_name;
});
$grid->column('store_id')->display(function($storeId){
$item = StoreModel::getStoreInfo($storeId,'real_name');
return empty($item) ? '' : $$item['real_name'];
$item = StoreModel::getStoreInfo($storeId,'name');
return empty($item) ? '' : $item->name;
});
$grid->column('role')->display(function($role){
return $role;
$grid->column('role')->display(function($role) use($roleList){
$item = '';
if(!empty($role) && is_array($role)){
foreach($role as $key => $value){
$item .= '【'.$roleList[$value].'】';
}
}
return $item;
});
$grid->column('status')->select(EmployeesModel::$_STATUS);
$grid->column('status')->width(3)->select(EmployeesModel::$_STATUS);
$grid->filter(function (Grid\Filter $filter) {
$grid->filter(function (Grid\Filter $filter) use($marketList){
$filter->equal('id');
$filter->equal('market_id')->select($marketList);
});
$grid->model()->orderBy('status','desc');
$grid->model()->orderBy('id','desc');
// 每页10条
$grid->paginate(10);
@ -58,11 +73,29 @@ class LanzuEmployeesController extends AdminController
{
return Show::make($id, new LanzuEmployees(), function (Show $show) {
$show->field('id');
$show->field('user_id');
$show->field('store_id');
$show->field('market_id');
$show->field('role');
$show->field('status');
$show->field('user_id')->as(function($userId){
$item = UserModel::getUserInfo($userId,'real_name');
return empty($item) ? '' : $item->real_name;
});
$show->field('store_id')->as(function($storeId){
$item = StoreModel::getStoreInfo($storeId,'name');
return empty($item) ? '' : $item->name;
});
$show->field('market_id')->as(function($marketId){
$item = MarketModel::getMarketInfo($marketId,'name');
return empty($item) ? '' : $item->name;
});
$show->field('role')->as(function($role){
$roleList = config('role.position');
$item = '';
if(!empty($role) && is_array($role)){
foreach($role as $key => $value){
$item .= ' 【'.$roleList[$value].'】';
}
}
return $item;
});
$show->field('status_text');
$show->field('note');
$show->field('created_at');
$show->field('updated_at');
@ -77,16 +110,32 @@ class LanzuEmployeesController extends AdminController
protected function form()
{
return Form::make(new LanzuEmployees(), function (Form $form) {
$form->display('id');
$form->text('user_id');
$form->text('store_id');
$form->text('market_id');
$form->text('role');
$form->text('status');
$form->text('note');
$userId = $form->model()->user_id;
//市场
$marketList = MarketModel::getMarketArray();
//店铺
$storeList = StoreModel::getStoreArray();
// 用户
$userList = UserModel::getUserArray();
// 已绑定的用户
$userHas = EmployeesModel::pluck('user_id')->toArray();
foreach($userList as $ku => $uv){
if($ku != 0 && in_array($ku,$userHas) && !in_array($userId,$userHas)){
unset($userList[$ku]);
}
}
$form->hidden('id');
$form->select('user_id')->required()->options($userList);
$form->select('market_id')->required()->options($marketList);
$form->multipleSelect('role')->required()->options(config('role.position'));
$form->select('store_id')->options($storeList);
$form->text('note')->maxLength(200);
$form->display('created_at');
$form->display('updated_at');
$form->hidden('status')->default(1);
$form->disableResetButton();
$form->disableViewCheck();
$form->disableEditingCheck();
$form->disableCreatingCheck();
});
}
}

110
app/Admin/Controllers/v3/UserController.php

@ -0,0 +1,110 @@
<?php
namespace App\Admin\Controllers\v3;
use App\Admin\Repositories\v3\User;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;
use App\Models\v3\User as UserModel;
class UserController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new User(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('avatar')->image('',50);
$grid->column('nick_name');
$grid->column('openid');
$grid->column('unionid');
$grid->column('real_name')->editable();
$grid->column('tel');
$grid->column('gender_text');
$grid->column('status')->using(UserModel::$_STATUS)->label(config('label.status_label'));
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
$filter->like('nick_name');
$filter->like('real_name');
});
$grid->model()->orderBy('id','desc');
// 每页10条
$grid->paginate(10);
$grid->disableCreateButton();
$grid->disableDeleteButton();
$grid->disableEditButton();
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new User(), function (Show $show) {
$show->field('id');
$show->field('nick_name');
$show->field('avatar')->image();
$show->field('openid');
$show->field('real_name');
$show->field('tel');
$show->field('unionid');
$show->field('status');
$show->field('country');
$show->field('province');
$show->field('city');
$show->field('gender');
$show->field('language');
$show->field('created_at');
$show->field('updated_at');
$show->panel()->tools(function ($tools) {
$tools->disableEdit();
// $tools->disableList();
$tools->disableDelete();
// 显示快捷编辑按钮
// $tools->showQuickEdit();
});
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new User(), function (Form $form) {
$form->hidden('id');
$form->text('nick_name');
$form->image('avatar');
$form->text('openid');
$form->text('real_name');
$form->tel('tel');
$form->text('unionid');
$form->text('status');
$form->text('country');
$form->text('province');
$form->text('city');
$form->radio('gender')->options(UserModel::$_GENDER);
$form->text('language');
$form->disableResetButton();
$form->disableViewCheck();
$form->disableEditingCheck();
$form->disableCreatingCheck();
});
}
}

16
app/Admin/Repositories/v3/User.php

@ -0,0 +1,16 @@
<?php
namespace App\Admin\Repositories\v3;
use App\Models\v3\User as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class User extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}

1
app/Admin/routes.php

@ -73,5 +73,6 @@ Route::group([
// 懒族员工
$router->resource('/employees', 'v3\LanzuEmployeesController');
$router->resource('/user', 'v3\UserController');
});

10
app/Models/v3/LanzuEmployees.php

@ -16,13 +16,15 @@ class LanzuEmployees extends Model
/* 查询记录数 limit */
protected $perPage = 10;
protected $casts = [
'role'=>'array',
];
public static $_TYPE= [''];
public static $_STATUS = [-1=>'离职',0=>'禁用',1=>'正常'];
protected $appends = [
'is_rest_text',
'is_open_text'
'type_text',
'status_text'
];
public function getTypeTextAttribute($value)
@ -30,7 +32,7 @@ class LanzuEmployees extends Model
$value = $value ? $value : $this->type;
return isset(self::$_TYPE[$value]) ? self::$_TYPE[$value] : '';
}
public function getIsRestTextAttribute($value)
public function getStatusTextAttribute($value)
{
$value = $value ? $value : $this->status;
return isset(self::$_STATUS[$value]) ? self::$_STATUS[$value] : '';

19
app/Models/v3/User.php

@ -9,6 +9,25 @@ class User extends Model
protected $table = 'lanzu_user';
protected $dateFormat = 'U';
public static $_GENDER = ['保密','男','女'];
public static $_STATUS = [0=>'禁用',1=>'正常'];
protected $appends = [
'gender_text',
'status_text'
];
public function getGenderTextAttribute($value)
{
$value = $value ? $value : $this->gender;
return isset(self::$_GENDER[$value]) ? self::$_GENDER[$value] : '';
}
public function getStatusTextAttribute($value)
{
$value = $value ? $value : $this->status;
return isset(self::$_STATUS[$value]) ? self::$_STATUS[$value] : '';
}
/**
* 获取单个用户信息
* @param int $id

42
config/role.php

@ -0,0 +1,42 @@
<?php
/**
* 懒族员工角色
*/
return [
'position'=>[
1 => '董事长',
2 => '总经理',
3 => '人力资源总监',
4 => 'CTO',
5 => '财务经理',
6 => '运营总监',
7 => '招商总监',
8 => 'PHP研发主管',
9 => '迁江智慧商城主管',
10 => '拓展部主管',
11 => '拓展部副主管',
12 => '拓展部经理',
13 => '运维部经理',
14 => '产品主管',
15 => '策划经理',
16 => '运维部副经理',
17 => '新媒体运营',
18 => '平面设计师',
19 => 'UI设计师',
20 => '前端开发工程师',
21 => 'PHP研发工程师',
22 => '测试工程师',
23 => '招商经理',
24 => '服务站管理员',
25 => '运维专员',
26 => '拓展经理',
27 => '行政助理',
28 => '出纳',
29 => '骑手',
30 => '服务专员',
]
];

4
resources/lang/zh-CN/lanzu-employees.php

@ -4,13 +4,15 @@ return [
'LanzuEmployees' => '懒族员工',
'lanzuEmployees' => '懒族员工',
'lanzu_employees' => '懒族员工',
'employees' => '懒族员工',
],
'fields' => [
'user_id' => '用户懒ID',
'store_id' => '店铺',
'market_id' => '服务站ID',
'market_id' => '服务站',
'role' => '用户角色',
'status' => '状态',
'status_text' => '状态',
'note' => '备注',
],
'options' => [

25
resources/lang/zh-CN/user.php

@ -0,0 +1,25 @@
<?php
return [
'labels' => [
'User' => '微信用户',
'user' => '微信用户',
],
'fields' => [
'nick_name' => '昵称',
'avatar' => '微信头像',
'openid' => '微信小程序openid',
'real_name' => '真实姓名',
'tel' => '电话号码',
'unionid' => '微信小程序unionid',
'status' => '状态',
'status_text' => '状态',
'country' => '国家',
'province' => '省份',
'city' => '城市',
'gender' => '性别',
'gender_text' => '性别',
'language' => '语言',
],
'options' => [
],
];
Loading…
Cancel
Save