wot-design-uni
Version:
一个基于Vue3+TS开发的uni-app组件库,提供70+高质量组件,支持暗黑模式、国际化和自定义主题。
49 lines (43 loc) • 1.28 kB
text/typescript
import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'
import { baseProps, makeBooleanProp, makeRequiredProp, makeStringProp } from '../common/props'
export type CollapseItemBeforeExpand = (name: string) => boolean | Promise<unknown>
export const collapseItemProps = {
...baseProps,
/**
* 自定义折叠栏内容容器样式类名
*/
customBodyClass: makeStringProp(''),
/**
* 自定义折叠栏内容容器样式
*/
customBodyStyle: makeStringProp(''),
/**
* 折叠栏的标题, 可通过 slot 传递自定义内容
*/
title: makeStringProp(''),
/**
* 禁用折叠栏
*/
disabled: makeBooleanProp(false),
/**
* 折叠栏的标识符
*/
name: makeRequiredProp(String),
/**
* 打开前的回调函数,返回 false 可以阻止打开,支持返回 Promise
*/
beforeExpend: Function as PropType<CollapseItemBeforeExpand>
}
export type CollapseItemProps = ExtractPropTypes<typeof collapseItemProps>
export type CollapseItemExpose = {
/**
* 获取展开状态
* @returns boolean
*/
getExpanded: () => boolean
/**
* 更新展开状态
*/
updateExpand: () => Promise<void>
}
export type CollapseItemInstance = ComponentPublicInstance<CollapseItemProps, CollapseItemExpose>