ExtMVC+ThinkPHP开发CRM管理系统--导航树的实现

最近很是郁闷,因不明原因本机的开发的后台管理程序无法访问。模仿其他大侠给你的导航树(ExtJSMVC)到我这里没有效果。甚至一气之下删除了自己写的一周的代码样例,莫非是本月运势不好,不抱怨了(哈哈!无非是给自己近期没有更新博客找个借口)。

进入正题今天分享一个通过后台访问mysql数据库,加载前台导航树的完整案例。

前期准备:

  1. 后台创建mySql数据库及相应表结构:

    MI_ID                    int(11)

    MI_MenuName              varchar(100)

    MI_URL                   varchar(100)

    MI_ParentNode            varchar(45)

    MI_GroupName             varchar(100)

    MI_StateID               int(10)

  2. 创建数据如下:

  3. 前台目录准备:

    其中红色方框部分的内容是今天要演示的导航树的文件。

    准备工作完成,下面开始逐步逐层实现:

    首先:创建前台的html和js页面,这里需要着重说面一下,ExtJSMVC的特点是将当前页面需要显示的内容在初始化中导入本地,后期待用户触发才会引用的js文件,在用户触发相关操作后,才导入到本地。所以很多ExtJSMVC的规范结构,有点像.net winform开发的program.cs,每一个项目有一个主文件,项目通过经过该主文件入口运行。但在实际项目开发中,可能会面对各种情况,所以,在这里演示的项目案例,全部是以一个html文件搭载一个js文件作为主文件。在一定层面上是借助ExtJS MVC可以将前台显示控件封装成对应的view,而后在使用中,可以进行相关的复用。闲话到此实现开始。

    前台html页面代码:Index_menuTree.html

    <!DOCTYPE>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>menuTree page</title>
    <link rel=‘stylesheet‘ type=‘text/css‘ href=‘__PUBLIC__/extjs410/resources/css/ext-all.css‘>
    <script type="text/javascript" src=‘__PUBLIC__/extjs410/bootstrap.js‘></script>
    <script>
    var ExtMVCPath=‘<{:C("__ExtMVCPath__")}>‘;
    var ExtSrcPath=‘<{:C("__ExtSrcPath__")}>‘;
    var mainURL=‘<{:C("__mainUrl__")}>‘+‘Index‘;
    </script>
    </head>
    <body>
    <script type="text/javascript" src=‘__ROOTPATH__/Tpl/Index_menuTree.js‘></script>
    </body>
    </html>

这里要注意一下ExtMVCPath 是通过ThinkPHP config配置文件配置的内容:

‘__ExtMVCPath__‘=>__ROOT__.‘/App/Tpl/default/‘.GROUP_NAME.‘/Js‘,

前台js文件:Index_menuTree

Ext.Loader.setConfig({    enabled:true});
Ext.application({
    requires:[‘Ext.container.Viewport‘],
    name:‘MVC‘,
    appFolder:ExtMVCPath,
    controllers:[‘Index_menuTreeController‘],
    launch:function(){
        Ext.create(‘Ext.container.Viewport‘,{
            layout:‘fit‘,
            items:[
                   {
                        xtype:‘panel‘,
                        title:‘Demo panel‘
                    }
                    ]
        });
    }
});

来个效果先:

革命尚未成功同志仍需努力,下一步创建对应的view文件,目录结构如下:

Ext.define(‘MVC.view.main.menuTree‘,{
    extend:‘Ext.tree.Panel‘,
    alias:‘widget.mainMenuTree‘,
    border:false,
    //hrefTarget:‘mainContent‘,
    rootVisible:false,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    store:‘menuStore‘
});

menuStore.js 这个文件要注意一下了哈!

Ext.define(‘MVC.store.menuStore‘,{
    extend:‘Ext.data.TreeStore‘,
    alias:‘widget.menuStore‘,
    //storeId:‘menuStoreID‘,
    defaultRoodId:‘root‘,
    //requires:[‘MVC.model.menuModel‘],
    //model:[‘MVC.model.menuModel‘],
    proxy:{
        type:‘ajax‘,
        url:ExtMVCPath+‘/json/menuJson.json‘,
        reader:‘json‘,
        autoLoad:true
    }
});

menuJson.js 文件

[
    {"id":"2",
    "pid":"1",
    "text":"用户管理",
    "leaf":"0",
    "url":"http:\/\/www.lihuai.net",
    "children":[{
        "id":"5",
        "pid":"2",
        "text":"基本信息",
        "leaf":"1",
        "url":"http:\/\/www.sogou.com",
        "children":""},{
        "id":"11",
        "pid":"2",
        "text":"信息管理",
        "leaf":"1",
        "url":"http:\/\/www.sogou.com",
        "children":""},{
        "id":"12",
        "pid":"2",
        "text":"添加用户",
        "leaf":"1",
        "url":"http:\/\/www.sogou.com",
        "children":""}]},
    {"id":"3",
    "pid":"1",
    "text":"产品管理",
    "leaf":"0",
    "url":"http:\/\/www.so.com",
    "children":[{
        "id":"7",
        "pid":"3",
        "text":"产品信息",
        "leaf":"1",
        "url":"http:\/\/www.so.com",
        "children":""},{
        "id":"8",
        "pid":"3",
        "text":"产品添加",
        "leaf":"1",
        "url":"http:\/\/www.so.com",
        "children":""}]}
]

最后一部传说中的controller文件闪亮登场;Index_menuTreeController.js

Ext.define(‘MVC.controller.Index_menuTreeController‘,{
    extend:‘Ext.app.Controller‘,
    views:[‘main.menuTree‘],
    models:[‘menuModel‘],
    stores:[‘menuStore‘],
    init:function(){
        this.control({
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
        });
    }
});

上效果:

下一步将结合ThinkPHP访问数据库获取响应的数据:

ExtMVC+ThinkPHP开发CRM管理系统--导航树的实现

时间: 2024-08-01 06:24:42

ExtMVC+ThinkPHP开发CRM管理系统--导航树的实现的相关文章

作品-系统-[原生开发]新蓝景CRM管理系统

基于ThinkPHP开发 项目网址:http://www.xljchina.com.cn:8839/Admin/Login/login.html 开发性质:原生开发 系统类型:CRM

Extjs视频教程_Extjs5.0从入门到实战开发信息管理系统

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)适合人群:初级课时数量:40课时用到技术:Extjs基础,Extjs5新特性,sencha cmd,spring,spring mvc, mybatis涉及项目:信息管理系统核心框架(mvvm+mvc架构)咨询qq:1840215592课程内容简介:1.课程研发环境开发工具:eclipse,sencha cmd:数据库工具:mysql5,mysql workben

Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc、Mybatis)视频教程

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)视频教程下载   联系QQ:1026270010 Extjs作为一款优秀的JS前端开发框架以其良好的架构.丰富的UI组件库.完善的文档和社区支持等诸多优点拥有广泛的市场应用空间,开发人员无需过多的关注HTML.CSS甚至各种常用JS算法,只需把精力放在业务逻辑上,利用各种组件的相互组合调用便可轻松而高效的开发出系统的前端页面. Extjs5在之前版本的基础上又推出

C#开发人事管理系统(1)

原文取自个人网站:JueYingCoder 学习了C#基本语法和windows窗体编程之后我们就可以进行课程设计了,现以人事管理系统为例: 技术实现:采用C#4.0+Sql Server2010 掌握如何用自定义方法对不同的数据表进行添加.修改的操作 掌握如何用自定义方法实现多条件查询 掌握如何在数据库中读取或写入图片 掌握如何将数据信息以自定义表格的形式插入到word中 掌握如何向Word中插入数据库中的图片 一, 系统设计 1,系统功能结构: 2,系统业务流程图 在开发项目前,必须根据实现目

vue开发后台管理系统小结

最近工作需要用vue开发了后台管理系统,由于是第一次开发后台管理系统,中间也遇到了一些坑,想在这里做个总结,也算是对于自己工作的一个肯定.我们金融性质的网站所以就不将代码贴出来哈 一.项目概述 首先工作需求是这样的,开发一个公司的总后台,包含各个不同的模块,总体难度一般,没有开发ui图,用的vue-cli .elementui框架.webpack打包. 总需求的思维导图见链接  http://naotu.baidu.com/file/e8c31b43dfb2f18a3c523e0fa1393c0

python学习之----导航树

findAll 函数通过标签的名称和属性来查找标签 .但是如果你需要通过标签在文档中的位 置来查找标签,该怎么办?这就是导航树(Navigating Trees)的作用.在第1 章里,我们 看过用单一方向进行BeautifulSoup 标签树的导航: bsObj.tag.subTag.anotherSubTag 现在我们用虚拟的在线购物网站http://www.pythonscraping.com/pages/page3.html 作为要抓取的示例网页 这个HTML 页面可以映射成一棵树(为了简

iOS开发UI篇—导航控制器属性和基本使用

IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController *nav=[[UINavigationControlleralloc]init]; 2.设置导航控制器为window的根视图 self.window.rootViewController=nav; 3.添加 YYOneViewController  *one = [[YYOneViewContro

crm翻译导航栏

在crm里面如何翻译导航栏? 步骤如下: 1 先新建一个解决方案,把站点地图加进去 2: 然后把这个解决方案到出来来,解压文件: 3:编辑第二个文件: 4: 编辑好之后,保存,把该文件放进去那个解决方案的压缩包里面,在导入crm,这样就可以了. crm翻译导航栏

开发微商管理系统详解

微商管理系统开发(苏铭.188.1414.7927)微商多品牌授权系统开发,微信公众号授权查询,微信代理商管理软件开发,微商渠道管控系统开发,代理商订货结算系统开发,代理商推荐返佣系统开发,随着微信的更新和发展,微信用户也变得越来越多,紧随其兴起的微信第三方平台也如雨后春笋般涌现,许多商家和企业也都纷纷开通企业微信公众号并接入第三方平台,欲在微营销战场中占得一席之地,以拓展品牌的知名度.如今,在很多企业的微信公众账号上都可以看到微商城.微官网.微会员等常见的功能和服务,这些功能和服务或多或少都能