$v) { if (!strstr($v, '-')) { if (strstr($v, 'v')) { $menu[] = trim($v, 'v'); } else { $func[] = $v; } $data['auth'][] = $v; } } if ($func) { $funcData = Dever::db('menu_func')->select(array('id' => array('in', $func)), array('group' => 'menu_id')); foreach ($funcData as $k => $v) { $menu[] = $v['menu_id']; } $menuData = Dever::db('menu')->select(array('id' => array('in', $menu)), array('group' => 'system_id')); foreach ($menuData as $k => $v) { $system[] = $v['system_id']; } } $data['auth'] = implode(',', $data['auth']); $data['menu'] = implode(',', $menu); $data['system'] = implode(',', $system); } return $data; } public function getAuthData() { $result = array(); $system = Dever::db('system')->select([]); foreach ($system as $k => $v) { $result[$k]['value'] = 's-' . $v['id']; $result[$k]['label'] = $v['name']; $result[$k]['children'] = Dever::db('menu')->tree(array('system_id' => $v['id'], 'show' => array('<', '3')), array('parent_id', '0', 'id'), array($this, 'getAuthInfo'), array('col' => 'id,name as label,parent_id,`key`,func')); } return $result; } public function getAuthInfo($info) { if ($info['func'] == 1) { $info['value'] = 'm-' . $info['id']; $info['children'] = Dever::db('menu_func')->select(array('menu_id' => $info['id']), array('col' => 'id as value,name as label')); if (!$info['children']) { return array(); } } else { $info['value'] = 'v' . $info['id']; } return $info; } # 展示系统 public function showSystem($data) { return Dever::db('system')->show(array('id' => array('in', $data))); } # 展示菜单 public function showMenu($data) { return Dever::db('menu')->show(array('id' => array('in', $data))); } # 展示权限 public function showFunc($data) { return Dever::db('menu_func')->show(array('id' => array('in', $data))); } }