vue實(shí)現(xiàn)彈出框內(nèi)嵌頁面展示并添加tab切換展示實(shí)時(shí)加載
最近做業(yè)務(wù)的時(shí)候,發(fā)現(xiàn)產(chǎn)品的原型圖上有一個(gè)彈出框,上面包含了兩個(gè)窗口要進(jìn)行切換。
每個(gè)窗口都有分頁列表展示、搜索、添加和刪除,感覺就是兩個(gè)完整的頁面,如果全寫在一個(gè)頁面會(huì)很麻煩,還可能會(huì)出現(xiàn)一系列的問題,后期改起來比較麻煩,所以我就準(zhǔn)備分開來寫這個(gè)窗口,先寫兩個(gè)頁面,最后看能不能嵌入到彈出框里。
這里插入一下vue的頁面跳轉(zhuǎn)方法,點(diǎn)擊按鈕直接跳轉(zhuǎn)到另一個(gè)頁面,這樣可以先調(diào)整單個(gè)頁面的樣式和功能。
<el-table-column label="字典類型" align="center" :show-overflow-tooltip="true"> <template slot-scope="scope"> <router-link :to="'/system/dict-data/index/' + scope.row.dictId" class="link-type"> <span>{{ scope.row.dictType }}</span> </router-link> </template> </el-table-column>
參數(shù)獲取:
created() { const dictId = this.$route.params && this.$route.params.dictId; this.getType(dictId); this.getTypeList(); },
而且這塊跳轉(zhuǎn)的頁面也是需要配置路由的,要不然頁面就會(huì)404:
{ path: '/system/dict-data', component: Layout, hidden: true, permissions: ['system:dict:list'], children: [ { path: 'index/:dictId(\\d+)', component: () => import('@/views/system/dict/data'), name: 'Data', meta: { title: '字典數(shù)據(jù)', activeMenu: '/system/dict' } } ] },
當(dāng)兩個(gè)頁面的功能都實(shí)現(xiàn)好了之后,開始在主頁面添加彈出框,實(shí)現(xiàn)內(nèi)嵌頁面。
- 屬性變量props: [‘agentId’],該參數(shù)用于父子組件傳值
- 組件創(chuàng)建即created的時(shí)候,賦值請求后臺(tái)加載數(shù)據(jù)
在父頁面中引入子頁面:
添加彈出框,內(nèi)嵌子頁面
<el-dialog :title="filterTitle" :visible.sync="filterDialogVisible" v-if="filterDialogVisible" width="1100px" append-to-body> <el-tabs v-model="filterTabValue" type="border-card" :lazy="true" @tab-click="filterTabClick"> <el-tab-pane label="內(nèi)容1" name="hotel"> <!-- 酒店過濾頁面 --> <HotelFilter :agentId="agentId" v-if="isHotel"></HotelFilter> </el-tab-pane> <el-tab-pane label="內(nèi)容2" name="keyword"> <Keyword :agentId="agentId" v-if="isKeyword"></Keyword> </el-tab-pane> </el-tabs> </el-dialog>
父頁面通過彈框并將子頁面通過引入組件的方式包裹在彈框內(nèi),通過:visible.sync=“filterDialogVisible” v-if="filterDialogVisible"進(jìn)行彈框的展示以及組件的創(chuàng)建和銷毀,并且通過父子組件傳參的方式切換數(shù)據(jù)。注意這里需要使用v-if以便子組件可以在create()中動(dòng)態(tài)展示數(shù)據(jù)。
同理,tabs切換也是通過v-if來控制動(dòng)態(tài)渲染頁面。
//設(shè)置頁面 filterRuleAdd(row) { this.agentId = row.agentId; this.filterDialogVisible = true; this.filterTitle = "渠道名稱:" + row.agentName; this.filterTabValue = "hotel"; this.isHotel = true; }, //禁用配置切換 filterTabClick() { if (this.filterTabValue == "hotel") { this.isHotel = true; this.isKeyword = false; } else if (this.filterTabValue == "keyword") { this.isKeyword = true; this.isHotel = false; } },
參考文檔:http://www.dbjr.com.cn/article/267510.htm
總結(jié)
到此這篇關(guān)于vue實(shí)現(xiàn)彈出框內(nèi)嵌頁面展示并添加tab切換展示實(shí)時(shí)加載的文章就介紹到這了,更多相關(guān)vue彈出框添加tab切換實(shí)時(shí)加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue組件vue-treeselect箭頭和叉圖標(biāo)變大問題及解決
這篇文章主要介紹了vue組件vue-treeselect箭頭和叉圖標(biāo)變大問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。2022-07-07vue2.0結(jié)合DataTable插件實(shí)現(xiàn)表格動(dòng)態(tài)刷新的方法詳解
這篇文章主要介紹了vue2.0結(jié)合DataTable插件實(shí)現(xiàn)表格動(dòng)態(tài)刷新的方法,結(jié)合具體項(xiàng)目實(shí)例形式分析了vue2.0結(jié)合DataTable插件實(shí)現(xiàn)表格動(dòng)態(tài)刷新過程中遇到的問題與相應(yīng)的解決方法,需要的朋友可以參考下2017-03-03vue使用showdown并實(shí)現(xiàn)代碼區(qū)域高亮的示例代碼
這篇文章主要介紹了vue使用showdown并實(shí)現(xiàn)代碼區(qū)域高亮的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10詳解vue中在循環(huán)中使用@mouseenter 和 @mouseleave事件閃爍問題解決方法
這篇文章主要介紹了詳解vue中在循環(huán)中使用@mouseenter 和 @mouseleave事件閃爍問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04vue+element UI實(shí)現(xiàn)樹形表格帶復(fù)選框的示例代碼
這篇文章主要介紹了vue+element UI實(shí)現(xiàn)樹形表格帶復(fù)選框的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04對vue下點(diǎn)擊事件傳參和不傳參的區(qū)別詳解
今天小編就為大家分享一篇對vue下點(diǎn)擊事件傳參和不傳參的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09element?table數(shù)據(jù)量太大導(dǎo)致網(wǎng)頁卡死崩潰的解決辦法
當(dāng)頁面數(shù)據(jù)過多,前端渲染大量的DOM時(shí),會(huì)造成頁面卡死問題,下面這篇文章主要給大家介紹了關(guān)于element?table數(shù)據(jù)量太大導(dǎo)致網(wǎng)頁卡死崩潰的解決辦法,需要的朋友可以參考下2023-02-02vue-cli3使用mock數(shù)據(jù)的方法分析
這篇文章主要介紹了vue-cli3使用mock數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了vue-cli3使用mock數(shù)據(jù)的相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03