用于在新建/編輯頁,當發(fā)生變更時進行數(shù)據(jù)更新/校驗并反填回界面
配置方式:在對象管理的布局中,右側(cè)全局設(shè)置中找到UI事件
注:1、從對象不支持觸發(fā)UI事件
2、 UI事件的執(zhí)行結(jié)果只作用在新建/編輯頁,實際生效以是否保存為準
3、自定義對象全部支持UI事件,預置對象部分支持(銷售線索、客戶、訂單/訂單產(chǎn)品、商機2.0/商機2.0明細)
4、只有旗艦版和集團版支持該能力
數(shù)據(jù)更新事件
1、在新建/編輯頁,當某一字段修改(值改變且失焦)時,觸發(fā)自定義函數(shù)來更新主對象或從對象的數(shù)據(jù)
實際場景:新建訂單,當選擇客戶后,能夠直接將客戶的地址同步到到訂單的送貨地址字段上
配置方式:UI事件 — 添加數(shù)據(jù)更新事件 — 分類選擇字段事件
函數(shù)編寫模板:
//新建UIEvent事件 UIEvent event = UIEvent.build(context) { //主對象修改數(shù)據(jù) editMaster(a: 1, b: 2) //添加一條從對象,添加從對象,必須指定業(yè)務(wù)類型,而且是當前布局展示的業(yè)務(wù)類型 //如果業(yè)務(wù)類型不匹配.從對象無法添加 addDetail "detailApiName" set(a: 1, b: 2) //根據(jù)條件刪除 從對象, 刪除為where中返回為true的從對象 removeDetail "detailApiName" where { x -> (x["a"] as Integer) > 0 } //根據(jù)條件編輯從對象 和上同理只會處理where 中返回為true的從對象數(shù)據(jù) editDetail "detailApiName" set(a: 1, b: 2) where { x -> (x["a"] as Integer) > 0 } //removeDetail和editDetail 都可以不添加where這樣會直接作用于所有數(shù)據(jù) //set的內(nèi)容和editMaster的內(nèi)容要保證是map也就是key:valued的形式 removeDetail "detailApiName" editDetail "detailApiName" set(a: 1, b: 2) } return event
2、在主從同時新建/編輯頁,當新建/編輯/刪除從對象時,觸發(fā)自定義函數(shù)來更新主對象/從對象的數(shù)據(jù)(前提是該對象存在從對象,才會有從對象事件入口)
實際場景:每新增一條訂單產(chǎn)品明細,根據(jù)客戶的級別為該產(chǎn)品明細的優(yōu)惠額度字段賦值
配置方式:UI事件 — 添加數(shù)據(jù)更新事件 — 分類選擇從對象事件,觸發(fā)條件可選新增明細/編輯明細/刪除明細
函數(shù)編寫模板:
UIEvent event = UIEvent.build(context) { //主對象、從對象數(shù)據(jù)修改,詳見上 } //獲取當前操作的從對象數(shù)據(jù) Map currentData = event.getCurrentDetail() //修改當前操作的從對象數(shù)據(jù)(主要用于新建明細和編輯明細的場景下) currentData.put("從對象字段的ApiName","該字段需要變更的值為") currentData.put("從對象字段1的ApiName","該字段1需要變更的值為") return event
3、返回錯誤信息到頁面示例:
Fx.message.throwErrorMessage("錯誤信息") return null
校驗事件:
在新建/編輯頁,當某一字段修改(值改變且失焦)時,觸發(fā)自定義函數(shù)驗證該字段值是否符合特定條件
實際場景:在填寫手機號/郵箱格式錯誤時,能夠立即給到前端提示
配置方式:UI事件 — 添加校驗事件
函數(shù)編寫模板:
//紅字提醒 Remind remind = Remind.Text("Text") //彈窗提醒 Remind remind = Remind.Alert("Text") return remind