<el-collapse
v-model="active"
accordion
@change="handleCollapseChange"
ref="myCollapseRef"
>
<el-collapse-item title="日历图" name="1">
<div style="width: 100%; display: flex">
<calendar-charts
:calendarMonthData="calendarMonthData"
:monthNum="time"
@getData="getCalendarClickData"
ref="calendarRef"
></calendar-charts>
</div>
</el-collapse-item>
</el-collapse>
<script>
export default {
data() {
return {
...
}
},
mounted() {
this.clientWidth = document.documentElement.clientWidth || document.body.clientWidth;
this.clientHeight = document.documentElement.clientHeight || document.body.cientHeight;
// 获取折叠面板折叠前的高度
const preCollapseHeight = this.$refs.myCollapseRef.$el.offsetHeight;
this.otherHeight = Math.ceil($(".el-row").outerHeight()) + preCollapseHeight;
// this.maxHeight1 = this.clientHeight - this.otherHeight - 150 + "px";
window.onresize = () => {
this.clientHeight =
document.documentElement.clientHeight || document.body.clientHeight;
this.updateMaxHeight(this.clientHeight, this.otherHeight);
};
this.updateMaxHeight(this.clientHeight, this.otherHeight);
},
watch: {
clientHeight(val) {
this.updateMaxHeight(val, this.otherHeight);
},
otherHeight(val) {
this.updateMaxHeight(this.clientHeight, val);
}
},
methods: {
updateMaxHeight(clientHeight, otherHeight) {
if (!this.timer) {
this.clientHeight = clientHeight;
this.otherHeight = otherHeight;
this.timer = true;
let that = this;
setTimeout(function () {
that.maxHeight1 = that.clientHeight - that.otherHeight - 155 + "px";
//160是顶部和底部button加table上边距的高度
that.timer = false;
}, 100);
}
},
// 监听折叠状态
handleCollapseChange() {
// 折叠前的高度
const preCollapseHeight = this.$refs.myCollapseRef.$el.offsetHeight;
this.otherHeight = Math.ceil($(".el-row").outerHeight()) + preCollapseHeight;
this.updateMaxHeight(this.clientHeight, this.otherHeight);
// 监听过渡动画结束事件
this.$refs.myCollapseRef.$el.addEventListener("transitionend", this.handleTransitionEnd);
},
handleTransitionEnd() {
// 折叠后的高度
const postCollapseHeight = this.$refs.myCollapseRef.$el.offsetHeight;
// 移除过渡动画结束事件的监听器
this.$refs.myCollapseRef.$el.removeEventListener("transitionend", this.handleTransitionEnd);
// 在这里可以对折叠前后的高度进行处理
this.otherHeight = Math.ceil($(".el-row").outerHeight()) + postCollapseHeight;
this.updateMaxHeight(this.clientHeight, this.otherHeight);
},
}
}
</script>
原文地址:https://blog.csdn.net/m0_62323730/article/details/131398439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_23314.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。