Perm.php 12.2 KB
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Perm extends CI_Controller {

    /**
     * 控制台默认页面
     */
    public function index()
    {
        $this->load->view('perm/index');
    }

    public function personal()
    {
        $this->load->view('perm/personal');
    }

    public function staff()
    {
        $this->load->view('perm/staff');
    }

    public function staffAdd()
    {
        $this->load->view('perm/staffAdd');
    }

    public function staffEdit($id)
    {
        $url = $this->config->item('apiBaseUrl') . 'system/user/get/'.$id;
        $result = file_get_contents($url);
        $json = json_decode($result);
        $ret = $json->data;
        $roles = array();
        foreach($json->data->roles as $v){
            $roles[] = $v->id;
        }
//        var_dump($roles);
        $data = array(
            'item'=>$ret,
            'roles'=>$roles,
            'id'=>$id
        );
        $this->load->view('perm/staffEdit',$data);
    }

    //重置密码
    public function reset()
    {
        $this->load->view('perm/reset');
    }

    public function branch()
    {
        $this->load->view('perm/branch');
    }

    public function role()
    {
        $this->load->view('perm/role');
    }

    public function roleAdd()
    {
        $this->load->view('perm/roleAdd');
    }

    public function roleEdit($id)
    {
        $url = $this->config->item('apiBaseUrl') . 'system/role/get/'.$id;
        $result = file_get_contents($url);
        $json = json_decode($result);
        $ret = $json->data;
        $data = array(
            'item'=>$ret,
            'id'=>$id
        );
        $this->load->view('perm/roleEdit', $data);
    }

    public function organization()
    {
        $res = json_decode(file_get_contents($this->config->item('apiBaseUrl') . 'department/getTree'));
        $data = $res->data;
        $arr = array();
        foreach ($data as $k => $v) {
            $item = array();
            $item['id'] = $v->id;
            $item['name'] = $v->name;
            $item['pId'] = 0;
            $item['open'] = true;
            $arr[] = $item;
            if (!$v->children || empty($v->children)) {
                continue;
            }

            foreach ($v->children as $kk => $vv) {
                $item2 = array();
                $item2['id'] = $vv->id;
                $item2['name'] = $vv->name;
                $item2['pId'] = $v->id;
                $item2['open'] = true;
                $arr[] = $item2;
                if (!$vv->children || empty($vv->children)) {
                    continue;
                }
                foreach ($vv->children as $kkk => $vvv) {
                    $item3 = array();
                    $item3['id'] = $vvv->id;
                    $item3['name'] = $vvv->name;
                    $item3['pId'] = $vv->id;
                    $item3['open'] = true;
                    $arr[] = $item3;

                    if (!$vvv->children || empty($vvv->children)) {
                        continue;
                    }
                    foreach ($vvv->children as $kkkk => $vvvv) {
                        $item4 = array();
                        $item4['id'] = $vvvv->id;
                        $item4['name'] = $vvvv->name;
                        $item4['pId'] = $vvv->id;
                        $item4['open'] = true;
                        $arr[] = $item4;
                        if (!$vvvv->children || empty($vvvv->children)) {
                            continue;
                        }
                        foreach ($vvvv->children as $kkkkk => $vvvvv) {
                            $item5 = array();
                            $item5['id'] = $vvvvv->id;
                            $item5['name'] = $vvvvv->name;
                            $item5['pId'] = $vvvv->id;
                            $item5['open'] = true;
                            $arr[] = $item5;
                            if (!$vvvvv->children || empty($vvvvv->children)) {
                                continue;
                            }
                            foreach ($vvvvv->children as $kkkkkk => $vvvvvv) {
                                $item6 = array();
                                $item6['id'] = $vvvvvv->id;
                                $item6['name'] = $vvvvvv->name;
                                $item6['pId'] = $vvvvv->id;
                                $arr[] = $item6;
                                if (!$vvvvvv->children || empty($vvvvvv->children)) {
                                    continue;
                                }
                                foreach ($vvvvvv->children as $k7 => $v7) {
                                    $item7 = array();
                                    $item7['id'] = $v7->id;
                                    $item7['name'] = $v7->name;
                                    $item7['pId'] = $vvvvvv->id;
                                    $arr[] = $item7;
                                    if (!$v7->children || empty($v7->children)) {
                                        continue;
                                    }
                                    foreach ($v7->children as $k8 => $v8) {
                                        $item8 = array();
                                        $item8['id'] = $v8->id;
                                        $item8['name'] = $v8->name;
                                        $item8['pId'] = $v7->id;
                                        $arr[] = $item8;
                                    }
                                }
                            }

                        }
                    }
                }
            }

        }
//        $data = '[{"id":1,"pId":0,"name":"父节点1 (5人)","open":true},{"id":11,"pId":1,"name":"叶子节点 1-1"},{"id":12,"pId":1,"name":"叶子节点 1-2"},{"id":13,"pId":1,"name":"叶子节点 1-3"},{"id":2,"pId":0,"name":"父节点 2","open":true},{"id":21,"pId":2,"name":"叶子节点 2-1"},{"id":22,"pId":2,"name":"叶子节点 2-2"},{"id":23,"pId":2,"name":"叶子节点 2-3"},{"id":3,"pId":0,"name":"父节点 3","open":true},{"id":31,"pId":3,"name":"叶子节点 3-1"},{"id":32,"pId":3,"name":"叶子节点 3-2"},{"id":33,"pId":3,"name":"叶子节点 3-3"}]';
//        $data = json_decode($data, true);

        $this->output->set_content_type('application/json')->set_output(json_encode($arr));
    }

    public function menu($id)
    {

        $role = json_decode(file_get_contents($this->config->item('apiBaseUrl') . 'system/role/get/'.$id));
        $role = $role->data->menuOutputVOS;

//        echo $this->config->item('apiBaseUrl') . 'system/menu/getAllMenu';
        $res = json_decode(file_get_contents($this->config->item('apiBaseUrl') . 'system/menu/getAllMenuTree'));
//        var_dump($res->data);
//        exit;
        $data = $res->data;
//        var_dump($data);
        $arr = array();

        foreach ($data as $k => $v) {

            $item = array();
            $item['id'] = $v->id;
            $item['name'] = $v->name;
            $item['pId'] = 0;
            $item['open'] = true;
//            var_dump($item);exit;
            $arr[] = $item;
            if (!$v->children || empty($v->children)) {
                continue;
            }


            foreach ($v->children as $kk => $vv) {
                $item2 = array();
                $item2['id'] = $vv->id;
                $item2['name'] = $vv->name;
                $item2['pId'] = $v->id;
                $item2['open'] = true;
                $arr[] = $item2;
                if (!$vv->children || empty($vv->children)) {
                    continue;
                }
                foreach ($vv->children as $kkk => $vvv) {
                    $item3 = array();
                    $item3['id'] = $vvv->id;
                    $item3['name'] = $vvv->name;
                    $item3['pId'] = $vv->id;
                    $item3['open'] = true;
                    $arr[] = $item3;

                    if (!$vvv->children || empty($vvv->children)) {
                        continue;
                    }
                    foreach ($vvv->children as $kkkk => $vvvv) {
                        $item4 = array();
                        $item4['id'] = $vvvv->id;
                        $item4['name'] = $vvvv->name;
                        $item4['pId'] = $vvv->id;
                        $item4['open'] = true;
                        $arr[] = $item4;
                        if (!$vvvv->children || empty($vvvv->children)) {
                            continue;
                        }
                        foreach ($vvvv->children as $kkkkk => $vvvvv) {
                            $item5 = array();
                            $item5['id'] = $vvvvv->id;
                            $item5['name'] = $vvvvv->name;
                            $item5['pId'] = $vvvv->id;
                            $item5['open'] = true;
                            $arr[] = $item5;
                            if (!$vvvvv->children || empty($vvvvv->children)) {
                                continue;
                            }
                            foreach ($vvvvv->children as $kkkkkk => $vvvvvv) {
                                $item6 = array();
                                $item6['id'] = $vvvvvv->id;
                                $item6['name'] = $vvvvvv->name;
                                $item6['pId'] = $vvvvv->id;
                                $arr[] = $item6;
                                if (!$vvvvvv->children || empty($vvvvvv->children)) {
                                    continue;
                                }
                                foreach ($vvvvvv->children as $k7 => $v7) {
                                    $item7 = array();
                                    $item7['id'] = $v7->id;
                                    $item7['name'] = $v7->name;
                                    $item7['pId'] = $vvvvvv->id;
                                    $arr[] = $item7;
                                    if (!$v7->children || empty($v7->children)) {
                                        continue;
                                    }
                                    foreach ($v7->children as $k8 => $v8) {
                                        $item8 = array();
                                        $item8['id'] = $v8->id;
                                        $item8['name'] = $v8->name;
                                        $item8['pId'] = $v7->id;
                                        $arr[] = $item8;
                                    }
                                }
                            }

                        }
                    }
                }
            }

        }
//        var_dump($arr);exit;
//        $data = '[{"id":1,"pId":0,"name":"父节点1 (5人)","open":true},{"id":11,"pId":1,"name":"叶子节点 1-1"},{"id":12,"pId":1,"name":"叶子节点 1-2"},{"id":13,"pId":1,"name":"叶子节点 1-3"},{"id":2,"pId":0,"name":"父节点 2","open":true},{"id":21,"pId":2,"name":"叶子节点 2-1"},{"id":22,"pId":2,"name":"叶子节点 2-2"},{"id":23,"pId":2,"name":"叶子节点 2-3"},{"id":3,"pId":0,"name":"父节点 3","open":true},{"id":31,"pId":3,"name":"叶子节点 3-1"},{"id":32,"pId":3,"name":"叶子节点 3-2"},{"id":33,"pId":3,"name":"叶子节点 3-3"}]';
//        $data = json_decode($data, true);

//        $arr2 = array();

        foreach ($role as $k => $v) {
            $r = array();
            $r['id'] = $v->id;
            $r['name'] = $v->name;
            $r['pId'] = 0;
            $r['checked'] = $v->checked;
            $arr2[] = $r;
            if (!$v->children || empty($v->children)) {
                continue;
            }
            foreach ($v->children as $k2 => $v2) {
                $r2 = array();
                $r2['id'] = $v2->id;
                $r2['name'] = $v2->name;
                $r2['pId'] = $v->id;
                $r2['checked'] = $v2->checked;
                $arr2[] = $r2;
            }

        }
//        var_dump($arr2);exit;

        foreach ($arr as $k => $v) {
            foreach ($arr2 as $k2 => $v2) {
                if($v2['checked'] == true){
                    $v['checked'] = true;
                    break;
                }
            }
        }

        $this->output->set_content_type('application/json')->set_output(json_encode($arr));
    }

}