Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 🐛 修复 Collapse 使用 toggleAall 方法时不会触发 before-expand 钩子的问题 #727

Merged
merged 1 commit into from
Nov 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 98 additions & 21 deletions docs/component/collapse.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,13 @@ const value = ref<string[]>(['item1'])

```html
<wd-collapse v-model="value">
<wd-collapse-item
v-for="(item, index) in itemList"
:before-expend="beforeExpend"
:key="index"
:title="item.title"
:name="item.name"
>
<wd-collapse-item v-for="(item, index) in itemList" :before-expend="beforeExpend" :key="index" :title="item.title" :name="item.name">
{{ item.body }}
</wd-collapse-item>
</wd-collapse>
```

```ts

import { useToast } from '@/uni_modules/wot-design-uni'
const toast = useToast()
const value = ref<string[]>(['item1'])
Expand Down Expand Up @@ -152,14 +145,60 @@ Collapse 查看更多的模式下,可以使用插槽定义自己想要的折
</wd-collapse>
```

## 嵌套使用

`collapse`可以嵌套使用,同时由于`collapse-item`的内容容器存在默认的`padding`,所以嵌套的`collapse`需要设置`custom-body-style`或者`custom-body-class`来覆盖默认样式。

***以下为示例,也可以自行调整样式。***

:::tip 注意
`custom-body-style`和`custom-body-class`在`$LOWEST_VERSION$`及以上版本支持。
Moonofweisheng marked this conversation as resolved.
Show resolved Hide resolved
:::

```html
<view class="collapse">
<wd-collapse v-model="collapseRoot">
<wd-collapse-item custom-body-style="padding:0 0 0 14px" v-for="item in 5" :key="item" :title="`标签${item}`" :name="`${item}`">
<wd-collapse v-model="collapseList[item - 1]">
<wd-collapse-item
v-for="(item, index) in itemList"
:custom-class="index === 0 ? 'no-border' : ''"
:key="index"
:title="item.title"
:name="item.name"
>
{{ item.body }}
</wd-collapse-item>
</wd-collapse>
</wd-collapse-item>
</wd-collapse>
</view>
```
```css
.collapse {
:deep() {
.no-border {
&::after {
display: none;
}
}
}
}
```

```ts
const collapseRoot = ref<string[]>(['0'])
const collapseList = ref<Array<string[]>>([['item1'], ['item2'], ['item3'], ['item4'], ['item5']])
```

## CollapseItem Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
| ------------- | ----------------------------------------------------------- | -------- | ------ | ------ | -------- |
| name | 折叠栏的标识符 | string | - | - | - |
| title | 折叠栏的标题, 支持同名 slot 自定义内容 | string | - | '' | - |
| title | 折叠栏的标题, 支持同名 slot 自定义内容 | string | - | '' | - |
| disabled | 禁用折叠栏 | boolean | - | false | - |
| before-expend | 打开前的回调函数,返回 false 可以阻止打开,支持返回 Promise | Function | - | false | - |
| before-expend | 打开前的回调函数,返回 false 可以阻止打开,支持返回 Promise | Function | - | - | - |

### `before-expend` 执行时会传递以下回调参数:

Expand All @@ -185,24 +224,62 @@ Collapse 查看更多的模式下,可以使用插槽定义自己想要的折

## Methods

| 方法名 | 说明 | 参数 | 最低版本 |
| --- | --- | --- | --- |
| toggleAll | 切换所有面板展开状态,传 `true` 为全部展开,`false` 为全部收起,不传参为全部切换 | _options?: boolean \| object_ | 0.2.6 |
| 方法名 | 说明 | 参数 | 最低版本 |
| --------- | -------------------------------------------------------------------------------- | ------------------------------------ | -------- |
| toggleAll | 切换所有面板展开状态,传 `true` 为全部展开,`false` 为全部收起,不传参为全部切换 | `options?: CollapseToggleAllOptions` | 0.2.6 |

Comment on lines +227 to +230
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

toggleAll 方法的参数说明需要完善

toggleAll 方法的参数描述不够详细,需要补充参数类型说明。

建议添加参数说明:

| toggleAll | 切换所有面板展开状态,传 `true` 为全部展开,`false` 为全部收起,不传参为全部切换 | `options?: CollapseToggleAllOptions` | 0.2.6    |
+
+### CollapseToggleAllOptions 参数说明
+| 参数名 | 说明 | 类型 | 默认值 |
+| --- | --- | --- | --- |
+| expanded | 是否展开,true 为展开,false 为收起 | boolean | - |
+| skipDisabled | 是否跳过禁用项 | boolean | false |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| 方法名 | 说明 | 参数 | 最低版本 |
| --------- | -------------------------------------------------------------------------------- | ------------------------------------ | -------- |
| toggleAll | 切换所有面板展开状态,传 `true` 为全部展开,`false` 为全部收起,不传参为全部切换 | `options?: CollapseToggleAllOptions` | 0.2.6 |
| 方法名 | 说明 | 参数 | 最低版本 |
| --------- | -------------------------------------------------------------------------------- | ------------------------------------ | -------- |
| toggleAll | 切换所有面板展开状态,传 `true` 为全部展开,`false` 为全部收起,不传参为全部切换 | `options?: CollapseToggleAllOptions` | 0.2.6 |
### CollapseToggleAllOptions 参数说明
| 参数名 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| expanded | 是否展开,true 为展开,false 为收起 | boolean | - |
| skipDisabled | 是否跳过禁用项 | boolean | false |

### CollapseToggleAllOptions 参数说明

| 参数名 | 说明 | 类型 | 默认值 |
| ------------ | ----------------------------------- | ------- | ------ |
| expanded | 是否展开,true 为展开,false 为收起 | boolean | - |
| skipDisabled | 是否跳过禁用项 | boolean | false |

### toggleAll 方法示例

```html
<wd-collapse ref="collapse">...</wd-collapse>
```

```ts
import { ref } from 'vue'
import type { CollapseInstance } from '@/uni_modules/wot-design-uni/components/wd-collapse/types'

const collapseRef = ref<CollapseInstance>()

// 全部切换
collapseRef.value?.toggleAll()
// 全部展开
collapseRef.value?.toggleAll(true)
// 全部收起
collapseRef.value?.toggleAll(false)

// 全部全部切换,并跳过禁用项
collapseRef.value?.toggleAll({
skipDisabled: true
})
// 全部选中,并跳过禁用项
collapseRef.value?.toggleAll({
expanded: true,
skipDisabled: true
})
```

## Collapse Slot

| name | 说明 | 最低版本 |
| ---- | ---------------------------------------------------- | -------- |
| title |标题,便于开发者自定义标题(非 viewmore 使用) | 1.2.27 |
| more | 查看更多,便于开发者自定义查看更多类型的展开收起样式 | - |
| name | 说明 | 最低版本 |
| ----- | ---------------------------------------------------- | -------- |
| title | 标题,便于开发者自定义标题(非 viewmore 使用) | 1.2.27 |
| more | 查看更多,便于开发者自定义查看更多类型的展开收起样式 | - |

## CollapseItem 外部样式类

| 类名 | 说明 | 最低版本 |
| ------------ | ----------------------- | -------- |
| custom-class | collapseItem 根节点样式 | - |
| 类名 | 说明 | 最低版本 |
| ----------------- | ------------------------------ | ---------------- |
| custom-class | collapseItem 根节点样式 | - |
| custom-body-style | 自定义折叠面板内容容器的样式 | $LOWEST_VERSION$ |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

需要替换版本号占位符

请将 $LOWEST_VERSION$ 替换为实际的版本号,以确保文档的准确性。

| custom-body-class | 自定义折叠面板内容容器的样式类 | $LOWEST_VERSION$ |

**注意:组件内插槽样式不生效,因此使用插槽时需注意添加外部样式类**

## Collapse 外部样式类

Expand Down
Loading