亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

常規(guī)功能和模塊自定義系統(tǒng) (cfcmms)—010主界面和菜單的展示和控制(2) -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.msguai.com - 電腦資料】

   

常規(guī)功能和模塊自定義系統(tǒng) (cfcmms)—010主界面和菜單的展示和控制(2)

    系統(tǒng)中設置了四種菜單類型,可以相互之間快速轉換,分別為標準菜單、按鈕菜單、樹狀菜單和折疊式菜單,

常規(guī)功能和模塊自定義系統(tǒng) (cfcmms)—010主界面和菜單的展示和控制(2)

。各個菜單位置和轉換方式如下圖:

    各種菜單的菜單項的數(shù)據(jù)源由MainModel.js通過ajax在后臺取得,在MenuModel.js中將菜單數(shù)據(jù)加工后生成可用的菜單數(shù)據(jù)。菜單項的數(shù)據(jù)獲得、生成菜單、展示的過程如下圖:(此處菜單項未用MVVM特性,要用的話也可以,把生成菜單的函數(shù)放在formula中應該就可以了)

   

    菜單的數(shù)據(jù)保存在數(shù)據(jù)表中,菜單可執(zhí)行的任務通常包括打開一個模塊、有附加條件的打開模塊、打開一個綜合查詢、執(zhí)行系統(tǒng)功能,為了系統(tǒng)的可開放性和擴展性,以后會加入對自己開發(fā)函數(shù)和功能的支持。

    按鈕菜單,標準菜單和樹狀菜單三者之間的轉換,使用了MVVM中的特性。在MainModel.js中有一個視圖控制的變量menuType,通過直接改變這個變量的值,通過設置的formulas函數(shù),就可以來達到隱藏或顯示某種類型的菜單。

   

data : {		menuType : 'tree', // 菜單的位置,'button' , 'toolbar' , 'tree'	},	formulas : {		// 當菜單方式選擇的按鈕按下后,這里的formulas會改變,然后會影響相應的bind的數(shù)據(jù)		isButtonMenu : function(get) {			return get('menuType') == 'button';		},		isToolbarMenu : function(get) {			return get('menuType') == 'toolbar';		},		isTreeMenu : function(get) {			return get('menuType') == 'tree';		}	}
在Main.js中,下面片斷中將formulas的結果綁定到了各種菜單類型是否顯示之上。
items : [ {		xtype : 'maintop',		title : '信息面版,左邊的菜單面版,中間的模塊信息顯示區(qū)域',		region : 'north' // 把它放在最頂上	}, {		xtype : 'mainmenutoolbar',		region : 'north', // 把他放在maintop的下面		hidden : true, // 默認隱藏		bind : {			hidden : '{!isToolbarMenu}' // 如果不是標準菜單就隱藏		}	}, {		xtype : 'mainbottom',		region : 'south' // 把它放在最底下	}, {		xtype : 'mainmenuregion',		reference : 'mainmenuregion',		region : 'west', // 左邊面板		width : 220,		collapsible : true,		split : true,		hidden : false, // 系統(tǒng)默認是顯示此樹狀菜單,

電腦資料

常規(guī)功能和模塊自定義系統(tǒng) (cfcmms)—010主界面和菜單的展示和控制(2)》(http://www.msguai.com)。這里改成true也可以,你就能看到界面顯示好后,再顯示菜單的過程 bind : { hidden : '{!isTreeMenu}' } }, { region : 'center', // 中間的顯示面版,是一個tabPanel. xtype : 'maincenter', reference : 'maincenter' } ],

    改變menuType的值可以有二種方法,一種直接用viewModel.set('menuType',value),例如在MainController.js中的以下代碼。

// 顯示菜單條,隱藏左邊菜單區(qū)域和頂部的按鈕菜單。	showMainMenuToolbar : function(button) {		this.getView().getViewModel().set('menuType', 'toolbar');	},	// 顯示左邊菜單區(qū)域,隱藏菜單條和頂部的按鈕菜單。	showLeftMenuRegion : function(button) {		this.getView().getViewModel().set('menuType', 'tree');	},	// 顯示頂部的按鈕菜單,隱藏菜單條和左邊菜單區(qū)域。	showButtonMenu : function(button) {		var view = this.getView();		if (view.down('maintop').hidden) {			// 如果頂部區(qū)域和底部區(qū)域隱藏了,在用按鈕菜單的時候,把他們顯示出來,不然菜單就不見了			view.showOrHiddenToolbar.toggle();		}		view.getViewModel().set('menuType', 'button');	},
二是使用雙向綁定的方法來改變值。在頂部區(qū)域中設置的菜單樣式就這種方法,使用bind值的方式來進行雙向綁定。當menuType被其他地方修改過后,這里的值就會連動;當用戶在這里選擇了一種菜單樣式之后,viewModel中的menuType值就會被修改,而后formulas中和menuType有關的函數(shù)也會被執(zhí)行,和formulas中函數(shù)進行綁定的控件的狀態(tài)就會改變。
text : '菜單樣式',			menu : [ {				xtype : 'segmentedbutton',				bind : {					value : '{menuType}' // 在外界改變了菜單樣式之后,這里會得到反應				},				items : [ {					text : '標準菜單',					value : 'toolbar'				}, {					text : '樹形菜單',					value : 'tree'				}, {					text : '按鈕菜單',					value : 'button'				} ]			} ]

    關于viewModel中的數(shù)據(jù)、formulas、屬性綁定、雙向綁定可以從以下圖中看出來。

   

最新文章