vue.js基于ElementUI封裝了CRUD的彈框組件
前言
代碼寫得不好,為什么不封裝一下呢,如果用的是ElementUI框架,也可以在此基礎(chǔ)上進(jìn)行二次封裝。譬如說,這個(gè)用來對(duì)列表數(shù)據(jù)進(jìn)行增刪改查的彈框。
開始封裝
原本只是個(gè)小功能,但是別的模塊也需要用到。
我的想法就是,把彈框標(biāo)題,table表頭,必填字節(jié),接口請(qǐng)求路徑,增刪改查CRUD,等等,放在一個(gè)json對(duì)象里面。通過父組件向子組件傳參的方式,展示不同內(nèi)容,調(diào)用不同的接口。
極大提高了代碼的復(fù)用性。
json對(duì)象如下所示
// 示例: 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", // 接口請(qǐng)求路徑,增刪改查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)容請(qǐng)搜索腳本之家以前的文章或繼續(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如何使用js對(duì)圖片進(jìn)行點(diǎn)擊標(biāo)注圓點(diǎn)并記錄它的坐標(biāo)
這篇文章主要介紹了vue如何使用js對(duì)圖片進(jìn)行點(diǎn)擊標(biāo)注圓點(diǎn)并記錄它的坐標(biāo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04element-ui?form表單的動(dòng)態(tài)rules校驗(yàn)功能實(shí)現(xiàn)
在vue項(xiàng)目中,有時(shí)候可能會(huì)用到element-ui?form表單的動(dòng)態(tài)rules校驗(yàn),這篇文章主要介紹了element-ui form表單的動(dòng)態(tài)rules校驗(yàn),我們可以巧妙的運(yùn)用element-ui form表單里面form-item的校驗(yàn)規(guī)則來處理,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07vscode中開發(fā)運(yùn)行uniapp項(xiàng)目詳細(xì)步驟
VSCode作為一個(gè)非常強(qiáng)大的代碼編輯器,可以集成眾多的插件和工具來優(yōu)化開發(fā)效率,這篇文章主要給大家介紹了關(guān)于vscode中開發(fā)運(yùn)行uniapp項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2023-07-07vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼
這篇文章主要介紹了vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09解決vue里a標(biāo)簽值解析變量,跳轉(zhuǎn)頁面,前面加默認(rèn)域名端口的問題
這篇文章主要介紹了解決vue里a標(biāo)簽值解析變量,跳轉(zhuǎn)頁面,前面加默認(rèn)域名端口的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vue Render函數(shù)原理及代碼實(shí)例解析
這篇文章主要介紹了Vue Render函數(shù)原理及代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07