ExtJS 6 如何引入Dashboard模版
最近很多人问我在ext js 6+的版本中怎么引入官方的dashboard模版,正好我好久没写博客了,这里我写一篇博客来说明一下。
在这里以ext js 6.2.1版本为例(注:需要安装Sencha Cmd,以及下载对应的sdk)
1.创建空白项目
在命令行中输入sencha -sdk D:\ASPX\ext-6.2.1 generate app --classic app D:\ASPX\Test
D:\ASPX\ext-6.2.1 是指sdk目录
generate app --classic app 是创建pc端应用,这个应用的包名是app
D:\ASPX\Test 就是所创建项目的目录了

运行一下项目,效果是这样的,这并不是我们想要的模版
2.移植模版
a.打开你所创建的项目,打开app目录
删掉里面所有的文件
b.找到sdk所在目录,依次打开templates->admin-dashboard->app目录
将app目录里面的文件全部复制并替换到你创建项目的app目录中,在这里是指D:\ASPX\Test\app
返回到sdk所在目录,依次打开templates->admin-dashboard->classic->src目录
同样的将这里面的文件全部复制并替换到你创建项目的app目录中,在这里是指D:\ASPX\Test\app
c.打开你创建项目目录中的app.js文件,修改成以下内容
1.Ext.application({2. name: 'app',3. extend: 'app.Application',4.});打开你创建项目的app目录中的Application.js文件
注意这里的项目包名是Admin,而我们自己创建的包名是app,所以我们需要对代码进行一些修改才可以使用
01.Ext.define('app.Application', {02. extend: 'Ext.app.Application',03. name: 'app',04. stores: [05. 'NavigationTree'06. ],07. defaultToken: 'dashboard',08. mainView: 'app.view.main.Main',09. requires: ['app.*'],10. onAppUpdate: function () {11. Ext.Msg.confirm('Application Update', 'This application has an update, reload?',12. function (choice) {13. if (choice === 'yes') {14. window.location.reload();15. }16. }17. );18. }19.});用编辑器自带的工具把app目录下所有js文件中的Admin.包名替换为app. 注意别替换错了。在这里因为我们的项目名称是app所以才替换为app
你自己创建的项目名称是什么替换为对应的名称即可
d.返回到sdk所在目录,依次打开templates->admin-dashboard->resources目录
将这里面的文件全部复制到你创建项目的resources目录中,在这里是指D:\ASPX\Test\resources
f.返回到sdk所在目录,依次打开templates->admin-dashboard->sass目录
将这里面的etc,src,var三个文件夹全部复制并替换到你创建项目的sass目录中,在这里是指D:\ASPX\Test\sass
返回到sdk所在目录,依次打开templates->admin-dashboard->classic->sass目录
将这里面的etc,src,var三个文件夹全部复制并替换到你创建项目的sass目录中,在这里是指D:\ASPX\Test\sass
g.返回到sdk所在目录,依次打开templates->admin-dashboard->overrides目录
将这里面的文件全部复制到你创建项目的overrides目录中,在这里是指D:\ASPX\Test\overrides
h.找到你创建项目中app.json文件,找到requires配置,修改为如下配置
1."requires": [2. "charts",3. "font-awesome",4. "ux"5.]
3.编译
打开cmd,进入你所创建的项目目录中,这里是指D:\ASPX\Test目录,运行sencha app build命令打包

运行一下项目,这就是我们想要的效果(注:我没有放到服务器中运行,所以看不到具体数据)
4.自定义模版

我们看一下项目结构,简单介绍一下各个目录的作用
01.app目录---------------项目文件目录02. 03. data目录------------数据源目录04. 05. model目录-----------模型目录06. 07. proxy目录------------自定义代理目录08. 09. store目录-------------数据仓库目录10. 11. view目录-------------视图目录12. 13.overrides目录---------重写类目录14. 15.resources目录--------资源文件目录16. 17.sass目录--------------sass样式目录18. 19.app.js----------------项目入口文件20. 21.app.json-------------项目配置文件这里我们重点关注app下的view目录与sass目录,目录结构对比如下
以Dialog视图为例,在sass目中下src,var目录下都生成了对应的sass文件
src里面是具体sass样式
001..auth-dialog{002. 003. .auth-profile-wrap{004. background:$base-color;005. color:$lightest-color;006. line-height:24px;007. .user-name-text{008. font-size: 18px;009. font-weight:bold;010. }011. .user-post-text{012. font-size:14px;013. }014. .auth-profile-img{015. @include border-radius($circle-border-radius);016. }017. }018. 019. .x-form-text-default, .x-placeholder-label-default {020. padding: 15px;021. }022. 023. 024. .register-page-back-button,025. .register-page-back-button .x-frame-mc{026. 027. border:none;028. padding:5px 0 0 0;029. .x-btn-inner-default-small{030. padding : 0;031. height:20px;032. color: $base-color;033. &:hover{034. text-decoration:underline;035. }036. }037. &.x-btn-pressed.x-btn-default-small{038. 039. }040. }041. .trigger-glyph-noop {042. cursor:default;043. }044. .x-form-trigger{045. text-align:right;046. width:50px;047. }048. .password-trigger,049. .auth-email-trigger,050. .auth-password-trigger,051. .auth-envelope-trigger{052. &:before{053. top: 10px;054. left:-18px;055. position: relative;056. color: $dialog-trigger-color;057. font-size: 30px;058. }059. 060. &.password-trigger:before,061. &.auth-password-trigger:before{062. content: "\f023";063. }064. &.auth-email-trigger:before{065. content: "\f007";066. }067. &.auth-envelope-trigger:before{068. content: "\f0e0";069. }070. }071. .seperator{072. text-align: center;073. color: $create-account-background-color;074. font-family: "Open Sans";075. display: inline-block;076. background: $lightest-color;077. position: relative;078. z-index: 1;079. padding: 0 8px;080. }081. .link-forgot-password {082. line-height:32px;083. color: $base-color;084. text-decoration:none;085. margin-left:5px;086. &:hover{087. text-decoration:underline;088. }089. }090. 091. .x-btn{092. .x-btn-icon-el{093. &:before{094. right: 10px;095. font-size: 24px;096. position: absolute;097. }098. }099. }100. 101. .auth-facebook-button .x-fa{102. color: $lightest-color;103. font-size: 24px;104. top:10px;105. right: 13px;106. }107. 108. .auth-login-button .x-fa,109. .auth-resetpassword-button .x-fa{110. font-size: 32px;111. right: 11px;112. top:10px;113. line-height: 16px;114. }115. .auth-create-account-button .x-fa {116. color: $lightest-color;117. right: 24px;118. top:10px;119. }120. 121. .outer-div{122. width:100%;123. text-align: center;124. &:after{125. content: " ";126. width:100%;127. height: 1px;128. 129. position:absolute;130. left: 0;131. top: 9px;132. }133. }134.}var里面是sass变量
1.$dialog-login-2.$create-account-3.$dialog-trigger-color: #e5e5e5;我们需要某个页面的样式,只需要用同样的规则建立对应的sass配置即可,这里篇幅有限就不细讲了。(注别忘了all.scss,这里面有一些公用sass)
ExtJS 6 如何引入Dashboard模版的更多相关文章
- Ext Js 6+ 如何引入dashboard模版
最近很多人问我在ext js 6+的版本中怎么引入官方的dashboard模版,正好我好久没写博客了,这里我写一篇博客来说明一下. 在这里以ext js 6.2.1版本为例(注:需要安装Sencha ...
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- ExtJS 4.2 Date组件扩展:添加清除按钮
ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. ...
- js模版引擎handlebars.js实用教程——为什么选择Handlebars.js
返回目录 据小菜了解,对于java开发,涉及到页面展示时,比较主流的有两种解决方案: 1. struts2+vo+el表达式. 这种方式,重点不在于struts2,而是vo和el表达式,其基本思想是: ...
- ExtJS的MessageBox总结
自己写了个ExtJS的MsgBox的小模版,以后遇到需要使用提示的地方就拿过来改改,免得每次都重新写. /**MsgBox start**/ Ext.Msg.buttonText.yes = &quo ...
- ExtJS 4 类系统
ExtJS 4的类系统(class system)进行了一次重大重构,ExtJS4的新架构就是基于这套新的类系统构建的,因此有必要先了解以下这个class system这篇文章分为四章 I: &quo ...
- JS、JQuery和ExtJs动态创建DOM对象
做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...
- Spring Boot 集成 thymeleaf 模版引擎
Spring Boot 建议使用 HTML 来完成动态页面.Spring Boot 提供了大量的模版引擎,包括 Thymeleaf.FreeMarker.Velocity等. Spring Boot ...
- laravel 模版引擎使用
laravel 模版引擎以 @标签 开头,以 @end标签 结尾,常用有 foreach foreachelse if for while等 1)foreach 和 foreachelse 差不到,区 ...
随机推荐
- What are Traceroute, Ping, Telnet and Nslookup commands?
https://help.maximumasp.com/KB/a445/connectivity-testing-with-ping-telnet-tracert-and-pathping-.aspx ...
- as modern frameworks have warmed people to the idea of using builder-type patterns and anonymous inner classes for such things
mybatis – MyBatis 3 | SQL语句构建器 http://www.mybatis.org/mybatis-3/zh/statement-builders.html SqlBuilde ...
- Scala高级语法
一.隐式 implicit分类: (1)隐式参数 (2)隐式转换类型 (3)隐式类 特点:让代码变得更加灵活 (一)隐式参数 1.ImplicitTest object ImplicitTest { ...
- Expedition---poj2431(优先队列-堆的实现)
题目链接:http://poj.org/problem?id=2431 题意:一辆卡车需要行驶 L 距离,车上油的含量为 P,在行驶的过程中有 n 个加油站 每个加油站到终点的距离是ai,每个加油站最 ...
- python 面向对象 公有属性 用在哪里
公有属性也可以叫做静态字段 如果每个对象都有一个共同的值 , 应该把它设置为公有属性 公有属性使用场景,每个对象中保存相同的东西时,可以使用公有属性 类找公有属性 过程
- 文本IO 二进制IO
一.文本IO 字符流 使用PrintWriter写入文件后,必须调用close(),否则数据不能正确保存在文件中. Scanner的next()读取一个由分隔符分隔的字符串,nextLine()读取 ...
- 4.2 Routing -- Defining Your Routes
一.概述 1. 当应用程序启动时,路由器负责显示模板,加载数据,另外还设置应用程序的状态.这是通过匹配当前URL到你定义的routes来实现的. 2. Ember app router中的Map方法可 ...
- MySql数据库的安装和卸载
- Mysql优化_ORDER BY和GROUP BY 的优化讲解(单路排序和双路排序)
ORDER BY 子句尽量使用Index方式排序,避免使用FileSort方式排序,尽可能在索引列上外城排序操作,遵照索引键的最佳左前缀.如果不在索引列上,FileSort有两种算法,Mysql就要启 ...
- Java8 Predicate
code: package com.qhong; import java.util.ArrayList; import java.util.Arrays; import java.util.List; ...