vue.js基于ElementUI封裝了CRUD的彈框組件
前言
代碼寫得不好,為什么不封裝一下呢,如果用的是ElementUI框架,也可以在此基礎(chǔ)上進(jìn)行二次封裝。譬如說,這個(gè)用來對列表數(shù)據(jù)進(jìn)行增刪改查的彈框。

開始封裝
原本只是個(gè)小功能,但是別的模塊也需要用到。
我的想法就是,把彈框標(biāo)題,table表頭,必填字節(jié),接口請求路徑,增刪改查CRUD,等等,放在一個(gè)json對象里面。通過父組件向子組件傳參的方式,展示不同內(nèi)容,調(diào)用不同的接口。
極大提高了代碼的復(fù)用性。
json對象如下所示
// 示例:
let example = {
// 彈框標(biāo)題
popTitle: "編輯主題",
// table
columnList: [
{
prop: "themeName",
label: "主題名稱",
},
{
prop: "themeDescribe",
label: "主題描述",
},
],
// 必填的字段
requiredKeys: ["themeName"],
tableData: this.themeList,
// 主鍵,默認(rèn)為id
idKey: "id",
// 刪除的參數(shù)名稱,默認(rèn)為ids
deleteKey: "ids",
// 批量的參數(shù)名稱,默認(rèn)為ids
batchDeleteKey: "ids",
// 接口請求路徑,增刪改查CRUD
interfaceUrl: {
add: "/target/addTheme",
edit: "/target/updateTheme",
delete: "/target/deleteTheme",
// 批量刪除
batchDelete: "/target/deleteTheme",
list: "/target/themelist",
},
};table表頭作為列表傳入,數(shù)據(jù)結(jié)構(gòu)如下
columnList: [
{
prop: "themeName",
label: "主題名稱",
},
{
prop: "themeDescribe",
label: "主題描述",
},
],在子組件中循環(huán)渲染出表頭
<el-table-column
v-for="(item, index) in columnList"
:key="index"
:show-overflow-tooltip="item.showOverflowTooltip || true"
:align="item.align || 'center'"
:header-align="item.headerAlign || item.align || 'center'"
:label="item.label"
:width="item.width"
>
<template slot-scope="scope">
<span v-if="scope.row.statusBtn === false">{{ scope.row[item.prop] }}</span>
<el-input
v-else-if="scope.row.statusBtn === true"
v-model="scope.row[item.prop]"
size="mini"
/>
</template>
</el-table-column>在父組件中調(diào)用
<!-- 編輯主題的彈框 --> <edit-table-modal ref="editTableModal" :visible.sync="editTableModal.show" :tableObject="themeTableObject" v-if="editTableModal.show" @ok="editTableFunction" />
到此這篇關(guān)于vue.js基于ElementUI封裝了CRUD的彈框組件的文章就介紹到這了,更多相關(guān) ElementUI封裝CRUD內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue之elementUi的el-select同時(shí)獲取value和label的三種方式
- 解決vue elementUI 使用el-select 時(shí) change事件的觸發(fā)問題
- Vue中ElementUI結(jié)合transform使用時(shí)彈框定位不準(zhǔn)確問題解析
- vue3+ts+elementui-plus二次封裝彈框?qū)崙?zhàn)教程
- vue+elementui 實(shí)現(xiàn)新增和修改共用一個(gè)彈框的完整代碼
- vue+elementui實(shí)現(xiàn)點(diǎn)擊table中的單元格觸發(fā)事件--彈框
- Vue中ElementUI結(jié)合transform使用時(shí)如何修復(fù)el-select彈框定位不準(zhǔn)確問題
相關(guān)文章
vue中v-if和v-for一起使用的弊端及解決辦法(同時(shí)使用 v-if 和 v-for不
當(dāng) v-if 和 v-for 同時(shí)存在于一個(gè)元素上的時(shí)候,v-if 會首先被執(zhí)行,這篇文章主要介紹了vue中v-if和v-for一起使用的弊端及解決辦法,需要的朋友可以參考下2023-07-07
vue開發(fā)中后臺系統(tǒng)復(fù)雜表單優(yōu)化技巧
這篇文章主要為大家介紹了vue開發(fā)中后臺系統(tǒng)復(fù)雜表單的優(yōu)化技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Vue導(dǎo)入excel文件的兩種方式(form表單和el-upload)
最近開發(fā)遇到一個(gè)點(diǎn)擊導(dǎo)入按鈕讓excel文件數(shù)據(jù)導(dǎo)入的需求,下面這篇文章主要給大家介紹了關(guān)于Vue導(dǎo)入excel文件的兩種方式,分別是form表單和el-upload兩種方法,需要的朋友可以參考下2022-11-11
vue3使用拖拽組件draggable.next的保姆級教程
做項(xiàng)目的時(shí)候遇到了一個(gè)需求,拖拽按鈕到指定位置,添加一個(gè)輸入框,這篇文章主要給大家介紹了關(guān)于vue3使用拖拽組件draggable.next的保姆級教程,需要的朋友可以參考下2023-06-06
Vue-Element-Admin集成自己的接口實(shí)現(xiàn)登錄跳轉(zhuǎn)
關(guān)于這個(gè)Vue-element-admin中的流程可能對于新的同學(xué)不是很友好,所以本文將結(jié)合實(shí)例代碼,介紹Vue-Element-Admin集成自己的接口實(shí)現(xiàn)登錄跳轉(zhuǎn),感興趣的小伙伴們可以參考一下2021-06-06
vue使用i18n實(shí)現(xiàn)國際化的方法詳解
這篇文章主要給大家介紹了關(guān)于vue使用i18n如何實(shí)現(xiàn)國際化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

