门户定制案例-组织及用户扩展

运行效果

组织和用户支持添加扩展表,如下图所示,组织增加“项目”列,用户增加“生日”列

图 6 图 7

实现方法

  1. 定制企业门户应用,参考《门户定制
  2. 增加“使用 uaa 扩展”环境变量
  3. 增加组织扩展表,人员扩展表
  4. 增加新的组织管理、组织详情页面,编辑组织扩展表数据
  5. 增加新的用户管理、用户详情页面,编辑用户扩展表数据
  6. 配置菜单
  7. 设置权限

切换到门户自定义组件端

在“高级”中,开启组件开发,如下图所示

图 26

在“端”列表中选择门户自定义组件,切换到门户自定义组件端,如下图所示

图 27

添加环境变量

在“门户自定义”组件中,添加环境变量 UAAX_ENABLED,表示使用 uaa 扩展,postOrgs 请求才会处理扩展数据 extend。添加环境变量参考《使用环境变量

在 /model/service/comp/portalConfig/deploy/dev.def.xml 文件和 production.def.xml 文件中,添加环境变量 UAAX_ENABLED,代码如下

<property name="UAAX_ENABLED" env="UAAX_ENABLED" value="true" readonly="true">
    <label label = "UAAX_ENABLED"/>
</property>

添加位置,如下图所示

图 28

特别说明

  • 如果使用本地 IDE,重新连接云端后,需要重新打开 Eclipse

添加扩展表

系统的组织表是 orgs,用户表是 users,用户表提供了3个扩展字段 extdata1、extdata2 和 extdata3。组织用户的扩展不是在原表的基础上增加列,而是增加扩展表。组织用户的扩展表,表名固定,主键名固定。组织扩展表名为 orgsx,用户扩展表名为 usersx,主键都是 id。

添加组织扩展表

在门户自定义组件端 comp/portalConfig,添加组织扩展表 orgsx,主键的列标识设置为 id,如下图所示

图 29

注意数据库表名必须填写,否则生成的数据表名会有前缀,如下图所示

图 30

添加用户扩展表

在门户自定义组件端 comp/portalConfig,添加用户扩展表 usersx,主键的列标识设置为 id,如下图所示

图 31

注意数据库表名必须填写,否则生成的数据表名会有前缀,如下图所示

图 32

设置扩展表在其他端可见

在 export.json 文件中声明的数据集,在其他端可见。在 model/service/comp/portalConfig 目录下添加 config 目录,在 config 目录下添加 export.json 文件,内容如下

[
    {
        "path":"comp/portalConfig/usersx.data.m",
        "editData":true,
        "editLabel":false
    },{
        "path":"comp/portalConfig/orgsx.data.m",
        "editData":true,
        "editLabel":false
    }
]

设置之后,重新加载 IDE 使之生效

扩展组织管理页面

原组织管理页面是 UI2/opm-pcx/org.w,组织详情页面是 UI2/opm-pcx/dialog/orgDetail.w

1721886462833

新建组织详情页面

切换到门户自定义组件端,在 portalConfig/components/portalConfig 目录上,点击 + 按钮,弹出新建对话框

1721886539445

文件类型和页面类型均选择页面,点击确定按钮,打开添加页面窗口

1721886575652

选择“页面继承”模板

1720430760677

在“父页面地址”中输入组织详情页面的完整路径。组件默认只能继承组件内部页面,因此继承外部页面,需要手工输入外部页面完整路径

1721886691149

输入页面名称和显示名称

1721886773670

组件中的页面统一放到 dialog 目录下,dialog 目录无需手工创建,系统会自动创建。新建的组织详情页面,就放到了 dialog 目录下,这个页面继承自原组织详情页面

1721886831484

在页面上,添加组织扩展表,id 设置为 orgsxData(系统已使用这个 id 实现获取扩展信息和校验方法),设置自动模式为自动加载无数据新增

1721887026782

设置过滤条件为:主键 等于(支持空字符串) 页面参数.组织ID

1721889297695

在表单中,添加列、表单项、输入框等组件,绑定组织扩展表中的列

1721887281595

原组织详情页面的 JS 中,已经提供了获取扩展信息方法 getOrgsxInfo,判断输入是否合法方法 checkOrgsxInputValid,代码如下,如需修改,可以重载这两个方法

    getOrgsxInfo = () => {
        let orgsxData = this.comp("orgsxData");
        if (orgsxData) {
            let row = orgsxData.current.toJson({ ui: true });
            delete row.id
            return row;
        } else {
            return undefined;
        }
    }

    //校验扩展信息是否合法
    checkOrgsxInputValid = () => {
        let orgsxData = this.comp("orgsxData");
        if (orgsxData && !orgsxData.valid()) {
            message.error(orgsxData.validInfo(true));
            return false;
        }
        return true;
    }

新建组织管理页面

新建“组织管理”页面,继承原组织管理页面,具体操作请参考新建组织详情页面。

选择“组织”数据组件,设置与组织扩展表的关联查询,查询扩展表中的列

1721889763012

在表格添加关联查询出的扩展表的列

1721889859272

修改抽屉组件的页面文件属性,改为新添加的组织详情页面

1721893279192

扩展用户管理页面

原用户管理页面是 UI2/opm-pcx/users.w,用户详情页面是 UI2/opm-pcx/dialog/psmDetail.w

新建用户详情页面

新建“用户详情”页面,继承原用户详情页面,具体操作请参考新建组织详情页面

添加用户扩展表,id 设置为 usersxData(系统已使用这个 id 实现获取扩展信息和校验方法),设置自动模式为自动加载无数据新增

1721891736779

设置过滤条件为:主键 等于(支持空字符串) 页面参数.人员ID

1721891793656

在表单中,添加列、表单项、输入框等组件,绑定用户扩展表中的列

1721892236012

原用户详情页面的 JS 中,已经提供了获取扩展信息方法 getUsersxInfo,判断输入是否合法方法 checkUsersxInputValid,代码如下,如需修改,可以重载这两个方法

    //获取组织扩展信息
    getUsersxInfo=()=>{
        let usersxData = this.comp("usersxData");
        if(usersxData){
            let row = usersxData.current.toJson({ ui: true });  
            delete row.id
            return row;
        }else{
            return undefined;
        }
    }

    //校验扩展信息是否合法
    checkUsersxInputValid=()=>{
        let usersxData = this.comp("usersxData");
        if(usersxData && !usersxData.valid()){   
            message.error(usersxData.validInfo(true));
            return false;  
        }
        return true;
    }

新建用户管理页面

新建“用户管理”页面,继承原用户管理页面,具体操作请参考新建组织详情页面。

选择“用户”数据组件,设置与用户扩展表的关联查询,查询出扩展表中的列

1721894053121

在表格中添加扩展表的列

1721894128896

修改抽屉组件的页面文件属性,改为新添加的用户详情页面

1721894167441

配置菜单

配置门户菜单,在运行时,使用“应用资源管理”,在调试时,使用修改 serviceMetaInfo 文件

配置开发调试时的菜单

由于企业门户应用,不支持 serviceMetaInfo 的散文件,门户调试时,又不支持使用应用资源管理,因此只能临时修改 serviceMetaInfo 文件。关于企业门户的服务元信息参考《服务元信息

serviceMetaInfo 中的配置内容可参考原用户管理及组织管理,在 /UI2/pc/config/serviceMetaInfo.json 和 /service/service-meta-info/serviceMetaInfo.json 两个文件中,配置组织管理和用户管理的菜单,配置如下:

{
    "ext": {
    },
    "types": [
        "pcx",
        "func"
    ],
    "title": "组织管理2",
    "url": "/entry/opm-pcxapp/comp/portalConfig/components/portalConfig/dialog/org.w"
},
{
    "ext": {
    },
    "types": [
        "pcx",
        "func"
    ],
    "title": "用户管理2",
    "url": "/entry/opm-pcxapp/comp/portalConfig/components/portalConfig/dialog/users.w"
}

修改 serviceMetaInfo 文件后,在“服务注册”中,刷新企业门户,以获得新的菜单

配置正式运行时的菜单

在“应用资源管理”中,添加组织管理、用户管理菜单,如下图所示

1721963618554

1721963647868

如果设置了“功能树配置”,则在“功能树配置”中也添加上面的2个菜单

17219637242791721963724279

配置权限

由于扩展的页面组织用户页面与原功能页面使用的url、相关标识及权限设置等不一致,因此权限需要重新设置,以“组织管理”页面权限设置为例(实际权限需要按照业务要求设置)如下:

页面发布完成后,先到“系统管理-->权限管理-->应用资源管理”下服务选择“entry”

图 17

点击“添加”,新增“子管理员(subadmin)”角色权限,选择你定制的页面菜单,确定保存

图 19

图 21

权限设置成功后,还需要点击“保存并且发布”按钮,完成发布设置权限才会

图 20

results matching ""

    No results matching ""