<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      spritekuang

      導航

      企業級自定義表單引擎解決方案(十二)--表單規則引擎2

      .net core研發的自定義表單引擎,采用強大的規則引擎將所有的業務串聯起來的,和其他低代碼平臺是有本質的區別的,目標是完全解放繁瑣的CRUD工作。


      規則引擎是自定義表單最為核心的內容,也是與其他低代碼工具最為本質的區別,非常重要的內容,對于讀者來說也是最難理解內容。
      沒有規則引擎的低代碼工具,即使前端做得再花哨,也僅僅是解決了一些復制粘貼的問題
      視圖和表單都可以定義規則,規則將所有業務串聯起來,至關重要。
      接上一篇文章,企業級自定義表單引擎解決方案(十二)--表單規則引擎1

      規則執行管理

      1. 綁定數據(actionType=3)
        綁定數據主要是定義數據從一個地方綁定到另一個地方,一個綁定數據規則可以定義執行多條綁定邏輯
        綁定數據由兩個參數:fromTrans:定義綁定數據來源,fromTransType:值為1,2,3,4,1代表綁定數據源為方法執行結果,2代表綁定數據源從其他控件獲取,3代表綁定數據源從觸發事件綁定的數據獲取,4代表從表達式獲取值,toTrans:定義將數據綁定到哪里

      例1:

      配置:[{"fromTrans":{"methodRuleId":1,"fromTransType":1},"toTrans":{"subFormId":"084beddb-c518-46df-8647-de73739c3631","subViewId":"d2b0b615-4678-462d-a795-34bb3b46f75e"}}]
      說明:此配置用在ListView列表視圖,點擊列表編輯按鈕觸發的事件的其中一個規則執行,前面還有設置彈出框顯示規則執行和執行后端get方法,此規則定義從get方法獲取結果賦值給子表單XX子視圖XX,即將Get方法結果賦值給編輯表單的ItemView編輯視圖,ItemView編輯視圖即可綁定表單數據。

      例2:

      配置:[{"fromTrans":{"propertyName":"id","fromTransType":3},"toTrans":{"subFormId":"af1756bb-da48-4b5f-821d-78aeeaddbd2e","subViewId":"b022e1c3-ea6f-4f59-b2ef-67efec2701e0","propertyName":"oTN1_Id","type":"setparam"}}]
      說明:此配置用于一對多對主表數據進行編輯,將編輯主表時主表Id傳遞給子表的列表表單ListView視圖的參數,參數名為oTN1_Id

      例3:

      配置:[{"fromTrans":{"fromTransType":2,"transType":"getparam","propertyName":"oTN1_Id"},"toTrans":{"subFormId":"084beddb-c518-46df-8647-de73739c3631","subViewId":"d2b0b615-4678-462d-a795-34bb3b46f75e","propertyName":"oTN1_Id"}}]
      說明:此配置用于一對多對主表數據進行編輯,編輯時可以新增子表數據,新增或者編輯子表數據規則自動將主表的Id賦值給子表的oTN1_Id,大致邏輯: 打開主表編輯對話框,將主表Id賦值給子表表單的ListView視圖的參數,新增子表時,將ListView參數oTN1_Id的值賦值給子表編輯表單的ItemView視圖的oTN1_Id字段

      例4:

      配置:[{"fromTrans":{"fromTransType":3},"toTrans":{"subViewId":"e79df39e-d855-4a86-880d-046f60a9e2e8","propertyName":"reset"}}]
      說明:彈出新增數據對話框,重置子視圖ItemView的值

      例5:

      配置:[{"fromTrans":{"fromTransType":4,"expressionType":0,"config":"新增"},"toTrans":{"subFormId":"bbb537c4-078e-4694-882a-b7677057b198","subViewId":"cea92081-7f3b-420d-a5c2-48912a4435ec","propertyName":"state"}}]
      說明:例子功能為將子表單的編輯子視圖的狀態字段賦值為新增

      1. 停止執行(actionType=5)
        停止配置為空,當執行到停止執行Action時,結束事件后續規則執行,直接中斷事件
      2. 執行其他規則(actionType=7)
        觸發其他事件,執行到此規則時,先觸發新的事件,執行新的事件的一系列規則,再接著執行后續本事件的規則
        例:

      配置:{"eventName":"click"}
      對象:查詢按鈕Id
      說明:此配置用于ListView列表視圖,當執行到此規則時,觸發查詢按鈕的click事件,先執行查詢按鈕的click事件配置的規則,再執行后續規則

      1. 彈出消息提示(actionType=14)
        彈出消息提示,提示錯誤、警告、提示等消息,參見ant消息提示
        例:

      配置:{"content":"數據保存成功","msgType":"success"}
      說明:此配置用于ItemView編輯視圖保存方法執行成功好提示用戶

      1. 條件判斷(actionType=4)
        定義一個表達式,和一個trueActions集合和falseActions集合,表達式執行結果為true時,執行trueActions的規則集合,表達式結果為false時,執行falseActions的規則集合,執行完成之后,再接著執行條件判斷規則后續規則。
        表達式定義如下:
      • expressionType:定義表達式類型
      • config:定義表達式配置
      • expressionType為同值具體說明:

      值為0:固定值,定義一個常量,比如true,1,'aa'等
      值為1:值從方法執行結果獲取,config配置:methodRuleId定義方法ruleId,propertyName定義從方法結果哪個屬性獲取值,多層級用冒號:隔開。
      值為2:從對象獲取值,可以從不同的表單、視圖、控件獲取特定的值,不同的對象定義的可獲取值不同。config配置對象信息以及額外的參數
      值為3:從事件綁定的數據獲取,config的propertyName定義從事件對象的(觸發事件時,會將特定事件的關聯數據綁定到事件對象中,比如點擊列表視圖某行的編輯按鈕,會將當前行的數據綁定的事件對象中)哪個屬性獲取值,多層級用冒號:隔開
      值為4:定義轉換函數,將數據從一種類型轉換為另外一種類型。config的配置:expressionFuncName,轉換的目標類型,bool、string、date、number,后續還可以擴展其他特定轉換函數,children,子表達式集合,轉換函數只有一個子表達式
      值為5:定義關系表達式,執行結果為true或者false,config的配置:expressionFuncName,關系運算符,=、!=、>、>=、<、<=。children,子表達式集合,轉換函數只有兩個子表達式,第一個子表達式定義關系運算左邊的值,第二個表達式結果定義關系表達式右邊的值。
      值為6:定義邏輯表達式,執行結果為true或者false,config的配置:expressionFuncName,邏輯運算符&&、||、!,&&和||可定義多可children,多個children的結果執行&&或者||運算,!只能定義一個children
      值為7:集合相關函數計算,config的配置:expressionFuncName,length獲取集合數量,后續可定義其他函數,children子表達式集合只有一個

      1. 彈出確認提示(actionType=6)
        同條件判斷規則,只是這里彈出用戶確認對話框,提示用戶選擇是否確認,再定義trueActions和falseActions規則集合
        例:

      配置:{"content":"是否確認刪除?","trueActions":[{"actionType":2,"actionConfig":{"aplicationCode":"Default","isTransaction":true,"methods":[{"ruleId":1,"objectName":"Depts","methodId":"Delete","transfors":[{"paramName":"paramValues","transfors":[{"parentParamName":"paramValues","paramName":"id","transType":"eventData","transTypeParam":"id"}]}]}]}},{"actionType":7,"objId":"fd616db9-52f1-4f40-84f6-6a5c6016753d","actionConfig":{"eventName":"click"}}],"falseActions":[{"actionType":5}]}
      說明:彈出是否確認刪除提示,用戶選擇是,則執行刪除方法,然后觸發查詢按鈕點擊事件,執行查詢按鈕點擊事件規則,用戶選擇否,則停止執行

      1. 重新加載頁面(actionType=8)
        重新加載頁面會銷毀前端所有組件,重新渲染界面,即重新載入vue頁面,相當于第一次打開某個頁面。常常綁定到列表頁面的“刷新”按鈕上。
      2. 執行導出Excel方法(actionType=9)
        同【執行方法(actionType=2)】方法參數,導出Excel通常執行ListWhere后端默認方法,另外會額外傳遞Excel模版信息參數,模版配置定義在ListView的屬性設置中,exportexcel。
        例:

      配置:{"aplicationCode":"Default","isTransaction":true,"methods":[{"ruleId":1,"objectName":"TemplateTests","methodId":"ListWhere","transfors":[{"transType":"exportexcel"}]}]}
      實際請求:{"routeName":"SingleTemplateTest","applicationCode":"Default","isTransaction":true,"methods":[{"methodId":"ListWhere","ruleId":1,"objectName":"TemplateTests","paramModel":"local","datas":{"sqlWheres":{"sqlExpressType":1,"children":[]},"excelDicts":[{"dict":"edu","field":"education"},{"dict":"sex","field":"sex"},{"dict":"post","field":"post"}],"excelName":"單表測試Excel數據","excelTemplate":[{"name":"string字段","field":"field1","fieldType":5,"isRequred":true,"validateType":0},{"name":"string2字段","field":"field2","fieldType":5,"validateType":0},{"name":"Int字段1","field":"fieldInt1","fieldType":1,"validateType":1},{"name":"int2字段","field":"fieldInt2","fieldType":1,"validateType":1},{"name":"datetime字段1","field":"fieldDatetime1","fieldType":7,"validateType":10},{"name":"datetime字段2","field":"fieldDatetime2","fieldType":7,"validateType":10},{"name":"bool字段","field":"fieldBool1","fieldType":4,"validateType":1},{"name":"學歷","field":"education","fieldType":5,"validateType":11},{"name":"性別","field":"sex","fieldType":5,"validateType":11}]}}]}

      1. 執行導出Excel模版方法(actionType=13)
        同【執行導出Excel方法(actionType=9)】方法,只是這里的transType值為downexceltemplate
        例:

      配置:{"aplicationCode":"Default","isTransaction":true,"methods":[{"ruleId":1,"objectName":"TemplateTests","methodId":"ListWhere","transfors":[{"transType":"downexceltemplate"}]}]}

      1. 獲取數據(actionType=12)
        一般情況用在條件表達式規則執行的地方,另外可以用于流程引擎執行表單驗證方法(不是需要獲取值,只是觸發表單驗證)
        例:

      配置:{"fromTransType":2,"fromTrans":{"transType":"validate"}}

      1. 打開工作流(actionType=10)
        從表單處,有兩種方式打開工作流,一種是發起流程,一種是查詢流程,打開流程管理對話框
        例1:

      配置:{"isCreate":true,"flowDefineId":"5da7e6b8d6b444c9866b15ab028dd6c6"}
      說明:發起流程,isCreate標識為創建流程,flowDefineId為流程定義Id,發起時,找流程定義最新發布的流程版本發起流程實例
      例2:
      配置:{"formIdFieldName":"id"}
      說明:以表單Id打開流程管理界面,流程都會掛載一個表單,傳遞表單Id可以找到流程實例,然后打開流程管理界面。

      1. 獲取后端方法執行(actionType=11)
        此規則同【執行方法(actionType=2)】,這里只是獲取執行方法的參數,不正真的觸發后端方法執行,真正的執行在其他地方控制執行。目前只用在流程引擎提交或者保存時,流程引擎需要同時保存表單方法和流程數據,在流程引擎執行時調用自定義表單方法。
        例:

      配置:{"aplicationCode":"Default","isTransaction":true,"methods":[{"ruleId":1,"objectName":"Vacation","methodId":"CreateOrUpdate","paramModel":"local","execType":"workflow_formId","transfors":[{"paramName":"paramValues","transType":""}]},{"ruleId":2,"objectName":"Vacation","methodId":"Fact","paramModel":"server","execType":"workflow_fact","serverParams":[{"ruleId":"1","targetFields":"datas:paramValues:id"}]}]}


      wike文檔地址:https://gitee.com/kuangqifu/sprite/wikis/pages
      開源地址:https://gitee.com/kuangqifu/sprite
      體驗地址:http://47.108.141.193:8031 (首次加載可能有點慢,用的阿里云最差的服務器)
      自定義表單文章地址:http://www.rzrgm.cn/spritekuang/
      流程引擎文章地址:http://www.rzrgm.cn/spritekuang/category/834975.html (采用WWF開發,已過時,已改用Elsa實現,http://www.rzrgm.cn/spritekuang/p/14970992.html

      posted on 2022-07-03 17:41  spritekuang  閱讀(641)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲乱妇熟女爽到高潮的片| 久久国内精品一国内精品| 中文字幕在线国产精品| 狠狠躁夜夜躁人人爽天天5| 色狠狠色噜噜AV一区| 国产最大成人亚洲精品| 成人网站免费观看永久视频下载| 熟妇人妻av无码一区二区三区| 久久99精品久久久久久青青 | 亚洲午夜理论无码电影| 亚洲熟女乱色综合一区| 长丰县| 99久久无色码中文字幕| 亚洲老女人区一区二视频| 久久AV中文综合一区二区| 国产精品日韩中文字幕| 国产精品无码免费播放| 成人无码视频97免费| 穆棱市| 国产一二三四区中| 亚洲天堂精品一区二区| 色午夜一av男人的天堂| 国产欧美日韩亚洲一区二区三区| 国产在线中文字幕精品| 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品伦人视频免费看| 亚洲午夜精品毛片成人播放| 国产成人无码性教育视频| 国产精品成人午夜久久| 粉嫩一区二区三区国产精品 | 日本视频高清一区二区三区| 婷婷色综合视频在线观看| 亚洲狠狠狠一区二区三区| www插插插无码免费视频网站| 亚洲人成人网站色www| 亚洲和欧洲一码二码三码| 无码人妻一区二区三区在线视频| av午夜福利一片免费看久久| 久久热精品视频在线视频| 久久五月丁香激情综合| 丹阳市|