1. 程式人生 > >extjs 修改官方主題

extjs 修改官方主題

1、在用sencha命令建立的Extjs6專案中只能使用一種介面主題(Theme),如果要換一個介面風絡需要重新修改app.json中的theme配置項,然後再用cmd命令重新編譯生成
方法一:修改app.json,在檔案的最後有關於builds配置項中的theme
這裡寫圖片描述
這裡寫圖片描述
最後開啟index.html就是修改後的樣式。
方法二:方法二是在網上看到的比較快捷的方法,可以快速看到所有的主體,但因為時間緊急,這個方法我還沒有實踐,等有時間了試一下這個方法。
第一步,修改app.json,在檔案的最後部有關於builds配置項的說明,把下面這段程式碼加進去。

"builds": {  
  "classic"
: { "theme": "theme-classic" }, "gray" : { "theme" : "theme-gray" }, "aria": { "theme": "theme-aria" }, "neptune" : { "theme": "theme-neptune" }, "crisp" :{ "theme": "theme-crisp" }, "triton": { "theme"
: "theme-triton" }

還要在app.json中找到bootstrap配置項,加入一行配置後如下:

"bootstrap": {  
    "base": "${app.dir}",  
    "microloader": "bootstrap.js",  
    "manifest": "${build.id}.json",  
    "css": "bootstrap.css"  
},  

在output配置項中加入resources配置

"output": {  
    "base": "${workspace.build.dir}/${build.environment}
/${app.name}"
, "appCache": { "enable": false }, "resources": { "path": "${build.id}/resources", "shared": "resources" } },

修改好以上三項後,儲存app.json。然後用 sencha app build development 來重新生成開發環境。編譯完成後,會發現在build/development/app 目錄下多出來一些資料夾,這些資料夾分別是各種Theme的資原始檔;在WebContent下面也多出了相應的Theme的配置檔案,如triton.json、neptune.json等,如下圖:
這裡寫圖片描述
至此第一步完成,下一步需要修改index.html,使其可以根據網址的引數來決定用哪一個Theme。開啟index.html,將其註釋掉的一段script修改一下。
[javascript] view plaincopy

<!DOCTYPE HTML>  
<html manifest="">  
<head>  
<meta http-equiv="X-UA-Compatible" content="IE=edge">  
<meta charset="UTF-8">  
<meta name="viewport"  
    content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">  

<title>app</title>  

<script type="text/javascript">  
    var Ext = Ext || {};  
    Ext.beforeLoad = function(tags) {  

        var theme = location.href.match(/theme=([\w-]+)/);  
        theme = (theme && theme[1]) || 'crisp';  

        console.log('載入系統主題方案:' + theme);  
        Ext.manifest = theme + '.json';   

    };  

</script>  

<script id="microloader" data-app="e8b92f93-ab34-4781-ab41-b4b0f2a7d2c0"  
    type="text/javascript" src="bootstrap.js"></script>  

</head>  
<body></body>  
</html>  

至此,已經可以在開發模式下使用不同的Theme了。示例如下:
這裡寫圖片描述