訂閱
糾錯(cuò)
加入自媒體

DevOps項(xiàng)目中動(dòng)態(tài)表單的發(fā)展史

2021-01-19 11:17
EAWorld
關(guān)注

三、動(dòng)態(tài)表單進(jìn)階

為了簡(jiǎn)化用戶操作,我們使用了可拖拽的頁(yè)面配置形式,用戶可以拖拽需要的控件或布局器到區(qū)域進(jìn)行表單布局設(shè)計(jì),還提供了可以手動(dòng)配置每一個(gè)控件或布局器的屬性、數(shù)據(jù)源、樣式、事件(支持簡(jiǎn)單代碼輸入)功能。

布局方面我們支持用戶以布局器(網(wǎng)格式)布局、標(biāo)簽頁(yè)、折疊快、分割線四種形式,利用它們基本可以實(shí)現(xiàn)所有的表單布局。布局器是最基礎(chǔ)的布局組件,支持按照縱向列的形式來(lái)配置表單布局,配置好每列數(shù)并將所需的表單項(xiàng)拖進(jìn)對(duì)應(yīng)列即可。布局器是可以嵌套的,這樣一來(lái),用戶可以自行配置各種形式的頁(yè)面布局。此外的標(biāo)簽頁(yè)、折疊塊、分割線都是一些輔助的展示手段,這里不在多加說(shuō)明。

關(guān)于表單項(xiàng)類型,新的動(dòng)態(tài)表單除支持全部的基礎(chǔ)控件類型外,還支持將配置好的表單項(xiàng)導(dǎo)出為自定義控件以便復(fù)用。

剩下的問(wèn)題就是表單校驗(yàn)自定義和表單聯(lián)動(dòng)自定義了,新的動(dòng)態(tài)表單不再僅僅支持必填校驗(yàn),還支持用戶手動(dòng)輸入正則表達(dá)式校驗(yàn),同時(shí)我們抽象了一些常用的正則表達(dá)式為默認(rèn)選項(xiàng)供用戶選擇。自定義表單聯(lián)動(dòng)上我們沿用了初版動(dòng)態(tài)表單的思路,通過(guò)事件和數(shù)據(jù)模型監(jiān)聽(tīng)實(shí)現(xiàn),在此基礎(chǔ)上做了更加規(guī)范的處理,使用戶可手動(dòng)修改配置。

完成配置后,就是對(duì)動(dòng)態(tài)表單配置的解析,面對(duì)如此多的表單項(xiàng)類型,大量的if else代碼顯然是不合理的,我們改用配置文件的形式,將表單類型和對(duì)應(yīng)控件一個(gè)個(gè)登記在表單項(xiàng)字典里,然后在渲染時(shí)通過(guò)component(VUE框架下)直接渲染。對(duì)于校驗(yàn)規(guī)則,我們選擇在渲染表單前對(duì)動(dòng)態(tài)表單配置進(jìn)行遍歷,提取所有的校驗(yàn)規(guī)則,在最層統(tǒng)一添加校驗(yàn),不再單獨(dú)的表單項(xiàng)上做校驗(yàn)處理。此外還有下拉框等數(shù)據(jù)源需要向服務(wù)端發(fā)送請(qǐng)求的特殊控件,我們也封裝了基類去對(duì)用戶配置的url、參數(shù)等作統(tǒng)一規(guī)范化的處理,受篇幅限制這里不做詳細(xì)描述。

以上是普元DevOps6.1GA版本在動(dòng)態(tài)表單方面做的完善,除動(dòng)態(tài)表單,我們還增加了工作項(xiàng)狀態(tài)流轉(zhuǎn)自定義配置、工作項(xiàng)類型自定義、工作項(xiàng)增刪改表單自定義等一些列功能,保證用戶在工作項(xiàng)管理上實(shí)現(xiàn)完完全全的自定義,讓用戶真正的可以按照實(shí)際應(yīng)用場(chǎng)景自定義工作項(xiàng)的管理方案。

關(guān)于作者:夏夏,前端工程師,參與普元DevOps產(chǎn)品開發(fā),以及微服務(wù)、容器云等產(chǎn)品開發(fā),負(fù)責(zé)前端頁(yè)面設(shè)計(jì)、架構(gòu)搭建等工作。善于架構(gòu)搭建、組件封裝及相關(guān)算法設(shè)計(jì)。

<上一頁(yè)  1  2  3  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)