常规功能和模块自定义系统 (cfcmms)—007Extjs的配置文件和自定义ui

常规功能和模块自定义系统 (cfcmms)—007Extjs的配置文件和自定义ui

  一、在自动生成的项目中,文件 app.json 是整个前台系统的配置文件,可以在里面增加或修改配置参数来完成相应的功能。该文件的部分参数如下:

{
    "name": "cfcmms",			//项目命名空间
    "version": "1.0.0.0",		//项目版本号
    "indexHtmlPath": "index.html",	//项目主页
    "classpath": [			//源码和类库路径
        "app",
        "${toolkit.name}/src"
    ],
    "overrides": [……],
    "framework": "ext",			//框架库名称
    "toolkit": "classic",		//只有classic的框架
    "theme": "theme-triton",		//界面主题
    "requires": [			//需要使用到的库和功能
        "font-awesome"
    ],
    "sass": {},			//可以被编译到系统中的sass的定义
    "js": [  {				//各个js文件的加载设置
            "path": "app.js",
            "bundle": true  } ],
    "classic": {……},			//classic框架库文件
    "css": [……],			//各个需要加入到系统中的css
     "loader": {			//动态加载文件时的缓存设置
        "cache": false,
         "cacheParam": "_dc"
     },
    "production": {……},		//生成发布包的一些设置
    "development": {  "tags": [] },
    "bootstrap": {……},			//系统引导程序的设置
    "output": {			//各类发布文件的设置
        "base": "${workspace.build.dir}/${build.environment}/${app.name}",
        "appCache": {  "enable": false    }
    },
     "resource": {			//各类其他附加资源文件的定义
        "paths": [
            "resources",
            “${toolkit.name}/resources”]  }
}

  二、加入国际化的设置,使各种提示信息都使用中文。在app.json中修改requires选项,在里面加入 ext-locale,并加入一个新的选项设置后保存文件,如下所示。

    "requires": [
        "font-awesome",
        "ext-locale"
    ],
    "locale" : “zh_CN”,

  在浏览器刷新页面后,我们发现提示信息还没改成中文,这是因为bootstrap中的配置信息还没有被更新。在cmd或终端中,在WebContent目录下执行以下命令即可更新系统的metadata(即bootstrap)。

	MacBook:WebContent jiangfeng$ sencha app refresh

  再启动web服务后,在浏览器中刷新页面即可看到grid的column下的菜单显示中文信息了。

  三、界面主题:修改主题只需修改app.json中的“theme”参数即可。例如将theme改为经典样式。

"theme": “theme-classic”,

  在修改了样式以后,需要重新生成系统相应的css文件,由于项目的css文件是在系统发布目录/build/production/cfcmms/resources中,因此在改了主题过后,需要生成发布项目才能重新根据theme的设置来生成css文件。在cmd或终端中,在WebContent目录下执行以下命令即可。

MacBook:WebContent jiangfeng$ sencha app build --clean development 

  再启动web服务后,在浏览器中刷新页面即可看到界面主题已经修改了。

  由于主题是根据配置文件的theme定义来进行生成的,因此在使用sencha cmd编译后的项目中如何实现界面主题的自由切换变成了一个新的问题,有知道的可以指点一下。

  四、通过scss来改变控件的css设置。在自动生成的项目中tabPanel并不是默认的主题中的样式,而是指定了一个ui: ‘navigation’的属性,下面通过一个图简要介绍一下这个属性是如何定义和生效的,具体的内容请参阅sencha官方文档。

  在下图的说明中,修改了二个设置,将选中标签页的背景和panel标题背景进行了修改。保存修改后要执行sencha app build --clean development 命令来重新生成css后才能正确在浏览器中展示。

 五、项目发布产品:在使用 sencha app build 命令后,会在build/production 目录下生成可发布的前台js和css的优化和压缩后的文件。其中的app.js是所有用到的extjs框架库中的类和自己编的源文件的集合,这样在系统加载时会一次性的加载所有的js文件,第二次使用的时候将会使用缓存。在resources目录中则保存了所有的css、字体、图像等资源文件。

  如要运行此项目的发布产品可以在浏览器中打入如下地址:http://localhost:1841/build/production/cfcmms/

  至此,一个由sencha cmd自动生成的工程中我所知道的东西都简略的写出来,如有遗漏或不足之处,请跟贴指出。

  对本系统有兴趣的读者可以加入QQ群:386100815;对此系统有任何建议或意见的可以跟贴回复,或者发邮件[email protected] 和我进行联系。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-21 08:44:58

常规功能和模块自定义系统 (cfcmms)—007Extjs的配置文件和自定义ui的相关文章

常规功能和模块自定义系统 (cfcmms)—018自定义grid方案(2)

常规功能和模块自定义系统 (cfcmms)-018自定义grid方案(2) 下面来看看在系统中如何定义一个grid方案.当前定义grid方案也是采用对记录模块操作的方式,并没有采用所见即所得得的设计方式,以后有时间将会修改成所见即所得得方式. 上图中可以看到在进入了"模块列表方案"后,会显示所有的模块的列表方案,在导航里选择了"省份"这后,会只显示省份的2个列表方案.每个方案都有若干个字段组,选中一条记录以后,按"列表字段分组"可以看到当前方案的

常规功能和模块自定义系统 (cfcmms)—015模块自定义概述(2权限)

常规功能和模块自定义系统 (cfcmms)-015模块自定义概述(2权限) 模块的权限的自定义也是这个系统的重要部分.在本系统中现在模块的权限有三大类:模块操作权限.记录可视范围限定.附加操作权限. 模块操作权限:可以对模块进行浏览.新增.修改.删除.审核.审批等的设置.可以通过生成和隐藏相应的按钮来具体控制权限的设置.如某人无删除权限,则在该模块的操作界面上没有删除按钮.对于一般的管理系统而言这些功能基本上是够用了. 记录可视范围限定:可以在任意模块加上可视范围的限定.在某个父模块上加上可视范

常规功能和模块自定义系统 (cfcmms)—009主界面和菜单的展示和控制(1)

常规功能和模块自定义系统 (cfcmms)-009主界面和菜单的展示和控制(1) 先从主界面和菜单.主tab标签以及一些附加的设置说起. 一个比较传统的管理软件中,一般会包括一个顶部区域.底部区域.菜单条(树状菜单)和主操作区域.本系统亦是如此,只是增加了一点灵活控制的地方.首先来看看本系统中的界面布局和extjs的类之间的对应关系,extjs中的面象对象的功能已经比较完善了,现在开发b/s程序就和我以前用组件开发delphi系统差不多,建好一个个组件类,然后直接使用即可. 和主界面.菜单相关的

常规功能和模块自定义系统 (cfcmms)—008测试试用版(6.0.0)下载及使用

常规功能和模块自定义系统 (cfcmms)-008测试试用版(6.0.0)下载及使用 在经过了一些调试和优化后,现在可以下载和测试试用版(6.0.0).在这个版中本主界面和菜单改用了mvvm方式来显示和控制. 程序和数据下载地址:http://pan.baidu.com/s/1c0sIGPq 所用到的java包下载地址:http://pan.baidu.com/s/1kTF5cIN 安装说明: 程序和数据下载好后解压缩,在eclipse中导入即可.数据库采用mysql,先用命令 CREATE S

常规功能和模块自定义系统(cfcmms)—004可自定义的项目

常规功能和模块自定义系统(cfcmms)-004可自定义的项目 可以在前台浏览器里可进行的配置项目如下图: 版权声明:本文为博主原创文章,未经博主允许不得转载.

常规功能和模块自定义系统 (cfcmms)—019自定义grid方案(3)

常规功能和模块自定义系统 (cfcmms)-019自定义grid方案(3) 这一节开始进入自定义的内部,来看看第一个自定义的功能是如何实现的. 1?在系统登录的时候,将所有的登录用户有权限的模块定义信息全部发送到前端.这段代码在app/view/main/MainModel.js中.在MainModel创建的时候,通过会发送一个同步的ajax请求来获取数据.取得数据后将所有的module信息放到MainView的data中. Ext.Ajax .request({ url : 'applicat

常规功能和模块自定义系统(cfcmms)—006Extjs的目录结构和mvvm介绍

常规功能和模块自定义系统(cfcmms)-006Extjs的目录结构和mvvm介绍 在eclipse中打开cfcmms项目,展开后目录结构如下图所示,图中简单的注释了一下各个目录和文件的说明.由于extjs6默认使用的是mvvm架构,如果想要使用extjs的MVC,需要在app下加入controller目录,把所有的控制器都放在此目录之下即可. 打开浏览器,输入网址 http://localhost:1841/,则会显示此项目默认生成的示例.如下图所示. 系统的文件加载过程,在浏览器输入网址后,

常规功能和模块自定义系统 (cfcmms)—041模块附加字段和新的Grid方案设计器

041模块附加字段和新的Grid方案设计器 在整个自定义系统,模块附加字段也是有必要的.对于一个模块来说附加的字段有二种,一种是父模块中的字段,另一种是子模块中的聚合字段.在模块记录生成sql语句的时候,只是生成了该模块的所有基本字段和其直接父模块的id和name的字段.不可能将所有父模块的字段都加进去,只能指定一些必需的字段加入到sql语句中.比如在获取订单数据的时候,最基本的sql语句中只包括了目的的市和始发地市的信息,如果要在grid中显示始发地省和目的地省就需要设置一下附加字段,这是一种

常规功能和模块自定义系统 (cfcmms)—030开发日志(创建ManyToMany的column5)

030开发日志(创建ManyToMany的column5) 现在对于这个字段来说,还剩最后一个功能了,那就是可以修改ManyToMany的值了.在grid的inline操作里面,是可以直接删除已有值,但是如果要新增的话,就必须要有一个新的界面了.下面来看看开发修改ManyToMany字段所需要的步骤. 1.创建一个修改窗口,在里面创建一个可check的树: 2?到后台请求数据,读取当前记录的所有的ManyToMany的可选项,并把已经选中的打勾: 3?根据读取到的数据更新树: 4?用户操作che