您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“vue.js基于ElementUI如何封裝CRUD的彈框組件”,內容詳細,步驟清晰,細節處理妥當,希望這篇“vue.js基于ElementUI如何封裝CRUD的彈框組件”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
原本只是個小功能,但是別的模塊也需要用到。
我的想法就是,把彈框標題,table表頭,必填字節,接口請求路徑,增刪改查CRUD,等等,放在一個json對象里面。通過父組件向子組件傳參的方式,展示不同內容,調用不同的接口。
極大提高了代碼的復用性。
// 示例: let example = { // 彈框標題 popTitle: "編輯主題", // table columnList: [ { prop: "themeName", label: "主題名稱", }, { prop: "themeDescribe", label: "主題描述", }, ], // 必填的字段 requiredKeys: ["themeName"], tableData: this.themeList, // 主鍵,默認為id idKey: "id", // 刪除的參數名稱,默認為ids deleteKey: "ids", // 批量的參數名稱,默認為ids batchDeleteKey: "ids", // 接口請求路徑,增刪改查CRUD interfaceUrl: { add: "/target/addTheme", edit: "/target/updateTheme", delete: "/target/deleteTheme", // 批量刪除 batchDelete: "/target/deleteTheme", list: "/target/themelist", }, };
columnList: [ { prop: "themeName", label: "主題名稱", }, { prop: "themeDescribe", label: "主題描述", }, ],
<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>
<!-- 編輯主題的彈框 --> <edit-table-modal ref="editTableModal" :visible.sync="editTableModal.show" :tableObject="themeTableObject" v-if="editTableModal.show" @ok="editTableFunction" />
讀到這里,這篇“vue.js基于ElementUI如何封裝CRUD的彈框組件”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。