先上完成的效果图:列是根据查询结果增加的
数据格式:
表头的数据取出:
data.data.forEach(element => { this.thead.push({ 品名: element.品名, 面取数: element.面取数, LOTNO: element.LOT });
element table中:
<el-table-column v-for="(item,index) in thead" :prop="item.LOTNO" :key="index" align="center" width="180" > <template slot="header"> <tr> <td>{{item.品名}}</td> </tr> <tr> <td>{{item.面取数}}</td> </tr> <tr> <td @click="querylot(item.LOTNO)"> <el-link>{{item.LOTNO}}</el-link> </td> </tr> </template> </el-table-column>
表格内数据整理:
for (let index1 = 3;index1 < Object.keys(结果_data[0]).length;index1++) { let newmap = new Map(); let datakey = Object.keys(结果_data[0])[index1]; newmap.set("mode", datakey); //取出每个数组对象的键值 for (let index2 = 0; index2 < 结果_data_length; index2++) { let datavalue = 结果_data[index2][Object.keys(结果_data[0])[index1]]; if (datakey == "投入日期") { datavalue = datavalue.slice(0, 10); } newmap.set( 结果_data[index2][Object.keys(结果_data[index2])[0]],datavalue);//获得这个键对应的所有的值 }
左侧表头合并:需要注意的是,当有固定列的时候需要设置表格的max-height属性,不然会出现列空白
<el-table :data="tableData" span-method="objectSpanMethod"> objectSpanMethod({ row, column, rowIndex, columnIndex }) { if (columnIndex === 0) { if (rowIndex % this.tableData.length === 0) { return { rowspan: this.tableData.length, colspan: 1 }; } else { return { rowspan: 0, colspan: 0 }; } } }
表格导出:
import FileSaver from "file-saver"; import XLSX from "xlsx"; output() { alert(1); let wb = XLSX.utils.table_to_book(document.querySelector("#mytable")); //mytable为表格的id名 let wbout = XLSX.write(wb, { bookType: "xlsx", bookSST: true, type: "array" }); try { FileSaver.saveAs( new Blob([wbout], { type: "application/octet-stream" }), "sheet.xlsx" ); } catch (e) { if (typeof console !== "undefined") console.log(e, wbout); } return wbout; }
总结
以上所述是小编给大家介绍的Vue+elementui 实现复杂表头和动态增加列的二维表格功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文向大家介绍ElementUI表格组件如何实现动态表头?相关面试题,主要包含被问及ElementUI表格组件如何实现动态表头?时的应答技巧和注意事项,需要的朋友参考一下 不用template包裹也行
本文向大家介绍jQuery实现列表的增加和删除功能,包括了jQuery实现列表的增加和删除功能的使用技巧和注意事项,需要的朋友参考一下 具体代码如下所示: 总结 以上所述是小编给大家介绍的jQuery实现列表的增加和删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!
本文向大家介绍vue elementUI table表格数据 滚动懒加载的实现方法,包括了vue elementUI table表格数据 滚动懒加载的实现方法的使用技巧和注意事项,需要的朋友参考一下 在项目中遇到了一个性能问题 vue+elementUI table表格展示数据,当数据很多的时候,不能一页显示完,同时一次请求数据量太大,会增加网页渲染的时间,影响体验, 这个时候常常有两种方法处理,
vue+elementui里的table组件,怎么实现下面原型里的效果?请教 请教 补充: 是第一行全是下拉框,选中后保存按钮,这样列表里就会多出一行记录,这个是不是做不到的?感觉画原型的人想的太多了
如何根据后端返回的数据来进行动态合并渲染,合并的关键字段为jianyanneirong和jianyanneirong1,合并要求如下图(如果jianyanneirong和jianyanneirong1值不同则进行行合并,但是jianyanneirong1值为空的情况需要进行行列合并)
本文向大家介绍vue elementui form表单验证的实现,包括了vue elementui form表单验证的实现的使用技巧和注意事项,需要的朋友参考一下 最近我们公司将前端框架由easyui 改为 vue+elementui 。自学vue两周 就开始了爬坑之路。业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正,多多交流才能共同进步! 1.问题 我