本發(fā)明涉及前端配置,具體涉及聲明式的控件配置方法、裝置、計算機設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、當前web端個性化、定制化需求越來越多,傳統(tǒng)一次編碼決定頁面內(nèi)容,在面對客戶多元需求時候就會很被動。為了能在產(chǎn)品交付后,通過簡單的配置修改或是頁面上的簡單操作,就能改變頁面內(nèi)容,當前比較主流的做法是使用解釋器+聲明式配置來開發(fā)頁面。而表單作為前后臺數(shù)據(jù)交互的重要途徑,以及絕大多數(shù)用戶定制需求的重要來源,應(yīng)用于表單的解釋器+聲明式配置的方案就顯得尤為重要。
2、目前,表單的聲明式配置是基于具體功能逐一進行擴展設(shè)計,但這種方式主要用于配置表單的屬性,難以實現(xiàn)復(fù)雜的動態(tài)表單,例如難以實現(xiàn)復(fù)雜規(guī)則下的表單聯(lián)動。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明提供了一種聲明式的控件配置方法、裝置、計算機設(shè)備及存儲介質(zhì),以能夠利用聲明式配置生成動態(tài)表單。
2、第一方面,本發(fā)明提供了一種聲明式的控件配置方法,包括:
3、按照預(yù)先定義的事件結(jié)構(gòu)體,為目標控件配置相應(yīng)的目標事件結(jié)構(gòu)體;所述事件結(jié)構(gòu)體用于配置與操作事件相對應(yīng)的動作;
4、按照預(yù)先定義的視圖結(jié)構(gòu)體,為所述目標控件配置相應(yīng)的目標視圖結(jié)構(gòu)體;所述視圖結(jié)構(gòu)體用于配置控件視圖的屬性;
5、響應(yīng)于所述目標控件的目標操作事件,根據(jù)所述目標事件結(jié)構(gòu)體確定與所述目標操作事件相對應(yīng)的目標動作;
6、根據(jù)所述目標動作修改所述目標視圖結(jié)構(gòu)體中的屬性,和/或,修改其他控件的視圖結(jié)構(gòu)體中的屬性;
7、利用解釋器對修改后的控件進行解析,并展示。
8、在一些可選的實施方式中,所述事件結(jié)構(gòu)體包括多個預(yù)先定義的內(nèi)置事件對象;每個所述內(nèi)置事件對象對應(yīng)不同的操作事件;
9、所述內(nèi)置事件對象用于配置與操作事件相對應(yīng)的動作,以及執(zhí)行所述動作的觸發(fā)條件;
10、所述根據(jù)所述目標事件結(jié)構(gòu)體確定與所述目標操作事件相對應(yīng)的目標動作,包括:
11、確定所述目標事件結(jié)構(gòu)體中,與所述目標操作事件相對應(yīng)的目標內(nèi)置事件對象;
12、根據(jù)所述目標內(nèi)置事件對象中匹配的觸發(fā)條件,確定相對應(yīng)的目標動作。
13、在一些可選的實施方式中,所述內(nèi)置事件對象為二維數(shù)組結(jié)構(gòu);
14、所述內(nèi)置事件對象的第一維對應(yīng)于內(nèi)層事件數(shù)組,所述內(nèi)置事件對象的第二維對應(yīng)于所述內(nèi)層事件數(shù)組中的內(nèi)層事件元素;所述內(nèi)層事件數(shù)組包括至少一個互斥的內(nèi)層事件元素,且所述內(nèi)層事件元素包括表示所述觸發(fā)條件的條件項和相對應(yīng)的動作項;
15、所述根據(jù)所述目標內(nèi)置事件對象中匹配的觸發(fā)條件,確定相對應(yīng)的目標動作,包括:
16、對所述目標內(nèi)置事件對象第一維的各個目標內(nèi)層事件數(shù)組依次執(zhí)行第一匹配處理,直至遍歷所述目標內(nèi)置事件對象中的目標內(nèi)層事件數(shù)組;
17、所述第一匹配處理包括:
18、判斷當前狀態(tài)與所述目標內(nèi)層事件數(shù)組中內(nèi)層事件元素的觸發(fā)條件是否相匹配;
19、將與所述當前狀態(tài)相匹配的觸發(fā)條件所對應(yīng)的動作項,作為需要執(zhí)行的目標動作項。
20、在一些可選的實施方式中,所述觸發(fā)條件為二維數(shù)組結(jié)構(gòu);
21、所述觸發(fā)條件的第一維對應(yīng)于執(zhí)行邏輯與的內(nèi)層條件數(shù)組,所述觸發(fā)條件的第二維對應(yīng)于所述內(nèi)層條件數(shù)組中執(zhí)行邏輯或的內(nèi)層條件元素;所述內(nèi)層條件數(shù)組包括至少一個內(nèi)層條件元素,且所述內(nèi)層條件元素用于表示判定規(guī)則;
22、所述判斷當前狀態(tài)與所述目標內(nèi)層事件數(shù)組中內(nèi)層事件元素的觸發(fā)條件是否相匹配,包括:
23、對于所述目標內(nèi)層事件數(shù)組中內(nèi)層事件元素的任意待定觸發(fā)條件,對所述待定觸發(fā)條件第一維的各個目標內(nèi)層條件數(shù)組均執(zhí)行第二匹配處理,以確定所述當前狀態(tài)與所述目標內(nèi)層條件數(shù)組是否相匹配;
24、在所述當前狀態(tài)與各個所述目標內(nèi)層條件數(shù)組均匹配的情況下,確定所述當前狀態(tài)與所述待定觸發(fā)條件相匹配;
25、其中,所述第二匹配處理包括:
26、判斷所述當前狀態(tài)是否與所述目標內(nèi)層條件數(shù)組中至少一個內(nèi)層條件元素表示的判定規(guī)則相匹配;
27、在所述當前狀態(tài)與所述目標內(nèi)層條件數(shù)組中至少一個內(nèi)層條件元素表示的判定規(guī)則相匹配的情況下,確定所述當前狀態(tài)與所述目標內(nèi)層條件數(shù)組相匹配。
28、在一些可選的實施方式中,所述事件結(jié)構(gòu)體還包括初始化事件對象和/或自定義事件對象;
29、所述初始化事件對象用于配置初始化控件時需要執(zhí)行的動作;所述自定義事件對象用于配置用戶自定義的動作;
30、所述根據(jù)所述目標事件結(jié)構(gòu)體確定與所述目標操作事件相對應(yīng)的目標動作,還包括:
31、在初始化所述目標控件時,確定所述目標事件結(jié)構(gòu)體中相應(yīng)的目標初始化事件對象,并根據(jù)所述目標初始化事件對象中配置的動作確定相應(yīng)的目標動作;
32、在所述目標操作事件為用戶自定義操作的情況下,確定所述目標事件結(jié)構(gòu)體中,與所述目標操作事件相對應(yīng)的目標自定義事件對象,并根據(jù)所述目標自定義事件對象中配置的動作確定相應(yīng)的目標動作。
33、在一些可選的實施方式中,所述事件結(jié)構(gòu)體中配置的動作,包括:動作類型、動作值和指向的控件;
34、所述動作類型包括事件類型和配置類型;在所述動作類型為事件類型的情況下,所述動作值包括待執(zhí)行的事件名稱;在所述動作類型為配置類型的情況下,所述動作值包括待配置的值;
35、所述根據(jù)所述目標動作修改所述目標視圖結(jié)構(gòu)體中的屬性,和/或,修改其他控件的視圖結(jié)構(gòu)體中的屬性,包括:
36、將所述目標動作指向的控件作為待操作控件;所述待操作控件包括所述目標控件和/或其它控件;
37、在所述目標動作的動作類型為事件類型的情況下,確定與所述目標動作的動作值所包含的事件名稱相對應(yīng)的待執(zhí)行操作事件,并根據(jù)所述待執(zhí)行操作事件控制所述待操作控件執(zhí)行相應(yīng)的動作;
38、在所述目標動作的動作類型為配置類型的情況下,為所述待操作控件配置所述目標動作的動作值所包含的待配置的值。
39、在一些可選的實施方式中,所述為目標控件配置相應(yīng)的目標事件結(jié)構(gòu)體,包括:
40、按照預(yù)設(shè)的取值模板,為所述目標事件結(jié)構(gòu)體設(shè)置相應(yīng)的選項值;所述取值模板包括取值類型和取值路徑。
41、第二方面,本發(fā)明提供了一種聲明式的控件配置裝置,包括:
42、配置模塊,用于按照預(yù)先定義的事件結(jié)構(gòu)體,為目標控件配置相應(yīng)的目標事件結(jié)構(gòu)體;所述事件結(jié)構(gòu)體用于配置與操作事件相對應(yīng)的動作;按照預(yù)先定義的視圖結(jié)構(gòu)體,為所述目標控件配置相應(yīng)的目標視圖結(jié)構(gòu)體;所述視圖結(jié)構(gòu)體用于配置控件視圖的屬性;
43、事件響應(yīng)模塊,用于響應(yīng)于所述目標控件的目標操作事件,根據(jù)所述目標事件結(jié)構(gòu)體確定與所述目標操作事件相對應(yīng)的目標動作;
44、屬性修改模塊,用于根據(jù)所述目標動作修改所述目標視圖結(jié)構(gòu)體中的屬性,和/或,修改其他控件的視圖結(jié)構(gòu)體中的屬性;
45、解析展示模塊,用于利用解釋器對修改后的控件進行解析,并展示。
46、第三方面,本發(fā)明提供了一種計算機設(shè)備,包括:存儲器和處理器,存儲器和處理器之間互相通信連接,存儲器中存儲有計算機指令,處理器通過執(zhí)行計算機指令,從而執(zhí)行上述第一方面或其對應(yīng)的任一實施方式的聲明式的控件配置方法。
47、第四方面,本發(fā)明提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)上存儲有計算機指令,計算機指令用于使計算機執(zhí)行上述第一方面或其對應(yīng)的任一實施方式的聲明式的控件配置方法。
48、本發(fā)明將控件的配置抽象為視圖結(jié)構(gòu)體和事件結(jié)構(gòu)體,對配置進行了簡單的抽象,不僅能夠區(qū)分控件已有的配置,還能夠分離控件的表現(xiàn)和控制,將控件的復(fù)雜聯(lián)動等控制統(tǒng)一抽象為通過操作事件修改控件的表現(xiàn),能夠?qū)崿F(xiàn)動態(tài)表單等功能;開發(fā)人員可以更靈活地配置控件的表現(xiàn)和控制,符合開發(fā)直覺,能夠覆蓋較多的應(yīng)用場景;并且,結(jié)構(gòu)體也具有較好的可擴展性,適合頁面編排等業(yè)務(wù)場景使用。此外,只需要基于視圖結(jié)構(gòu)體和事件結(jié)構(gòu)體進行配置即可,不涉及函數(shù)表達式,從而不需要代碼注入,能夠保證安全性。