狠狠色噜噜狠狠狠狠2021,久久精品国产亚洲av麻豆白洁,777米奇影视盒,国内精品老年人视频网站

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))


手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

起因

我在月初開源的商城零代碼可視化搭建平臺Mall-Cook受到大家喜愛,使我深受鼓勵(lì),謝謝大佬們的支持。本著授人以魚不如授人以漁思想,決定在項(xiàng)目新建shelf分支,從零開發(fā)一個(gè)"干凈"的可視化搭建平臺,帶大家開發(fā)一個(gè)自己的可視化搭建平臺。

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

可視化搭建核心

架構(gòu)

先看一下我理解的無代碼可視化搭建平臺架構(gòu),可視化搭建平臺主要有兩塊:

  • 項(xiàng)目拖拽搭建平臺的構(gòu)建
  • 物料接入平臺流水線的構(gòu)建

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

核心

可視化搭建的核心是什么?

開發(fā)搭建平臺使我們搭起了可視化構(gòu)建的架子,接下來只需要根據(jù)實(shí)際使用場景更新物料庫"運(yùn)營"平臺。 而在更新物料庫時(shí)(老物料的迭代與新物料的開發(fā)),我們也需要同步修改平臺來兼容物料庫。那怎么解決這個(gè)問題呢?

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

我的解決辦法是,利用Json Schema協(xié)議規(guī)范Json的作用,用規(guī)范的Json來描述物料,然后用物料屬性解析器來解析、構(gòu)造物料的屬性面板,我們更新物料庫時(shí)只需要修改對應(yīng)Json即可。最后提供Schema生成器可視化生成Json,避免用戶手動(dòng)修改Json,完成一整條物料接入平臺流水線的構(gòu)建。

這時(shí)我們再回到問題,我認(rèn)為可視化搭建的核心是一套規(guī)范!

在平臺中我們利用Schema協(xié)議定義了物料屬性規(guī)范,然后遵循規(guī)范構(gòu)建一條標(biāo)準(zhǔn)接入的流水線。我們在開發(fā)同理可以定義其他規(guī)范,完成組件交互、頁面生命周期、遠(yuǎn)程接口調(diào)用等標(biāo)準(zhǔn)流水線(此平臺為無代碼平臺,開發(fā)低代碼平臺需要上述功能)。

畫虎畫皮難畫骨,我認(rèn)為這才是可視化搭建的難點(diǎn)!

開發(fā)拖拽搭建面板

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

我們使用的拖拽插件是vuedraggable,主要邏輯為拖拽模板物料到頁面面板,深拷貝物料配置數(shù)據(jù)到頁面配置中。

核心代碼

<!-- 物料模板列表 --> <draggable v-model="widgets" // 拖拽列表數(shù)據(jù)源 :options="{ group:{ name: 'itxst', // 可拖拽列組,相同表名可相互推拽 pull: 'clone' // 拖拽模板物料,復(fù)制到目標(biāo)列表 }, sort: false // 是否可推拽排序 }" :clone="handleClone" // 復(fù)制模板物料執(zhí)行方法 animation="300" // 動(dòng)畫延遲 > <div v-for="(item, index) in widgets" :key="index" class="control-widgets-item" > <i class="iconfont" :class="item.icon"></i> <span class="f13">{{ item.label }}</span> </div> </draggable>

<!-- 頁面面板 --> <draggable v-model="mList" // 拖拽列表數(shù)據(jù)源 group="itxst" // 可拖拽列組,相同表名可相互推拽 ghostClass="ghost" // 拖動(dòng)元素的占位樣式class chosenClass="chosen" // 選中目標(biāo)的樣式class selector="selector" :animation="500" // 動(dòng)畫延遲 :sort="true" // 是否可推拽排序 class="panel" > <component v-for="item in mList" :key="item.id" :is="item.component" v-bind="item" ></component> </draggable>

// 拷貝物料模板 handleClone(cmp) { return { ...this.$cloneDeep(model), // 深拷貝物料模板 id: this.$getRandomCode(8), // 生成物料id },

開發(fā)可嵌套物料

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

想要實(shí)現(xiàn)可嵌套物料主要有三點(diǎn):

  • 物料中包含slot,已供子物料存放
  • 物料配置中增加children屬性,用于存放子物料配置
  • 遞歸渲染物料實(shí)現(xiàn)無限層級嵌套

核心代碼

<!-- 遞歸可嵌套組件 --> <draggable v-model="list" group="itxst" ghostClass="ghost" chosenClass="chosen" selector="selector" :animation="500" :sort="true" :class="[isWidget ? 'nest-child' : 'nest-area']" > <component v-for="item in list" :key="item.id" :is="item.component" v-bind="item" > // 包含slot的組件才能進(jìn)行嵌套渲染 <ControlNestWidget :widgets.sync="item.children" // 子物料列表 :isWidget="true" // 是否為子物料 ></ControlNestWidget> </component> </draggable>

開發(fā)物料容器

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

接下來我們?yōu)轫撁娴奈锪霞右粋€(gè)保姆工具欄,使用容器組件可以解耦代碼功能,功能如下所示

手把手帶你開發(fā)一個(gè)低代碼可視化平臺(一)(低代碼開發(fā)平臺設(shè)計(jì))

<!-- 物料操作容器 --> <div class="shape" @click.stop="setcurComponent(widget)" ref="shape"> <!-- 選中組件高亮 --> <div v-if="isCurComponent(widget.id)" class="shape-solid event-none"></div> <!-- 組件工具欄 --> <div v-if="show" class="shape-tab" :style="{ right: getRightStyle() }"> <!-- 選中顯示刪除按鈕 --> <template v-if="isCurComponent(widget.id)"> <i class="iconfont icon-shanchu tab-icon f16" @click.stop="delComponent(chontrol.widgets, widget.id)" ></i> </template> <!-- 未選擇顯示物料名 --> <span v-else>{{ widget.label }}</span> </div> <!-- 插槽 --> <slot></slot> </div>

<!-- 使用物料容器 --> <widget-shape v-for="item in list" :key="item.id" :widget="item"> <component :is="item.component" v-bind="item" ></component> </widget-shape>

因?yàn)橛星短捉M件,所以刪除物料時(shí)應(yīng)遞歸遍歷刪除

// 刪除物料 delComponent(list, id) { // 遍歷查找目標(biāo)下標(biāo) let index = list.reduce((pre, cur, i) => { return cur.id == id ? i : pre; }, -1); // 找到目標(biāo),刪除物料 if (index >= 0) { list.splice(index, 1); } else { // 遞歸子物料 list .filter((c) => c.children) .forEach((c) => { this.delComponent(c.children, id); }); } }

下一節(jié)預(yù)告

我們已經(jīng)開發(fā)了可視化搭建的架子,下一節(jié)會(huì)講述:

  • 使用json描述物料
  • 開發(fā)物料屬性解析器,解析生成屬性面板
  • 開發(fā)屬性面板基礎(chǔ)類型組件(string、number等

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年7月6日 上午11:00
下一篇 2024年7月6日 上午11:12

相關(guān)推薦

  • 企業(yè)制度的制定結(jié)構(gòu)

    企業(yè)制度的制定結(jié)構(gòu) 企業(yè)制度的制定結(jié)構(gòu)是企業(yè)管理中非常重要的一個(gè)環(huán)節(jié)。一個(gè)好的企業(yè)制度可以幫助企業(yè)管理得更加規(guī)范,提高企業(yè)的效率和競爭力。本文將介紹企業(yè)制度的制定結(jié)構(gòu),并給出一些建…

    科研百科 2024年12月4日
    2
  • 哪一個(gè)項(xiàng)目管理軟件好用

    選擇一個(gè)好的項(xiàng)目管理軟件對于團(tuán)隊(duì)的高效協(xié)作和項(xiàng)目成功至關(guān)重要。以下是一些受歡迎的項(xiàng)目管理軟件,可以根據(jù)自己的需求和偏好進(jìn)行選擇。 1. TrelloTrello是一款簡單易用的卡片…

    科研百科 2024年7月27日
    2
  • 陽宗海風(fēng)景名勝區(qū)探索“黨建+”翻開云南高原湖泊治理保護(hù)新篇章

    昆明信息港訊(昆明日報(bào) 記者吳潔)2010年7月1日,在云南省委、省政府的高位統(tǒng)籌下,昆明陽宗海風(fēng)景名勝區(qū)管委會(huì)正式履行職責(zé)職能。此舉標(biāo)志著云南邁出了高原湖泊治理保護(hù)的新步伐。 9…

    科研百科 2023年1月20日
    350
  • 財(cái)忠方法之設(shè)立工作室的節(jié)稅方法(成立工作室節(jié)稅)

    個(gè)人獨(dú)資企業(yè)釋義 指依照《個(gè)人獨(dú)資企業(yè)法》在中國境內(nèi)設(shè)立,由一個(gè)自然人投資,全部資產(chǎn)為投資人個(gè)人所有,投資人以其個(gè)人(或者家庭)財(cái)產(chǎn)對企業(yè)債務(wù)承擔(dān)無限責(zé)任的經(jīng)營實(shí)體。其特點(diǎn)為:個(gè)人…

    科研百科 2023年10月8日
    194
  • 采購合同管理系統(tǒng)excel表格模板(采購合同管理系統(tǒng))

    采購合同管理系統(tǒng):優(yōu)化采購流程,提高采購效率 隨著企業(yè)規(guī)模的不斷擴(kuò)大和采購流程的日益復(fù)雜,采購合同管理系統(tǒng)已經(jīng)成為了許多企業(yè)提高采購效率和降低采購成本的重要工具。采購合同管理系統(tǒng)可…

    科研百科 2024年6月8日
    35
  • 機(jī)關(guān)事業(yè)單位中的領(lǐng)導(dǎo)干部,如何干好分管的基建項(xiàng)目工作

    機(jī)關(guān)事業(yè)單位中,主管基建工作的,在過去都是肥差,只有領(lǐng)導(dǎo)的心腹才可以擔(dān)任這種工作。后來這種風(fēng)氣還漫延到了國企、央企,甚至是大型私企。通常非房地產(chǎn)企業(yè)中,主管大型基建或者項(xiàng)目建設(shè)工作…

    科研百科 2023年9月4日
    311
  • 信息系統(tǒng)項(xiàng)目管理師簡單

    信息系統(tǒng)項(xiàng)目管理師簡單 信息系統(tǒng)項(xiàng)目管理師是負(fù)責(zé)管理信息系統(tǒng)項(xiàng)目的人員,他們的職責(zé)是確保項(xiàng)目的按時(shí)、高質(zhì)量完成。信息系統(tǒng)項(xiàng)目管理師需要了解信息系統(tǒng)項(xiàng)目管理的各個(gè)方面,包括項(xiàng)目規(guī)劃、…

    科研百科 2025年1月25日
    1
  • 四川省教育廳科研項(xiàng)目11SB013

    四川省教育廳科研項(xiàng)目11SB013 近年來,隨著在線教育的興起,越來越多的學(xué)生選擇通過在線課程來學(xué)習(xí)。然而,在線學(xué)習(xí)面臨著一些挑戰(zhàn),如缺乏互動(dòng)、無法監(jiān)督學(xué)習(xí)進(jìn)度等。針對這些問題,四…

    科研百科 2024年8月10日
    4
  • 中小企業(yè)項(xiàng)目管理軟件

    中小企業(yè)項(xiàng)目管理軟件 中小企業(yè)項(xiàng)目管理軟件是一種能夠幫助企業(yè)進(jìn)行項(xiàng)目管理的工具,它可以提高項(xiàng)目管理的效率和質(zhì)量,從而更好地滿足客戶需求,提高企業(yè)競爭力。 項(xiàng)目管理軟件可以幫助中小企…

    科研百科 2024年5月23日
    38
  • 支持原創(chuàng)科研項(xiàng)目

    支持原創(chuàng)科研項(xiàng)目,讓我們共同創(chuàng)造未來 近年來,隨著科技的快速發(fā)展,原創(chuàng)科研項(xiàng)目已經(jīng)成為推動(dòng)社會(huì)進(jìn)步的重要力量。在這些項(xiàng)目中,許多科學(xué)家和工程師致力于探索新的領(lǐng)域,開發(fā)新的技術(shù),為人…

    科研百科 2025年2月12日
    1