微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

yonsuite开发文档——添加制单人

需求来源

原有创建人字段,系统预制字段,参照用户,直接显示创建人展示唯一标识,目前无法对创建人进行参照设置,导致无法在单据上显示创建人名称

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 举报,一经查实,本站将立刻删除。

相关推荐