| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="EfficiencyShift" style="flex:1;overflow: hidden"> |
| | | <div id="EfficiencyShift" style="flex:1;overflow: hidden;height: inherit"> |
| | | <a-table :columns="columns" rowKey="id" :dataSource="dataSource.records" :loading="tableLoading" |
| | | :pagination="false" :scroll="{x:'max-content',y:scrollY}" bordered></a-table> |
| | | </div> |
| | |
| | | title: '班次', |
| | | align: 'center', |
| | | width: 300, |
| | | dataIndex: 'shift', |
| | | dataIndex: 'shift' |
| | | }, |
| | | { |
| | | title: '每班小时', |
| | |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.handleWindowResize() |
| | | // this.handleWindowResize() |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener('resize', this.handleWindowResize) |
| | |
| | | }) |
| | | .finally(() => { |
| | | this.tableLoading = false |
| | | this.handleWindowResize() |
| | | }) |
| | | }, |
| | | |
| | |
| | | */ |
| | | handleWindowResize() { |
| | | const devicePixelRatio = window.devicePixelRatio // 浏览器缩放比 |
| | | console.log('devicePixelRatio', devicePixelRatio) |
| | | if (devicePixelRatio < 1) return // 缩放比小于1时不进行高度重新设置,因为scrollY变大后表格超出部分会被隐藏导致滚动条不可见 |
| | | const clientHeight = document.body.clientHeight // 浏览器可视区域高度 |
| | | const clientHeight = document.body.clientHeight || document.documentElement.clientHeight// 浏览器可视区域高度 |
| | | console.log('clientHeight', clientHeight) |
| | | const containerTopToClientTopHeight = document.getElementById('EfficiencyShift').getBoundingClientRect().top // 表格容器顶部到浏览器可视区域顶部的间距 |
| | | const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) // 表格表头高度 |
| | | this.scrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight // 表格垂直滚动条高度 |
| | | console.log('containerTopToClientTopHeight', containerTopToClientTopHeight) |
| | | // const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) // 表格表头高度 |
| | | const tableHeadHeight = document.querySelector('.ant-table-thead th').offsetHeight // 表格表头高度 |
| | | console.log('tableHeadHeight', tableHeadHeight) |
| | | // this.scrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight |
| | | const tableSuitableScrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight // 表格垂直滚动条合适高度(表格水平滚动条刚好在可视区域最下方) |
| | | // const tableSuitableScrollY = 600 |
| | | console.log('tableSuitableScrollY', tableSuitableScrollY) |
| | | const tableContainerHeight = document.getElementById('EfficiencyShift').offsetHeight |
| | | console.log('tableContainerHeight', tableContainerHeight) |
| | | const tableMaxScrollY = tableContainerHeight - tableHeadHeight // 表格垂直滚动条最大高度(若超出则水平滚动条被遮挡) |
| | | console.log('tableMaxScrollY', tableMaxScrollY) |
| | | if (tableSuitableScrollY && tableSuitableScrollY < tableMaxScrollY) this.scrollY = tableSuitableScrollY |
| | | else this.scrollY = tableMaxScrollY |
| | | console.log('scrollY', this.scrollY) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | <style scoped lang="less"> |
| | | .pagination { |
| | | display: flex; |
| | | justify-content: end; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /deep/ .ant-table-row-cell-break-word{ |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | -webkit-line-clamp: 1; |
| | | white-space: initial; |
| | | /deep/ .ant-table-body { |
| | | &::-webkit-scrollbar { |
| | | height: 12px; |
| | | } |
| | | } |
| | | |
| | | </style> |