提交 2024d88a authored 作者: junjie's avatar junjie

refactor: 视图表格组件,渲染速度优化

上级 9917a9ef
...@@ -88,14 +88,12 @@ export default { ...@@ -88,14 +88,12 @@ export default {
} }
}, },
watch: { watch: {
chart() { chart: function() {
this.init() this.init()
this.calcHeight()
} }
}, },
mounted() { mounted() {
this.init() this.init()
this.calcHeight()
// 监听元素变动事件 // 监听元素变动事件
eventBus.$on('resizing', (componentId) => { eventBus.$on('resizing', (componentId) => {
this.chartResize() this.chartResize()
...@@ -103,6 +101,13 @@ export default { ...@@ -103,6 +101,13 @@ export default {
}, },
methods: { methods: {
init() { init() {
this.resetHeight()
this.$nextTick(() => {
this.initData()
this.calcHeightDelay()
})
},
initData() {
const that = this const that = this
let datas = [] let datas = []
if (this.chart.data) { if (this.chart.data) {
...@@ -117,30 +122,33 @@ export default { ...@@ -117,30 +122,33 @@ export default {
this.initStyle() this.initStyle()
}) })
window.onresize = function() { window.onresize = function() {
that.calcHeight() that.calcHeightDelay()
} }
}, },
calcHeight() { calcHeightRightNow() {
this.$nextTick(() => { this.$nextTick(() => {
setTimeout(() => { if (this.$refs.tableContainer) {
if (this.$refs.tableContainer) { const currentHeight = this.$refs.tableContainer.offsetHeight
const currentHeight = this.$refs.tableContainer.offsetHeight const tableMaxHeight = currentHeight - this.$refs.title.offsetHeight
const tableMaxHeight = currentHeight - this.$refs.title.offsetHeight let tableHeight
let tableHeight if (this.chart.data) {
if (this.chart.data) { tableHeight = (this.chart.data.tableRow.length + 2) * 36
tableHeight = (this.chart.data.tableRow.length + 2) * 36 } else {
} else { tableHeight = 0
tableHeight = 0 }
} if (tableHeight > tableMaxHeight) {
if (tableHeight > tableMaxHeight) { this.height = tableMaxHeight + 'px'
this.height = tableMaxHeight + 'px' } else {
} else { this.height = 'auto'
this.height = 'auto'
}
} }
}, 100) }
}) })
}, },
calcHeightDelay() {
setTimeout(() => {
this.calcHeightRightNow()
}, 100)
},
initStyle() { initStyle() {
if (this.chart.customAttr) { if (this.chart.customAttr) {
const customAttr = JSON.parse(this.chart.customAttr) const customAttr = JSON.parse(this.chart.customAttr)
...@@ -243,6 +251,10 @@ export default { ...@@ -243,6 +251,10 @@ export default {
initClass() { initClass() {
return this.chart.id return this.chart.id
},
resetHeight() {
this.height = 100
} }
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论