如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单",在日常操作中,相信很多人在如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形
千家信息网最后更新 2025年02月03日如何实现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安全错误
数据库的锁怎样保障安全
软件开发项目监理日志
gaussdb高斯数据库抽样
口岸服务器
西安网络技术培训
服务器需要自动关机
c 附加数据库的连接
linux 数据库导出
麻醉相关的数据库
服务器ubuntu安装xfce
mysql数据库文件后缀
数据库 客房管理系统
python 个数据库
我的世界启服务器怎么加光影
中山软件开发排行榜
数据库自定义对象
软件开发的技术经济效益
网络安全管理大队辅警
天龙八部卡级服务器名字
高速服务区软件开发公司
firebird数据库中文支持
达州软件开发哪家好
软件开发人工成本 账
网络技术部客服电话
网络安全公司中国
软件开发需要资金吗
分析我国互联网网络安全形势
信息安全网络安全课程设计
网络技术支持工程师面试问题
我的世界服务器开服
数据库关系具有哪些属性