| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- <?php
 
- namespace app\common\model;
 
- use think\Db;
 
- use tools\Phptree;
 
- class Menu extends Base
 
- {
 
-     protected $autoWriteTimestamp = false;
 
-     public function updates(){
 
-         $data = request()->post();
 
-         return $this->updateInfo($data,'Menu','');
 
-     }
 
-     // 获取所有权限
 
-     public function getAllMenuTree(){
 
-         $map[] = ['id','not in',[37,38,39,47,48]];
 
-         $map[] = ['del','=',0];
 
-         $lists = Db::name('menu')
 
-             ->where('enable',1)
 
-             ->where($map)
 
-             ->field('id,title,pid')
 
-             ->order('sort asc,id asc')
 
-             ->select();
 
-         $lists = $lists?$lists:[];
 
-         foreach ($lists as $k=>$v){
 
-             $pids = [];
 
-             $pid = $v['pid'];
 
-             while (true){
 
-                 if($pid == 0){
 
-                     break;
 
-                 }else{
 
-                     $pids[] = 'sub_'.$pid;
 
-                     $cc = Db::name('menu')
 
-                         ->where('id',$pid)
 
-                         ->find();
 
-                     if(!$cc){
 
-                         break;
 
-                     }
 
-                     $pid = $cc['pid'];
 
-                 }
 
-             }
 
-             $lists[$k]['pids'] = $pids?implode(' ',$pids):'';
 
-         }
 
-         $tree = Phptree::makeTree(($lists), array(
 
-             'primary_key'=>'id',
 
-             'parent_key'=>'pid',
 
-             'expanded' => true,
 
-             'children_key' => 'children'
 
-         ));
 
-         return $tree;
 
-     }
 
-     // 获取某组织的所有权限
 
-     public function getOrgAllMenuTree($orgId){
 
-         $auths = model('Org')->getOrgAuths($orgId,1);
 
-         $lists = [];
 
-         if($auths){
 
-             $map[] = ['id','not in',[37,38,39,47,48]];
 
-             $map[] = ['del','=',0];
 
-             $lists = Db::name('menu')
 
-                 ->where('enable',1)
 
-                 ->where('id','in',$auths)
 
-                 ->where($map)
 
-                 ->field('id,title,pid')
 
-                 ->order('sort asc,id asc')
 
-                 ->select();
 
-             $lists = $lists?$lists:[];
 
-             foreach ($lists as $k=>$v){
 
-                 $pids = [];
 
-                 $pid = $v['pid'];
 
-                 while (true){
 
-                     if($pid == 0){
 
-                         break;
 
-                     }else{
 
-                         $pids[] = 'sub_'.$pid;
 
-                         $cc = Db::name('menu')
 
-                             ->where('id',$pid)
 
-                             ->find();
 
-                         if(!$cc){
 
-                             break;
 
-                         }
 
-                          $pid = $cc['pid'];
 
-                     }
 
-                 }
 
-                 $lists[$k]['pids'] = $pids?implode(' ',$pids):'';
 
-             }
 
-         }
 
-         $tree = Phptree::makeTree(($lists), array(
 
-             'primary_key'=>'id',
 
-             'parent_key'=>'pid',
 
-             'expanded' => true,
 
-             'children_key' => 'children'
 
-         ));
 
-         return $tree;
 
-     }
 
-     // 根据角色和组织获取用户菜单项
 
-     public function getMenuTree($rolesId,$orgId){
 
-         $map[] = ['enable','=',1];
 
-         $map[] = ['del','=',0];
 
-         $map[] = ['is_btn','=',0];
 
-         if($rolesId == 1){ // 超级管理员
 
-         }else if($rolesId == 2){ //总公司管理员
 
-             $auths = model('Org')->getOrgAuths($orgId,1);
 
-             if($auths){
 
-                 $map[] = ['id','in',$auths];
 
-             }else{
 
-                 $map[] = ['id','=',0];
 
-             }
 
-         }else{ // 项目管理员
 
-             $auths = model('Roles')->getRolesAuths($rolesId,1);
 
-             if($auths){
 
-                 $map[] = ['id','in',$auths];
 
-             }else{
 
-                 $map[] = ['id','=',0];
 
-             }
 
-         }
 
-         if($rolesId!=1){
 
-             /*3.只有admin管理员可见
 
-             系统设置: 菜单管理、配置管理、安卓版本管理、苹果版本管理、
 
-             模块管理、这些项目,在权限分配里面就不要出现了,不需要分配*/
 
-             $map[] = ['id','not in',[37,38,39,47,48]];
 
-         }
 
-         $lists = Db::name('menu')
 
-             ->where($map)
 
-             ->field('id,title,url,icons,pid')
 
-             ->order('sort asc,id asc')
 
-             ->select();
 
-         $lists = $lists?$lists:[];
 
-         $first = [
 
-             'id' => -1,
 
-             'title' => '系统首页',
 
-             'url' => $this->getNavUrl('Index/def'),
 
-             'icons' => 'fa fa-home',
 
-             'pid' => 0,
 
-         ];
 
-         $arr[] = $first;
 
-         foreach ($lists as $k=>$v){
 
-             $v['url'] = $this->getNavUrl($v['url']);
 
-             $arr[] = $v;
 
-         }
 
-         $tree = list_to_tree($arr, 'pid', 'child');
 
-         return $tree;
 
-     }
 
-     /**
 
-      * 获取导航URL
 
-      * @param  string $url 导航URL
 
-      * @return string      解析或的url
 
-      */
 
-     public function getNavUrl($url){
 
-         switch ($url) {
 
-             case 'http://' === substr($url, 0, 7):
 
-             case 'https://' === substr($url, 0, 8):
 
-             case '#' === substr($url, 0, 1):
 
-                 break;
 
-             default:
 
-                 $url = url($url);
 
-                 break;
 
-         }
 
-         return $url;
 
-     }
 
- }
 
 
  |