/**
  * @Title: index 
  * @Description: todo(index页面的前置函数)   
  * @author xiafengqin 
  * @date 2013-9-24 下午5:20:34 
  * @throws
  */
 public function _before_index()
 {
     $moamModel = D("MisOaArchivesManageMas");
     //档案表
     $yearList = $moamModel->where('status = 1')->DISTINCT(true)->field('year')->select();
     //所有不一样的年
     $typeList = $moamModel->where('status = 1')->DISTINCT(true)->field('typenum')->select();
     $newv = array();
     foreach ($yearList as $k => $v) {
         $k1 = $k + 1;
         $newvYear = array('id' => -$k1, 'pId' => 0, 'title' => '年份', 'name' => missubstr($v['year'], 18, true) . '年', 'url' => "__URL__/index/jump/jump/year/" . $v['year'], 'rel' => "misoaarchivesmanagesub", 'target' => 'ajax', 'open' => true);
         $newv[] = $newvYear;
         foreach ($typeList as $ke => $va) {
             $newvType = array('id' => $k1 . $ke, 'pId' => -$k1, 'title' => '类别号', 'name' => $va['typenum'], 'url' => "__URL__/index/jump/jump/year/" . $v['year'] . "/typenum/" . $va['typenum'], 'rel' => "misoaarchivesmanagesub", 'target' => 'ajax', 'open' => true);
             $map = array();
             $map['year'] = $v['year'];
             $map['typenum'] = $va['typenum'];
             $fondsnumList = $moamModel->where($map)->DISTINCT(true)->field('fondsnum')->select();
             if ($fondsnumList) {
                 $newv[] = $newvType;
             }
             foreach ($fondsnumList as $key => $val) {
                 $newvFondsnum = array('id' => $k1 . $ke . $key, 'pId' => $k1 . $ke, 'title' => '全宗号', 'name' => $val['fondsnum'], 'url' => "__URL__/index/jump/jump/year/" . $v['year'] . "/typenum/" . $va['typenum'] . "/fondsnum/" . $val['fondsnum'], 'rel' => "misoaarchivesmanagesub", 'target' => 'ajax', 'open' => true);
                 $newv[] = $newvFondsnum;
             }
         }
     }
     $this->assign('year', $_REQUEST['year']);
     $this->assign('typenum', $_REQUEST['typenum']);
     $this->assign('fondsnum', $_REQUEST['fondsnum']);
     $this->assign('tree', json_encode($newv));
 }
 /**
  * 构造树形节点  @changeby wangcheng
  * @param array  $alldata  构造树的数据
  * @param array  $param    传入数组参数,包含rel,url【url中参数传递用#name#形式,name 为字段名字】
  * @param array  $returnarr  初始化s树形节点,可以传入数字,默认选中哪一行数据
  * @return string
  */
 function getTree($alldata = array(), $param = array(), $returnarr = array())
 {
     $selected = $_REQUEST["pid"] ? $_REQUEST["pid"] : 1;
     foreach ($alldata as $k => $v) {
         $newv = array();
         $matches = array();
         preg_match_all("|#+(.*)#|U", $param["url"], $matches);
         foreach ($matches[1] as $k2 => $v2) {
             if (isset($v[$v2])) {
                 $matches[1][$k2] = $v[$v2];
             }
         }
         $url = str_replace($matches[0], $matches[1], $param['url']);
         $newv['id'] = $v['id'];
         $newv['realid'] = $v['realid'];
         $newv['pId'] = $v['parentid'] ? $v['parentid'] : 0;
         $newv['type'] = 'post';
         $newv['url'] = $url;
         $newv['shareeduserid'] = $v['shareeduserid'];
         $newv['target'] = 'ajax';
         $newv['rel'] = $param['rel'];
         $newv['title'] = $v['name'];
         //光标提示信息
         $newv['name'] = missubstr($v['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         $newv['open'] = $v["id"] ? false : true;
         $newv['isParent'] = true;
         if ($v['realid'] == $selected) {
             $this->assign("selectedid", $v["id"]);
         }
         array_push($returnarr, $newv);
     }
     return $returnarr;
 }
 public function mistaskinfo()
 {
     //判断权限 任务
     $mistaskModel = D("MisTaskInformationView");
     $map = array();
     $map['executingstatus'] = array('NEQ', 7);
     $map['status'] = 1;
     $mistaskinfo = array();
     if ($_REQUEST['mistasktype'] == 2) {
         $map['executeuser'] = $_SESSION[C('USER_AUTH_KEY')];
         if ($_SESSION['a'] || $_SESSION['mistaskadscription_edit']) {
             $mistaskinfo = $mistaskModel->where($map)->field('id,title,createtime')->order('taskid DESC')->limit(7)->select();
         }
     } else {
         $map['createid'] = $_SESSION[C('USER_AUTH_KEY')];
         if ($_SESSION['a'] || $_SESSION['mistaskinformation_edit']) {
             $mistaskinfo = $mistaskModel->where($map)->field('id,title,createtime')->order('taskid DESC')->limit(7)->select();
         }
     }
     foreach ($mistaskinfo as $key => $val) {
         $mistaskinfo[$key]['title'] = missubstr($val['title'], 60, true);
     }
     $this->assign('mistaskinfo', $mistaskinfo);
     $this->assign('mistasktype', $_REQUEST['mistasktype']);
     if ($_REQUEST['mistasktype']) {
         $this->display();
     }
 }
 private function getType()
 {
     // 获取流程类型 组合成树结构
     $MisSystemFlowTypeDao = M("mis_system_flow_type");
     $where['status'] = 1;
     $typelist = $MisSystemFlowTypeDao->order("sort asc")->where($where)->select();
     // 任务节点
     $MisSystemFlowFormDao = M("mis_system_flow_form");
     $where['outlinelevel'] = 3;
     $formlist = $MisSystemFlowFormDao->order("sort asc")->where($where)->select();
     $supcategory = 0;
     $jsonArr = array();
     foreach ($typelist as $key => $val) {
         // 递归获取最小一层类型
         $supcategory = $this->abc($typelist, $val['id']);
         $typelist[$key]['default'] = $supcategory;
         $array = array();
         $array['id'] = $val['id'];
         $array['name'] = missubstr($val['name'], 18, true);
         $array['title'] = $val['name'];
         $array['pId'] = $val['parentid'];
         $array['open'] = true;
         $array['url'] = "__URL__/index/jump/jump/supcategory/" . $supcategory . "/category/0/pid/0";
         $array['rel'] = "MisSystemFlowWork_left";
         $array['type'] = 'post';
         $array['target'] = 'ajax';
         // 阶段
         if ($val['outlinelevel'] == 2) {
             $array['url'] = "__URL__/index/jump/jump/supcategory/" . $val['parentid'] . "/category/" . $val['id'] . "/pid/0";
             $array['rel'] = "MisSystemFlowWork_left";
             $array['type'] = 'post';
             $array['target'] = 'ajax';
             $jsonArr[] = $array;
             foreach ($formlist as $k => $v) {
                 if ($val['id'] == $v['category']) {
                     $array = array();
                     $array['id'] = "999999" . $v['id'];
                     $array['name'] = missubstr($v['name'], 18, true);
                     $array['title'] = $v['name'];
                     $array['pId'] = $val['id'];
                     $array['url'] = "__URL__/index/jump/jump/supcategory/" . $val['parentid'] . "/category/" . $val['id'] . "/pid/" . $v['id'];
                     $array['rel'] = "MisSystemFlowWork_left";
                     $array['type'] = 'post';
                     $array['target'] = 'ajax';
                     $jsonArr[] = $array;
                 }
             }
         } else {
             $jsonArr[] = $array;
         }
     }
     $this->assign('json_arr', json_encode($jsonArr));
     return $typelist;
 }
 /**
  * @Title: _after_list 
  * @Description: todo(处理内容显示) 
  * @param unknown_type $voList  
  * @author libo 
  * @date 2014-7-16 上午9:36:52 
  * @throws
  */
 function _after_list(&$voList)
 {
     foreach ($voList as $k => $v) {
         $str = htmlspecialchars_decode($v['content'], ENT_QUOTES);
         //转码
         $str = trim(strip_tags(str_replace(" ", ' ', $str)));
         //过滤html
         $voList[$k]['content'] = missubstr($str, 35, true);
         $voList[$k]['readpeople'] = $voList[$k]['readpeople'] ? "<span style='color:green;'>已阅</span>" : "<span style='color:red;'>未阅</span>";
         $voList[$k]['commentpeople'] = $voList[$k]['commentpeople'] ? "<span style='color:green;'>已评</span>" : "<span style='color:red;'>未评</span>";
     }
 }
 /**
  * @Title: onlineManager
  * @Description: todo(文档在线查看方法)
  * @author liminggang
  * @num 数据条数
  * @userid 用户ID;如果为0则为当前用户
  * @myself true查询我的文档;false查询共享文档
  * @date 2013-12-30 下午3:18:36
  * @throws
  */
 private function onlineManager($num = 4, $userid = 0, $myself = false)
 {
     //最新文档前10条
     $filemanagerlist = A("MisFileManager")->lookupgetNewestFile($num, $userid, $myself);
     // 		dump($filemanagerlist);
     //可查看的类型
     $typeext = C("TRANSFORM_SWF");
     $typeext1 = C("IMG_file");
     $typeext[] = 'pdf';
     $typeext = array_merge($typeext, $typeext1);
     foreach ($filemanagerlist as $key => $val) {
         $file = "MisFileManager/" . $val['filepath'];
         $filemanagerlist[$key]['codeurl'] = base64_encode($file);
         //获取文件后缀
         $exten = strtolower(pathinfo($file, PATHINFO_EXTENSION));
         if ($exten) {
             $filemanagerlist[$key]['name'] = missubstr(str_replace("." . $exten, "", $val['name']), 25, true) . '.' . $exten;
         } else {
             $filemanagerlist[$key]['name'] = missubstr($val['name'], 25, true);
         }
         $filemanagerlist[$key]['online'] = false;
         //规定的文件才能在线查看
         if (in_array($exten, $typeext)) {
             $filemanagerlist[$key]['online'] = true;
         }
     }
     $this->assign('snlist', $filemanagerlist);
 }
Exemple #7
0
 public function getGroupNodeList()
 {
     //查询系统分组信息
     $model = M("Group");
     $list = $model->where("status=1")->order("sorts asc")->select();
     //获取顶级节点ID
     $initpid = $this->where('pid=0')->getField('id');
     // 查询菜单节点
     $map['status'] = 1;
     $map['type'] = array('lt', 4);
     $nodelist = $this->where($map)->order('sort asc')->select();
     //存储所有分组下面的所有节点
     $returnarr = array();
     // 第一个循环构造分组节点
     foreach ($list as $k2 => $v2) {
         $newv1 = array();
         $newv1['id'] = -$v2['id'];
         $newv1['pId'] = 0;
         $newv1['title'] = $v2['name'];
         //光标提示信息
         $newv1['name'] = missubstr($v2['name'], 20, true);
         //结点名字,太多会被截取
         $newv1['url'] = "__URL__/index/frame/1/group_id/" . $v2['id'] . "/pid/" . $initpid;
         $newv1['target'] = 'ajax';
         $newv1['rel'] = "jbsxNodeBox";
         $newv1['open'] = 'false';
         $returnarr[] = $newv1;
         // 第二个循环构造组分类节点
         foreach ($nodelist as $k => $v) {
             $newv2 = array();
             if ($v['type'] == 1 && $v['group_id'] == $v2['id']) {
                 //面板级
                 unset($nodelist[$k]);
                 $newv2['id'] = $v['id'];
                 $newv2['pId'] = -$v2['id'];
                 $newv2['title'] = $v['title'];
                 //光标提示信息
                 $newv2['name'] = missubstr($v['title'], 20, true);
                 //结点名字,太多会被截取
                 $newv2['url'] = "__URL__/index/frame/1/group_id/" . $v['group_id'] . "/pid/" . $v['id'];
                 $newv2['target'] = 'ajax';
                 $newv2['rel'] = "jbsxNodeBox";
                 $newv2['open'] = 'false';
                 $returnarr[] = $newv2;
                 // 第三个循环判断模块节点
                 foreach ($nodelist as $k3 => $v3) {
                     $newv3 = array();
                     if ($v3['type'] == 3 && $v3['pid'] == $v['id']) {
                         //模块级
                         $newv3['id'] = $v3['id'];
                         $newv3['pId'] = $v['id'];
                         $newv3['title'] = $v3['title'];
                         //光标提示信息
                         $newv3['name'] = missubstr($v3['title'], 20, true);
                         //结点名字,太多会被截取
                         $newv3['url'] = "__URL__/index/frame/1/group_id/" . $v['group_id'] . "/pid/" . $v3['id'];
                         $newv3['target'] = 'ajax';
                         $newv3['rel'] = "jbsxNodeBox";
                         $newv3['false'] = 'true';
                         $returnarr[] = $newv3;
                     }
                 }
             }
         }
     }
     return $returnarr;
 }
Exemple #8
0
 /**
  * @Title: lookuproleView 
  * @Description: todo(查看个人权限)   
  * @author liminggang 
  * @date 2013-11-26 上午9:47:38 
  * @throws
  */
 public function lookuproleView()
 {
     $nodeModel = D("Node");
     $groupModel = D("Group");
     $accessModel = D("Access");
     $roleuserModel = D("role_user");
     $userid = $_REQUEST['userid'];
     $this->assign('userid', $userid);
     $roleModel = D("Role");
     // <-- 组授权获取 获取role_id  开始 -->
     //获取用户 组授权 权限 id
     $rolegroup_userModel = D("RolegroupUser");
     $rolegroupidlist = $rolegroup_userModel->where('user_id = ' . $_REQUEST['userid'])->getField('rolegroup_id', true);
     //获取权限组id
     $role_rolegroupModel = D("RoleRolegroup");
     $map = array();
     $map['rolegroup_id'] = array('in', $rolegroupidlist);
     $role_roleidlist = $role_rolegroupModel->where($map)->getField('role_id', true);
     // <-- 组授权获取 获取role_id  结束 -->
     //一般授权获取权限 id
     $alreadyrole = $roleuserModel->where('user_id = ' . $_REQUEST['userid'])->getField("role_id", true);
     foreach ($alreadyrole as $val) {
         $role_roleidlist[] = $val;
     }
     //获取nodeid 即页面左边选中节点id
     $map = array();
     $map["role_id"] = array('in', $role_roleidlist);
     $alreadynode = $accessModel->where($map)->getField("node_id", true);
     $noderolelist = array_unique($alreadynode);
     // <-- 组织右边数据 开始 -->
     if ($_GET['id']) {
         //查询该模块下 用户权限
         $UserModel = D('User');
         $data = $UserModel->getNodeIdRole($_GET['id'], $role_roleidlist);
         $vo = $nodeModel->find($_GET['id']);
         $this->assign("vo", $vo);
         $this->assign("list", $data);
         $this->assign("nodeid", $_GET["id"]);
         $this->assign("userid", $_GET['userid']);
         if ($_GET['jump']) {
             $this->display("userroleAccessRight");
             exit;
         }
     }
     //<-- 组织右边数据 结束 -->
     //<-- 组织页面左边树数据 开始 -->
     $list = $groupModel->where("status=1")->order("sorts asc")->select();
     $map = array();
     $map['status'] = 1;
     $map['level'] = array("neq", 4);
     $map['pid'] = array("gt", 0);
     $nodedata = $nodeModel->where($map)->order("sort asc")->select();
     $start_groupid = 100000;
     //获取最顶级公司
     $returnarr[] = array('id' => 0, 'pId' => -1, 'title' => getFieldBy('0', 'parentid', 'name', 'mis_system_company'), 'name' => getFieldBy('0', 'parentid', 'name', 'mis_system_company'), 'open' => true, 'nocheck' => 'true');
     foreach ($list as $k => $v) {
         $parendchecked = false;
         $newv['id'] = $v['id'] + 100000;
         $newv['pId'] = 0;
         $newv['title'] = $v['name'];
         //光标提示信息
         $newv['name'] = missubstr($v['name'], 20, true);
         //结点名字,太多会被截取
         $newv['open'] = $v['open'] ? $v['open'] : 'false';
         $newv['checked'] = "false";
         $newv['type'] = 0;
         $returnarr1 = D('User')->getUserGroupModuleTree($v['id'], $nodedata, 0, $noderolelist, $parendchecked, 'lookuproleView');
         if ($parendchecked) {
             $newv['checked'] = "true";
         }
         array_push($returnarr, $newv);
         $returnarr = array_merge($returnarr, $returnarr1);
     }
     $valid = $_REQUEST['selectednodeid'] ? $_REQUEST['selectednodeid'] : 0;
     $this->assign("valid", $valid);
     $this->assign("userroleaccesstree", json_encode($returnarr));
     //<-- 组织页面左边树数据 结束 -->
     $this->display();
 }
Exemple #9
0
 public function getDTAttachedRecordList($tableid, $tablename = '', $subid = 0, $fieldname, $online = true, $archived = true)
 {
     $armodel = D('MisAttachedRecord');
     $armap['tableid'] = $tableid;
     $armap['subid'] = $subid;
     $armap['status'] = 1;
     $armap['fieldname'] = $fieldname;
     $armap['tablename'] = $tablename;
     $attarry = $armodel->where($armap)->select();
     $filesArr = array('pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'jpg', 'jpeg', 'gif', 'png', 'apk');
     foreach ($attarry as $key => $val) {
         $pathinfo = pathinfo($val['attached']);
         //获取除后缀的文件名称
         $upname = missubstr($val['upname'], 18, true) . "." . $pathinfo['extension'];
         if (in_array(strtolower($pathinfo['extension']), $filesArr)) {
             //在线查看,必须是指定的文件类型,才能在线查看。
             $attarry[$key]['online'] = $online;
             //在线查看按钮。
         }
         //URL传参。一定要将base64加密后生成的  ‘=’ 号替换掉
         $attarry[$key]['name'] = str_replace("=", '', base64_encode($val['attached']));
         //文件显示名称
         $attarry[$key]['filename'] = $upname;
         //文件下载名称
         $attarry[$key]['lookname'] = $val['upname'];
         //任何文件都可以归档
         $attarry[$key]['archived'] = $archived;
         //归档按钮
     }
     $uploadarry = array();
     foreach ($attarry as $akey => $aval) {
         $uploadarry[$aval['fieldname']][] = $aval;
     }
     return $attarry;
 }
 /**
  * @Title: getRoleTree
  * @Description: todo(菜单树)
  * @param rel str 连接(html标签里的id值)
  * @param url str 显示的页面
  * @param map2 array 额外条件
  * @author 杨东
  * @date 2013-5-28 上午10:41:15
  * @throws
  */
 public function getRoleTree($rel, $url = '__URL__/index', $map2 = array(), $modelname = false, $target = 'ajax', $title = '')
 {
     if (empty($url)) {
         $url = '__URL__/index';
     }
     // 组
     $model = M("group");
     $list = $model->where("status=1")->order("sorts asc")->select();
     //获取系统授权
     $model_syspwd = D('SerialNumber');
     $modules_sys = $model_syspwd->checkModule();
     $m_list = explode(",", $modules_sys);
     // 查询菜单节点
     $map['status'] = 1;
     $map['showmenu'] = 1;
     $map['type'] = array('lt', 4);
     $node = M("Node");
     //$map['name'] = array('not in',$filter);
     $data = $node->where($map)->order('sort asc')->field("id,pid,name,level,isprojectwork,type,group_id,title,toolshow")->select();
     if ($map2) {
         $map['level'] = array('eq', 3);
         $map = array_merge($map, $map2);
         $data2 = $node->where($map)->field("id,pid,name,level,isprojectwork,type,group_id,title,toolshow")->select();
         $cond = $data2;
         $top = array();
         foreach ($data as $k => $v) {
             foreach ($data2 as $k1 => $v1) {
                 if ($v['id'] == $v1['pid']) {
                     $top[] = $v['id'];
                 }
             }
         }
         $top = array_unique($top);
         foreach ($data as $k => $v) {
             if (in_array($v['id'], $top)) {
                 $data2[] = $v;
             }
         }
         $data = $data2;
     }
     // 获取授权节点
     $access = getAuthAccess();
     $returnarr = array();
     // 第一个循环构造分组节点
     foreach ($list as $k2 => $v2) {
         $newv1 = array();
         $newv1['id'] = -$v2['id'];
         $newv1['pId'] = 0;
         $newv1['title'] = $v2['name'];
         //光标提示信息
         $newv1['name'] = missubstr($v2['name'], 20, true);
         //结点名字,太多会被截取
         $newv1['open'] = 'false';
         $returnarr2 = array();
         // 第二个循环构造组分类节点
         foreach ($data as $k => $v) {
             //if($v['isproject']==1) unset($data[$k]);
             $newv2 = array();
             // 过来权限
             if (substr($v['name'], 0, 10) != "MisDynamic") {
                 if (!in_array($v['name'], $m_list)) {
                     continue;
                 }
             }
             //     			if (!isset ($access[strtoupper( APP_NAME )][strtoupper ($v ['name'])]) && !$_SESSION [C('ADMIN_AUTH_KEY')]) {
             //     				continue;
             //     			}
             if ($v['name'] != 'Public' && $v['name'] != 'Index') {
                 if ($v['type'] == 1 && $v['group_id'] == $v2['id']) {
                     $newv2['id'] = $v['id'];
                     $newv2['pId'] = -$v2['id'];
                     $newv2['title'] = $v['title'];
                     //光标提示信息
                     $newv2['name'] = missubstr($v['title'], 20, true);
                     //结点名字,太多会被截取
                     $newv2['open'] = 'false';
                     $returnarr3 = array();
                     // 判断当前节点是否显示1显示0不显示
                     if ($v["toolshow"] == 1) {
                         // 第三个循环判断模块节点
                         foreach ($data as $k3 => $v3) {
                             // 过来权限
                             if (substr($v3['name'], 0, 10) != "MisDynamic") {
                                 if (!in_array($v3['name'], $m_list)) {
                                     continue;
                                 }
                             }
                             //     							if (!isset ($access[strtoupper( APP_NAME )][strtoupper ($v3 ['name'])]) && !$_SESSION [C('ADMIN_AUTH_KEY')]) {
                             //     								continue;
                             //     							}
                             $newv3 = array();
                             if ($v3['level'] == 3 && $v3['pid'] == $v['id']) {
                                 if (!$this->firstDetail) {
                                     $this->firstDetail['name'] = $v3['name'];
                                     $this->firstDetail['title'] = $v3['title'];
                                     $this->firstDetail['check'] = $v3['id'];
                                 }
                                 $newv3['id'] = $v3['id'];
                                 $newv3['pId'] = $v['id'];
                                 $newv3['title'] = $target == 'ajax' ? $v3['title'] : $title;
                                 //光标提示信息
                                 $newv3['name'] = missubstr($v3['title'], 20, true);
                                 //结点名字,太多会被截取
                                 $newv3['url'] = $target == 'ajax' ? $url . "/jump/jump/model/" . $v3['name'] : $url . "/model/" . $v3['name'];
                                 //"__URL__/index/jump/1/model/".$v3[name];
                                 $newv3['target'] = $target == 'ajax' ? 'ajax' : 'navTab';
                                 $newv3['rel'] = $rel;
                                 //"SystemConfigNumberBox";
                                 $newv3['open'] = 'false';
                                 $returnarr3[] = $newv3;
                             }
                         }
                         if ($returnarr3) {
                             $returnarr3[] = $newv2;
                         }
                     } else {
                         // 第三个循环判断模块节点
                         foreach ($data as $k3 => $v3) {
                             if (substr($v3['name'], 0, 10) != "MisDynamic") {
                                 if (!in_array($v3['name'], $m_list)) {
                                     continue;
                                 }
                             }
                             //     							if (!isset ($access[strtoupper( APP_NAME )][strtoupper ($v3 ['name'])]) && !$_SESSION [C('ADMIN_AUTH_KEY')]) {
                             //     								continue;
                             //     							}
                             $newv3 = array();
                             if ($v3['name'] === $modelname) {
                                 $this->firstDetail['name'] = $v3['name'];
                                 $this->firstDetail['title'] = $v3['title'];
                                 $this->firstDetail['check'] = $v3['id'];
                             }
                             if ($v3['level'] == 3 && $v3['pid'] == $v['id']) {
                                 if (!$this->firstDetail) {
                                     $this->firstDetail['name'] = $v3['name'];
                                     $this->firstDetail['title'] = $v3['title'];
                                     $this->firstDetail['check'] = $v3['id'];
                                 }
                                 $newv3['id'] = $v3['id'];
                                 $newv3['pId'] = -$v2['id'];
                                 $newv3['title'] = $target == 'ajax' ? $v3['title'] : $title;
                                 //光标提示信息
                                 $newv3['name'] = missubstr($v3['title'], 20, true);
                                 //结点名字,太多会被截取
                                 $newv3['url'] = $target == 'ajax' ? $url . "/jump/jump/model/" . $v3['name'] : $url . "/model/" . $v3['name'];
                                 //"__URL__/index/jump/1/model/".$v3[name];
                                 $newv3['target'] = $target == 'ajax' ? 'ajax' : 'navTab';
                                 $newv3['rel'] = $rel;
                                 //"SystemConfigNumberBox";
                                 $newv3['open'] = 'false';
                                 $returnarr3[] = $newv3;
                             }
                         }
                     }
                     if ($returnarr3) {
                         $returnarr2 = array_merge($returnarr2, $returnarr3);
                     }
                 }
             }
         }
         if ($returnarr2) {
             $returnarr[] = $newv1;
             $returnarr = array_merge($returnarr, $returnarr2);
         }
     }
     return json_encode($returnarr);
 }
 /**
  * @Title: mistaskinfo
  * @Description: todo(任务)
  * @author liminggang
  * @date 2013-7-4 上午9:17:21
  * @throws
  */
 public function mistaskinfo($name = "", $sort, $color)
 {
     $this->assign('sort', $sort);
     if (!$name) {
         $name = "任务信息";
     }
     $this->assign('name', $name);
     $this->assign('color', $color);
     //判断权限 任务
     $mistaskModel = D("MisTaskInformationView");
     $map = array();
     $map['executingstatus'] = array('NEQ', 7);
     $map['status'] = 1;
     $mistaskinfo = array();
     if ($_REQUEST['mistasktype'] == 2) {
         $map['executeuser'] = $_SESSION[C('USER_AUTH_KEY')];
         if ($_SESSION['a'] || $_SESSION['mistaskadscription_edit']) {
             $mistaskinfo = $mistaskModel->where($map)->field('id,title,createtime')->order('taskid DESC')->limit(7)->select();
         }
     } else {
         $map['createid'] = $_SESSION[C('USER_AUTH_KEY')];
         if ($_SESSION['a'] || $_SESSION['mistaskinformation_edit']) {
             $mistaskinfo = $mistaskModel->where($map)->field('id,title,createtime')->order('taskid DESC')->limit(7)->select();
         }
     }
     foreach ($mistaskinfo as $key => $val) {
         $mistaskinfo[$key]['title'] = missubstr($val['title'], 60, true);
     }
     $this->assign('mistaskinfo', $mistaskinfo);
     $this->assign('mistasktype', $_REQUEST['mistasktype']);
     if ($_REQUEST['mistasktype']) {
         $this->display("mistaskinfoindex");
         exit;
     }
     return $this->fetch("MisSystemPanelMethod:mistaskinfo");
 }
Exemple #12
0
 /**
  * @Title: getGroupModuleTree
  * @Description: todo(构造属性结果 by)
  * @param unknown_type $group_id
  * @param unknown_type $nodedata
  * @param unknown_type $pid
  * @param unknown_type $alreadyaccess
  * @param unknown_type $parendchecked
  * $param 数RUL跳转的方法 $func
  * @return multitype:
  * @author laicaixia
  * @date 2013-5-31 下午6:28:54
  * @throws
  */
 public function getUserGroupModuleTree($group_id, $nodedata, $pid, $alreadyaccess, &$parendchecked = false, $func = 'roleAccess')
 {
     $returnarr = array();
     foreach ($nodedata as $k => $v) {
         if ($v['group_id'] != $group_id) {
             continue;
         }
         if ($pid) {
             if ($pid != $v['pid']) {
                 continue;
             }
         }
         $newv = array();
         $newv['id'] = $v['id'];
         $newv['title'] = $v['title'];
         //光标提示信息
         $newv['name'] = missubstr($v['title'], 12);
         //结点名字,太多会被截取
         $newv['open'] = false;
         if ($v['type'] == 3) {
             if ($v['pid'] == $pid) {
                 $newv['pId'] = $pid;
                 unset($nodedata[$k]);
                 $newv['url'] = "__URL__/" . $func . "/jump/1/id/" . $v['id'] . "/md/" . $v['name'] . "/userid/" . $_GET['userid'];
                 $newv['type'] = 'post';
                 $newv['target'] = 'ajax';
                 if ($func == 'roleAccess') {
                     $newv['rel'] = "userroleaccessright";
                 } else {
                     $newv['rel'] = $func . "userroleaccessright";
                 }
                 $newv['type'] = 3;
                 if (in_array($v['id'], $alreadyaccess)) {
                     $newv['checked'] = true;
                     if (!$parendchecked) {
                         $parendchecked = $v['id'];
                     }
                     $newv['open'] = true;
                 }
                 array_push($returnarr, $newv);
             }
         } else {
             if ($v['type'] == 1) {
                 $newv['pId'] = 100000 + $group_id;
                 unset($nodedata[$k]);
                 $newv['type'] = 1;
                 $s1_2 = $this->getUserGroupModuleTree($group_id, $nodedata, $v['id'], $alreadyaccess, $parendchecked, $func);
                 if (in_array($v['id'], $alreadyaccess)) {
                     $newv['checked'] = true;
                     if (!$parendchecked) {
                         $parendchecked = $v['id'];
                     }
                     $newv['open'] = true;
                 }
                 array_push($returnarr, $newv);
                 if ($s1_2) {
                     $returnarr = array_merge($returnarr, $s1_2);
                 }
             } else {
                 if ($v['type'] == 2) {
                     if ($v['pid'] == $pid) {
                         $newv['pId'] = $pid;
                         unset($nodedata[$k]);
                         $newv['type'] = 2;
                         $s2_2 = $this->getUserGroupModuleTree($group_id, $nodedata, $v['id'], $alreadyaccess, $parendchecked, $func);
                         if (in_array($v['id'], $alreadyaccess)) {
                             $newv['checked'] = true;
                             if (!$parendchecked) {
                                 $parendchecked = $v['id'];
                             }
                             $newv['open'] = true;
                         }
                         array_push($returnarr, $newv);
                         if ($s2_2) {
                             $returnarr = array_merge($returnarr, $s2_2);
                         }
                     }
                 }
             }
         }
     }
     return $returnarr;
 }
 private function getType()
 {
     // 获取流程类型 组合成树结构
     $MisSystemFlowTypeDao = M("mis_system_flow_type");
     $where['status'] = 1;
     $typelist = $MisSystemFlowTypeDao->order("sort asc")->where($where)->select();
     // 任务节点
     $MisSystemFlowFormDao = M("mis_system_flow_form");
     $where['outlinelevel'] = 3;
     $formlist = $MisSystemFlowFormDao->order("sort asc")->where($where)->select();
     //任务
     $renmap['status'] = 1;
     $renmap['outlinelevel'] = 4;
     $renList = $MisSystemFlowFormDao->order("sort asc")->where($renmap)->select();
     $NodeModel = D('Node');
     foreach ($renList as $rek => $rev) {
         $nmap['status'] = 1;
         $nmap['name'] = $rev['formobj'];
         $nmap['isprocess'] = 1;
         $nodeList = $NodeModel->where($nmap)->select();
         if (empty($nodeList)) {
             unset($renList[$rek]);
         }
     }
     $supcategory = 0;
     $jsonArr = array();
     foreach ($typelist as $key => $val) {
         // 递归获取最小一层类型
         $supcategory = $this->abc($typelist, $val['id']);
         $typelist[$key]['default'] = $supcategory;
         $array = array();
         $array['id'] = $val['id'];
         $array['name'] = missubstr($val['name'], 18, true);
         $array['title'] = $val['name'];
         $array['pId'] = $val['parentid'];
         $array['open'] = true;
         $array['url'] = "__URL__/index/jump/jump/supcategory/" . $supcategory . "/category/0/pid/0";
         $array['rel'] = "MisSystemFlowFormNodeindexview";
         $array['type'] = 'post';
         $array['target'] = 'ajax';
         // 阶段
         if ($val['outlinelevel'] == 2) {
             $array['url'] = "__URL__/index/jump/jump/supcategory/" . $val['parentid'] . "/category/" . $val['id'] . "/pid/0";
             $array['rel'] = "MisSystemFlowFormNodeindexview";
             $array['type'] = 'post';
             $array['target'] = 'ajax';
             $jsonArr[] = $array;
             foreach ($formlist as $k => $v) {
                 if ($val['id'] == $v['category']) {
                     $array = array();
                     $array['id'] = $v['id'];
                     $array['name'] = missubstr($v['name'], 18, true);
                     $array['title'] = $v['name'];
                     $array['pId'] = $val['id'];
                     $array['url'] = "__URL__/index/jump/jump/supcategory/" . $val['parentid'] . "/category/" . $val['id'] . "/pid/" . $v['id'];
                     $array['rel'] = "MisSystemFlowFormNodeindexview";
                     $array['type'] = 'post';
                     $array['target'] = 'ajax';
                     $jsonArr[] = $array;
                     //任务
                     foreach ($renList as $renk => $renval) {
                         if ($v['id'] == $renval['parentid']) {
                             $array = array();
                             $array['id'] = $renval['id'];
                             $array['name'] = missubstr($renval['name'], 18, true);
                             $array['title'] = $renval['name'];
                             $array['pId'] = $renval['parentid'];
                             $array['url'] = "__URL__/index/jump/jump/supcategory/" . $val['parentid'] . "/category/" . $val['id'] . "/pid/" . $renval['parentid'] . "/id/" . $renval['id'];
                             $array['rel'] = "lookupisfile";
                             $array['type'] = 'post';
                             $array['target'] = 'ajax';
                             $jsonArr[] = $array;
                         }
                     }
                 }
             }
         } else {
             $jsonArr[] = $array;
         }
     }
     $this->assign('json_arr', json_encode($jsonArr));
     return $typelist;
 }
 /**
  * @Title: getRoleTree
  * @Description: todo(菜单树)
  * @author 杨东
  * @date 2013-5-28 上午10:41:15
  * @throws
  */
 public function getRoleTree()
 {
     // 组
     $model = M("group");
     $list = $model->where("status=1")->order("sorts asc")->select();
     //获取系统授权
     $model_syspwd = D('SerialNumber');
     $modules_sys = $model_syspwd->checkModule();
     $m_list = explode(",", $modules_sys);
     //需过滤的model
     $model = D('SystemConfigDetail');
     $filter = $model->getDCFilter();
     // 查询菜单节点
     $node = M("Node");
     $map['status'] = 1;
     //$map['showmenu'] = 1;
     $map['name'] = array('not in', $filter);
     $map['type'] = array('lt', 4);
     $data = $node->where($map)->order('sort asc')->select();
     // 获取授权节点
     $accessList = getAuthAccess();
     $returnarr = array();
     // 第一个循环构造分组节点
     foreach ($list as $k2 => $v2) {
         $newv1 = array();
         $newv1['id'] = -$v2['id'];
         $newv1['pId'] = 0;
         $newv1['title'] = $v2['name'];
         //光标提示信息
         $newv1['name'] = missubstr($v2['name'], 20, true);
         //结点名字,太多会被截取
         $newv1['open'] = 'true';
         $returnarr2 = array();
         // 第二个循环构造组分类节点
         foreach ($data as $k => $v) {
             $newv2 = array();
             // 过来权限
             if (substr($v['name'], 0, 10) != "MisDynamic") {
                 if (!in_array($v['name'], $m_list)) {
                     continue;
                 }
             }
             if (!isset($access[strtoupper(APP_NAME)][strtoupper($v['name'])]) && !$_SESSION[C('ADMIN_AUTH_KEY')]) {
                 continue;
             }
             if ($v['name'] != 'Public' && $v['name'] != 'Index') {
                 if ($v['type'] == 1 && $v['group_id'] == $v2['id']) {
                     $newv2['id'] = $v['id'];
                     $newv2['pId'] = -$v2['id'];
                     $newv2['title'] = $v['title'];
                     //光标提示信息
                     $newv2['name'] = missubstr($v['title'], 20, true);
                     //结点名字,太多会被截取
                     $newv2['open'] = 'true';
                     $returnarr3 = array();
                     // 判断当前节点是否显示1显示0不显示
                     if ($v["toolshow"] == 1) {
                         // 第三个循环判断模块节点
                         foreach ($data as $k3 => $v3) {
                             // 过来权限
                             if (substr($v3['name'], 0, 10) != "MisDynamic") {
                                 if (!in_array($v3['name'], $m_list)) {
                                     continue;
                                 }
                             }
                             if (!isset($access[strtoupper(APP_NAME)][strtoupper($v3['name'])]) && !$_SESSION[C('ADMIN_AUTH_KEY')]) {
                                 continue;
                             }
                             $newv3 = array();
                             if ($v3['type'] == 3 && $v3['pid'] == $v['id']) {
                                 if (!$this->firstDetail) {
                                     $this->firstDetail['name'] = $v3['name'];
                                     $this->firstDetail['title'] = $v3['title'];
                                     $this->firstDetail['check'] = $v3['id'];
                                 }
                                 $newv3['id'] = $v3['id'];
                                 $newv3['pId'] = $v['id'];
                                 $newv3['title'] = $v3['title'];
                                 //光标提示信息
                                 $newv3['name'] = missubstr($v3['title'], 20, true);
                                 //结点名字,太多会被截取
                                 $newv3['url'] = "__URL__/index/jump/1/type/" . $v3['id'];
                                 $newv3['target'] = 'ajax';
                                 $newv3['rel'] = "nodeactionconfig";
                                 $newv3['open'] = 'true';
                                 $returnarr3[] = $newv3;
                             }
                         }
                         if ($returnarr3) {
                             $returnarr3[] = $newv2;
                         }
                     } else {
                         // 第三个循环判断模块节点
                         foreach ($data as $k3 => $v3) {
                             if (substr($v3['name'], 0, 10) != "MisDynamic") {
                                 if (!in_array($v3['name'], $m_list)) {
                                     continue;
                                 }
                             }
                             if (!isset($access[strtoupper(APP_NAME)][strtoupper($v3['name'])]) && !$_SESSION[C('ADMIN_AUTH_KEY')]) {
                                 continue;
                             }
                             $newv3 = array();
                             if ($v3['type'] == 3 && $v3['pid'] == $v['id']) {
                                 if (!$this->firstDetail) {
                                     $this->firstDetail['name'] = $v3['name'];
                                     $this->firstDetail['title'] = $v3['title'];
                                     $this->firstDetail['check'] = $v3['id'];
                                 }
                                 $newv3['id'] = $v3['id'];
                                 $newv3['pId'] = -$v2['id'];
                                 $newv3['title'] = $v3['title'];
                                 //光标提示信息
                                 $newv3['name'] = missubstr($v3['title'], 20, true);
                                 //结点名字,太多会被截取
                                 $newv3['url'] = "__URL__/index/jump/1/type/" . $v3['id'];
                                 $newv3['target'] = 'ajax';
                                 $newv3['rel'] = "nodeactionconfig";
                                 $newv3['open'] = 'true';
                                 $returnarr3[] = $newv3;
                             }
                         }
                     }
                     if ($returnarr3) {
                         $returnarr2 = array_merge($returnarr2, $returnarr3);
                     }
                 }
             }
         }
         if ($returnarr2) {
             $returnarr[] = $newv1;
             $returnarr = array_merge($returnarr, $returnarr2);
         }
     }
     $this->assign('typeTree', json_encode($returnarr));
 }
 /**
  * 构造树形节点  @changeby wangcheng
  * @param array  $alldata  构造树的数据
  * @param array  $param    传入数组参数,包含rel,url【url中参数传递用#name#形式,name 为字段名字】
  * @param array  $returnarr  初始化s树形节点,可以传入数字,默认选中哪一行数据
  * @return string
  */
 function getTree($alldata = array(), $param = array(), $returnarr = array())
 {
     foreach ($alldata as $k => $v) {
         $newv = array();
         $matches = array();
         preg_match_all('|#+(.*)#|U', $param['url'], $matches);
         foreach ($matches[1] as $k2 => $v2) {
             if (isset($v[$v2])) {
                 $matches[1][$k2] = $v[$v2];
             }
         }
         $url = str_replace($matches[0], $matches[1], $param['url']);
         $newv['id'] = $v['id'];
         $newv['pId'] = $v['parentid'] ? $v['parentid'] : 0;
         $newv['type'] = 'post';
         if ($v['carbelong'] == 2) {
             $newv['url'] = "__URL__/index/jump/1/carbelong/2";
         } else {
             $newv['url'] = $url;
         }
         $newv['target'] = 'ajax';
         $newv['rel'] = $param['rel'];
         $newv['title'] = $v['name'];
         //光标提示信息
         $newv['name'] = missubstr($v['name'], 18, true) . "(" . $v['count'] . ")";
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         if ($v['parentid'] == 0) {
             $newv['open'] = $v['open'] ? $v['open'] : 'true';
         }
         array_push($returnarr, $newv);
     }
     return json_encode($returnarr);
 }
 /**
  * @Title: lookupGetdate 
  * @Description: todo(获得存在数据库中的任务名,显示在日历上)   
  * @author xiafengqin 
  * @date 2013-7-23 下午1:48:00 
  * @throws
  */
 public function lookupGetdate()
 {
     $executelist = array();
     //执行的任务
     $tracklist = array();
     //跟踪的任务
     $viewModel = D("MisTaskInformationView");
     $map['status'] = 1;
     //判断是否有执行权限
     if ($_SESSION['a'] || $_SESSION['mistaskadscription_edit']) {
         $map['_string'] = 'mis_task_information.executeuser = '******'USER_AUTH_KEY')];
         $executelist = $viewModel->where($map)->select();
     }
     if ($_SESSION['a'] || $_SESSION['mistaskinformation_trace']) {
         $map['_string'] = 'mis_task_information.trackuser = '******'USER_AUTH_KEY')];
         $tracklist = $viewModel->where($map)->select();
     }
     $arr = array();
     foreach ($executelist as $key => $value) {
         $datas['id'] = $value['id'];
         $datas['taskid'] = $value['taskid'];
         $datas['title'] = missubstr($value['title'], 20, true);
         $datas['start'] = transTime($value['begindate'], 'Y-m-d H:i:s');
         $datas['end'] = transTime($value['enddate'], 'Y-m-d H:i:s');
         $datas['urgentstatus'] = $value['urgentstatus'];
         $datas['className'] = $value['urgentstatus'] == 1 ? 'myblue' : ($value['urgentstatus'] == 2 ? 'myorange' : 'myred');
         //这里可以设置此action的样式
         $datas['type'] = 'execute';
         $arr[] = $datas;
     }
     foreach ($tracklist as $key => $value) {
         $datas['id'] = $value['id'];
         $datas['taskid'] = $value['taskid'];
         $datas['title'] = missubstr($value['title'], 20, true);
         $datas['start'] = transTime($value['begindate'], 'Y-m-d H:i:s');
         $datas['end'] = transTime($value['enddate'], 'Y-m-d H:i:s');
         $datas['urgentstatus'] = $value['urgentstatus'];
         $datas['className'] = $value['urgentstatus'] == 1 ? 'myblue' : ($value['urgentstatus'] == 2 ? 'myorange' : 'myred');
         //这里可以设置此action的样式
         $datas['type'] = 'track';
         $arr[] = $datas;
     }
     echo json_encode($arr);
 }
 /**
  * @Title: lookupGetdate
  * @Description: todo(获得存在数据库中的日程安排)
  * @author xiafengqin
  * @date 2013-7-11 上午11:23:50
  * @throws
  */
 public function lookupGetdate()
 {
     $start = strtotime($_POST['start']);
     $end = strtotime($_POST['end']);
     $model = D('MisUserEvents');
     $map = array();
     $map['status'] = 1;
     $map['_string'] = ' (FIND_IN_SET( ' . $_SESSION[C('USER_AUTH_KEY')] . ' , personid ) OR userid = ' . $_SESSION[C('USER_AUTH_KEY')] . ') and ( startdate <' . $end . ' and enddate >=' . $start . ')';
     $list = $model->where($map)->select();
     $arr = array();
     $bgcolor = $this->bgcolor;
     foreach ($list as $key => $value) {
         $start = transTime($value['startdate'], 'Y-m-d H:i:s');
         $end = transTime($value['enddate'], 'Y-m-d H:i:s');
         //86400秒=1天
         $allDay = true;
         if ($value['enddate'] - $value['startdate'] < 86400) {
             $allDay = false;
         }
         if (!$value['importancedegree']) {
             $value['importancedegree'] = 1;
         }
         $scheduletype = $value['scheduletype'] == 2 ? '[工作]' : '[个人]';
         $arr[] = array('id' => $value['id'], 'createid' => $value['createid'], 'title' => $scheduletype . missubstr($value['text'], 18, true), 'start' => $start, 'end' => $end, 'allDay' => $allDay, 'importancedegree' => $value['importancedegree'], 'className' => $bgcolor[$value['importancedegree']]['color']);
     }
     echo json_encode($arr);
 }
 /**
  * @Title: lookupIdea
  * @Description: todo(获取缺陷)
  * @author xiafengqin
  * @date 2013-6-29 下午2:14:48
  * @throws
  */
 private function lookupIdea($taskid, $identifying)
 {
     $InformationModel = D("MisTaskInformation");
     $trackuser = $InformationModel->where('taskid=' . $taskid)->getField('trackuser');
     $this->assign('trackuser', $trackuser);
     $feedbackModel = D('MisTaskFeedbackInformation');
     //缺陷
     $voList = $feedbackModel->where('isdefect = 1 AND pid = 0 AND type = 3 AND taskid=' . $taskid)->select();
     foreach ($voList as $key => $val) {
         $voList[$key]['remark'] = missubstr($val['remark'], 180);
     }
     $this->assign('voList', $voList);
     $this->assign('identifying', $identifying);
     $this->display('lookupIdea');
 }
 /**
  * @Title: _after_list
  * @Description: todo(执行了CommonAction类里面的_list方法的后置函数)
  * @param unknown_type $voList
  * @author xiafengqin
  * @date 2013-5-31 下午4:25:44
  * @throws
  */
 function _after_list(&$voList)
 {
     foreach ($voList as $k => $v) {
         $str = htmlspecialchars_decode($v['content'], ENT_QUOTES);
         //转码
         $str = trim(strip_tags(str_replace("&nbsp;", ' ', $str)));
         //过滤html
         $voList[$k]['content'] = missubstr($str, 35, true);
         $voList[$k]['md'] = $_REQUEST['md'] ? $_REQUEST['md'] : 'MisWorkStatement';
     }
 }
 /**
  * @Title: getMessages
  * @Description: todo(查指部门信息出来,在OAHelperAction中有调用)
  * @param int $whidDepart 部门ID
  * @return 返回一个二维数组
  * @author eagle
  * @date 2014-5-15 上午9:37:31
  * @throws
  */
 public function getMessages($whidDepart = '')
 {
     //实例化mis_message_user表
     $model = D('MisSystemDepartment');
     if ($_SESSION[C('USER_AUTH_KEY')]) {
         if ($whidDepart) {
             //定义where条件
             $model = D('MisHrPersonnelPersonInfo');
             $map = array();
             $map['status'] = 1;
             $map['working'] = 1;
             //离职不能显示出来
             $map['deptid'] = $whidDepart;
             $list = $model->where($map)->order('id asc')->select();
             return $list;
         } else {
             $mode1 = D("User");
             $map = array();
             $map['status'] = array('GT', 0);
             //是管理员的不显示出来
             $map['name'] = array('NEQ', '管理员');
             $Userlist = $mode1->field("id,name,dept_id,email,employeid")->where($map)->order('sort ASC')->select();
             $returnarr = array();
             $dptmodel = D("MisSystemDepartment");
             //部门表
             $deptlist = $dptmodel->where("status=1")->order("id asc")->field('id,name,parentid,iscenter')->select();
             foreach ($deptlist as $k => $v) {
                 $newDept = array();
                 $newDept['id'] = $v['id'];
                 $newDept['parentid'] = $v['parentid'] ? $v['parentid'] : 0;
                 $newDept['title'] = $v['name'];
                 //光标提示信息
                 $newDept['name'] = missubstr($v['name'], 28, true);
                 //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                 $newDept['isParent'] = "true";
                 if ($v['parentid'] == 0) {
                     $newDept['open'] = $v['open'] ? false : true;
                 }
                 //是管理中心的才把,人找出来
                 if ($v['iscenter']) {
                     // 构造用户
                     foreach ($Userlist as $k2 => $v2) {
                         if ($v2['dept_id'] == $v['id']) {
                             $newv2 = array();
                             $newv2['id'] = $v2['employeid'];
                             $newv2['parentid'] = $v['id'];
                             $newv2['title'] = $v2['name'];
                             //光标提示信息
                             $newv2['name'] = missubstr($v2['name'], 28, true);
                             //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                             $newv2['icon'] = "./images/group.png";
                             $newv2['open'] = true;
                             $newv2['isParent'] = "false";
                             array_push($returnarr, $newv2);
                         }
                     }
                 }
                 array_push($returnarr, $newDept);
             }
             return $returnarr;
         }
     } else {
         $this->error('没有获取到当前登陆人!');
     }
 }
 /**
  * @Title: _after_list 
  * @Description: todo(列表处理内容显示) 
  * @param unknown_type $voList  
  * @author libo 
  * @date 2014-7-16 上午11:00:32 
  * @throws
  */
 function _after_list(&$voList)
 {
     foreach ($voList as $k => $v) {
         $str = htmlspecialchars_decode($v['content'], ENT_QUOTES);
         //转码
         $str = trim(strip_tags(str_replace("&nbsp;", ' ', $str)));
         //过滤html
         $voList[$k]['content'] = missubstr($str, 35, true);
         $userid = $_SESSION[C('USER_AUTH_KEY')];
         $voList[$k]['readpeople'] = in_array($userid, explode(",", $v['readpeople'])) ? "<span style='color:green;'>已阅</span>" : "<span style='color:red;'>未阅</span>";
         $voList[$k]['commentpeople'] = in_array($userid, explode(",", $v['commentpeople'])) ? "<span style='color:green;'>已评</span>" : "<span style='color:red;'>未评</span>";
     }
     // 		dump($voList);
 }
 /**
  * @Title: _after_list
  * @Description: todo(执行了CommonAction类里面的_list方法的后置函数)
  * @param unknown_type $voList
  * @author xiafengqin
  * @date 2013-5-31 下午4:25:44
  * @throws
  */
 function _after_list(&$voList)
 {
     foreach ($voList as $k => $v) {
         $str = htmlspecialchars_decode($v['content'], ENT_QUOTES);
         //转码
         $str = trim(strip_tags(str_replace("&nbsp;", ' ', $str)));
         //过滤html
         $voList[$k]['content'] = missubstr($str, 35, true);
         $voList[$k]['md'] = $this->getActionName();
     }
 }
 public function lookupSelectNotifyPerson()
 {
     $model = D("User");
     $map = array();
     $map['status'] = array('GT', 0);
     //是管理员的不显示出来
     //$map['name'] = array('NEQ','管理员');
     if (method_exists($this, '_filterLookupSelectUser')) {
         $this->_filterLookupSelectUser($map);
     }
     $list = $model->field("id,name,dept_id,email,mobile,pinyin")->where($map)->order('sort ASC')->select();
     foreach ($list as $uk => $uval) {
         if ($uval['employeid']) {
             $working = getFieldBy($uval['employeid'], 'id', 'working', 'mis_hr_personnel_person_info');
             if ($working == 0) {
                 unset($list[$uk]);
             }
         }
     }
     $num = count($list);
     $this->assign("num", $num);
     // 总人数
     $returnarr = array();
     $dptmodel = D("MisSystemDepartment");
     //部门表
     $deptlist = $dptmodel->where("status=1")->order("id asc")->field('id,name,parentid')->select();
     //部门树形
     $returnarr = $dptmodel->getDeptZtree($_SESSION['companyid'], '', '', '', '', 1);
     $this->assign('usertree', $returnarr);
     //用户组的树
     $rolegroup = array();
     $rolegroupModel = D('Rolegroup');
     $rolegroupList = $rolegroupModel->where("status=1")->order("id asc")->field('id,name,pid')->select();
     //所有的组
     $rolegroup_userModel = M('rolegroup_user');
     $rolegroup_userList = $rolegroup_userModel->field("rolegroup_id,user_id")->order('rolegroup_id ASC')->select();
     foreach ($rolegroupList as $k => $v) {
         foreach ($rolegroup_userList as $k2 => $v2) {
             if ($v["id"] == $v2["rolegroup_id"]) {
                 $rolegroupList[$k]["useridarr"][] = $v2["user_id"];
             }
         }
     }
     foreach ($rolegroupList as $ke => $va) {
         $newRole = array();
         $newRole['id'] = -$va['id'];
         $newRole['pId'] = 0;
         $newRole['title'] = $va['name'];
         //光标提示信息
         $newRole['name'] = missubstr($va['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         $newRole['open'] = false;
         $istrue = false;
         $userarr = array();
         $usernamearr = array();
         $emailarr = array();
         foreach ($list as $k2 => $v2) {
             if (in_array($v2['id'], $va["useridarr"])) {
                 $istrue = true;
                 $newv2 = array();
                 $userarr[] = $v2['id'];
                 $usernamearr[] = $v2['name'];
                 $emailarr[] = $v2['email'];
                 $newv2['email'] = $v2['email'];
                 $newv2['id'] = $v2['id'];
                 $newv2['userid'] = $v2['id'];
                 $newv2['pId'] = -$va['id'];
                 $newv2['pinyin'] = $v2['pinyin'];
                 //拼音
                 $newv2['title'] = $v2['name'];
                 //光标提示信息
                 $newv2['username'] = $v2['name'];
                 //光标提示信息
                 $newv2['name'] = missubstr($v2['name'], 18, true);
                 //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                 $newv2['icon'] = "__PUBLIC__/Images/icon/group.png";
                 $newv2['open'] = false;
                 array_push($rolegroup, $newv2);
             }
         }
         if ($istrue) {
             $newRole["userid"] = implode(",", $userarr);
             $newRole["email"] = implode(",", $emailarr);
             $newRole["username"] = implode(",", $usernamearr);
             array_push($rolegroup, $newRole);
         }
     }
     // 		dump($rolegroup);
     $this->assign('rolegrouptree', json_encode($rolegroup));
     //公司的树
     $companytree = $dptmodel->getDeptZtree('', '', '', '', '', 2);
     $this->assign('sysCompanytree', $companytree);
     // 		$this->assign('usertree',$returnarr);
     $this->assign('data', $_POST["data"]);
     $this->assign('ulid', $_POST["ulid"]);
     if ($_POST["ulid"]) {
         $this->display("Common:multiple");
         // 选多个用户
     } else {
         $this->display("Common:singleUser");
         // 选单个用户
     }
 }
 public function searchuser()
 {
     $mode1 = D("User");
     $map = array();
     $map['status'] = array('GT', 0);
     //是管理员的不显示出来
     $map['name'] = array('NEQ', '管理员');
     $list = $mode1->field("id,name,dept_id,email")->where($map)->order('sort ASC')->select();
     $returnarr = array();
     $dptmodel = D("MisSystemDepartment");
     //部门表
     $deptlist = $dptmodel->where("status=1")->order("id asc")->field('id,name,parentid')->select();
     foreach ($deptlist as $k => $v) {
         $newv = array();
         $newv['id'] = -$v['id'];
         $newv['pId'] = -$v['parentid'] ? -$v['parentid'] : 0;
         $newv['title'] = $v['name'];
         //光标提示信息
         $newv['name'] = missubstr($v['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         if ($v['parentid'] == 0) {
             $newv['open'] = $v['open'] ? false : true;
         }
         $istrue = false;
         $userarr = array();
         $usernamearr = array();
         $emailarr = array();
         //邮箱
         // 构造用户
         foreach ($list as $k2 => $v2) {
             if ($v2['dept_id'] == $v['id']) {
                 $newv2 = array();
                 $userarr[] = $v2['id'];
                 //将用户的名字和id分别存在数组中
                 $usernamearr[] = $v2['name'];
                 $emailarr[] = $v2['email'];
                 $newv2['email'] = $v2['email'];
                 $newv2['id'] = $v2['id'];
                 $newv2['pId'] = -$v['id'];
                 $newv2['title'] = $v2['name'];
                 //光标提示信息
                 $newv2['name'] = missubstr($v2['name'], 20, true);
                 //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                 $newv2['icon'] = "__PUBLIC__/Images/icon/group.png";
                 $newv2['open'] = true;
                 array_push($returnarr, $newv2);
             }
         }
         $newv["userid"] = implode(",", $userarr);
         $newv["email"] = implode(",", $emailarr);
         $newv["username"] = implode(",", $usernamearr);
         //把取到名字和id转换成字符串,在传到前台。
         array_push($returnarr, $newv);
     }
     $this->assign('usertree', json_encode($returnarr));
     //用户组的树
     $rolegroup = array();
     $rolegroupModel = D('Rolegroup');
     $rolegroupList = $rolegroupModel->where("status=1")->order("id asc")->field('id,name,pid')->select();
     //所有的组
     $rolegroup_userModel = M('rolegroup_user');
     $rolegroup_userList = $rolegroup_userModel->field("rolegroup_id,user_id")->order('rolegroup_id ASC')->select();
     foreach ($rolegroupList as $k => $v) {
         foreach ($rolegroup_userList as $k2 => $v2) {
             if ($v["id"] == $v2["rolegroup_id"]) {
                 $rolegroupList[$k]["useridarr"][] = $v2["user_id"];
             }
         }
     }
     foreach ($rolegroupList as $ke => $va) {
         $newRole = array();
         $newRole['id'] = -$va['id'];
         $newRole['pId'] = 0;
         $newRole['title'] = $va['name'];
         //光标提示信息
         $newRole['name'] = missubstr($va['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         $newRole['open'] = false;
         $istrue = false;
         $userarr = array();
         $usernamearr = array();
         $emailarr = array();
         foreach ($list as $k2 => $v2) {
             if (in_array($v2['id'], $va["useridarr"])) {
                 $istrue = true;
                 $newv2 = array();
                 $userarr[] = $v2['id'];
                 $usernamearr[] = $v2['name'];
                 $emailarr[] = $v2['email'];
                 $newv2['email'] = $v2['email'];
                 $newv2['id'] = $v2['id'];
                 $newv2['pId'] = -$va['id'];
                 $newv2['title'] = $v2['name'];
                 //光标提示信息
                 $newv2['name'] = missubstr($v2['name'], 18, true);
                 //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                 $newv2['icon'] = "__PUBLIC__/Images/icon/group.png";
                 $newv2['open'] = false;
                 array_push($rolegroup, $newv2);
             }
         }
         if ($istrue) {
             $newRole["userid"] = implode(",", $userarr);
             $newRole["email"] = implode(",", $emailarr);
             $newRole["username"] = implode(",", $usernamearr);
             array_push($rolegroup, $newRole);
         }
     }
     $this->assign('rolegrouptree', json_encode($rolegroup));
     //角色的树
     $ProcessRole = array();
     $ProcessRoleModel = D('ProcessRole');
     $ProcessRoleList = $ProcessRoleModel->where("status=1")->order("sort asc")->field('id,name,deptid,userid')->select();
     //所有的角色组
     foreach ($ProcessRoleList as $ke => $va) {
         $newRole = array();
         $newRole['id'] = -$va['id'];
         $newRole['pId'] = 0;
         $newRole['title'] = $va['name'];
         //光标提示信息
         $newRole['name'] = missubstr($va['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         $newRole['open'] = false;
         $istrue = false;
         $deptid = explode(",", $va['deptid']);
         $userid = explode(",", $va['userid']);
         $userarr = array();
         $usernamearr = array();
         $emailarr = array();
         foreach ($list as $k2 => $v2) {
             $istrue2 = false;
             if (in_array($v2['id'], $userid)) {
                 $istrue2 = true;
             }
             if ($istrue2) {
                 $istrue = true;
                 $newv2 = array();
                 $userarr[] = $v2['id'];
                 $usernamearr[] = $v2['name'];
                 $emailarr[] = $v2['email'];
                 $newv2['email'] = $v2['email'];
                 $newv2['id'] = $v2['id'];
                 $newv2['pId'] = -$va['id'];
                 $newv2['title'] = $v2['name'];
                 //光标提示信息
                 $newv2['name'] = missubstr($v2['name'], 18, true);
                 //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                 $newv2['icon'] = "__PUBLIC__/Images/icon/group.png";
                 $newv2['open'] = false;
                 array_push($ProcessRole, $newv2);
             }
         }
         if ($istrue) {
             $newRole["userid"] = implode(",", $userarr);
             $newRole["email"] = implode(",", $emailarr);
             $newRole["username"] = implode(",", $usernamearr);
             array_push($ProcessRole, $newRole);
         }
     }
     $this->assign('ProcessRoletree', json_encode($ProcessRole));
 }
 /**
  * 构造树形节点  @changeby wangcheng
  * @param array  $alldata  构造树的数据
  * @param array  $param    传入数组参数,包含rel,url【url中参数传递用#name#形式,name 为字段名字】
  * @param array  $returnarr  初始化s树形节点,可以传入数字,默认选中哪一行数据
  * @return string
  */
 function getTree($alldata = array(), $param = array(), $returnarr = array())
 {
     foreach ($alldata as $k => $v) {
         $newv = array();
         $matches = array();
         preg_match_all('|#+(.*)#|U', $param['url'], $matches);
         foreach ($matches[1] as $k2 => $v2) {
             if (isset($v[$v2])) {
                 $matches[1][$k2] = $v[$v2];
             }
         }
         $param['rel'] = "mishrpersonneladdressbookBox";
         //重要的地方,查找带回模板上的ID
         //$param['url']="__URL__/lookupmanage/jump/1/deptid/#id#/parentid/#parentid#";
         $url = str_replace($matches[0], $matches[1], $param['url']);
         $newv['id'] = $v['id'];
         $newv['pId'] = $v['parentid'] ? $v['parentid'] : 0;
         $newv['type'] = 'post';
         if ($v['id'] == 40) {
             $newv['url'] = "__URL__/lookupmanage/jump/1";
             //项级节点,显示所有记录不要传具体行记录ID
         } else {
             $newv['url'] = "__URL__/lookupmanage/jump/1/deptid/" . $v['id'] . "/parentid/" . $v['parentid'];
         }
         //$newv['url']=$url;
         $newv['target'] = 'ajax';
         $newv['rel'] = $param['rel'];
         $newv['title'] = $v['name'];
         //光标提示信息
         $newv['name'] = missubstr($v['name'], 18, true);
         //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
         if ($v['parentid'] == 40) {
             //顶级结点,默认展开它
             $newv['open'] = $v['open'] ? $v['open'] : 'true';
         }
         array_push($returnarr, $newv);
     }
     return json_encode($returnarr);
 }
 /**
  * @Title: openTreeDeptAndUser
  * @Description: todo(设置展开的部门及被考核人) 
  * @param 部门列表 $deptlist
  * @param 被考核人了列表 $list
  * @param 父类ID $pid
  * @param tree对象 $returnarr
  * @return boolean  
  * @author 杨东 
  * @date 2013-8-9 下午6:50:16 
  * @throws 
  */
 protected function openTreeDeptAndUser($deptlist, $list, $pid, &$returnarr)
 {
     $istruep = false;
     foreach ($deptlist as $k => $v) {
         // 循环判断父节点
         if ($v['parentid'] == $pid) {
             $newv = array();
             $newv['id'] = -$v['id'];
             $newv['pId'] = -$v['parentid'] ? -$v['parentid'] : 0;
             $newv['title'] = $v['name'];
             //光标提示信息
             $newv['name'] = missubstr($v['name'], 18, true);
             //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
             if ($v['parentid'] == 0) {
                 $newv['open'] = true;
             }
             // 判断是否有被考核人
             $istrue = false;
             foreach ($list as $k2 => $v2) {
                 if ($v2['deptid'] == $v['id']) {
                     // 有被考核人设置为true
                     $istrue = true;
                     $newv2 = array();
                     $newv2['id'] = $v2['id'];
                     $newv2['pId'] = -$v['id'];
                     $newv2['orderno'] = $v2['orderno'];
                     $newv2['title'] = $v2['name'];
                     //光标提示信息
                     $newv2['name'] = missubstr($v2['name'], 18, true);
                     //结点名字,太多会被截取,针对于现在的ZTREE,宽度不能超过18个字符。
                     $newv2['icon'] = "__PUBLIC__/Images/icon/group.png";
                     $newv2['open'] = true;
                     if ($_POST['rel']) {
                         $newv2['rel'] = $_POST['rel'];
                         $newv2['url'] = $_POST['url'] . $v2['id'];
                         $newv2['target'] = 'ajax';
                     }
                     if ($_POST['check']) {
                         $newv2['checked'] = true;
                     }
                     array_push($returnarr, $newv2);
                 }
             }
             // 获取直接点是否有被考核人
             $istrues = $this->openTreeDeptAndUser($deptlist, $list, $v['id'], $returnarr);
             if ($istrues) {
                 // 如何有被考核人则设置为open 并将返回值设为true
                 $istruep = true;
                 $newv['open'] = true;
             }
             if ($_POST['check']) {
                 $newv['checked'] = true;
             }
             // 有checkbox的树,全选中
             if ($istrue) {
                 // 当前部门如果有被考核人则设置为open 并将返回值设为true
                 $istruep = true;
                 $newv['open'] = true;
             }
             if ($_POST['allopen']) {
                 $newv['open'] = true;
                 // 所有都展开
                 $newv['id'] = $v['id'];
                 $newv['pId'] = $v['parentid'] ? $v['parentid'] : 0;
             }
             array_push($returnarr, $newv);
         }
     }
     return $istruep;
 }