去掉无用的参数
修改表单构建关联字段的逻辑 修改外部插件说明
This commit is contained in:
@@ -59,7 +59,7 @@ class DepartmentController extends DefaultController
|
||||
}
|
||||
|
||||
$model->select($header['select'])
|
||||
->addSelect(DB::raw('parent_id,(select count(id) from [user] where department_id = department.id) as user_count'));
|
||||
->addSelect(DB::raw('(select count(id) from [user] where department_id = department.id) as user_count'));
|
||||
|
||||
$items = $model->get()->toNested('name');
|
||||
$items = Grid::dataFilters($items, $header, function($item) {
|
||||
|
||||
@@ -67,7 +67,7 @@ class UserController extends DefaultController
|
||||
}
|
||||
}
|
||||
|
||||
$header['select'][] = 'password_text';
|
||||
$header['select'][] = 'user.password_text';
|
||||
$model->select($header['select']);
|
||||
|
||||
$rows = $model->paginate($query['limit'])->appends($query);
|
||||
|
||||
@@ -77,7 +77,7 @@ class UserService
|
||||
return User::whereIn('department_id', $departments)->pluck('id')->toArray();
|
||||
}
|
||||
|
||||
// 销售团队
|
||||
// 销售组
|
||||
if ($level == 5) {
|
||||
$regions = DB::table('customer_region')->get()->toNested();
|
||||
// 审批权限
|
||||
@@ -114,6 +114,187 @@ class UserService
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色权限
|
||||
*/
|
||||
public static function getRolesAccess()
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
$query = [
|
||||
'team_id' => 0,
|
||||
'customer_id' => 0,
|
||||
];
|
||||
|
||||
foreach ($query as $k => $v) {
|
||||
$query[$k] = Request::get($k, $v);
|
||||
}
|
||||
|
||||
$teams = DB::table('customer_region')->get()->toNested()->toArray();
|
||||
|
||||
$roles = DB::table('role')
|
||||
->leftJoin('user_role', 'user_role.role_id', '=', 'role.id')
|
||||
->where('user_role.user_id', $user['id'])
|
||||
->get();
|
||||
|
||||
// 支持销售组
|
||||
$isTeam = false;
|
||||
|
||||
$res = [];
|
||||
|
||||
// 自己
|
||||
$res['userId'] = $user->id;
|
||||
|
||||
foreach($roles as $role) {
|
||||
|
||||
// 全部数据权限
|
||||
if ($role['access'] == 'all') {
|
||||
$isTeam = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($role['access'] == 'team' || $role['access'] == 'team2') {
|
||||
$isTeam = true;
|
||||
}
|
||||
|
||||
// 获取单个角色权限
|
||||
$access = static::getRoleAccess($user, $role, $teams);
|
||||
|
||||
// 筛选了销售组重置过滤条件
|
||||
if ($isTeam && $query['team_id'] > 0) {
|
||||
$access['whereIn']['team'] = [$query['team_id']];
|
||||
}
|
||||
$res['roles'][] = $access;
|
||||
}
|
||||
|
||||
if ($isTeam) {
|
||||
$res['team'] = $teams;
|
||||
}
|
||||
|
||||
// 没有筛选销售组
|
||||
if ($query['team_id'] == 0) {
|
||||
$query['customer_id'] = 0;
|
||||
}
|
||||
|
||||
$res['query'] = $query;
|
||||
|
||||
print_r($res);
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色权限
|
||||
*/
|
||||
public static function getRoleAccess($user, $role, $teams)
|
||||
{
|
||||
$res = [];
|
||||
|
||||
$res['whereIn'] = [];
|
||||
$res['authorise'] = false;
|
||||
|
||||
// 用户组
|
||||
$group_id = $user['group_id'];
|
||||
switch ($group_id) {
|
||||
// 用户
|
||||
case 1:
|
||||
// 角色数据权限
|
||||
switch ($role['access']) {
|
||||
// 本人
|
||||
case 'me':
|
||||
$res['userIds'] = [$user->id];
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = [];
|
||||
$res['whereIn']['user'] = $res['userIds'];
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 本人和下属
|
||||
case 'me2':
|
||||
$users = DB::table('user')->whereRaw('(id = '.$user->id.' or leader_id = '.$user->id.')')->pluck('id')->toArray();
|
||||
$res['userIds'] = $users;
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = [];
|
||||
$res['whereIn']['user'] = $users;
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 本部门
|
||||
case 'dept':
|
||||
$users = DB::table('user')->where('department_id', $user->department_id)->pluck('id')->toArray();
|
||||
$res['userIds'] = $users;
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = [];
|
||||
$res['whereIn']['user'] = $users;
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 本部门和下级部门
|
||||
case 'dept2':
|
||||
$departmentIds = DB::table('user')->treeById($user->department_id)->toArray();
|
||||
$users = DB::table('user')->whereIn('department_id', $departmentIds)->pluck('id')->toArray();
|
||||
$res['userIds'] = $users;
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = [];
|
||||
$res['whereIn']['user'] = $users;
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 本销售组
|
||||
case 'team':
|
||||
// 审批权限,查询权限
|
||||
$teamIds = DB::table('customer_region')
|
||||
->whereRaw('(owner_user_id = '.$user->id.' or '.db_instr('owner_assist', $user->id).')')->pluck('id')->toArray();
|
||||
$res['userIds'] = [];
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = $teamIds;
|
||||
$res['whereIn']['team'] = $teamIds;
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 本销售组和下级销售组
|
||||
case 'team2':
|
||||
// 审批权限,查询权限
|
||||
$_teamIds = DB::table('customer_region')
|
||||
->whereRaw('(owner_user_id = '.$user->id.' or '.db_instr('owner_assist', $user->id).')')->pluck('id')->toArray();
|
||||
$teamIds = [];
|
||||
foreach($_teamIds as $_teamId) {
|
||||
foreach($teams[$_teamId]['child'] as $id) {
|
||||
$teamIds[] = $id;
|
||||
}
|
||||
}
|
||||
$res['userIds'] = [];
|
||||
$res['customerIds'] = [];
|
||||
$res['teamIds'] = $teamIds;
|
||||
$res['whereIn']['team'] = $teamIds;
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
case 'all':
|
||||
break;
|
||||
}
|
||||
// 客户
|
||||
case 2:
|
||||
$customerIds = DB::table('customer')->where('user_id', $user->id)->pluck('id')->toArray();
|
||||
$res['userIds'] = [];
|
||||
$res['customerIds'] = $customerIds;
|
||||
$res['whereIn']['customer'] = $customerIds;
|
||||
$res['teamIds'] = [];
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 客户联系人
|
||||
case 3:
|
||||
$customerIds = DB::table('customer_contact')->where('user_id', $user->id)->pluck('customer_id')->toArray();
|
||||
$res['userIds'] = [];
|
||||
$res['customerIds'] = $customerIds;
|
||||
$res['whereIn']['customer'] = $customerIds;
|
||||
$res['teamIds'] = [];
|
||||
$res['authorise'] = true;
|
||||
break;
|
||||
// 供应商
|
||||
case 4:
|
||||
break;
|
||||
// 供应商联系人
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查动态密码
|
||||
*/
|
||||
|
||||
@@ -93,7 +93,7 @@ return [
|
||||
"name" => "编辑"
|
||||
],
|
||||
"config" => [
|
||||
"name" => "控制器权限"
|
||||
"name" => "权限"
|
||||
],
|
||||
"delete" => [
|
||||
"name" => "删除"
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<div class="panel-body">
|
||||
@if(count($groupValue['actions']))
|
||||
@foreach($groupValue['actions'] as $childKey => $childValue)
|
||||
<div class="col-md-3 col-sm-6 wrapper-xs">
|
||||
<div class="col-md-2 col-sm-4 wrapper-xs">
|
||||
{{'';$selected = $assets[$menuKey][$groupKey.'.'.$childKey]}}
|
||||
<label title="{{$childKey}}" class="checkbox-inline">
|
||||
<input type="checkbox" class="action-check" name="assets[{{$menuKey}}][{{$groupKey}}.{{$childKey}}][action]" value="1" @if(isset($selected)) checked @endif>
|
||||
|
||||
Reference in New Issue
Block a user