管控目标

应用构建客开需求如果通过系统配置不能满足,就需要编写脚本实现。编写的脚本主要有如下几种情形

1.查询当前用户的组织、部门

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
     //throw new Error(AppContext())
     let userId = JSON.parse(AppContext()).currentUser.id;
     var sysId="diwork";
     let tenantId = JSON.parse(AppContext()).currentUser.tenantId;
     var userids = [userId];
     var result = listOrgAndDeptByUserIds(sysId,tenantId,userids);
   return {result};
 }
}
exports({"entryPoint":MyAPIHandler});

//查询结果
{
"7f8d88ab-1bfa-4183-be47-28abbf803c0f":{
    "id":"1603446359739858947",
    "code":"000000000000000000001",
    "name":"姓名",
    "email":null,
    "mobile":"手机号",
    "orgId":"组织id",
    "orgCode":"组织编码",
    "orgName":"组织名称",
    "deptId":"部门id",
    "deptCode":"部门编码",
    "deptName":"部门名称"
}

2.查询当前用户的角色

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
      let userId = JSON.parse(AppContext()).currentUser.id;
      let tenantId = JSON.parse(AppContext()).currentUser.tenantId;
      let sql = "select *,role.* from sys.auth.UserRole where tenant='"+tenantId+"' and yhtUser='"+userId+"'";
      var res = ObjectStore.queryByYonQL(sql,'u8c-auth');

   return {res};
 }
}
exports({"entryPoint":MyAPIHandler});

//信息如下
{
    "role_pubts": "2022-11-29 15:25:59",
    "role_systemCode": "diwork",
    "role_subTenantId": "0",
    "role": "角色id",
    "role_editMode": 1,
    "endDate": "9999-12-31 00:00:00",
    "role_yhtTenant": "rybentc5",
    "modifier": "xxx",
    "role_authcache": "xxx",
    "role_id": "角色id",
    "role_roleName": "角色名称",
    "role_tenant": xx,
    "role_label": "common",
    "id": "3de1b098-f586-4552-bf34-ced83a4a526b",
    "pubts": "2022-11-29 15:26:42",
    "role_threeMemberType": 0,
    "tenant": "租户id",
    "creator": "创建人",
    "yhtUser": "用户友户通id",
    "role_sysRole": false,
    "role_code": "角色编码",
    "role_roleType": 1,
    "role_name": "alladmin",
    "beginDate": "2022-11-29 00:00:00",
    "role_orgId": "666666",
    "role_defaultRole": 0,
    "systemCode": "diwork",
    "role_orgName": "",
    "role_org": "666666",
    "role_hideRole": false,
    "yxyUserIdLong": "xx",
    "role_snowflakeId": "xx",
    "user": "xx"
}

3.查询用户角色的数据权限

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
      let userId = JSON.parse(AppContext()).currentUser.id;
      let tenantId = JSON.parse(AppContext()).currentUser.tenantId;
      //查询用户角色
      let userRoleSql = "select *,role.* from sys.auth.UserRole where tenant='"+tenantId+"' and yhtUser='"+userId+"'"
      //查询角色权限
      let roleAuthReferSql = "select * from sys.auth.RoleAuthRefer where role = 'xxx'"
      //查询管控维度 根据上一步结果中的authRefer字段
      let authReferSql = "select *,managerRefer.* from sys.auth.AuthRefer where id in ('xxx','xxx')";
      //查询权限规则 根据上一步结果中的authRefer字段
      let authReferRuleSql = "select * from sys.auth.AuthReferRule where authRefer in ('xxx','xxx')"
      var res = ObjectStore.queryByYonQL(authReferRuleSql,'u8c-auth'); 
   return {res};
 }
}
exports({"entryPoint":MyAPIHandler});

4.单据列表增加过滤条件

//op:'eq || neq || gt || lt  || egt || elt ||between ||like || in || nin || rightlike ||leftlike || is_null || is_not_null'
viewModel.on('beforeSearch',function(args){
    args.isExtend = true;
    args.params.condition.simpleVOs=[
      {
        "logicOp": "and",
        "conditions": [{
            "field": "wenben",
            "op": "eq",
            "value1": '1'
            },
            {
            "field": "riqi",
            "op": "eq",
            "value1": '2022-12-16'
        }]
      }
    ];
})

5.查询区参照增加过滤条件

viewModel.on('afterMount', function (data) {
    //获取查询区模型
    let filterViewModelInfo = viewModel.getCache('FilterViewModel');
    filterViewModelInfo.on('afterInit', function(data){
        //获取参照模型
        let filterReferModel = filterViewModelInfo.get('staffNew').getFromModel();
        var myFilter = {"isExtend": true,simpleVOs:[]};
        myFilter.simpleVOs.push({
            field: 'name',
            op: 'eq',
            value1: 'xxx'
        });
        //设置过滤条件
        filterReferModel.setFilter(myFilter);
    })
});

6.详情页表头参照增加过滤条件

viewModel.on('afterLoadData',function(args){
  var myFilter = {"isExtend": true,simpleVOs:[]};
  myFilter.simpleVOs.push({
      field: 'name',
      op: 'eq',
      value1: 'xxx'
  });
  viewModel.get('staffNew_name').setFilter(myFilter);
})

7.详情页表体参照增加过滤条件

viewModel.on('afterLoadData',function(args){
  if(viewModel.getParams().mode!='browse') {
    let editRowModel = viewModel.getGridModel().getEditRowModel();
    var myFilter = {"isExtend": true,simpleVOs:[]};
    myFilter.simpleVOs.push({
      field: 'name',
      op: 'eq',
      value1: 'xxx'
    });
    editRowModel.get('staffNew_name').setFilter(myFilter);
  }
})
Copyright © 用友 -【生态技术部】 2022-2023 all right reserved,powered by Gitbook修订时间: 2023-11-27 18:30:48

results matching ""

    No results matching ""