vue實(shí)現(xiàn)自定義表格工具擴(kuò)展
本文實(shí)例為大家分享了vue自定義表格工具擴(kuò)展的具體代碼,供大家參考,具體內(nèi)容如下
工具組件
<template> ?? ?<div class="right-btn"> ?? ??? ?<el-row> ?? ??? ??? ?<el-tooltip ?? ??? ??? ??? ?effect="dark" ?? ??? ??? ??? ?:content="showSearch ? '隱藏搜索' : '顯示搜索'" ?? ??? ??? ??? ?placement="top" ?? ??? ??? ?> ?? ??? ??? ??? ?<el-button? ?? ??? ??? ??? ??? ?size="mini"? ?? ??? ??? ??? ??? ?circle? ?? ??? ??? ??? ??? ?icon="el-icon-search" ?? ??? ??? ??? ??? ?@click="toggleSearch()"? ?? ??? ??? ??? ?/> ?? ??? ??? ?</tooltip> ?? ??? ??? ?<el-tooltip ?? ??? ??? ??? ?effect="dark" ?? ??? ??? ??? ?content="刷新" ?? ??? ??? ??? ?placement="top" ?? ??? ??? ?> ?? ??? ??? ??? ?<el-button? ?? ??? ??? ??? ??? ?size="mini" ?? ??? ??? ??? ??? ?circle ?? ??? ??? ??? ??? ?icon="el-icon-refresh" ?? ??? ??? ??? ??? ?@click="refresh()" ?? ??? ??? ??? ?/> ?? ??? ??? ?</el-tooltip> ?? ??? ??? ?<el-tooltip ?? ??? ??? ??? ?effect="dark" ?? ??? ??? ??? ?content="顯隱列" ?? ??? ??? ??? ?placement="top" ?? ??? ??? ??? ?v-if="columns" ?? ??? ??? ?> ?? ??? ??? ??? ?<el-button? ?? ??? ??? ??? ??? ?size="mini" ?? ??? ??? ??? ??? ?circle ?? ??? ??? ??? ??? ?icon="el-icon-menu" ?? ??? ??? ??? ??? ?@click="showColumn()" ?? ??? ??? ??? ?/> ?? ??? ??? ?</el-tooltip> ?? ??? ?</el-row> ?? ??? ?// 顯隱列對(duì)話框 ?? ??? ?<el-dialog ?? ??? ??? ?:title="title" ?? ??? ??? ?:visible.sync="open" ?? ??? ??? ?append-to-body ?? ??? ?> ?? ??? ??? ?<el-transfer ?? ??? ??? ??? ?:title="['顯示', '隱藏']" ?? ??? ??? ??? ?v-model="value" ?? ??? ??? ??? ?:data="columns" ?? ??? ??? ??? ?@change="changeData" ?? ??? ??? ?></el-transfer> ?? ??? ?</el-dialog> ?? ?</div> </template> <script> ?? ?export default { ?? ??? ?name: 'RightToolbar', ?? ??? ?data () { ?? ??? ??? ?return { ?? ??? ??? ??? ?value: [], // 顯隱數(shù)據(jù) ?? ??? ??? ??? ?title: "顯示/隱藏", // 彈出層標(biāo)題 ?? ??? ??? ??? ?open: false, // 彈出層顯示狀態(tài) ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?prop: { ?? ??? ??? ?showSearch: { ?? ??? ??? ??? ?type: Boolean, ?? ??? ??? ??? ?default: true ?? ??? ??? ?}, ?? ??? ??? ?columns: { ?? ??? ??? ??? ?type: Array ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?created () { ?? ??? ??? ?// 顯隱列初始默認(rèn)隱藏列 ?? ??? ??? ?for (let item in this.columns) { ?? ??? ??? ??? ?if (this.columns[item].visible === false) { ?? ??? ??? ??? ??? ?this.value.push(parseInt(item)) ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?methods: { ?? ??? ??? ?// 搜索 ?? ??? ??? ?toggleSeach () { ?? ??? ??? ??? ?this.$emit('update:showSeach', !this.showSearch); ?? ??? ??? ?}, ?? ??? ??? ?// 刷新 ?? ??? ??? ?refresh () { ?? ??? ??? ??? ?this.$emit('queryTable'); ?? ??? ??? ?}, ?? ??? ??? ?// 打開顯隱列對(duì)話框 ?? ??? ??? ?showColumn (){ ??? ??? ??? ??? ?this.open = true; ??? ??? ??? ?}, ??? ??? ??? ?// 右側(cè)列表元素變化 ??? ??? ??? ?changeData (data) { ??? ??? ??? ??? ?for (var item in this.columns) { ??? ??? ??? ??? ??? ?const key = this.columns[item].key; ??? ??? ??? ??? ??? ?this.columns[item].visible = !data.includes(key); ??? ??? ??? ??? ?} ??? ??? ??? ?} ?? ??? ?} ?? ?} </script>
在main.js全局注冊(cè)工具組件
import RightToolbar from '@/components/RightToolbar'; // 全局組件掛載 Vue.component('RightToolbar', RightToolbar);
其他頁面引入工具組件
<template> ?? ?<div class="index"> ?? ??? ?<el-form v-show="showSearch"></el-form> ?? ??? ?<right-toolbar ?? ??? ??? ?:showSearch.sync="showSearch" ?? ??? ??? ?@queryTable="getList" ?? ??? ??? ?:columns="columns" ?? ??? ?> ?? ??? ?<right-toolbar> ?? ??? ?<el-table> ?? ??? ??? ?<el-table-column label="用戶編號(hào)" v-if="columns[0].visible"></el-table-column> ?? ??? ??? ?<el-table-column label="用戶名稱" v-if="columns[1].visible"></el-table-column> ?? ??? ??? ?<el-table-column label="用戶昵稱" v-if="columns[2].visible"> ?? ??? ??? ?</el-table-column> ?? ??? ?</el-table> ?? ?</div> </template> <script> ?? ?export default { ?? ??? ?data () { ?? ??? ??? ?return { ?? ??? ??? ??? ?// 顯示搜索條件 ?? ??? ??? ??? ?showSearch: true, ?? ??? ??? ??? ?// 列信息 ?? ??? ??? ??? ?columns: [ ?? ??? ??? ??? ??? ?{key: 0, label: '用戶編號(hào)', visible: true}, ?? ??? ??? ??? ??? ?{key: 1, label: '用戶名稱', visible: true}, ?? ??? ??? ??? ??? ?{key: 2, label: '用戶昵稱', visible: true} ?? ??? ??? ??? ??? ?// ... ?? ??? ??? ??? ?] ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?created () { ?? ??? ??? ?this.getList(); ?? ??? ?}, ?? ??? ?// 查詢 ?? ??? ?getList () { ?? ??? ??? ?// 調(diào)用接口 ?? ??? ?} ?? ?} </script>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue resource post請(qǐng)求時(shí)遇到的坑
這篇文章主要介紹了vue resource post請(qǐng)求時(shí)遇到的坑,需要的朋友可以參考下2017-10-10ElementUI級(jí)聯(lián)選擇器實(shí)現(xiàn)同一父級(jí)下最多只能選中一個(gè)子級(jí)
本文主要介紹了ElementUI級(jí)聯(lián)選擇器實(shí)現(xiàn)同一父級(jí)下最多只能選中一個(gè)子級(jí),同一父級(jí)下的子節(jié)點(diǎn)單選,又可以選擇多個(gè)不同父級(jí)下的節(jié)點(diǎn),具有一定參考價(jià)值,感興趣的可以了解一下2023-10-10利用vue重構(gòu)有贊商城的思路以及總結(jié)整理
這篇文章主要介紹了利用vue重構(gòu)有贊商城的思路以及總結(jié)整理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02Vue項(xiàng)目獲取url中的參數(shù)(親測可用)
這篇文章主要介紹了Vue項(xiàng)目獲取url中的參數(shù),本文通過兩種情況分析給大家詳細(xì)介紹,感興趣的朋友一起看看吧2022-08-08Vue單頁及多頁應(yīng)用全局配置404頁面實(shí)踐記錄
無論單頁還是多頁,我的實(shí)現(xiàn)思路是總體配置404頁面的思路就是在前端路由表中添加一個(gè) path: '/404' 的路由,渲染相應(yīng)的404頁面。這篇文章主要介紹了Vue單頁及多頁應(yīng)用全局配置404頁面實(shí)踐,需要的朋友可以參考下2018-05-05vue.js源代碼core scedule.js學(xué)習(xí)筆記
這篇文章主要為大家詳細(xì)介紹了vue.js源代碼core scedule.js的學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Vue模仿ElementUI的form表單實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Vue模仿ElementUI的form表單的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03