需求来源
原有创建人字段,系统预制字段,参照用户,直接显示创建人展示唯一标识,目前无法对创建人进行参照设置,导致无法在单据上显示创建人名称
yonsuite系统 含有 用户档案和 员工档案,目前数据建模的参照支持对员工档案进行参照,无法对用户进行参照,所以我们需要根据当前用户去查询对应的员工档案,取到对应的员工档案信息,作为制单人信息。要保证员工档案中的手机号码与用户登录使用手机号码保持一致
步骤
1、实体中添加一个参照字段(注意这里是参照 staffNew)
2、在页面设计器卡片页面添加当前新增字段
⭐为了防止原有表单的内容丢失,建议在页面中新建一个表单,进行字段设置,添加制单人,再将制单人字段移动到原表单中。再删除新建的表单
⭐对制单人字段进行参照设置
3、添加一个获取用户信息的通用函数
⭐保证当前登录用户在员工档案中存在
let AbstractAPIHandler = require('AbstractAPIHandler');
class MyAPIHandler extends AbstractAPIHandler {
execute(request){
var currentUser = JSON.parse(AppContext()).currentUser;
var sysId="diwork";
var tenantId = currentUser.tenantId;
var userids = [currentUser.id];
var result = listOrgAndDeptByUserIds(sysId,tenantId,userids);
var resultJSON = JSON.parse(result);
var userid;
username;
if(1"==resultJSON.status&&resultJSON.data!=null){
//根据当前用户信息去查询员工表
var userData = resultJSON.data;
业务系统员工id
userid = userData[currentUser.id].id;
username = userData[currentUser.id].name;
}else{
throw new Error(获取员工信息异常);
}
return {userid:userid,username:username};
}
}
exports({entryPoint":MyAPIHandler});
4、在页面初始化中对制单人设置初始值
function getMakeUser(){
d9117e2959004ebaa0194e5307e12890
cb.rest.invokeFunction(d9117e2959004ebaa0194e5307e12890,{},function(err,res) {
if(res.exception==undefined){
console.log(获取当前登录人)
console.log(res)
//{userid:userid,username:username};
}{ cb.utils.alert(res.exception); } }) }