最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue 封装多行间隔表头组件

    正文概述 掘金(Allshadow)   2021-01-10   570

    分享

    封装了一个 vue 表格组件,如若有更好的想法,请指导

    基本的多行间隔表头

    实现功能

    vue 封装多行间隔表头组件vue 封装多行间隔表头组件 vue 封装多行间隔表头组件

    组件代码

    <template>

    <div class="base-muti-table">
            <table border="0" cellspacing="0" cellpadding="0">
                <tr v-for="(item, index) in dataList" :key="index">
                    <template v-if="item.th">
                        <th
                            v-for="(list, listIndex) in item.list"
                            :key="listIndex"
                            :rowspan="list.rowspan"
                            :colspan="list.colspan"
                        >
                            {{ list.label }}
                        </th>
                    </template>
                    <template v-else>
                        <td
                            v-for="(list, listIndex) in item.list"
                            :key="listIndex"
                            :rowspan="list.rowspan"
                            :colspan="list.colspan"
                        >
                            <el-input 
                                v-model="data[list.prop]"
                                v-if="list.isEdit"
                            >
                            </el-input>
                            <span v-else>
                                {{data[list.prop]? data[list.prop] : '暂无' }}
                            </span>
                        </td>
                    </template>
                </tr>
            </table>
    </div>

    <script>

    export default {
        props: {
            data: {
                type: Object,
                default: ()=> ({
                    name: '我是谁',
                    class: '9年一般班',
                    studentNum: '234668733',
                    height:'175cm',
                    weight: '60kg',
                    years: '28',
                    sex: '男'
                }),
            },

            dataList: {
                type: Array,
                // 以下是数组的基本格式
                //如果 th 为 true 说明是表头,false 则为正常列

                default: () => [
                    {
                        th: true,
                        list: [
                            {
                                label: '姓名',
                            },
                            {
                                label: '学号',
                            },
                            {
                                label: '身份证',
                            },
                            {
                                label: '班级',
                            }
                        ],
                    },
                    {
                        th: false,
                        list: [
                            {
                                prop: 'name',
                            },
                            {
                                prop: 'studentNum',
                            },
                            {
                                prop: 'studentNum',
                            },
                            {
                                prop: 'class',
                            }
                        ],
                    },
                    {
                        th: false,
                        list: [
                            {
                                prop: 'name',
                            },
                            {
                                prop: 'studentNum',
                            },
                            {
                                prop: 'studentNum',
                            },
                            {
                                prop: 'class',
                            }
                        ],
                    },
                    {
                        th: true,
                        list: [
                            {
                                label: '身高',
                            },
                            {
                                label: '体重',
                            },
                            {
                                label: '年龄',
                            },
                            {
                                label: '性别',
                            }
                        ],
                    },
                    {
                        th: false,
                        list: [
                            {
                                prop: 'height',
                            },
                            {
                                prop: 'weight',
                            },
                            {
                                prop: 'years',
                            },
                            {
                                prop: 'sex',
                            }
                        ],
                    },
                ],
            },
        },

    };

    <style>

    <style scoped lang="scss">
        table{
            // table-layout: fixed;
            border-collapse: collapse;
            padding: 5px;
            // margin: 20px;
            width: 100%;
            th,td{
                padding: 12px;
                font-size: 12px;
                border: 1px solid #ccc;
            }
            th{
                background: #ebeef5;
                color: #909399;
            }
            td{
                text-align: center;    
            }
        }


        .base-muti-table {
            width: 100%;
            padding: 20px;
            box-sizing: border-box;
        }
    </style>

    起源地下载网 » vue 封装多行间隔表头组件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元