77 lines
1.4 KiB
Vue
77 lines
1.4 KiB
Vue
<template>
|
|
<section class="AiPullDown">
|
|
<div class="line"/>
|
|
<div class="down-content" @click="handleExpand">
|
|
<i :class="expandIcon"/>
|
|
<span>{{ btnText }}</span>
|
|
</div>
|
|
<div class="line"/>
|
|
</section>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "AiPullDown",
|
|
props: {
|
|
target: String,
|
|
height: {default: 4},
|
|
},
|
|
data() {
|
|
return {
|
|
expand: false
|
|
}
|
|
},
|
|
methods: {
|
|
handleExpand() {
|
|
this.expand = !this.expand
|
|
if (this.target) {
|
|
|
|
} else this.$emit('change', this.expandStyle)
|
|
}
|
|
},
|
|
computed: {
|
|
btnText() {
|
|
return this.expand ? '收起高级搜索' : '展开高级搜索'
|
|
},
|
|
expandStyle() {
|
|
let initStyle = {overflow: 'hidden', height: `${this.height}px`}
|
|
this.expand && (initStyle.height = "auto")
|
|
return initStyle
|
|
},
|
|
expandIcon() {
|
|
return this.expand ? 'iconfont iconDouble_Up' : 'iconfont iconDouble_Down'
|
|
}
|
|
},
|
|
mounted() {
|
|
this.$emit("change", this.expandStyle)
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.AiPullDown {
|
|
display: flex;
|
|
|
|
.line {
|
|
flex: 1;
|
|
min-width: 0;
|
|
border-top: 1px solid #eee;
|
|
}
|
|
|
|
.down-content {
|
|
cursor: pointer;
|
|
padding: 0 8px;
|
|
height: 24px;
|
|
border-radius: 0 0 8px 8px;
|
|
border: 1px solid #eee;
|
|
border-top: 0;
|
|
box-sizing: border-box;
|
|
color: #333;
|
|
font-size: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
</style>
|