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

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

« Previous Version 4 Next »

DEMO:

仿照9.0将目录和管理系统结合在一起.

fr-plugin-theme-original-1.0.zip

学习文档:

请求接口:

接口描述参数返回值

Dec.Utils.getWorkbenchSubDirectoryById

分层取目录树节点

pId, callback

 

Dec.Utils.searchWorkbenchSubDirectory

搜索目录树

keyword,callback

 
Dec.Utils.getFavoritesList取收藏列表callback 

Dec.Plugin.getManagementModules

Dec.Utils.getManagementModules

取管理系统节点callback 
Dec.Plugin.getMenus取menu节点 menu list
Dec.Utils.handlerCollect收藏一个模板/取消收藏一个节点true/false 
Dec.Utils.getReportList取分享给我的列表  
    

 

后台支持:

Component
package com.fr.plugin.decision.theme.original;
 
import com.fr.web.struct.Component;
import com.fr.web.struct.category.ScriptPath;
import com.fr.web.struct.category.StylePath;
import com.fr.web.struct.Filter;
 
public class OriginalComponent extends Component {
 
    public static final OriginalComponent KEY = new OriginalComponent();
 
    private OriginalComponent() {
 
    }
 
    @Override
    public ScriptPath script() {
        return ScriptPath.build("/com/fr/plugin/decision/theme/original/web/theme.js");
    }
 
    @Override
    public StylePath style() {
        return StylePath.build("/com/fr/plugin/decision/theme/original/web/style.css");
    }

    @Override
    public Filter filter() {
        return new Filter() {
            public boolean accept() {
                return "com.fr.plugin.decision.theme.original.OriginalTheme".equals(AppearanceConfig.getInstance().getThemeId());
            }
        };
    }
}
AbstractThemeVariousProvider
package com.fr.plugin.decision.theme.original;

import com.fr.decision.fun.impl.AbstractThemeVariousProvider;
import com.fr.decision.web.MainComponent;
import com.fr.plugin.transform.ExecuteFunctionRecord;
import com.fr.plugin.transform.FunctionRecorder;
import com.fr.web.struct.Atom;

/**
 * Created by dailer on 18/10/10.
 */
@FunctionRecorder(localeKey = "decision-theme-test")
public class OriginalTheme extends AbstractThemeVariousProvider  {


    @Override
    public Atom attach() {
        return MainComponent.KEY;
    }

    @Override
    public Atom client() {
        return OriginalComponent.KEY;
    }

    @Override
    @ExecuteFunctionRecord
    public String name() {
        return "OriginalTheme";
    }

    @Override
    public String text() {
        return "复古";
    }

    @Override
    public String coverPath() {
        return "";
    }

}

 

开放接口:

接口描述参数详情
Dec.Plugin.tabPane.addItemtabPane 添加一个tab(cardTitle,cardValue,cardType)展示名,value,cardType 可以为fineui注册组件字符串,也可以为对象{src:"baidu.com"}
Dec.Plugin.tabPane.closeActiveTab关闭当前激活的tab  
Dec.Plugin.tabPane.openTab打开一个目录节点到tabPane(entry)将请求取到目录树节点的对象传进去即可
Dec.Plugin.Menus.addItem向侧栏menus加一个按钮(op)

参数对象结构 {

value: "dashboard", // 值
text: BI.i18nText("Dec-Menu_Dashboard"), // 文字
cardType: "dec.dashboard", // 加载内容 字符串或对象
cls: "analysis-menu-font" // 图标class名

}

 

常量:

名称描述

DecCst.DIRECTORY_TREE_ROOT_ID

目录根节点
  
  

配置:

{
    theme: {
        name: "default",
        // 框架布局配置属性
        config4Frame: {
            // 上区域
            north: {
                height: 40, // 上方导航栏高度设置
                invisible: false // 是否不可见
            },
            // 左区域
            west: {
                width: 70, // 宽度 默认70
                invisible: false // 是否不可见
            },
            // 右区域
            east: {
                invisible: false // 是否不可见
            }
        },
        // Header配置属性
        config4Header: {},
        // menu组件配置属性
        config4Menu: {
            invisible: false, // 是否不可见
        },
        // 目录面板组件配置属性
        config4EntryPane: {
            pinable: true //  是否支持固定
        },
        // 管理系统面板组件配置属性
        config4ModulesPane: {
            pinable: true, //  是否支持固定
            showHomepage: true
        }
    }
}

 

流程:

注入布局策略>注入组件>实现相关组件.

//  注入布局方式,10.0平台默认用上+下(左+右)结构,只用到了header,menu,body
Dec.injection.injectLayoutStrategy({
	layout: function (config4Frame, header, footer, menu, body) {
    }
})
 
Dec.injection.injectHeader({
    widget: function () {
        return {
            type: "dec.header",
            height: 60
        };
    }
});
Dec.injection.injectFooter({
    widget: function () {
    }
});
Dec.injection.injectMenu({
    widget: function (config) {
        return {
            type: "dec.menu",
            invisible: config.invisible
        };
    }
});
Dec.injection.injectBody({
    widget: function () {
        return {
            type: "dec.body"
        };
    }
});
 
 
// 示例中注册了 dec.workbench.directory 即目录树组件为新的 目录和管理系统节点合并的树组件
BI.Plugin.registerWidget("dec.workbench.directory", function (ob) {
    return BI.extend(ob, {type: "dec.theme.modules"});
});

集成:

 

React
//  继承BI.Widget 在组件的render方法中将react组件放入
!(function () {
    var Widget = BI.inherit(BI.Widget, {
        props: {
            cls: "dec-demo"
        },
        render: function () {
            ReactDOM.render(<MyComponent/>, this.element[0]);
        }
    });
    BI.shortcut("dec.demo", Widget);
})();


JQuery
//  继承BI.Widget 在组件的render方法中创建一个widget挂载
!(function () {
    var Widget = BI.inherit(BI.Widget, {
        props: {
            cls: "dec-demo"
        },
        render: function () {
            var component = BI.createWidget({
    			type: "bi.layout",
    			element: "<div>dec-demo</div>"
			});
			return {
    			type: "bi.default",
    			items: [component]
			};
        }
    });
    BI.shortcut("dec.demo", Widget);
})();
 
//  render方法也可以这样写
render: function () {
    var component = $("<div>dec-demo</div>");
    this.element.append(component);
}
 


配色:

 

Dec.platformStyles.customColors=[

"#FFFFFF", "#4B7EFE", "#2C3D59", "#F2F6FA", "#FFFFFF", "#3D4D66"

]

 

  • No labels