四时宝库

程序员的知识宝库

vue实现动态合并行(vue 合并行)

注意:一定要按照合并列排序。

<body>
<div class="dashboard-container" id="order-app" v-loading="loading">

    <div class="container" >



        <!-- 搜索项 -->
        <div class="tableBar">



            <template>
                <div>
                    <el-table :data='table' border fit :span-method="objectSpanMethod">
                        <el-table-column prop="checkRoom" label="检查房间"> </el-table-column>
                        <el-table-column prop="checkProject" label="检查项目"> </el-table-column>
                        <el-table-column prop="checkMoney" label="检查费用"> </el-table-column>
                        <el-table-column prop="attention" label="注意事项"> </el-table-column>
                        <el-table-column prop="appointmentTime" label="预约时间"> </el-table-column>
                    </el-table>
                </div>
            </template>


    </div>


</div>




    let vue1 = new Vue({
            el: '#order-app',
            data() {
                return {
                    //表格数据
                    table: [{
                        id: '1',
                        checkRoom: 'CTROOM',
                        checkProject: '颈椎MRICT',
                        checkMoney: '300.22',
                        attention: '检查前空腹',
                        appointmentTime: ''
                    },  {
                        id: '1',
                        checkRoom: 'DR',
                        checkProject: '颈椎MRICT22',
                        checkMoney: '340.22',
                        attention: '检查前空腹',
                        appointmentTime: '2019-5-29 10:30'
                    }, {
                        id: '2',
                        checkRoom: 'DR',
                        checkProject: '鼻骨',
                        checkMoney: '500.22',
                        attention: '检查前空腹',
                        appointmentTime: '2019-5-29 9:30'
                    }
,
                        {
                            id: '1',
                            checkRoom: 'CTROOM',
                            checkProject: '颈椎MRICT1',
                            checkMoney: '303.22',
                            attention: '检查前空腹',
                            appointmentTime: ''
                        },

                    ],


                }
            },


            created() {
                // 给table赋值,重新遍历新增rowSpan属性,checkRoom,appointmentTime为table里面需要合并的属性名称,根据自己需要给表赋值
                this.table = this.mergeTableRow(this.table, ['checkRoom'])

            },
            mounted() {


            },
            methods: {

                objectSpanMethod({ row, column }) {
                    const span = column['property'] + '-span'
                    if (row[span]) {
                        return row[span]
                    }
                },
                mergeTableRow(data, merge) {
                    if (!merge || merge.length === 0) {
                        return data
                    }
                    merge.forEach((m) => {
                        const mList = {}
                        data = data.map((v, index) => {
                            const rowVal = v[m]
                            if (mList[rowVal]) {
                                mList[rowVal]++
                                data[index - (mList[rowVal] - 1)][m + '-span'].rowspan++
                                v[m + '-span'] = {
                                    rowspan: 0,
                                    colspan: 0
                                }
                            } else {
                                mList[rowVal] = 1
                                v[m + '-span'] = {
                                    rowspan: 1,
                                    colspan: 1
                                }
                            }
                            return v
                        })
                    })
                    return data
                }
            }
        }

    );
</script>

</body>


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接