yonsuite開發文檔——顯示創建人名稱、修改人名稱


需求來源

原有創建人字段,系統預制字段,參照用戶,直接顯示創建人展示唯一標識,目前無法對創建人進行參照設置,導致無法在單據上顯示創建人名稱

 

解決方法一

yonsuite系統參照字段可以通過 yonSql 關聯出來。用戶本身是一個參照,可以通過 creator.{$字段名}  的方式把創建人名顯示出來

方法缺陷:在新增時無法在頁面上顯示對應創建人名稱,只能作為列表字段顯示,並且無法設置相應查詢條件

⭐如何查看creator 可以顯示的字段名?

{"tenantId":"nxnqfn65","resCode":"diwork","userName":"趙偉","userMobile":"13595014523","userEmail":"wei.zhao@zoetis.com","userType":1,"orgName":"上海有限公司","deptName":"寵物大客戶test","other":"趙偉","empName":"趙偉","remarkName":"趙偉","userTypeName":"普通員工","identityId":1932939748839680,"userId":"2f7eac40-229e-441c-b5da-863bf9945811","stopStatus":0},{"tenantId":"nxnqfn65","resCode":"diwork","userName":"葉愷盈","userMobile":"8526079612","userEmail":"kaiying.ye@zoetis.com","userType":1,"orgName":"上海通欽信息科技有限公司","deptName":"寵物大客戶香港test","other":"葉愷盈","empName":"葉愷盈","remarkName":"葉愷盈","userTypeName":"普通員工","identityId":1932957378171136,"userId":"1119c7f0-90c1-476a-a136-2ced828f59e8","stopStatus":0}

 

 

 步驟

1、在實體中隨意添加一個文本字段

 

 

2、頁面設計器中表格添加字段 

 點擊表格——> 右邊屬性:字段設置添加新加字段

3、修改字段名稱和字段別名

⭐創建人

 "cItemName": "creator.userName",
  "cName": "creator.userName",
  "cFieldName": "creator.userName",

⭐修改人

  "cName": "modifier_userName",
  "cItemName": "modifier_userName",
  "cFieldName": "modifier.userName",

 

解決方法二

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 = 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}) }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM