ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue 树状表格

2020-12-18 12:57:41  阅读:259  来源: 互联网

标签:vue name 表格 树状 football sex score likes basketball


文章目录

1. 初始化配置

安装模块:
npm i vue-table-with-tree-grid -S

main.js 文件

import ZkTable from 'vue-table-with-tree-grid'
Vue.component(ZkTable.name, ZkTable);
2. 使用

<template lang="html">
    <div id="example">
        <zk-table
                ref="table"
                index-text="#"
                :data="data"
                :columns="columns"
                :stripe="props.stripe"
                :border="props.border"
                :show-header="props.showHeader"
                :show-summary="props.showSummary"
                :show-row-hover="props.showRowHover"
                :show-index="props.showIndex"
                :tree-type="props.treeType"
                :is-fold="props.isFold"
                :expand-type="props.expandType"
                :selection-type="props.selectionType">

            <template slot="likes" scope="scope">
                {{ scope.row.likes.join(',') }}
            </template>
        </zk-table>
    </div>
</template>

<script>

    export default {
        name: 'example',

        data() {
            return {
                props: {
                    stripe: false,   // 是否显示间隔斑马纹
                    border: true,  // 是否显示纵向边框
                    showHeader: true,   // 是否显示表头
                    showSummary: false,  // 是否显示表尾合计行
                    showRowHover: true,   // 鼠标悬停时,是否高亮当前行
                    showIndex: true,  // 是否显示数据索引
                    treeType: true,   // 是否为树形表格
                    isFold: true,  // 树形表格中父级是否默认折叠
                    expandType: false,  // 是否为展开行类型表格(为 True 时,需要添加名称为 '$expand' 的作用域插槽, 它可以获取到 row, rowIndex)
                    selectionType: false,  // 是否为多选类型表格
                },
                data: [
                    {
                        name: 'Jack',
                        sex: 'male',
                        likes: ['football', 'basketball'],
                        score: 10,
                        children: [
                            {
                                name: 'Ashley',
                                sex: 'female',
                                likes: ['football', 'basketball'],
                                score: 20,
                                children: [
                                    {
                                        name: 'Ashley',
                                        sex: 'female',
                                        likes: ['football', 'basketball'],
                                        score: 20,
                                    },
                                    {
                                        name: 'Taki',
                                        sex: 'male',
                                        likes: ['football', 'basketball'],
                                        score: 10,
                                        children: [
                                            {
                                                name: 'Ashley',
                                                sex: 'female',
                                                likes: ['football', 'basketball'],
                                                score: 20,
                                            },
                                            {
                                                name: 'Taki',
                                                sex: 'male',
                                                likes: ['football', 'basketball'],
                                                score: 10,
                                                children: [
                                                    {
                                                        name: 'Ashley',
                                                        sex: 'female',
                                                        likes: ['football', 'basketball'],
                                                        score: 20,
                                                    },
                                                    {
                                                        name: 'Taki',
                                                        sex: 'male',
                                                        likes: ['football', 'basketball'],
                                                        score: 10,
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                            {
                                name: 'Taki',
                                sex: 'male',
                                likes: ['football', 'basketball'],
                                score: 10,
                            },
                        ],
                    },
                    {
                        name: 'Tom',
                        sex: 'male',
                        likes: ['football', 'basketball'],
                        score: 20,
                        children: [
                            {
                                name: 'Ashley',
                                sex: 'female',
                                likes: ['football', 'basketball'],
                                score: 20,
                                children: [
                                    {
                                        name: 'Ashley',
                                        sex: 'female',
                                        likes: ['football', 'basketball'],
                                        score: 20,
                                    },
                                    {
                                        name: 'Taki',
                                        sex: 'male',
                                        likes: ['football', 'basketball'],
                                        score: 10,
                                    },
                                ],
                            },
                            {
                                name: 'Taki',
                                sex: 'male',
                                likes: ['football', 'basketball'],
                                score: 10,
                                children: [
                                    {
                                        name: 'Ashley',
                                        sex: 'female',
                                        likes: ['football', 'basketball'],
                                        score: 20,
                                    },
                                    {
                                        name: 'Taki',
                                        sex: 'male',
                                        likes: ['football', 'basketball'],
                                        score: 10,
                                    },
                                ],
                            },
                        ],
                    },
                    {
                        name: 'Tom',
                        sex: 'male',
                        likes: ['football', 'basketball'],
                        score: 20,
                    },
                    {
                        name: 'Tom',
                        sex: 'male',
                        likes: ['football', 'basketball'],
                        score: 20,
                        children: [
                            {
                                name: 'Ashley',
                                sex: 'female',
                                likes: ['football', 'basketball'],
                                score: 20,
                            },
                            {
                                name: 'Taki',
                                sex: 'male',
                                likes: ['football', 'basketball'],
                                score: 10,
                            },
                        ],
                    },
                ],
                columns: [
                    {
                        label: 'name',  // 列标题名称
                        prop: 'name',  // 对应列内容的属性名
                        width: '400px',  // 列宽度
                    },
                    {
                        label: 'sex',
                        prop: 'sex',
                        minWidth: '50px',
                    },
                    {
                        label: 'score',
                        prop: 'score',
                    },
                    {
                        label: 'likes',
                        prop: 'likes',
                        minWidth: '200px',
                        type: 'template',
                        template: 'likes',   // 	列类型为 'template'(自定义列模板) 时,对应的作用域插槽(它可以获取到 row, rowIndex, column, columnIndex)名称
                    },
                ],
            };
        },
    };
</script>

<style scoped lang="less">
    * {
        margin: 0;
        padding: 0;
    }
    .switch-list {
        margin: 20px 0;
        list-style: none;
        overflow: hidden;
    }
    .switch-item {
        margin: 20px;
        float: left;
    }
</style>

3. 效果

在这里插入图片描述

标签:vue,name,表格,树状,football,sex,score,likes,basketball
来源: https://blog.csdn.net/gklcsdn/article/details/111357214

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有