跳到主要内容

折叠面板 Collapse

可以折叠/展开的内容区域。

安装使用

import { TiCollapse, TiCollapseItem } from '@titian-design/mobile-react';

用法示例

基本使用

const App: React.FC = () => {
return (
<>
<TiCollapse>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

{/* 设置手风琴模式 */}
<TiCollapse repel>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
</>
)
}

自定义标题部分,即cell组件区域

const App: React.FC = () => {
return (
<TiCollapse>
<TiCollapseItem useCellSlot>
<div slot="cell">我是标题</div>
- 标题A下的内容 -
</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
)
}

设置默认展开

const App: React.FC = () => {
return (
<TiCollapse value={[ 0 ]}>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
)
}

图标设置

支持左右两侧分别设置图标

const App: React.FC = () => {
return (
<>
<TiCollapse icon="share-wechat-moments">
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

{/* 整体设置右侧icon */}
<TiCollapse rightIcon="share-wechat-moments">
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

{/* 单个设置左侧icon */}
<TiCollapse>
<TiCollapseItem icon="share-wechat-moments" title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

{/* 单体设置右侧icon */}
<TiCollapse>
<TiCollapseItem rightIcon="share-wechat-moments" title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
</>
)
}

禁用面板

const App: React.FC = () => {
return (
<>
<TiCollapse disabled>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

<TiCollapse>
<TiCollapseItem disabled title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
</>
)
}

使用 options 属性创建面板

const App: React.FC = () => {
const options = [
{ title: "标题文字A", content: "- 标题A下的内容 -" },
{ title: "标题文字B", content: "- 标题B下的内容 -" }
];

return (
<TiCollapse options={options} />
)
}

监听展开、关闭、切换事件

const App: React.FC = () => {
const handleChange = useCallback(
(e: CustomEvent<string | number | Array<string | number>>) => {
console.log("切换", e.detail);
},
[]
);

const handleOpen = useCallback((e: CustomEvent<string | number>) => {
console.log("打开", e.detail);
}, []);

const handleClose = useCallback((e: CustomEvent<string | number>) => {
console.log("关闭", e.detail);
}, []);
return (
<>
<TiCollapse
onClose={handleClose}
onOpen={handleOpen}
onChange={handleChange}
>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>

<TiCollapse
onClose={handleClose}
onOpen={handleOpen}
onChange={handleChange}
repel
>
<TiCollapseItem title="标题文字A">- 标题A下的内容 -</TiCollapseItem>
<TiCollapseItem title="标题文字B">- 标题B下的内容 -</TiCollapseItem>
</TiCollapse>
</>
)
}

TiCollapse API

属性 Properties

名称类型必填默认值说明备注
valueArray<string | number> | string | numbernull选中值-
optionsOptions[]-
iconstring-全局设置左侧 icon-
rightIconstring-全局设置右侧 icon-
disabledboolean-全局设置是否禁用-
repelboolean-是否手风琴模式-
dividerboolean-是否展示分割线-
clickableboolean-开启点击反馈-
extOptionStylestring-子项容器样式

Options

详情可参考 ti-cell 属性

interface Options {
"clickable"?: boolean;
"desc"?: string;
"disabled"?: boolean;
"divider"?: boolean;
"icon"?: string;
"label"?: string;
"rightIcon"?: string;
"title": string;
"content": string;
"value"?: string | number;
}

事件 Events

名称参数描述备注
onChange(e: CustomEvent<string | number | Array<string | number>>) => void折叠面板选中值当为手风琴模式时返回值为 string | number,否则为 Array<string | number>
onOpen(e: CustomEvent<string | number>) => void折叠面板展开事件-
onClose(e: CustomEvent<string | number>) => void折叠面板关闭事件-

可扩展样式名 External Class

类名说明备注
extOptionClass子项容器样式
extOptionContentClass子项容器折叠区样式

TiCollapseItem API

属性 Properties

名称类型必填默认值说明备注
valuestringnull用来匹配父类 value,判断当前面板是否需要被展开,如果不传入,默认使用下标(index)-
titlestring[]标题文字-
descstringnull内容文字-
iconstringfalse左侧 icon-
rightIconstringnull右侧 icon-
disabledbooleanfalse是否禁用-
useRightIconSlotbooleanfalse是否使用右侧 icon 插槽-
extStylestring''容器样式-
dividerboolean-是否展示分割线-
clickableboolean-开启点击反馈-

插槽 Slots

名称说明备注
cell常显示区域插槽,配合useCellSlot使用-
title文档-
icon左侧 icon-
rightIcon右侧 icon-
desc内容-
default内容区默认插槽-

可扩展样式名 External Class

类名说明备注
extClass容器样式

CSS 变量 CSS Variables

变量默认值说明备注
--collapse-item-padding-v-折叠区垂直方向的内边距-
--collapse-item-padding-h-折叠区水平方向的内边距-
--collapse-item-text-color-折叠区文本颜色-
--collapse-item-icon-color-右侧 icon 颜色-
--collapse-item-cubic-bezier-动画执行速度-
--collapse-item-cell-padding-v-Cell 组件 --cell-padding-v-
--collapse-item-cell-padding-h-Cell 组件 --cell-padding-h-
--collapse-item-cell-text-color-Cell 组件 --cell-text-color-
--collapse-item-cell-title-text-color-Cell 组件 --cell-title-text-color-
--collapse-item-cell-label-text-color-Cell 组件 --cell-label-text-color-
--collapse-item-cell-desc-text-color-Cell 组件 --cell-desc-text-color-
--collapse-item-cell-bg-color-Cell 组件 --cell-bg-color-
--collapse-item-cell-value-text-color-Cell 组件 --cell-right-icon-color-
--collapse-item-cell-text-disabled-color-Cell 组件 --cell-text-disabled-color-
--collapse-item-cell-hover-bg-color-Cell 组件 --cell-hover-bg-color-
--collapse-item-line-height1.2--
--collapse-item-font-weight400--
--collapse-item-font-size24--