TreeviewCopyright © aleen42 all right reserved, powered by aleen42
管控目标
应用构建客开需求如果通过系统配置不能满足,就需要编写脚本实现。编写的脚本主要有如下几种情形
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);
}
})