這事從公司來看,卻極大的降低了開發成本,如果從個人來看,似乎是革了自己的命,但如果對技術有點追求,你也會增加乙份特殊的成就感。同樣的需求,如果不做動態表單,每次需求一來,copy乙份,修改下,再加上測試發版,以網際網路公司的效率少說也要3人天,如果是非網際網路公司,估計1人月都還不止,這還是一次,每次都要重複,資源的浪費是可想而知的,而動態表單卻是一勞永逸的解決了問題,配置下0.5人天最多,並且不需要發版直接上線!!!
乾貨開始。
首先選擇電動車品牌,每個電動車品牌後續的嚮導頁面數量和字段是不一樣的,這個就是做動態表單的最大出發點。
設計:
省去非關鍵資訊後,模型設計非常簡單,只要兩個一對多關係即可,主要的解釋可以檢視類注釋。
/**
* 嚮導頁
* 乙個嚮導頁有多個控制項和多個操作按鈕組成
* 相比於真正的動態表單,這裡的嚮導頁是弱化的,只要按照itemindex指定的順序碼下來即可
* 這裡還有一些特殊的控制項
* 空白行:在需要展示空行時非常有用
* 身份證掃瞄控制項和車架號控制項:因專案的特殊性,該類控制項在本專案是非常有用的,所有的品牌都需要
* 省市區控制項:如很多手機端常用控制項,其實就是對級聯下拉框的擴充套件,只是資料固定為省市區
* */
@data
@table(name = "t_wizard")
public class wizard extends baseentity
/** * 嚮導頁中的控制項,即文字輸入框、下拉列表、開關等
*/@data
@table(name = "t_control")
public class control extends baseentity
/** */
@data
@table(name = "t_action")
public class action extends baseentity
/** * 控制項型別,其實這個完美的情況下,這裡列舉型別也可以作為資料存到資料庫
* 因為前後端分離的情況下,該型別對於後端來說就是乙個字串,不需要實現,實現在前端,
* 增加一種型別的情況下,後端增加一條資料,不需要發版,前端可以自行發版,做到真正的前後端分離
*/public enum controltype
public string tostring()
}/**
* 操作按鈕型別,
* 該型別決定了嚮導頁的後續走向,需要和前端約定好
*/public enum actiontype
具體的實現**就不分享了,大家可以將下圖標註轉化為資料自行實現,畢竟內容太大,再說思想比**重要的多,有機會我會和大家分享乙個完整的並且通用的專案,記得關注。授之以魚,不如授之以漁,不是嗎?
後話:任職的前三家公司都在不停地做從單體應用到微服務的轉化,幾乎每乙個業務系統都會有自己的管理平台,技術實現還不一樣,有angularjs的,有vue的,甚至還有jsp實現的,乙個小公司算下來都幾乎有10+,甚至100個管理系統,大家是否想過,累加起來需要多少的人力資源,溫水煮青蛙,成本高的同時,對於開發永遠是重複造輪子,沒有任何幫助。差不多8年前開始接觸動態表單,那時確實覺得非常複雜,這就是為什麼開頭說的10人團隊一年的工作量,那是真正的動態表單,但事實上,我們可以在限定的範圍內以1/100的成本高效實現,又不是專業的動態表單產品,為啥不可以呢?希望有機會能與大家再分享。
基於WF設計業務流程平台 工作域與一人多部門多職能
很多時候,在企業中,某個員工可能既屬於a部門,又屬於b部門,在a部門可能擔任一種職務,在b部門又擔任另種職務,這種組織結構違反了樹的基本要求,但在實際中卻是大量存在的.有的事項要求 所的科長 有的事項要求 a部門所人 有的事項要求 a部門所科長 有的事項要求 a部門所科長級別以上 所以,我在處理事項...
微信投票限制一人一票的如何刷出更多得票數和人氣?
您可以可以自己製作軟體來操作。當然這個比較麻煩了 下邊貼一些 供大家研究下 import urllib2 import urllib import cookielib def login host www.sapsy.cn email raw input 請輸入使用者名稱 pwd raw input...
如何讓表單中的第一行選單變為動態
此貼為記錄貼,是關於如何讓選單欄目變成動態主題的總結 以前在寫表單的時候總是把表單的第一行主題給寫死,比如像下面這樣 當時沒想那麼多,只顧著完成當前的功能,但是後期在維護的時候真的是血虧 就比如說如果需求要讓我們再加乙個科目 化學 那麼我們有得重新開啟編譯器,找到所對應的前端 然後把這個頁面再一次寫...