需求来源
原有创建人字段,系统预制字段,参照用户,直接显示创建人展示唯一标识,目前无法对创建人进行参照设置,导致无法在单据上显示创建人名称
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); } }) }
5、放在页面加载完毕事件中
viewmodel.on(afterLoadData
6、赋值操作——在创建状态下才更新制单人
var currentState = viewmodel.getParams().mode;
currentState 三种状态 add edit browse(查看)
if(currentState ==add){
参照赋值两个,一个是参照唯一标识,一个是参照显示名称
viewmodel.get(staff).setValue({$userid})
viewmodel.staff_name).setValue({$username})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。