摘要:上篇實(shí)現(xiàn)了基本的代碼架構(gòu),控制器動態(tài)加載功能以及一個基礎(chǔ)的頁面布局,本節(jié)開始,將陸續(xù)完善這個頁面。頁面底部區(qū)域,主要顯示版權(quán)信息等,也可以顯示個時間啥的。。。頭部和底部定義完畢后,需要在中引入對應(yīng)位置。
上篇實(shí)現(xiàn)了基本的代碼架構(gòu),控制器動態(tài)加載功能以及一個基礎(chǔ)的頁面布局,本節(jié)開始,將陸續(xù)完善這個頁面。目標(biāo)
如前所述,我們的頁面包含這么幾個區(qū)域:
header: UI頂部區(qū)域,顯示系統(tǒng)名稱,LOGO,用戶頭像等其他操作。
footer: 頁面底部區(qū)域,主要顯示版權(quán)信息等,也可以顯示個時間啥的。。。
nav tree:頁面導(dǎo)航菜單,一般在頁面左側(cè),一般也是一棵樹!
content panel:中間內(nèi)容區(qū)域,左側(cè)導(dǎo)航點(diǎn)擊之后,頁面會被加載到這個區(qū)域,一般是個panel或者tab切換控件。
接下來逐個定義每個區(qū)域的內(nèi)容。
定義header:app/luter/view/main/Header.jsExt.define("luter.view.main.Header", { extend: "Ext.Container",//繼承自容器類 xtype: "appheader", cls: "app-header",//自定義樣式,參見style.css height: 52,//高度 layout: {//布局,水平box布局 type: "hbox", align: "middle" }, initComponent: function () { var me = this; me.items = [{//先放個LOGO xtype: "image", cls: "circle-pic", src: "app/resource/images/logo.png" }, {//再顯示個標(biāo)題 xtype: "tbtext", flex: 4, style: { color: "#FFF", fontSize: "20px", padding: "0px 10px 0px 55px", fontWeight: 900 }, text: "這里是系統(tǒng)標(biāo)題" }]; me.callParent(); } });
其中,在app/resource/css/style.css中定義了幾個樣式:
.app-header { background-color: #2a3f5d; border-bottom: 2px solid #1d9ce5; } .app-header:hover { -webkit-box-shadow: 0 1px 2px rgba(0, 0, 255, 0.8); -moz-box-shadow: 0 1px 2px rgba(0, 0, 255, 0.8); box-shadow: 0 1px 2px rgba(0, 0, 255, 0.8); } .circle-pic { width: 45px; height: 45px; -webkit-border-radius: 50%; border-radius: 50%; } .home-body { background-image: url(../images/square.gif); }定義footer:app/luter/view/main/Footer.js
Ext.define("luter.view.main.Footer", { extend: "Ext.toolbar.Toolbar",//繼承自工具欄 region: "south", xtype: "sysfooter", style: {//背景色黑色 background: "#000" }, frame: false, border: false, height: 30, initComponent: function () { var me = this; Ext.applyIf(me, { items: [{ xtype: "tbtext", style: { color: "#FFF", fontSize: "14px", textAlign: "right", fontWeight: "bold" }, flex: 3, id: "southText", text: Ext.Date.format(new Date(), "Y") +" ? " +"luter 版權(quán)所有"+":"+"v1.0"+"" }, "->", Ext.create("luter.ux.TrayClock", { flex: 1, style: { color: "#FFF", padding: "0px 0px 0px 0px", fontWeight: "bold", textAlign: "right", fontSize: "12px" } })] }); me.callParent(arguments); } });
在這里,用到了一個時鐘插件:TrayClock,這是一個自定義的插件,統(tǒng)一放在目錄:
app/luter/ux下面。
頭部和底部定義完畢后,需要在viewport中引入對應(yīng)位置。如下:
修改viewport:app/luter/view/main/Viewport.js/** * 主視圖占滿全屏是個viewport */ Ext.define("luter.view.main.ViewPort", { extend: "Ext.Viewport", alias: "widget.viewport",//別名,與xtype對應(yīng) layout: "border",//東南西北中布局,邊界嘛 stores: [], requires: ["luter.view.main.Header","luter.view.main.Footer"],//引入自定義的header和footer initComponent: function () { var me = this; Ext.apply(me, { items: [{ region: "north", xtype: "appheader"http://使用自定義的頭部,xtype對應(yīng)組件定義里的:xtype }, { region: "west", xtype: "panel", title: "西方", width: 200 }, { region: "center", title: "中間", xtype: "panel" }, { region: "south", xtype: "sysfooter"http://使用自定義的footer }] }); me.callParent(arguments); } });
至此,界面大致看起來應(yīng)該像這樣:
下一篇,我們繼續(xù)完善這個界面,定義左側(cè)導(dǎo)航、右側(cè)內(nèi)容展示區(qū)域,以及左側(cè)與右側(cè)操作聯(lián)動等內(nèi)容。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/92678.html
摘要:結(jié)構(gòu)實(shí)踐三完善基本頁面一般經(jīng)典的后臺管理系統(tǒng),都是左側(cè)菜單右側(cè)結(jié)構(gòu)布局。不免俗,咱也這么實(shí)現(xiàn)定義左側(cè)導(dǎo)航菜單新建采用的組件構(gòu)建一個導(dǎo)航菜單為了顯示圖標(biāo),引入字體圖標(biāo),在引入引入定義導(dǎo)航菜單數(shù)據(jù)功能菜單展開節(jié)點(diǎn)。 extjs-mvc結(jié)構(gòu)實(shí)踐(三):完善基本頁面2 一般經(jīng)典的后臺管理系統(tǒng),都是左側(cè)菜單右側(cè)tabs結(jié)構(gòu)布局。不免俗,咱也這么實(shí)現(xiàn)! 定義左側(cè)導(dǎo)航菜單 新建:app/luter/...
摘要:接著來,上一篇搭建了基本的項(xiàng)目骨架,到最后,其實(shí)啥也沒看見。。。目標(biāo)全屏顯示左側(cè)導(dǎo)航菜單,右側(cè)標(biāo)簽頁切換操作內(nèi)容區(qū)域。一般模型與你后臺返回的數(shù)據(jù)結(jié)構(gòu)一一對應(yīng)。給其他組件提供一致接口使用數(shù)據(jù)。整個構(gòu)成一個所謂的。 接著來,上一篇搭建了基本的項(xiàng)目骨架,到最后,其實(shí)啥也沒看見。。。書接上回,開始寫UI效果。 目標(biāo) 全屏顯示、左側(cè)導(dǎo)航菜單,右側(cè)標(biāo)簽頁切換操作內(nèi)容區(qū)域。包含header和foo...
摘要:今天開始,一點(diǎn)點(diǎn)記錄一下使用搭建一個基礎(chǔ)結(jié)構(gòu)的過程。沒辦法,記性差這種結(jié)構(gòu)的前端,主要是面向后臺信息管理系統(tǒng),可以最大限度的規(guī)范前端代碼結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。 今天開始,一點(diǎn)點(diǎn)記錄一下使用extjs6.2.0搭建一個基礎(chǔ)MVC結(jié)構(gòu)的過程。沒辦法,記性差:)這種結(jié)構(gòu)的UI前端,主要是面向后臺信息管理系統(tǒng),可以最大限度的規(guī)范前端代碼結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。做網(wǎng)站 或者手機(jī)端,這種方式全引入了extjs,...
摘要:根據(jù)模塊創(chuàng)建模塊失敗。在中,我們配置了標(biāo)明了這是一個控制器模塊,點(diǎn)擊后會去觸發(fā)控制器加載動作。正常情況下同一個模塊的只加載一次。 前面幾篇文檔,我們基本實(shí)現(xiàn)了一個靜態(tài)的extjs頁面,本篇開始,實(shí)現(xiàn)左側(cè)導(dǎo)航樹與右側(cè)內(nèi)容的聯(lián)動,也就是點(diǎn)擊導(dǎo)航菜單,加載對應(yīng)模塊頁面和業(yè)務(wù)邏輯,實(shí)現(xiàn)js文件的按需加載。 業(yè)務(wù)需求是這樣的: 左側(cè)的treelist,當(dāng)點(diǎn)擊某個節(jié)點(diǎn)的時候,系統(tǒng)根據(jù)tree數(shù)據(jù)里...
摘要:而且上一篇文章中,也已經(jīng)實(shí)現(xiàn)了一個基本的用戶管理列表頁面。接著上一篇,完善用戶管理,實(shí)現(xiàn)增刪改。為了用戶體驗(yàn),增加和修改用戶信息的表單,都放在彈窗中進(jìn)行。 經(jīng)過前面幾篇文章的介紹,一個基本的MVC結(jié)構(gòu)應(yīng)該是具備了。而且上一篇文章中,也已經(jīng)實(shí)現(xiàn)了一個基本的用戶管理列表頁面。接著上一篇,完善用戶管理,實(shí)現(xiàn)增刪改。為了用戶體驗(yàn),增加和修改用戶信息的表單,都放在彈窗中進(jìn)行。避免跳轉(zhuǎn)頁面。 定義...
閱讀 3490·2023-04-25 20:41
閱讀 2660·2023-04-25 16:40
閱讀 1433·2021-09-23 11:44
閱讀 1252·2021-09-10 10:51
閱讀 1681·2021-09-07 09:59
閱讀 1642·2019-12-27 12:08
閱讀 552·2019-08-30 15:44
閱讀 3334·2019-08-30 11:08