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

Page tree

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

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

决策平台管理系统提供了很多平台的各种管理操作。用户也可以用SystemOptionProvider进行扩展自定义的控制功能。改接口是个功能性接口,非业务型接口。也就是只要是需要在决策平台扩展控制功能的都可以使用这个接口,与业务不直接相关。

三、接口介绍

SystemOptionProvider.java
package com.fr.decision.fun;

import com.fr.stable.fun.mark.WebCoalition;

/**
 * 决策平台管理系统菜单扩展项
 */
public interface SystemOptionProvider extends WebCoalition {

    String XML_TAG = "SystemOptionProvider";

    int CURRENT_LEVEL = 1;

    String id();

    String parentId();

    String fullPath();

    String displayName();

    int sortIndex();
}
前端接口
BI.config("dec.constant.management.navigation", function (items) {
        console.info(items);
        items.push({
            value: "地址栏的hash值",
            id: "菜单后台模块ID",
            pId:"父节点ID,如果是在根节点下就不传",
            text: "菜单显示的文本",
            cardType: "菜单对应的主界面的组件类型",
            cls: "management-directory-font"
        });
        return items;
    });
各功能模块ID值
package com.fr.decision.authority.base.constant;

/**
 * Created by loy on 2017/12/14.
 * <p>
 * 记录权限模块中数据表的固定项的ID
 */
public class AuthorityStaticItemId {

    /**
     * 平台目录权限实体的根节点ID
     */
    public static final String DEC_DIRECTORY_ROOT_ID = "decision-directory-root";

    /**
     * 平台首页权限实体的根节点ID
     */
    public static final String DEC_HOMEPAGE_ROOT_ID = "decision-homepage-root";

    /**
     * 模版权限实体的根节点ID
     */
    public static final String DEC_REPORTLET_ROOT_ID = "decision-reportlet-root";

    /**
     * 根部门职务角色的ID
     */
    public static final String DEC_DEP_ROLE_ROOT_ID = "decision-dep-role-root";

    /******************************************** 管理系统 **************************************************/

    /**
     * 管理系统根节点ID
     */
    public static final String DEC_MANAGEMENT_ID = "decision-management-root";

    /**
     * 定时调度ID
     */
    public static final String DEC_MANAGEMENT_SCHEDULE_ID = "decision-management-schedule";
    public static final int DEC_MANAGEMENT_SCHEDULE_INDEX = 10;

    /**
     * 目录管理ID
     */
    public static final String DEC_MANAGEMENT_DIRECTORY_ID = "decision-management-directory";
    public static final int DEC_MANAGEMENT_DIRECTORY_INDEX = 1;

    /**
     * 用户管理ID
     */
    public static final String DEC_MANAGEMENT_USER_ID = "decision-management-user";
    public static final int DEC_MANAGEMENT_USER_INDEX = 2;

    /**
     * 用户管理 - 添加角色
     */
    public static final String DEC_MANAGEMENT_USER_ADD_ROLE_ID = "decision-management-user-add-role";
    public static final int DEC_MANAGEMENT_USER_ADD_ROLE_INDEX = 21;
    /**
     * 用户管理 - 添加部门
     */
    public static final String DEC_MANAGEMENT_USER_ADD_DEPARTMENT_ID = "decision-management-user-add-department";
    public static final int DEC_MANAGEMENT_USER_ADD_DEPARTMENT_INDEX = 22;
    /**
     * 用户管理 - 添加用户
     */
    public static final String DEC_MANAGEMENT_USER_ADD_ID = "decision-management-user-add";
    public static final int DEC_MANAGEMENT_USER_ADD_INDEX = 23;
    /**
     * 用户管理 - 编辑用户
     */
    public static final String DEC_MANAGEMENT_USER_EDIT_ID = "decision-management-user-edit";
    public static final int DEC_MANAGEMENT_USER_EDIT_INDEX = 24;
    /**
     * 用户管理 - 重置用户密码
     */
    public static final String DEC_MANAGEMENT_USER_EDIT_RESET_PASSWORD_ID = "decision-management-user-edit-reset-password";
    public static final int DEC_MANAGEMENT_USER_EDIT_RESET_PASSWORD_INDEX = 25;
    /**
     * 用户管理 -  修改姓名、手机、邮箱
     */
    public static final String DEC_MANAGEMENT_USER_EDIT_INFO_ID = "decision-management-user-edit-edit-info";
    public static final int DEC_MANAGEMENT_USER_EDIT_INFO_INDEX = 26;
    /**
     * 用户管理 -  修改部门职务、角色
     */
    public static final String DEC_MANAGEMENT_USER_EDIT_DEP_ROLE_ID = "decision-management-user-edit-dep-role";
    public static final int DEC_MANAGEMENT_USER_EDIT_DEP_ROLE_INDEX = 27;
    /**
     * 用户管理 - 删除用户
     */
    public static final String DEC_MANAGEMENT_USER_DELETE_USER_ID = "decision-management-user-delete";
    public static final int DEC_MANAGEMENT_USER_DELETE_USER_INDEX = 28;
    /**
     * 用户管理 - 删除角色
     */
    public static final String DEC_MANAGEMENT_USER_DELETE_ROLE_ID = "decision-management-user-delete-role";
    public static final int DEC_MANAGEMENT_USER_DELETE_ROLE_INDEX = 29;

    /**
     * 用户管理 - 禁用用户
     */
    public static final String DEC_MANAGEMENT_USER_FORBIDDEN_ID = "decision-management-user-forbidden";
    public static final int DEC_MANAGEMENT_USER_FORBIDDEN_INDEX = 30;
    
    /**
     * 权限管理ID
     */
    public static final String DEC_MANAGEMENT_AUTHORITY_ID = "decision-management-authority";
    public static final int DEC_MANAGEMENT_AUTHORITY_INDEX = 3;

    /**
     * 系统管理ID
     */
    public static final String DEC_MANAGEMENT_SYSTEM_ID = "decision-management-system";
    public static final int DEC_MANAGEMENT_SYSTEM_INDEX = 4;

    /**
     * 外观配置ID
     */
    public static final String DEC_MANAGEMENT_APPEARANCE_ID = "decision-management-appearance";
    public static final int DEC_MANAGEMENT_APPEARANCE_INDEX = 6;

    /**
     * 数据连接ID
     */
    public static final String DEC_MANAGEMENT_CONNECTION_ID = "decision-management-connection";
    public static final int DEC_MANAGEMENT_CONNECTION_INDEX = 7;

    public static final String DEC_MANAGEMENT_CONNECTION_MANAGEMENT_ID = "decision-management-connection-management";
    public static final int DEC_MANAGEMENT_CONNECTION__MANAGEMENT_INDEX = 1;
    public static final String DEC_MANAGEMENT_CONNECTION_MANAGEMENT_DISPLAY = "Dec-Module_Connection_Management";

    public static final String DEC_MANAGEMENT_CONNECTION_DATASET_ID = "decision-management-connection-dataset";
    public static final int DEC_MANAGEMENT_CONNECTION__DATASET_INDEX = 2;
    public static final String DEC_MANAGEMENT_CONNECTION_DATASET_DISPLAY = "Dec-Module_Connection_Dataset";
    /**
     * 注册信息ID
     */
    public static final String DEC_MANAGEMENT_REGISTER_ID = "decision-management-register";
    public static final int DEC_MANAGEMENT_REGISTER_INDEX = 8;

    /**
     * 移动平台ID
     */
    public static final String DEC_MANAGEMENT_MOBILE_ID = "decision-management-mobile";
    public static final int DEC_MANAGEMENT_MOBILE_INDEX = 11;

    /**
     * 插件管理ID
     */
    public static final String DEC_MANAGEMENT_PLUGIN_ID = "decision-management-plugin";
    public static final int DEC_MANAGEMENT_PLUGIN_INDEX = 9;

    /**
     * 智能运维ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_ID = "decision-management-maintenance";
    public static final int DEC_MANAGEMENT_MAINTENANCE_INDEX = 5;

    /**
     * 智能运维下集群配置ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_CLUSTER_ID = "decision-management-maintenance-cluster";
    public static final int DEC_MANAGEMENT_MAINTENANCE_CLUSTER_INDEX = 1;

    /**
     * 智能运维下内存管理ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_MEMORY_ID = "decision-management-maintenance-memory";
    public static final int DEC_MANAGEMENT_MAINTENANCE_MEMORY_INDEX = 4;

    /**
     * 智能运维下备份还原ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_BACKUP_ID = "decision-management-maintenance-backup";
    public static final int DEC_MANAGEMENT_MAINTENANCE_BACKUP_INDEX = 2;

    /**
     * 智能运维下智能检测ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_DETECT_ID = "decision-management-maintenance-detect";
    public static final int DEC_MANAGEMENT_MAINTENANCE_DETECT_INDEX = 5;

    /**
     * 智能运维下平台日志ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_LOG_ID = "decision-management-maintenance-log";
    public static final int DEC_MANAGEMENT_MAINTENANCE_LOG_INDEX = 3;

    /**
     * 智能运维下云端运维ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_OPERATIONS_ID = "decision-management-maintenance-cloud-operations";
    public static final int DEC_MANAGEMENT_MAINTENANCE_OPERATIONS_INDEX = 7;

    /**
     * 智能运维下资源迁移ID
     */
    public static final String DEC_MANAGEMENT_MAINTENANCE_TRANSFERENCE_ID = "decision-management-maintenance-transference";
    public static final int DEC_MANAGEMENT_MAINTENANCE_TRANSFERENCE_INDEX = 8;

    /**
     * 安全管理ID
     */
    public static final String DEC_MANAGEMENT_SECURITY_ID = "decision-management-security";
    public static final int DEC_MANAGEMENT_SECURITY_INDEX = 12;

    /**
     * 模板认证ID
     */
    public static final String DEC_MANAGEMENT_TEMPLATE_ID = "decision-management-template";
    public static final int DEC_MANAGEMENT_TEMPLATE_INDEX = 13;

    /**
     * 地图配置管理ID
     */
    public static final String DEC_MANAGEMENT_MAP_ID = "decision-management-map";
    public static final int DEC_MANAGEMENT_MAP_INDEX = 14;

    /**
     * 国际化KEY管理ID
     */
    public static final String DEC_MANAGEMENT_I18N_ID = "decision-management-i18n";
    public static final int DEC_MANAGEMENT_I18N_INDEX = 15;

    /******************************************** 权限类型 **************************************************/

    /**
     * 查看权限
     */
    public static final int VIEW_AUTHORITY_TYPE = 1;
    /**
     * 授权权限
     */
    public static final int AUTHORIZE_AUTHORITY_TYPE = 2;
    /**
     * 编辑权限
     */
    public static final int EDIT_AUTHORITY_TYPE = 3;
    /**
     * 数据连接管理权限
     */
    public static final int CONNECTION_MANAGEMENT_AUTHORITY_TYPE = 4;
    /**
     * 定时调度管理权限
     */
    public static final int SCHEDULE_MANAGEMENT_AUTHORITY_TYPE = 7;

    /******************************************** 自定义角色 **************************************************/

    public static final String SUPER_USER_CUSTOM_ROLE = "super-user-custom-role";

    /******************************************** 服务器数据集 ************************************************/

    public static final String SERVER_DATA_SET = "server-data-set";

    /**
     * 首页类型-平台首页根节点
     * 后加的,为了尽可能不冲突,随机写了个复杂值
     */
    public static final int ROOT_HOME_PAGE_TYPE = -133;
}

四、支持版本

产品线

版本

支持情况

备注

FR10.0支持
BI5.1支持
BI5.1.2支持
BI5.1.3支持

五、插件注册

plugin.xml
<extra-decision>
    <SystemOptionProvider class="your class name"/>
</extra-decision>

六、原理说明

该接口后台使用和前端使用是分离的,涉及的地方很多,就不一一解释。大家可简单的理解为,后台主要控制权限,前端主要申明管理页面即可。

七、特殊限制说明

前后端接口的id和pid(parentId)接口值必须一致,否则权限会出问题。

fullPath接口用于辅助后台做权限判断格式为 根节点-_-父节点 

后台的displayName和sortInde相对来说就没有什么用处了,因为前端展现的实际位置本质是可以通过前端直接控制的。

绝大部分场景中推荐不要单独实现后台的parentId和fullPath以及前端接口的pId,使用默认的即可。这样扩展出来的菜单就直接在根目录下。

如果一定要为其他功能扩展子节点,目前只有数据连接和智能运维是可以扩展的,其他功能菜单,虽然也可以申明扩展,但是会覆盖掉原来的功能触发事件,导致原来的功能页面展现不出来。

当然开发者也可以自己扩展一个独立的树形菜单出来。

该接口绝大部分时候不足为独立使用的接口,一般会配合前端资源接口数据库表扩展持久化接口服务接口国际化接口 等相关接口一起使用。

八、常用链接

demo地址:demo-system-option-provider

com.fr.web.struct.Atom


九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

demo-system-management

  • No labels