vue實現(xiàn)自定義表格工具擴展
更新時間:2022年04月12日 08:31:10 作者:$愛的陪伴
這篇文章主要為大家詳細介紹了vue實現(xiàn)自定義表格工具擴展,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue自定義表格工具擴展的具體代碼,供大家參考,具體內(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> ?? ??? ?// 顯隱列對話框 ?? ??? ?<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: "顯示/隱藏", // 彈出層標題 ?? ??? ??? ??? ?open: false, // 彈出層顯示狀態(tài) ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?prop: { ?? ??? ??? ?showSearch: { ?? ??? ??? ??? ?type: Boolean, ?? ??? ??? ??? ?default: true ?? ??? ??? ?}, ?? ??? ??? ?columns: { ?? ??? ??? ??? ?type: Array ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?created () { ?? ??? ??? ?// 顯隱列初始默認隱藏列 ?? ??? ??? ?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'); ?? ??? ??? ?}, ?? ??? ??? ?// 打開顯隱列對話框 ?? ??? ??? ?showColumn (){ ??? ??? ??? ??? ?this.open = true; ??? ??? ??? ?}, ??? ??? ??? ?// 右側列表元素變化 ??? ??? ??? ?changeData (data) { ??? ??? ??? ??? ?for (var item in this.columns) { ??? ??? ??? ??? ??? ?const key = this.columns[item].key; ??? ??? ??? ??? ??? ?this.columns[item].visible = !data.includes(key); ??? ??? ??? ??? ?} ??? ??? ??? ?} ?? ??? ?} ?? ?} </script>
在main.js全局注冊工具組件
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="用戶編號" 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: '用戶編號', visible: true}, ?? ??? ??? ??? ??? ?{key: 1, label: '用戶名稱', visible: true}, ?? ??? ??? ??? ??? ?{key: 2, label: '用戶昵稱', visible: true} ?? ??? ??? ??? ??? ?// ... ?? ??? ??? ??? ?] ?? ??? ??? ?} ?? ??? ?}, ?? ??? ?created () { ?? ??? ??? ?this.getList(); ?? ??? ?}, ?? ??? ?// 查詢 ?? ??? ?getList () { ?? ??? ??? ?// 調用接口 ?? ??? ?} ?? ?} </script>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ElementUI級聯(lián)選擇器實現(xiàn)同一父級下最多只能選中一個子級
本文主要介紹了ElementUI級聯(lián)選擇器實現(xiàn)同一父級下最多只能選中一個子級,同一父級下的子節(jié)點單選,又可以選擇多個不同父級下的節(jié)點,具有一定參考價值,感興趣的可以了解一下2023-10-10