提交 5b1b43d9 作者: 方治民

feat: fui-collapse 支持嵌套

上级 d816b05c
......@@ -104,6 +104,21 @@
watch: {
open(val) {
this.isOpen = val
},
isOpen(val) {
this.$nextTick(async () => {
let parent = this.$parent;
let parentName = parent.$options.name;
while (parentName !== 'PageBody') {
if (parentName === 'fui-collapse-item') {
await parent.init()
}
parent = parent.$parent;
if (!parent) return false;
parentName = parent.$options.name;
}
})
}
},
updated(e) {
......@@ -136,12 +151,14 @@
},
methods: {
init() {
const promise = []
// #ifndef APP-NVUE
this.getCollapseHeight()
promise.push(this.getCollapseHeight())
// #endif
// #ifdef APP-NVUE
this.getNvueHeight()
promise.push(this.getNvueHeight())
// #endif
return Promise.all(promise)
},
uninstall() {
if (this.collapse) {
......@@ -165,6 +182,7 @@
}
},
getCollapseHeight(index = 0) {
return new Promise((resolve) => {
uni.createSelectorQuery()
// #ifndef MP-ALIPAY
.in(this)
......@@ -186,10 +204,14 @@
this.height = data.height
// #endif
this.isHeight = true
resolve(this.height)
})
.exec()
})
},
getNvueHeight() {
return new Promise((resolve) => {
const result = dom.getComponentRect(this.$refs['fui_collapse__el'], option => {
if (option && option.result && option.size) {
// #ifdef APP-NVUE
......@@ -199,8 +221,11 @@
this.height = option.size.height
// #endif
this.isHeight = true
resolve(this.height)
}
})
})
},
getCollapse(name = 'fui-collapse') {
let parent = this.$parent;
......
......@@ -8,13 +8,33 @@
<view class="fui-page__bd">
<view class="fui-section__title">基础使用</view>
<!--fui-collapse-item可单独使用 @change事件仅无父组件fui-collapse时生效-->
<fui-collapse-item @change="change">
<fui-collapse-item @change="change" :animation="false">
<view class="fui-item__box">
<image src="/static/images/common/logo.png" class="fui-logo"></image>
<text>First UI</text>
</view>
<template v-slot:content>
<view class="fui-descr">First UI 是一套基于uni-app开发的组件化、可复用、易扩展、低耦合的跨平台移动端UI 组件库。</view>
<fui-collapse-item @change="change" :animation="false">
<view class="fui-item__box">
<image src="/static/images/common/logo.png" class="fui-logo"></image>
<text>First UI2</text>
</view>
<template v-slot:content>
<view class="fui-descr">First UI2 是一套基于uni-app开发的组件化、可复用、易扩展、低耦合的跨平台移动端UI 组件库。</view>
<fui-collapse-item @change="change" :animation="false">
<view class="fui-item__box">
<image src="/static/images/common/logo.png" class="fui-logo"></image>
<text>First UI3</text>
</view>
<template v-slot:content>
<view class="fui-descr">First UI3 是一套基于uni-app开发的组件化、可复用、易扩展、低耦合的跨平台移动端UI 组件库。</view>
</template>
</fui-collapse-item>
</template>
</fui-collapse-item>
</template>
</fui-collapse-item>
<view class="fui-section__title">默认展开</view>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论