精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

推薦!表單&試卷零代碼搭建平臺技術詳解

開發 前端
通過這種方式, 我們只需要根據業務需求實現自己的組件, 編寫組件可配置的屬性json, 即可通過配置引擎來動態生成組件的可編輯面板, 從而讓非技術人員輕松編輯組件.

對于可視化的搭建表單,試卷等場景,讓不懂技術的人也能拖拽式創建自己的表單和試卷。

圖片圖片

今天就來和大家分享一下橙子試卷的技術架構和技術實現, 如果你也在調研零代碼, 低代碼, 或者表單引擎等技術, 那么這篇文章也許可以給你帶來一些靈感。

圖片圖片

體驗地址: https://turntip.cn/form-engine

文末會附技術交流群, 感興趣的朋友可以加入交流討論。

技術棧

之前在開發 H5-dooring 零代碼搭建平臺時我采用的是React技術棧, 因為用 react 寫復雜邏輯會更順手, 好在 vue3 也支持了函數式的寫法, 也提供了 hooks 機制,  讓我們寫邏輯驅動的應用更加方便, 所以橙子試卷采用了國內最流行的 vue3 作為前端框架。具體技術棧如下:

  • Vue3 前端框架
  • Vite 工程化工具
  • Typescript 類型加強
  • arco-design 精美的前端UI庫
  • pinia 狀態管理庫
  • axios 請求庫
  • json schema 數據存儲規范
  • xijs 面向業務場景的js工具庫
  • vue-echarts 數據分析圖表庫
  • koa2 服務端數據支持
  • koa-jwt 基于koa封裝的jwt鑒權庫

當然還有一些第三方組件這里就不一一介紹了。我們的核心在于從零完整設計一套 MVP 的零代碼搭建引擎, 所以后端部分, 大家可以替換成自己熟悉的 Java, Go, Python 等語言。

技術架構

圖片圖片

因為零代碼表單引擎設計的核心是如何構造一套低成本且可擴展的組件庫, 并快速應用到實際業務場景, 所以設計的核心就包括如下部分:

  • 可擴展的組件庫系統
  • 靈活的拖拽搭建模式
  • 統一標準的DSL數據結構和數據規范
  • 一套可插拔的分析管理系統

接下來我會詳細介紹這幾塊的技術實現, 當然實現思想和技術棧無關, 我們仍然可以把它應用到不同的技術體系中。

具體功能實現

1. 構造可擴展的組件庫系統

圖片圖片

因為我們的搭建場景是問卷, 試卷, 微頁面, 所以組件庫會圍繞表單來擴展, 比如常用的:

  • 文本, 圖片
  • 單選, 多選, 圖片選擇
  • 下拉框
  • 文本輸入框
  • 文件上傳
  • 電子簽名
  • 評分

等等, 這些組件當然不能滿足所有客戶的業務場景, 所以我們要設計一種可擴展組件庫, 并且開發成本較低的方案。

我們可以參考常見的低代碼平臺的設計思路:

圖片圖片

簡言之就是把核心UI和邏輯作為組件的主文件, 同時暴露標準的可配置屬性和可配置邏輯。

之所以強調“標準”, 是為了讓不同組件能共用一套屬性配置引擎,  從而讓組件二開的成本大大降低(專注于組件的開發, 而不是配置的兼容)。

圖片圖片

其次為了盡可能讓組件的配置更靈活, 我們需要提供一套標準的組件默認屬性, 讓用戶可以根據默認屬性來配置自己的個性化的樣式, 那么我們的組件就需要這么來設計:

圖片圖片

這里以橙子試卷的文本組件給大家舉個例子。

文本組件的主文件:

<template>
  <div
    :class="{
      text: true,
      justify: editorStore.data[index].align == 'justify',
      [editorStore.data[index].animation]: true,
    }"
    :style="{
      paddingTop: editorStore.data[index].padding[0] + 'px',
      paddingRight: editorStore.data[index].padding[1] + 'px',
      paddingBottom: editorStore.data[index].padding[2] + 'px',
      paddingLeft: editorStore.data[index].padding[3] + 'px',
      color: editorStore.data[index].titleColor,
      fontSize: editorStore.data[index].titleSize + 'px',
      fontWeight: editorStore.data[index].titleWeight,
      textAlign: editorStore.data[index].align,
      animationDelay: editorStore.data[index].delay,
      animationIterationCount: editorStore.data[index].number,
      cursor: 'pointer',
    }"
    @click="jump(editorStore.data[index].link)"
  >
    {{ editorStore.data[index].titleText }}
  </div>
</template>

<script setup lang="ts">
import { useEditorStore } from "@/store";

const editorStore = useEditorStore();

const jump = (link: string) => {
  window.location.href = link;
};

defineProps(["index"]);
</script>

文本組件的可配置屬性:

export default class Text {
    component: TextPropType;
    constructor(id: string) {
        this.component = {
            component: 'text',
            type:'editor.text',
            id,
            check: true,
            titleText: 'https://turntip.cn/form-engine',
            titleColor: 'black',
            titleSize:16,
            titleWeight:'500',
            padding: [0, 0, 0, 0],
            margin: [10, 10, 10, 10],
            animation:'',
            direction: 'center',
            link:'https://turntip.cn/formManager',
            delay:2,
            attrbite: [
                {
                    name: 'editor.titleText',
                    field: 'titleText',
                    component: 'textarea'
                },
                {
                    name: 'editor.padding',
                    field: 'padding',
                    component: "padding",
                    props: {
                        min: 0,
                        type:'padding'
                    }
                },
                {
                    name: 'editor.margin',
                    field: 'margin',
                    component: "padding",
                    props: {
                        min: 0,
                        type:'margin'
                    }
                },
            ]
        }
    }

}

通過這種方式, 我們只需要根據業務需求實現自己的組件, 編寫組件可配置的屬性json, 即可通過配置引擎來動態生成組件的可編輯面板, 從而讓非技術人員輕松編輯組件:

通過以上的方式, 我們可以輕松開發各種自定義的組件, 提供給用戶使用:

圖片圖片

2. 靈活的拖拽搭建模式

圖片圖片

對于表單場景, 我們不需要特別復雜的布局交互, 所以這里我才用拖拽排序來實現頁面的搭建, 同時支持組件快捷復制和刪除。

目前 vue3 的比較成熟的拖拽組件有:

  • vuedraggable
  • vue3-draggable-resizable

這里選擇vuedraggable 來實現拖拽排序, 并對其進行上層封裝, 實現體驗更好的組件搭建排序效果。

當然還有很多優秀的拖拽庫, 如果大家對vue3-draggable-resizable 感興趣, 也可以試試, 它支持網格布局和自由布局, 可以實現更自由的布局搭建效果:

圖片圖片

3. 統一標準的DSL數據結構和數據規范

在組件庫設計中我們為了統一管理和維護組件和組件的屬性配置, 需要定義統一化的 DSL 結構, 這個結構包含了組件的如下信息:

  • 組件元數據
  • 位置信息
  • 樣式信息
  • 事件 / 交互
  • 埋點定義(高級配置)

后4個都好理解, 這里介紹一下組件元數據, 它的價值在于定義組件的基本信息:

  • 組件類型
  • 組件名稱
  • 圖標
  • 初始化數據
  • 組件路徑 (高級, 可選)
  • 狀態 / 版本 (高級, 可選)

通過對 元信息 的定義, 我們可以很方便的建立更系統的組件庫, 比如支持組件分類, 組件版本切換, 組件加載(通過路徑元信息來加載遠程組件)。

所以我們需要盡可能規范統一的定義組件的通用規則和自定義規范, 以便讓不同組件都遵行統一的規則來實現零代碼搭建引擎的設計。

這里還是以橙子試卷為例子, 來介紹一下我們統一的DSL:

圖片圖片

首先我們看看文本的元信息:

這是一個簡單的元信息, 它可以幫我們快速識別組件, 并為畫布提供組件更具體的渲染信息, 不同組件都通過統一的配置來定義, 可以讓我們的渲染器更加高效的渲染組件, 并降低組件維護成本。

在介紹組件的內容中我已經介紹了組件接受的 json 配置結構, 這里分享一個由多個組件組成的完整頁面的 DSL 結構和實際代碼:

圖片圖片

案例代碼:

有了以上的統一 DSL 結構, 我們就可以輕松通過 JSON 來渲染頁面, 同時也有更多的想象空間, 比如:

  • 通過DSL來實現跨端渲染搭建
  • 通過DSL來實現多人協作共享
  • 通過DSL來實現A出碼能力
  • 通過AI學習DSL來批量自動化生產頁面

4. 可插拔的分析管理系統

一個可視化零代碼解決方案一定包含完整的用戶使用鏈路, 即從搭建到投放再到信息收集的完整分析鏈路。

圖片圖片

當然不同的公司業務分析需求不同, 所以需要支持純粹的數據收集和流轉, 以便供不同業務使用。

目前橙子試卷提供了一套完整的數據收集能力, 對于試卷場景, 也提供了自動打分機制, 可以一鍵分析數據情況:

圖片圖片

當然這都是可以基于自身規則自己二次開發的, 橙子試卷只是提供了一套案例參考。

應用場景和價值

  • 幫助中小企業或者個體提供一套低成本零代碼表單搭建解決方案,且不止于表單/試卷
  • 基于橙子試卷的最佳實踐, 輕松擴展出更多的搭建業務場景
  • 開箱即用的組件和模版管理最佳實踐, 積累和沉淀內部技術資產
  • 結合AIGC, 創造更強大的生產力工具

體驗地址: https://turntip.cn/form-engine

責任編輯:武曉燕 來源: 趣談前端
相關推薦

2022-06-30 07:48:06

Dooring低代碼零代碼

2020-06-18 14:20:52

零代碼開發明道云

2024-04-17 08:50:59

開源FormikReact 表單庫

2021-11-04 08:06:47

代碼編排平臺

2020-06-05 14:43:25

零代碼平臺企業軟件代碼

2020-06-05 14:48:11

零代碼低代碼開發

2025-03-13 11:09:47

2021-10-18 07:51:38

零代碼平臺思路

2020-06-05 10:30:01

零代碼平臺軟件數據庫

2023-03-16 20:46:40

可視化平臺迭代

2021-12-30 11:30:13

人工智能機器學習技術

2009-03-04 09:52:35

代碼契約組件接口

2025-05-21 14:20:50

2021-11-29 17:29:14

帆軟智數大會

2024-08-20 07:47:12

AI零代碼網關

2020-11-04 13:12:39

低代碼零代碼開發

2022-04-08 10:31:28

美團代碼建設

2024-04-07 08:31:56

文檔編輯引擎零代碼編輯器

2012-07-05 10:18:03

HTML5
點贊
收藏

51CTO技術棧公眾號

天堂成人免费av电影一区| 高清不卡一区| 亚洲国产成人自拍| 成人免费观看网址| 久久免费少妇高潮99精品| 成人资源在线| 欧美在线影院一区二区| 欧美日韩午夜爽爽| 欧美18xxxxx| 国产一区二区不卡老阿姨| 亚州欧美日韩中文视频| jizzjizz日本少妇| 老牛国内精品亚洲成av人片| 欧美午夜精品电影| 亚洲不卡中文字幕无码| 美女羞羞视频在线观看| 91丨porny丨首页| 亚洲mm色国产网站| 91久久国产综合久久91| 国产精品麻豆久久| 国产手机视频精品| 色诱av手机版| 国精品产品一区| 婷婷成人激情在线网| 最新精品视频| 波多野结衣在线网站| www.日韩av| 91欧美视频网站| 一级久久久久久| 性欧美精品高清| 久久久久久午夜| 精品国产欧美日韩不卡在线观看 | 国产日韩一区在线| 韩国av中文字幕| 国产专区一区| 久热精品视频在线观看一区| 日本二区在线观看| 日韩手机在线| 亚洲国产另类久久精品| 在线视频日韩欧美| 日韩一区二区三免费高清在线观看| 欧美日韩免费一区| av无码久久久久久不卡网站| 成人短视频在线| 亚洲色图第一区| 天天成人综合网| 日本激情视频在线观看| 国产女主播在线一区二区| 蜜桃视频在线观看91| 五月婷婷六月激情| 99精品欧美一区二区蜜桃免费 | 神马午夜在线观看| 国产成人免费在线| av资源一区二区| 性做久久久久久久久久| 国产成人精品三级| 999热视频| 亚洲毛片欧洲毛片国产一品色| 国产乱淫av一区二区三区| 91久久国产精品91久久性色| 国产精品无码一区二区桃花视频| 精品在线一区二区三区| 成人av在线天堂| 国产男女裸体做爰爽爽| 国产精品一区二区在线看| 成人在线视频网| a天堂视频在线| 高清不卡在线观看av| 国产伦精品一区二区三区四区视频 | 麻豆网站在线免费观看| 亚洲欧美日韩在线不卡| 日韩一二区视频| 国产一线二线在线观看| 天天综合天天做天天综合| 女人扒开屁股爽桶30分钟| 国产成人精品123区免费视频| 欧洲精品视频在线观看| 欧美性受xxxxxx黑人xyx性爽| 精品国产乱码一区二区三区| 日韩精品中文字幕在线一区| 久久精品女同亚洲女同13| 香蕉久久夜色精品国产使用方法 | 欧美日韩精品高清| 毛毛毛毛毛毛毛片123| 99精品国产一区二区三区2021| 亚洲国产成人爱av在线播放| 国产精品久久久久无码av色戒| 日本电影一区二区| 欧美日韩爱爱视频| 天堂а√在线中文在线新版| 久草中文综合在线| 国产精品一区二区在线观看| 国产一级在线观看| 一区二区免费在线| 国模杨依粉嫩蝴蝶150p| 不卡一区视频| 精品无人区太爽高潮在线播放 | av黄色在线观看| 亚洲激情av在线| 好男人www社区| 一区二区免费| 尤物九九久久国产精品的分类| 日韩一级片大全| 香蕉成人久久| 99久久99久久| 成人精品福利| 精品国产福利视频| 视频免费1区二区三区| 天天躁日日躁狠狠躁欧美巨大小说| 中文字幕在线日韩| 久久久午夜影院| 国产酒店精品激情| 日本免费高清一区| 91桃色在线| 欧美一区二区三区啪啪| japanese中文字幕| 黄色亚洲在线| 亚洲一区二区自拍| 91涩漫在线观看| 欧美日韩在线影院| 蜜桃色一区二区三区| 国产精品久久久久蜜臀| 国产精品美女久久| 人人九九精品| 亚洲3atv精品一区二区三区| 制服下的诱惑暮生| 久久亚洲国产| 国产精品一二区| 黄色影院在线播放| 精品久久久中文| 九九九久久久久久久| 国产精品传媒精东影业在线| 国产精品久久婷婷六月丁香| 亚洲av成人无码久久精品老人| 一区二区三区日韩在线观看| 亚洲第一成肉网| 91久久夜色精品国产按摩| 日本精品视频在线| 亚洲av成人无码久久精品老人| 亚洲第一在线综合网站| 在线播放av网址| 欧美国产三区| 亚洲xxx大片| 2021国产在线| 日韩一区二区三区av| 国产性生活大片| 国产一区二区美女| 91麻豆天美传媒在线| 日韩精品一级毛片在线播放| 国产亚洲精品久久久久久777| 麻豆成人免费视频| 久久精品亚洲精品国产欧美| 亚洲国产精品毛片av不卡在线| 国产传媒欧美日韩成人精品大片| 欧美在线性爱视频 | 国产精品久久久久精| 国产精品久久一卡二卡| 黄色一级免费大片| 久久亚洲国产| 亚洲xxxx做受欧美| 麻豆蜜桃在线| 日韩精品在线观看网站| 日韩免费视频一区二区视频在线观看| www.亚洲国产| 日韩一级免费在线观看| 日韩精品免费一区二区三区| 成人黄色生活片| 国产精品一卡二卡三卡| 日韩欧美国产一区二区三区| 日韩福利片在线观看| 91在线国产福利| 91国产精品视频在线观看| 欧美国产小视频| 91久久久一线二线三线品牌| free性m.freesex欧美| 精品一区二区三区四区在线| 国产精品成人久久久| 亚洲人成在线播放网站岛国| 怡红院一区二区| 久久综合五月| 99re8这里只有精品| 黄色欧美在线| 国产免费一区二区三区在线观看| 最新超碰在线| 日韩大片免费观看视频播放| 自拍偷拍色综合| 一区二区三区日韩精品视频| 少妇精品一区二区三区| 蜜臀av一区二区在线观看| 99精品一级欧美片免费播放| 国产精品中文字幕制服诱惑| 国产精品高潮呻吟久久av无限 | 免费人成视频在线播放| 一本色道久久综合亚洲精品不卡 | 国产精品免费一区二区| 校园春色亚洲色图| 九九热在线精品视频| 国产在线视频网址| 欧美第一区第二区| 中文资源在线播放| 亚洲成人自拍偷拍| 国产麻豆a毛片| aa级大片欧美| 色姑娘综合天天| 日韩精品一级中文字幕精品视频免费观看 | 看高清中日韩色视频| 国产美女亚洲精品7777| 日本欧美中文字幕| 久草在线视频福利| 日韩最新在线视频| 日韩私人影院| 精品少妇一区二区三区免费观看| 最新中文字幕在线观看视频| 亚洲.国产.中文慕字在线| 久久一级免费视频| 2020国产成人综合网| 成年人看片网站| 精品一二三四区| 久久精品午夜福利| 亚洲精品在线二区| 亚洲国产一二三精品无码| 精品视频日韩| 欧美理论一区二区| 另类ts人妖一区二区三区| 999精品在线观看| 精品国产一区二区三区性色av| 日本精品性网站在线观看| a√中文在线观看| 九九久久综合网站| 麻豆传媒视频在线观看免费| 一区二区欧美日韩视频| 日本大臀精品| 精品视频在线导航| 深夜福利免费在线观看| 亚洲第一精品福利| 成人无码一区二区三区| 日韩欧美在线1卡| 国产普通话bbwbbwbbw| 8x福利精品第一导航| 亚洲一区二区天堂| 欧美视频一区二区三区在线观看| 国产午夜麻豆影院在线观看| 色噜噜狠狠色综合中国| 日韩在线播放中文字幕| 日韩欧美中文第一页| 人妻 日韩精品 中文字幕| 欧美色另类天堂2015| 成人在线免费看视频| 天天射综合影视| 日产亚洲一区二区三区| 五月婷婷激情综合网| 国产成人一区二区三区影院在线 | 久久这里只有精品99| 国产精品刘玥久久一区| 欧美成人午夜激情视频| 日本h片在线| 午夜精品久久17c| 国产精品一二三产区| 91国内揄拍国内精品对白| 理论片午夜视频在线观看| 欧美一级高清免费| 日韩免费电影| 国产精品视频男人的天堂| 外国成人毛片| 国产高清一区视频| 麻豆精品少妇| 欧洲成人一区二区| 日韩欧美视频专区| 亚洲一区 在线播放| 欧美色一级片| 亚洲熟妇无码另类久久久| 性感少妇一区| 日韩精品视频一二三| 精彩视频一区二区三区| av漫画在线观看| 久久免费电影网| 糖心vlog免费在线观看| 亚洲一区二区三区四区在线观看 | 女人天堂av在线播放| 91国语精品自产拍在线观看性色 | 在线视频日韩| 免费一级特黄录像| 国产一级精品在线| 熟妇人妻久久中文字幕| 欧美国产精品专区| 久久久久久欧美精品se一二三四| 欧美日韩在线一区| 国产精品伊人久久| 亚洲精品av在线| 欧美成人性生活视频| 久久久噜噜噜久久久| 日韩成人影音| 97免费高清电视剧观看| 蜜桃一区二区三区| 特级西西人体www高清大胆| 新狼窝色av性久久久久久| 免费网站在线观看黄| 91丨国产丨九色丨pron| 欧美日韩在线视频免费| 色哟哟欧美精品| 亚洲第一天堂网| 最新亚洲国产精品| 国产污视频在线播放| 91麻豆国产精品| 精品理论电影| 日本午夜激情视频| 国产米奇在线777精品观看| 免费污网站在线观看| 亚洲午夜久久久久| 一级全黄少妇性色生活片| 日韩成人在线视频观看| 影音先锋男人在线资源| 国产成人小视频在线观看| 一区二区三区欧洲区| 中国一区二区三区| 首页亚洲欧美制服丝腿| 国产婷婷在线观看| 综合婷婷亚洲小说| 免费在线不卡av| 日韩电影中文字幕av| 欧美巨大xxxx做受沙滩| 成人av.网址在线网站| 成人网18免费网站| 精品国产成人av在线免| av高清久久久| 久久久久久久久久久久国产| 日韩欧美一区二区三区在线| 九色porny丨首页在线| 国产一区二区色| 精品久久久久久久久久久aⅴ| 免费看一级大黄情大片| 国产·精品毛片| 久久99久久久| 欧美大片国产精品| 麻豆网站在线看| 成人看片人aa| 亚洲先锋影音| av在线免费看片| 亚洲欧美影音先锋| 国产精品久久久久精| 啊v视频在线一区二区三区| 欧美国产视频| 自拍偷拍99| 国产精品一区二区男女羞羞无遮挡 | 国产成人无码a区在线观看视频| 国产91丝袜在线18| 久久久久久免费观看| 亚洲成人亚洲激情| caoporn视频在线| 久久av一区二区三区漫画| 国产日韩欧美三区| a毛片毛片av永久免费| 日韩欧美综合在线视频| 免费在线视频一级不卡| 国产精品91久久| 国产精品7m凸凹视频分类| www.com污| 亚洲一区二区三区自拍| 色窝窝无码一区二区三区| 欧洲成人免费aa| 国产免费av一区二区三区| 亚洲老女人av| 亚洲男人的天堂在线观看| 成人激情四射网| 7777免费精品视频| 精品免费视频| 中文字幕第22页| 亚洲福利电影网| 黄上黄在线观看| 国产日韩精品电影| 欧美三级第一页| 久久精品老司机| 欧美日韩国产小视频在线观看| 二区在线播放| 精品无人区一区二区三区竹菊 | 国产九九精品视频| 综合视频在线| 国产ts丝袜人妖系列视频| 欧美影视一区二区三区| 综合图区亚洲| 日韩av图片| 国产精品 日产精品 欧美精品| 日本三级一区二区| 最好看的2019年中文视频| 视频一区国产| 老熟妇仑乱视频一区二区| 亚洲男人天堂av| 黄色国产在线| 成人三级视频在线观看一区二区| 亚洲一区免费| jizz亚洲少妇| 亚洲人成亚洲人成在线观看| 不卡精品视频| 日韩有码免费视频| 一区二区三区av电影| 国产在线视频网| 激情欧美一区二区三区中文字幕| 蜜桃久久久久久| 成人精品免费在线观看| 久青草国产97香蕉在线视频|