千家信息网

如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要介绍"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单",在日常操作中,相信很多人在如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形
千家信息网最后更新 2025年11月17日如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单

这篇文章主要介绍"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单",在日常操作中,相信很多人在如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

这里在Thinkphp的模型层中使用递归来构建ComboTree所需的数据,代码及注解如下:

namespace Home\Model;use Think\Model;class AccountModel extends Model{  public function getTreeList(){    $data = $this->field('id,code,name,islast')->select();   foreach($data as &$v){        //这里加入了元素pid,用来标识父级id的      $len = strlen($v['code']);   if($len == 3){          //这里假设长度为3位的科目编码是一级,5位为二级科目,7位为三级,以此类推    $v['pid'] = 0;    } else {    $v['pid'] = substr($v['code'],0,$len-2);    }    }  return $this->createTree($data); //生成ComboTree所需的数据结构 }  //递归的方式生成子树 private function createSubTree($data,$pid){  $tree = array();  foreach($data as $k=>$v){   if($v['pid'] == $pid){    $newDate = array(     'id' => $v['id'],     'text'=>$v['name'],     'state'=>($v['islast'] != 1)?'closed':'open'    );     if($v['islast'] != 1){        //如果不是末级科目调用自身生成子数据     $subData = $this->createSubTree($data,$v['code']);     if(!empty($subData)){      $newDate['children'] = $subData;       }    }    array_push($tree,$newDate);   }     }   return $tree; }  //生成树,先从一级会计科目分类开始创建树形菜单数据 private function createTree($data){    $ret = array();  foreach($data as $k => $v){   if($v['pid'] == 0){    $newDate = array(  //创建为ComboTree能够识别的格式,这里我没有更好的办法了,只能这样处理     'id' => $v['id'],     'text'=>$v['name'],     'state'=>'closed'    );     $subData = $this->createSubTree($data,$v['code']);    if(!empty($subData)){     $newDate['children'] = $subData;      }    $ret[] = $newDate;    }      }  return $ret; }  }

类似上述的数据(如部门,地区等)需要构建树形菜单的简单修改代码后基本都能实现类似功能。

到此,关于"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

科目 树形 菜单 会计 数据 学习 生成 代码 更多 递归 帮助 实用 以此类推 接下来 元素 办法 功能 地区 数据结构 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发出国劳务 新沂中正网络技术有限公司 网络安全应急处置装置 数据库保存后别的电脑打不开 如何打开电脑数据库 web服务器安全测试 宝山区品质软件开发服务商有哪些 网络安全审查解决方案 北京市网络安全防范和应急指挥 苏州智能化软件开发销售 数据库安全控制常用5种技术 普及推广网络安全的举措 金蝶软件开发技术 腾讯云服务器能干什么 中国最好网络安全学院有几所 舟山软件开发找哪家 软件开发和平面设计一样吗 合资性互联网软件开发公司 无线网络技术教程第三版电子版 京天利投资网络安全 服务器安全与管理 富民智能化软件开发 学校网络安全信息研判 达梦数据库介绍命令 某校园网络安全设计方案 网络安全大赛是什么意思 大专网络技术考什么 计算机网络技术知识题库 盐城企业软件开发创新服务 java用什么软件开发
0