diff --git a/application/admin/controller/user/User.php b/application/admin/controller/user/User.php index 6908ad67..94828e4f 100644 --- a/application/admin/controller/user/User.php +++ b/application/admin/controller/user/User.php @@ -41,7 +41,6 @@ class User extends Backend } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $list = $this->model - ->with('group') ->where($where) ->order($sort, $order) ->paginate($limit); @@ -49,7 +48,9 @@ class User extends Backend $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname); $v->hidden(['password', 'salt']); } - $result = array("total" => $list->total(), "rows" => $list->items()); + $rows = $list->items(); + addtion($rows, [['field' => 'group_id', 'display' => 'group_name', 'model' => \app\admin\model\UserGroup::class]]); + $result = array("total" => $list->total(), "rows" => $rows); return json($result); } diff --git a/application/admin/model/User.php b/application/admin/model/User.php index 4a8f0c7e..a962091e 100644 --- a/application/admin/model/User.php +++ b/application/admin/model/User.php @@ -106,9 +106,9 @@ class User extends Model return $value ? $value : null; } - public function group() + public function getGroupAttr($value, $data) { - return $this->belongsTo('UserGroup', 'group_id', 'id', [], 'LEFT')->setEagerlyType(0); + return UserGroup::get($data['group_id']); } } diff --git a/application/admin/model/UserRule.php b/application/admin/model/UserRule.php index 86bb9fd4..c884b6ea 100644 --- a/application/admin/model/UserRule.php +++ b/application/admin/model/UserRule.php @@ -54,10 +54,10 @@ class UserRule extends Model Tree::instance()->init($ruleList); $ruleList = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name'); $hasChildrens = []; - foreach ($ruleList as $k => $v) - { - if ($v['haschild']) + foreach ($ruleList as $k => $v) { + if ($v['haschild']) { $hasChildrens[] = $v['id']; + } } foreach ($ruleList as $k => $v) { $state = array('selected' => in_array($v['id'], $selected) && !in_array($v['id'], $hasChildrens)); diff --git a/public/assets/js/backend/user/user.js b/public/assets/js/backend/user/user.js index 1ee1a74f..03e0aa7e 100644 --- a/public/assets/js/backend/user/user.js +++ b/public/assets/js/backend/user/user.js @@ -20,14 +20,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', - sortName: 'user.id', + sortName: 'id', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id'), sortable: true}, - {field: 'group.name', title: __('Group')}, + { + field: 'group_id', title: __('Group'), formatter: function (value, row, index) { + value = Fast.api.escape(row.group_name || ''); + return '' + value + ''; + } + }, {field: 'username', title: __('Username'), operate: 'LIKE'}, {field: 'nickname', title: __('Nickname'), operate: 'LIKE'}, {field: 'email', title: __('Email'), operate: 'LIKE'},