123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 |
- /**
- *
- * @class 系统主框架 主框架函数
- * 1、初始化函数,调用此函数可以对整个框架进行初始化。
- * 2、布局切换具体操作界面
- * 3、获取主框架对象
- * 4、展开框架布局
- * 5、收起框架布局
- * 6、设置框架标题
- * 7、弹出window
- * 8、关闭window
- *
- * @author 徐杨
- * @date 2014-7-6
- *
- */
- com.sinosoft.common.frameWork.FrameWork = function() {
- var _this = this;
-
- /* 主框架、北部面板、南部面板、西部面板、东部面板、中间面板、tab内容面板、 中间内容面板 */
- var $framework, $northPanel, $southPanel, $westPanel,
- $eastPanel, $centerPanel, $tabContentPanel, $centerContentPanel;
-
- var $win;
-
-
-
- /**************
- * 内部私有方法
- **************/
-
- /**
- * 功能:获取panel是否是收缩状态
- */
- var isCollapsed = function(el){
- return typeof el == 'string' ?
- $(el).css('display') == 'none' : el.css('display') == 'none';
- };
-
-
- /**
- * 功能:根据区域字符串获得相应对象
- * @param region 变量名称
- */
- var getObjByRegion = function(region){
- return eval('($' + region + ')');
- };
-
- /***
- *
- */
- var addTab = function(title, url){
- $tabContentPanel.tabs({
- fit : true,
- border : true
-
- });
- if ($tabContentPanel.tabs('exists', title)){
- $tabContentPanel.tabs('select', title);
- } else {
- $tabContentPanel.tabs('add',{
- border : false,
- title : title,
- href : url,
- closable : true,
- /* 加入tabpanel标题上手动刷新的功能 */
- tools:[{
- iconCls : 'icon-mini-refresh',
- handler : function(){
- $tabContentPanel.tabs('getSelected').panel('refresh');
- }
- }]
- });
- }
- };
-
-
- return {
-
- /**
- * 功能:框架初始化函数,只初始化框架部分
- * @param hasWest 是否初始化左侧布局
- * @param hasEast 是否初始化右侧布局
- * @param hasSouth 是否初始化底部布局
- * @param hasMap 是否初始化地图布局
- */
- init : function(options) {
- //初始化框架配置信息
- var settings = $.extend({
- hasWest : true,
- hasEast : false,
- hasSouth : false,
- hasMap : false
-
- }, options || {});
-
-
- //根据配置信息,初始化各布局对象
- $framework = $framework || $('#framework').layout();
- $northPanel = $northPanel || $('#framework_layout_north');
- $centerPanel = $centerPanel || $('#framework_layout_center');
- $tabContentPanel = $tabContentPanel || $('#framework_layout_tab_content');
- $centerContentPanel = $centerContentPanel || $('#framework_layout_center_content');
-
- //初始化左侧布局
- if(settings.hasWest){
- _leftPanel = $framework.layout('add', {
- id : 'framework_layout_west',
- region : 'west',
- width : 220,
- title : 'West Title',
- split : true
-
- });
- $westPanel = $('#framework_layout_west');
- }
-
- //初始化右侧布局
- if(settings.hasEast){
- $framework.layout('add', {
- id : 'framework_layout_east',
- region : 'east',
- width : 150,
- title : 'East Title',
- split : true
- });
- $eastPanel = $('#framework_layout_east');
- }
-
- //初始化底部布局
- if(settings.hasSouth){
- $framework.layout('add', {
- id : 'framework_layout_south',
- region : 'south',
- height : 150,
- title : 'South Title',
- split : true
- });
- $southPanel = $('#framework_layout_south');
- }
-
- },
-
- /**
- * 功能:获取主框架
- */
- getFrameWork : function(){
- return $framework;
- },
-
- /**
- * 功能:展开面板
- * @param region 所要展开哪部分框架的面板,取值范围:west、 east、 south
- * 调用方式:com.sinosoft.common.frameWork.FrameWork.expand('west');
- */
- expand : function(region){
- var obj = getObjByRegion(region + 'Panel');
- if(obj && isCollapsed(obj)){
- $framework.layout('expand', region);
- }
-
- },
-
- /**
- * 功能:收起面板
- * @param region 所要展开哪部分框架的面板,取值范围:west、 east、 south
- * 调用方式:com.sinosoft.common.frameWork.FrameWork.collapse('west');
- */
- collapse : function(region){
- var obj = getObjByRegion(region + 'Panel');
- if(obj && !isCollapsed(obj)) $framework.layout('collapse', region);
- },
-
- /**
- * 功能:设置面板标题
- * @param region 设置哪部分框架面板的标题,取值范围:west、 east、 south
- * @param title 标题名称
- * 调用方式:com.sinosoft.common.frameWork.FrameWork.setTitle('west', '左侧面板标题');
- */
- setTitle : function(region, title, icon){
- var obj = getObjByRegion(region + 'Panel');
- if(obj) obj.panel('setTitle', title);
- },
-
- /**
- * 功能:改变布局框架内容
- * @param region 改变那部分框架内容,取值范围:west、 east、 south、center
- * @param url 跳转的页面地址
- * 调用方式:com.sinosoft.common.frameWork.FrameWork.change('west', 'user.html');
- */
- change : function(region, url, title){
- //alert("region=="+region);
- //alert("url="+url);
- //tab形式改变center内容
- if(region == 'tab' ){
- //隐藏center内容面板
- //$centerContentPanel.hide();
-
- //显示tab内容面板
- if($tabContentPanel) {
- $tabContentPanel.show();
- addTab(title, url);
- }
-
-
- //非tab形式改变center内容
- }else if(region=='undefind' || region == 'center'){
- //alert("url="+url);
- //隐藏tab内容面板
- //$tabContentPanel.hide();
- //显示center内容面板
- if($centerContentPanel) $centerContentPanel.show().panel({href : url});
-
- //改变其他布局面板中的内容
- }else{
- region = 'center';
- var obj = getObjByRegion(region + 'Panel');
- if(obj) obj.panel({href : url});
-
- }
- },
-
- /**
- * 功能:系统消息提示
- * @param icon 提示图标,取值范围:error,question,info,warning
- * @param msgtext 提示的内容
- */
- showMsg : function(icon, msgtext){
- $.messager.alert('系统提示消息', msgtext, icon);
- },
-
- /**
- * 功能:系统异常消息提示
- * @param e 事件源
- */
- showExceptionMsg : function(e) {
- this.showMsg('error', e.number + "<br/>" + e.description);
- },
-
- // /**
- // * 功能:打开窗口,只创建一个窗口对象
- // * @param title 窗口标题
- // * @param width 窗口宽度
- // * @param height 窗口长度
- // * @param obj 内容对象
- // *
- // */
- // getWin : function(options){
- // var settings = {modal : true};
- // settings = $.extend(settings, options || {});
- //
- // //判断是否已经创建过窗口对象
- // if($win == null){
- // $win = $('<div>');
- // }
- //
- // $win.dialog(settings).find('.dialog-content').empty().append(settings.obj).end();
- //
- //// else{
- //// //如已经有窗口对象,则清除内容再打开
- //// $win.find('.dialog-content').empty().append(obj).end().dialog('open');
- //// }
- //
- //
- // },
-
- // /**
- // * 功能:关闭窗口
- // */
- // closeWin : function(){
- // if($win != null) $win.dialog('close');
- // },
-
- /**
- * 功能:创建带有默认
- * 参数:options obj 格式:{tpl : 模板格式, data : 数据, [style : 标题单元格的样式]}
- * (注意:style属性如果不设置,则用默认值;整体的表格样式在“framework.css”文件中定义)
- * @return 该模板query对象
- */
- detailInfoTpl : function(options){
- var settings = {
- style : {background : '#8AC2E3', color : 'white'}
- };
-
- settings = $.extend(settings, options || {});
-
- //格式化字符串,如:{name} 获取row.name的值
- for(var k in settings.data){
- settings.tpl = settings.tpl.replace('{' + k + '}',
- settings.data[k] == null ? '' : settings.data[k]);
- }
- //增加表格的样式
- return $(settings.tpl).addClass('detailInfo').find('td:even').css(settings.style).end();
-
- },
- /**
- * 功能:
- * 打开窗口,窗口中有按钮的点击事件时使用,frame形式
- * 用法:
- * var options = {
- * title : "新增",
- * url : "",//****必填项
- * width : 630,
- * height : 400
- * };
- * $.framework.getWin(options,fn);
- */
- getWin : function(options,fn){
-
- var diag = new top.Dialog();
- diag.Title = options.title != undefined ? options.title : "窗口";
- diag.URL = options.url;
- diag.ShowMaxButton = options.ShowMaxButton != undefined ? options.ShowMaxButton : true;
- diag.ShowMinButton = options.ShowMinButton != undefined ? options.ShowMinButton : true;
- diag.ShowOkButton = false;
- diag.Drag = options.Drag != undefined ? options.Drag : true;
- diag.ShowCancelButton = options.ShowCancelButton != undefined ? options.ShowCancelButton : true;
- diag.OkButtonText = options.okButtonText != undefined ? options.okButtonText : "保存";
-
- if(fn!=undefined){
- diag.ShowOkButton = true;
- diag.OKEvent = function(){
- fn(diag);
- };
- }
-
- diag.Width = options.width != undefined ? options.width : 550;
- diag.Height = options.height != undefined ? options.height : 380;
- diag.ButtonAlign = options.buttAlign != undefined ? options.buttAlign : "center";
- diag.show();
- return diag;
-
- }
-
-
- };
- }();
- //定义框架对象别名,方便调用
- $.framework = com.sinosoft.common.frameWork.FrameWork;
|