【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

概要:一个主题的美观度是由大背景图片+主题配色+主题包三大部分共同决定的。整体配色主要由背景图片和配色决定,这些可以在决策平台-管理系统-平台外观里自己配置;整体的交互和布局主要是由主题包来完成的,代码写的越多,可以变化的东西也越多,当然背景图片和主题配色可以都通过开放的API来在主题包的代码中来修改,并不局限于平台外观配置。

主题包格式

fs-theme-[主题名]  (注:主题名建议使用非中文)
        |----style.css   //导入样式
        |----theme.js      //导入脚本
        |----cover.png   //主题包封面( 建议尺寸240*170 )
        |----其他目录(包括需要使用到的一些自定义资源文件)

 

 

注:使用主题包导入功能的时候,只需要直接将上面所有文件打成zip包导入即可,不要对主题包根目录进行打包(zip包不需要包含“fs-theme-[主题名]”这个文件夹,只需包含其下的style.css、theme.js等文件即可),zip包名即为该主题的名字。zip包导入成功之后,会自动解压到 WebReport/WEB-INF/resources/fstheme/ 目录下、生成一个主题文件夹,文件夹名为“fs-theme-[zip文件名]”。

组件开放接口

框架中总共有5大组件,分别是框架布局,目录树组件,多tab组件,Navigation组件和Gallery组件。

主题总配置:

{
    isCustom: true, //是否是自定义主题
    name: 'myTheme', //主题名称
    //框架布局配置属性
    config4frame: {},
    //Navigation配置属性
    config4navigation: {},
    //目录树组件配置属性
    config4MenuTree: {},
    //多tab组件配置属性
    config4tabPane: {}
}

 

框架布局配置属性:

config4frame = {
    resizable: false,  //是否可以拖拽分割线调整左右区域的大小
    //上区域
    north: {
        height: 80 //上方导航栏高度设置(不设置默认60px)
        visible: true //是否可见
    },
    //下区域
    south: {
        visible: false //是否可见
    },
    //左区域
    west: {
        width: 220 //宽度
    },
    //右区域
    east: {}
}

 

目录树组件配置属性:

config4MenuTree = {
    region: 'west',  //默认所在区域
    onBeforeInit: null, //初始化前事件,参数:[element]
    onAfterInit: null, //初始化后事件,参数:[element]
    onDataFilter: null, //节点数据过滤事件,参数:[node, childNodes]
    onBeforeNodeClick: null, //函数,节点点击前事件,参数: [node, $node, $li]
    onNodeClick: null, //函数,节点点击事件,参数: [node, $node, $li]
    onAfterNodeClick: null, //函数,节点点击后事件,参数: [node, $node, $li]
    onBeforeNodeCreate: null, //函数,节点创建前事件,参数:[node, $node, $li]
    onNodeCreate: null, //函数,节点创建事件,参数:[node, $node, $li]
    onAfterNodeCreate: null, //函数,节点创建后事件,参数:[node, $node, $li]
    onBeforeNodeExpand: null, //函数,节点展开前事件,参数:[node, $node, $li]
    onNodeExpand: null, //函数,节点展开事件,参数:[node, $node, $li]
    onAfterNodeExpand: null, //函数,节点展开后事件,参数:[node, $node, $li]
    onBeforeNodeCollapse: null, //函数,节点收起前事件,参数:[node, $node, $li]
    onNodeCollapse: null, //函数,节点收起事件,参数:[node, $node, $li]
    onAfterNodeCollapse: null, //函数,节点收起后事件,参数:[node, $node, $li]
    onBeforeDisplayNodes: null, //函数,节点展示前事件,参数:[node, $node, $li]
    onDisplayNodes: null, //函数,节点展示事件,参数:[node, $node, $li]
    onAfterDisplayNodes: null //函数,节点展示后事件,参数:[node, $node, $li]
}

 

参数说明:
1. node - 节点对象
    node = {
        text: '日报', //entry名 
        id: '213',   //entry id
        isexpand: false, //是否展开
        hasChildren: true,  //是否具有子节点
        ChildNodes: [],  //子节点数组
        isModule: false, //是否是标签页节点
        level: 1 //树深度,从0计数
    }

2. $node - 节点的DOM对象
3. $li - 节点所处的父层DOM对象

多tab组件配置属性:

config4tabPane = {
    region: 'east', //默认所在区域
    style: 'alpha',  //内置样式,包括alpha和bravo两种选择
    tabWidth: 150,  //单个tab标签的最大宽度
    isCollapsible: true,  //是否可以收起
    hasHomepageBtn: false,  //是否有主页按钮
    onCreateTab: null,  //函数,创建Tab标签时的操作,可修改标签样式(全局),参数:[$tab, entry]
    onSelectTab: null,  //函数,选中每个Tab页面时的操作,可修改内容(全局),参数:[$tab, $content, entry]
    onCloseTab: null,  //函数,关闭每个Tab页面时的操作(全局),参数:[$tab, $content, entry]
    afterLoadTab: null,  //函数,加载每个Tab页面时的操作(全局),参数:[$tab, $content, entry]

}

 

开放方法:
1. FS.tabPane.addItem(item)
方法: 向多tab组件里添加并打开一个tab,如果tab已经存在,则直接选中;若不存在,则添加并选中。
参数: item {JSON} 
         item = {
             text: 'newTab', //必须, tab标签名
             id: '213', //entry id
             src: 'http://www.finereport.com', //可选,正文内容为链接,iframe嵌入
             onCreate: null,  //函数,创建Tab标签时的操作,可修改标签样式,参数:[$tab, entry]
             onSelect: null,  //函数,选中每个Tab页面时的操作,可修改内容,参数:[$tab, $content, entry]
             onClose: null,  //函数,关闭每个Tab页面时的操作,参数:[$tab, $content, entry]
             afterLoad: null,  //函数,加载每个Tab页面时的操作,参数:[$tab, $content, entry]
         }

Navigation配置属性:

config4navigation = {
    onBeforeInit: null,  //初始化前事件
    onAfterInit: null   //初始化后事件
}

Gallery配置属性:

config4Gallery: {
    region: null   //默认所在区域
}

主题包开发

自定义主题包实为引入的外部js、css以及资源文件等。

为了使用主题接口,首先我们在theme.js里需要对FS.Theme配置进行扩展,具体代码如下:

(function ($) {
    FS.THEME = $.extend(true, FS.THEME, {
        /**需要扩展的配置属性**/
    });
})(jQuery);

内置Classic主题采用默认配置:

{
    config4frame: {
        resizable: true,
        //上区域
        north: {
            visible: true //是否可见
        },
        //下区域
        south: {
            visible: false //是否可见
        },
        //左区域
        west: {
            width: 230 //宽度
        },
        //右区域
        east: {}
    },
    config4Gallery: {
        region: null
    },
    config4MenuTree: {
        region: 'west'
    },
    config4tabPane: {
        region: 'east',
        style: 'bravo',
        isCollapsible: false,
        hasHomepageBtn: true
    },
    config4navigation: {
        onBeforeInit: null,
        onAfterInit: null
    }
}

内置Modern主题采用如下配置:

{
    config4frame: {
        resizable: false,
            south: {
            visible: true
        }
    },
    config4Gallery: {
        region: 'east'
    },
    config4MenuTree: {
        onNodeExpand: function (node, $node, $parent) {
            return node.level !== 0;
        },
        onNodeClick: function (node, $node, $parent) {
            $('#fs-frame-wrapper') .empty();
            return false;
        }
    },
    config4tabPane: {
        style: 'alpha',
        region: 'south',
        isCollapsible: true,
        hasHomepageBtn: false
    }
}
  • No labels