本文基於ext-6.0.0
一、關於border布局
在用ext做項目的過程中,最常用到的一種布局就是border布局,現在要寫的這個簡單頁面也是運用border布局來做。border布局將頁面分為五個部分,分別是north、south、west、east、center,對應着上、下、左、右、中,下面看一個簡單的border布局的例子。
Ext.define('Learning.view.treelearn.trees', { extend: 'Ext.panel.Panel', xtype:'trees-main', referenceHolder: true, layout: 'border', defaults:{ collapsible: true, split: true }, items: [ { region :'north', bind: { html: '上' } }, { region :'south', bind: { html: '下' } }, { reference:'treesLeft', //xtype:'treesLeft', region :'west', width:200, bind: { html: '左' } }, { region :'east', width:200, bind: { html: '右' } }, { reference:'treesCenter', region :'center', bind: { html: '中' } }, ] });
二、寫north部分(頭部)
上面這部分通常寫系統名,用戶名,也可以加注銷按鈕,搜索框等,這里就簡單寫個名字。
1、在上面的trees.js基礎上改一下,加入treesTop
{ reference:'treesTop', xtype:'treesTop', region :'north', collapsible: false, split: false, height:50 },
2、treesTop.js
Ext.define('Learning.view.treelearn.region.treesTop', { extend: 'Ext.toolbar.Toolbar', xtype:'treesTop', style:'background-color:#35baf6;color:#fff;', items:[ { xtype:'label', bind:{ text:'Extjs Learning' }, style:'font-size:20px;font-weight:bold;' },'->', { xtype:'label', bind:{ text:'當前用戶:'+'麥豇豆', }, }, ] });
三、寫west部分(左側導航欄)
下圖一是導航欄完成效果,圖二是目錄結構(就是我這里用到的文件都放在哪了)
1、在上面的trees.js中改一下,加入treesLeft
{ reference:'treesLeft', xtype:'treesLeft', region :'west', width:220, bind: { html: '左' } },
2、寫treesLeft.js,數據來自store
Ext.define('Learning.view.treelearn.region.treesLeft', { extend: 'Ext.tree.Panel', xtype:'treesLeft', title:'導航菜單', lines: false, rootVisible: false, store:Ext.create('Learning.store.treelearn.treesLeftStore', { storeId: "treesLeftStoreId" }), });
3、treesLeftStore.js,模擬ajax,加載data.json中的數據
Ext.define('Learning.store.treelearn.treesLeftStore', { extend:"Ext.data.TreeStore", alias: 'store.treesLeftStore', proxy: { type: 'ajax', url: 'app/data/data.json' }, root: { expanded: true }, autoLoad: true });
4、data.json,一般后台傳過來的就是json數據,這里寫的內容不涉及到后端,所以就自己模擬數據了。(這里少寫幾條數據,就是展示下格式)
[ { text: 'Panels', id: 'panels', expanded: true, children: [ { id: 'basic-panels', text: 'Basic Panel', leaf: true }, { id: 'framed-panels', text: 'Framed Panel', leaf: true } ] }, { text: 'Trees', id: 'trees', expanded: true, children: [ { id: 'basic-trees', text: 'Basic Trees', leaf: true }, { id: 'tree-reorder', text: 'Tree Reorder', leaf: true } ] }, ]
-----------------------到這里側邊欄的樣子就出來了----------------------------------------
但是只是樣子貨,能看不能用,下一篇寫怎么讓它可以跳轉頁面。Extjs6(四)——側邊欄導航根據路由跳轉頁面