| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="EfficiencyShift" style="flex:1;overflow: hidden"> |
| | | <a-table :columns="columns" rowKey="id" :dataSource="dataSource.records" :loading="tableLoading" |
| | | :pagination="false" :scroll="{x:'max-content',y:scrollY}" bordered></a-table> |
| | | <div id="EfficiencyShift" style="flex:1;overflow: hidden;height: inherit"> |
| | | <a-table :columns="columns" rowKey="id" :dataSource="dataSource.records?dataSource.records:[]" |
| | | :loading="tableLoading" |
| | | :pagination="false" :scroll="{x:'max-content',y:scrollY}" bordered> |
| | | <!--<template slot="equipmentModel" slot-scope="text, record">--> |
| | | <!--<editable-cell :text="text" @change="onCellChange(record.id, 'equipmentModel', $event)"/>--> |
| | | <!--</template>--> |
| | | </a-table> |
| | | </div> |
| | | <!--<div class="pagination">--> |
| | | <!--<a-pagination--> |
| | |
| | | import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' |
| | | import api from '@api/mdc' |
| | | |
| | | // import EditableCell from './EditableCell.vue' |
| | | |
| | | export default { |
| | | name: 'OEEAnalysisList', |
| | | components: {}, |
| | | components: { }, |
| | | data() { |
| | | return { |
| | | dates: [moment().subtract('month', 1), moment().subtract('month', 1)], |
| | |
| | | } |
| | | }, |
| | | { |
| | | title: '车间', |
| | | align: 'center', |
| | | dataIndex: 'productionName', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '设备统一编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentId', |
| | |
| | | { |
| | | title: '设备型号', |
| | | align: 'center', |
| | | width: 110, |
| | | dataIndex: 'equipmentModel' |
| | | width: 200, |
| | | dataIndex: 'equipmentModel', |
| | | scopedSlots: { customRender: 'equipmentModel' } |
| | | }, |
| | | { |
| | | title: '日期', |
| | |
| | | title: '班次', |
| | | align: 'center', |
| | | width: 300, |
| | | dataIndex: 'shift', |
| | | dataIndex: 'shift' |
| | | }, |
| | | { |
| | | title: '每班小时', |
| | |
| | | width: 110, |
| | | customRender: text => text != 0 ? parseFloat((text * 100).toFixed(2)) + '%' : 0 |
| | | }, |
| | | { |
| | | title: '加工零件数(件)', |
| | | dataIndex: 'processQuantity', |
| | | align: 'center', |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: '标准加工时间(分钟)', |
| | | dataIndex: 'standardProcessDuration', |
| | | align: 'center', |
| | | width: 120 |
| | | }, |
| | | // { |
| | | // title: '加工零件数(件)', |
| | | // dataIndex: 'processQuantity', |
| | | // align: 'center', |
| | | // width: 120 |
| | | // }, |
| | | // { |
| | | // title: '标准加工时间(分钟)', |
| | | // dataIndex: 'standardProcessDuration', |
| | | // align: 'center', |
| | | // width: 120 |
| | | // }, |
| | | { |
| | | title: '性能开动率', |
| | | dataIndex: 'performanceRate', |
| | |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.handleWindowResize() |
| | | // this.handleWindowResize() |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener('resize', this.handleWindowResize) |
| | |
| | | this.tableLoading = true |
| | | getAction(this.url.list, this.queryParam) |
| | | .then(res => { |
| | | if (res.success) { |
| | | if (res.success && res.result) { |
| | | this.dataSource = res.result |
| | | this.tableLoading = false |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.tableLoading = false |
| | | this.handleWindowResize() |
| | | }) |
| | | }, |
| | | |
| | |
| | | this.loadData() |
| | | }, |
| | | |
| | | onCellChange(key, dataIndex, value) { |
| | | console.log('触发onCellChange', key, dataIndex, value) |
| | | }, |
| | | |
| | | /** |
| | | * 当浏览器可视窗口尺寸发生改变时触发 |
| | | */ |
| | | 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> |