mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-08-19 10:29:45 +08:00
44 lines
882 B
TypeScript
44 lines
882 B
TypeScript
import { defineComponent } from 'vue';
|
|
import { truthProp, createNamespace } from '../utils';
|
|
import { BORDER_TOP_BOTTOM } from '../utils/constant';
|
|
|
|
const [name, bem] = createNamespace('cell-group');
|
|
|
|
export default defineComponent({
|
|
name,
|
|
|
|
inheritAttrs: false,
|
|
|
|
props: {
|
|
title: String,
|
|
border: truthProp,
|
|
},
|
|
|
|
setup(props, { slots, attrs }) {
|
|
const renderGroup = () => (
|
|
<div class={[bem(), { [BORDER_TOP_BOTTOM]: props.border }]} {...attrs}>
|
|
{slots.default?.()}
|
|
</div>
|
|
);
|
|
|
|
const renderTitle = () => (
|
|
<div class={bem('title')}>
|
|
{slots.title ? slots.title() : props.title}
|
|
</div>
|
|
);
|
|
|
|
return () => {
|
|
if (props.title || slots.title) {
|
|
return (
|
|
<>
|
|
{renderTitle()}
|
|
{renderGroup()}
|
|
</>
|
|
);
|
|
}
|
|
|
|
return renderGroup();
|
|
};
|
|
},
|
|
});
|