如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单",在日常操作中,相信很多人在如何实现ThinkPHP+EasyUI之ComboTree中的会计科目树形
千家信息网最后更新 2024年09月22日如何实现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安全错误
数据库的锁怎样保障安全
哪儿有cc防护服务器
内部邮箱一定要有服务器吗
株洲net软件开发专业
f5网络安全防护
ftp服务器安全么
中国网络安全中心 成都
手游作弊软件开发
衡阳网络安全培训机构学历要求低
a3网络安全手抄报
cft网络安全比赛
软件开发减税政策
软件开发立项文档模板
湖南省网络安全管理条例
php数据库网络安全
阿里云香港服务器速度
美国十大互联网科技公司排名
虚拟机 云服务器
华为手机网络技术实验
接收邮箱服务器
虚拟机打开dns服务器
数据库报错id已存在
株洲net软件开发专业
有多少个同样的数据库
各服务器开服英雄是什么
web服务器 cgi
2008数据库安装没设密码
生活中网络安全如何防范
外网云服务器推荐
分布式软件开发是什么意思
网络安全法的类型有哪些