日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

表單的本質(zhì)是業(yè)務(wù),沒有表單是無法完成業(yè)務(wù)系統(tǒng)的,而動(dòng)態(tài)表單使業(yè)務(wù)系統(tǒng)更高級(jí)。動(dòng)態(tài)表單是什么呢?它是如何工作的?應(yīng)用場(chǎng)景有哪些?一起來看一下吧。

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

一、表單

表單在網(wǎng)頁中主要負(fù)責(zé)數(shù)據(jù)采集功能,是提交數(shù)據(jù)的一切形式。表單的本質(zhì)是提交數(shù)據(jù),不僅僅包含輸入框、下拉選擇框等這些控件,常見的按鈕空間也屬于一個(gè)表單。

1. 動(dòng)態(tài)表單

動(dòng)態(tài)表單(Dynamic Form),指在前端運(yùn)行過程中可依賴某些業(yè)務(wù)邏輯發(fā)生表單項(xiàng)變化的表單,還包括表單布局、表單數(shù)據(jù)管理、表單校驗(yàn)、表單交互、表單項(xiàng)聯(lián)動(dòng)邏輯等原本由前端編程完成的表單開發(fā),轉(zhuǎn)由后端通過 API 接口輸出表單描述自動(dòng)完成上述所有內(nèi)容的表單開發(fā)形式。

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(動(dòng)態(tài)表單原理示意圖)

2. 動(dòng)態(tài)表單的特點(diǎn)優(yōu)勢(shì)

表單的本質(zhì)是業(yè)務(wù),而動(dòng)態(tài)表單使業(yè)務(wù)系統(tǒng)更高級(jí)。

普通表單是一個(gè)表單寫一份前端的代碼,代碼全部由前端開發(fā)者完成(后端配合接口輸出)。而動(dòng)態(tài)表單則是一個(gè)表單對(duì)應(yīng)一個(gè) JSON(由后端輸出),所有表單由一份代碼(動(dòng)態(tài)表單引擎)進(jìn)行加載和渲染。

所以,動(dòng)態(tài)表單具有以下優(yōu)勢(shì):

  • 客戶端運(yùn)行的代碼量更少;
  • 每個(gè)表單的JSON按需加載;
  • 表單需求變化時(shí),無需前端修改發(fā)版,只需編輯數(shù)據(jù)庫中的JSON。

二、表單控件

表單控件是提供一組允許用戶操作的對(duì)象,從而接收用戶輸入的數(shù)據(jù),用戶可操作該對(duì)象來執(zhí)行對(duì)表單設(shè)計(jì),修改等操作。

1. HTML表單種常見的13個(gè)控件

input元素?zé)o疑是一個(gè)龐大和復(fù)雜的元素,但它并不是唯一的表單控件。還有button、select、option、label、optgroup、textarea、fieldset、legend這八個(gè)傳統(tǒng)表單控件,datalist、progress、meter、output、keygen這五個(gè)新增表單控件。

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

2. 動(dòng)態(tài)表單控件

動(dòng)態(tài)表單是老廠商天翎核心技術(shù)之一,也是天翎公司核心產(chǎn)品MyApps的重要組成部分。通過對(duì)于動(dòng)態(tài)表單的應(yīng)用,可以避免在電子流程系統(tǒng)中硬編碼的數(shù)據(jù)采集及處理表單,提高系統(tǒng)的可維護(hù)性。

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

說明:

Form,動(dòng)態(tài)表單實(shí)現(xiàn)的基本入口,描述了DynaForm的最基本屬性,比如名稱、ID、以及最核心的TemplateContext。TemplateContext中保存的是Form的描述XML,通過此XML描述兩類信息:

  1. Form中所具有的Field以及Field的類型、名稱、長(zhǎng)度、計(jì)算代碼等等,XML;
  2. Form的格式,比如排列次序、表格定列化的過程當(dāng)中,系統(tǒng)自動(dòng)解析XML的內(nèi)容并將其轉(zhuǎn)換為Java Object并由此具備Object的行為特性;位等。Form作為一個(gè)ValueObject存儲(chǔ)在數(shù)據(jù)庫中。

FormElement,接口,表示Form中的基本元素;

FormField,動(dòng)態(tài)表單的最基本元素,在myApps/OBPM中被聲明為Abstract,具體Object行為依賴于具體的SubClass實(shí)現(xiàn);

TextField,單行文本框,繼承FormField;

SelectField,下拉選擇框,繼承FormField;

TextareaField,多行文本框,繼承FormField;

CheckBoxField,復(fù)選框,繼承FormField;

RadioBoxField,單選框,繼承FormField;

Textpart,靜態(tài)文本段,除各種Field以外的靜態(tài)文本部分,繼承FormElement;

ComponentField,自定義組件,繼承FormField;

AttachmentUploadField,附件上傳組件,繼承FormField;

ImageUploadField,圖片上傳組件,繼承FormField;

ViewDialogField,視圖組件,用于實(shí)現(xiàn)主從結(jié)構(gòu)的表單,繼承FormField;

CalctextField,計(jì)算文本組件,用于實(shí)現(xiàn)需要計(jì)算的文本,繼承FormField;

IncludeField,實(shí)現(xiàn)SubForm的包含,繼承FormField;

WordField,Word組件,繼承FormField;

OcrField,為將來預(yù)留的接口,系統(tǒng)暫未實(shí)現(xiàn);

三、表單引擎

表單引擎是為快速實(shí)施項(xiàng)目研發(fā)的輕量級(jí)表單設(shè)計(jì)工具。采用表單引擎工具可在不開發(fā)和新增加代碼的情況下設(shè)計(jì)出新表單樣式,同比程序開發(fā)可省掉程序員差不多70%的開發(fā)工作量,并且后期維護(hù)相對(duì)簡(jiǎn)單,管理方便。

1. 工作原理

在了解了表單的基本機(jī)構(gòu)后,進(jìn)一步看看表單引擎是如何工作的。

從客戶端(Client)輸入數(shù)據(jù)(Document),比如一個(gè)excel文件,表單(Form)結(jié)合excel文件自動(dòng)生成HTML,如下圖:

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(表單結(jié)合文檔生成HTML過程)

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(XML解析為表單對(duì)象的過程)

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(表單轉(zhuǎn)為HTML過程)

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(表單生成數(shù)據(jù)庫)

2. 應(yīng)用場(chǎng)景

天翎Myapps低代碼開發(fā)平臺(tái)的表單引擎是基于Web界面上可視化編輯的表單設(shè)計(jì)系統(tǒng),同時(shí)支持印刷模式和拖拽模式兩種設(shè)計(jì)方式,形象可見,操作方便。印刷模式可以做一些復(fù)雜的表單配置,同時(shí)還支持word表格的導(dǎo)入;拖拽模式:基于Vue的表單設(shè)計(jì)器,采用可視化拖拉拽的模式進(jìn)行表單的設(shè)計(jì)。

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(表單前臺(tái))

如何設(shè)計(jì)一個(gè)表單引擎?(如何設(shè)計(jì)一個(gè)表單引擎)

(表單后臺(tái))

本文由 @周志軍Jarod 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部
长顺县| 库尔勒市| 明星| 沾化县| 琼结县| 蕉岭县| 博客| 同心县| 庐江县| 大姚县| 长沙县| 平凉市| 桦南县| 苍南县| 奉新县| 耒阳市| 商城县| 桐庐县| 方正县| 丰镇市| 晋城| 方山县| 呼图壁县| 安岳县| 韶山市| 买车| 通城县| 颍上县| 汉沽区| 陕西省| 永福县| 黑河市| 防城港市| 无棣县| 海原县| 马山县| 蛟河市| 清镇市| 海宁市| 贵州省| 黄大仙区|