时间:2022-01-17 10:49:00 | 栏目: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:style="topbarcssobj">\ <slot name="tbar"></slot>\ </el-header>\ <el-main>\ <div style="margin:3px;">\ <div style="float:left;margin-right:10px;cursor:pointer;color: #d3dce6;display:none;" 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>