小编这次要给大家分享的是vue如何实现同个按钮控制展开和折叠同个事件,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
我就废话不多说了,大家还是直接看代码吧~
<el-button :icon="!moreshow 'el-icon-arrow-down':'el-icon-arrow-up'" @click="getmoreshow">{{!moreshow 更多:隐藏}}</el-button>
data() {
return {
moreshow:false,
count:1,
}
}
mounted() {
this.getmoreshow()//避免点击两次才生效
},
methods: {
getmoreshow(){
if(this.count%2==0){
this.moreshow=true
}else{
this.moreshow=false
}
this.count++
},
}
补充知识:vue 可折叠面板的工作区组件
这个组件中使用了elementui的两个图标
组件Js:
Vue.component('work-container', {
props: ['height'],
data: function () {
return {
isCollapse: false
}
},
computed: {
topbarcssobj: function () {
var obj = { padding: '3px' };
if (this.isCollapse) {
obj.display = 'none';
}
else {
obj.display = 'block';
if (this.height) {
obj.height = this.height + 'px';
} else {
obj.height = '40px';
}
}
return obj;
},
btniconcssobj: function () {
return this.isCollapse ? 'el-icon-caret-bottom' : 'el-icon-caret-top';
},
strview: function () {
return this.isCollapse ? '显示' : '隐藏';
}
},
methods: {
togglebar: function () {
this.isCollapse = !this.isCollapse;
}
},
template: '<el-container>\
<el-header v-bind:>\
<slot name="tbar"></slot>\
</el-header>\
<el-main>\
<div >\
<div v-on:click="togglebar">\
<i v-bind:class="btniconcssobj">{{strview}}查询条件</i>\
</div>\
<div>\
<slot name="btn"></slot>\
</div>\
</div>\
<div>\
<slot name="work"></slot>\
</div>\
</el-main>\
</el-container>'
});
调用:
<script src="~/Scripts/vue/workcontainer.js"></script>
<work-container v-bind:height="80">
<template v-slot:tbar>
<spec-combo v-on:selectspec="setSpec"></spec-combo>
<ban-input v-on:selectban="setBan"></ban-input>
<grade-input v-on:selectban="setGrade"></grade-input>
</template>
<template v-slot:work>
{{spec}}
{{ban}}
{{grade}}
</template>
</work-container>
看完这篇关于vue如何实现同个按钮控制展开和折叠同个事件的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。