需求來源
原有創建人欄位,系統預制欄位,參照用戶,直接顯示創建人展示唯一標識,目前無法對創建人進行參照設定,導致無法在單據上顯示創建人名稱
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;
var username;
if("1"==resultJSON.status&&resultJSON.data!=null){
//根據當前用戶資訊去查詢員工表
var userData =https://www.cnblogs.com/xqz0618/p/ 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};
}else{ cb.utils.alert(res.exception); } }) }
5、放在頁面加載完畢事件中
viewModel.on("afterLoadData",function(){
})
6、賦值操作——在創建狀態下才更新制單人
var currentState = viewModel.getParams().mode;
//currentState 三種狀態 add edit browse(查看)
if(currentState =="add"){
//參照賦值兩個,一個是參照唯一標識,一個是參照顯示名稱
viewModel.get("staff").setValue({$userid})
viewModel.get("staff_name").setValue({$username})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/224898.html
標籤:JavaScript
上一篇:探索JS中的函式秘密
下一篇:繼承
