u
This commit is contained in:
1 parent
068fcb7649
commit
1a33497c5d
29 files changed
+889
-306
No files matched your search
@@ -1,16 +1,30 @@
|
||||
import type { PropType } from 'vue'
|
||||
import { defineComponent } from 'vue'
|
||||
import { getPrefixCls } from '../_utils/getPrefixCls'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Group',
|
||||
props: {},
|
||||
props: {
|
||||
prepend: { type: String, default: '' },
|
||||
append: { type: String, default: '' },
|
||||
size: { type: String as () => 'small' | 'medium' | 'large', default: 'medium' },
|
||||
},
|
||||
setup(props, { slots }) {
|
||||
const prefixCls = getPrefixCls('group')
|
||||
|
||||
const renderNode = (slotName: 'prepend' | 'append', propValue: string) => {
|
||||
// slot 优先
|
||||
if (slots[slotName])
|
||||
return slots[slotName]!()
|
||||
if (propValue)
|
||||
return <div class={`${prefixCls}-${slotName}`}>{propValue}</div>
|
||||
return null
|
||||
}
|
||||
|
||||
return () => (
|
||||
<div class={[`${prefixCls}-wrapper`]}>
|
||||
<div class={[`${prefixCls}-wrapper`, `${prefixCls}-size-${props.size}`]}>
|
||||
{renderNode('prepend', props.prepend)}
|
||||
{slots.default?.()}
|
||||
{renderNode('append', props.append)}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user