SOURCE

console 命令行工具 X clear

                    
>
console
new Vue({
    el: '#app',
    data() {
        return {
            options: {
                cols: 6,
                rows: 7,
                data: [
                    { content: '测试777', class: 'test', merge: { row: 3, col: 0, rowspan: 3 } },
                    { content: '测试100', class: 'test', merge: { row: 3, col: 2, rowspan: 2, colspan: 2 } },
                    { content: '测试200', class: 'test', merge: { row: 0, col: 0, rowspan: 3, colspan: 3 } },
                    { content: '测试500', class: 'test', merge: { row: 6, col: 2, colspan: 4 } },
                    { content: '测试400', class: 'test', merge: { row: 0, col: 4, colspan: 2 } },
                    { content: '测试600', class: 'test', merge: { row: 1, col: 4, rowspan: 2 } },
                ],
            },
            options2: {
                cols: 8,
                rows: 7,
                data: [
                    { content: '测试1', class: 'test', merge: { row: 0, col: 0, rowspan: 4, colspan: 2 }},
                    { content: '测试3', class: 'test', merge: { row: 0, col: 2, rowspan: 4, colspan: 2 } },
                    { content: '测试3', class: 'test', merge: { row: 0, col: 4, rowspan: 4, colspan: 2 } },
                    { content: '测试8', class: 'test', merge: { row: 2, col: 6, rowspan: 3, colspan: 1 } },
                ],
            },
            options3: {
                cols: 6,
                rows: 7,
                data: [
                    { content: '测试1', class: 'test', merge: { row: 0, col: 0, rowspan: 1, colspan: 6 } },
                    { content: '测试3', class: 'test', merge: { row: 1, col: 0, rowspan: 1, colspan: 4 } },
                    { content: '测试8', class: 'test', merge: { row: 1, col: 4, rowspan: 1, colspan: 2 } },
                    { content: '测试1', class: 'test', merge: { row: 2, col: 0, rowspan: 1, colspan: 2 } },
                    { content: '测试1', class: 'test', merge: { row: 2, col: 2, rowspan: 2, colspan: 1 } },
                    { content: '测试1', class: 'test', merge: { row: 3, col: 3, rowspan: 1, colspan: 2 } },
                    { content: '测试3', class: 'test', merge: { row: 4, col: 0, rowspan: 1, colspan: 4 } },
                    { content: '测试8', class: 'test', merge: { row: 4, col: 4, rowspan: 1, colspan: 2 } },
                    { content: '测试1', class: 'test', merge: { row: 5, col: 0, rowspan: 1, colspan: 6 } },
                ],
            },
        }
    },
    methods: {
        // 当前点击的数据 行数据 行索引 列索引
        handleClick(data, rowData, row, col) {
            console.log(data)
            console.log(rowData)
            console.log(row)
            console.log(col)
        },
    }
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-mergeable-table@1.0.9
"></script>
<div id="app">
    <vue-mergeable-table :options="options" @click="handleClick"></vue-mergeable-table>
    <vue-mergeable-table :options="options2" @click="handleClick"></vue-mergeable-table>
    <vue-mergeable-table :options="options3" @click="handleClick"></vue-mergeable-table>
</div>
body {
    background: #fff;
}
#app {
    display: flex;
    flex-wrap: wrap;
}
.test {
    background: lightblue;
    color: #fff;
}
table {
    margin-bottom: 20px;
    margin-left: 20px;
}