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>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue resource post請(qǐng)求時(shí)遇到的坑
這篇文章主要介紹了vue resource post請(qǐng)求時(shí)遇到的坑,需要的朋友可以參考下2017-10-10
ElementUI級(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-02
Vue項(xiàng)目獲取url中的參數(shù)(親測(cè)可用)
這篇文章主要介紹了Vue項(xiàng)目獲取url中的參數(shù),本文通過兩種情況分析給大家詳細(xì)介紹,感興趣的朋友一起看看吧2022-08-08
Vue單頁及多頁應(yīng)用全局配置404頁面實(shí)踐記錄
無論單頁還是多頁,我的實(shí)現(xiàn)思路是總體配置404頁面的思路就是在前端路由表中添加一個(gè) path: '/404' 的路由,渲染相應(yīng)的404頁面。這篇文章主要介紹了Vue單頁及多頁應(yīng)用全局配置404頁面實(shí)踐,需要的朋友可以參考下2018-05-05
vue.js源代碼core scedule.js學(xué)習(xí)筆記
這篇文章主要為大家詳細(xì)介紹了vue.js源代碼core scedule.js的學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Vue模仿ElementUI的form表單實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Vue模仿ElementUI的form表單的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

