mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-11-30 18:27:40 +08:00
feat(components): [ElCheckboxGroup] add Fragment (#4743)
This commit is contained in:
parent
3cf4a05c40
commit
369aee6292
@ -308,6 +308,21 @@ describe('check-button', () => {
|
|||||||
).toEqual('#ff0000')
|
).toEqual('#ff0000')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('button group tag', () => {
|
||||||
|
const wrapper = _mount(
|
||||||
|
`
|
||||||
|
<el-checkbox-group v-model="checkList" tag="tr">
|
||||||
|
<el-checkbox-button label="a" ref="a"></el-checkbox-button>
|
||||||
|
<el-checkbox-button label="b" ref="b"></el-checkbox-button>
|
||||||
|
<el-checkbox-button label="c" ref="c"></el-checkbox-button>
|
||||||
|
<el-checkbox-button label="d" ref="d"></el-checkbox-button>
|
||||||
|
</el-checkbox-group>
|
||||||
|
`,
|
||||||
|
() => ({ checkList: ['a', 'b'] })
|
||||||
|
)
|
||||||
|
expect(wrapper.find('tr').classes('el-checkbox-group')).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
test('button group min and max', async () => {
|
test('button group min and max', async () => {
|
||||||
const wrapper = _mount(
|
const wrapper = _mount(
|
||||||
`
|
`
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
<template>
|
|
||||||
<div class="el-checkbox-group" role="group" aria-label="checkbox-group">
|
|
||||||
<slot></slot>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {
|
import {
|
||||||
defineComponent,
|
defineComponent,
|
||||||
@ -12,6 +6,8 @@ import {
|
|||||||
provide,
|
provide,
|
||||||
nextTick,
|
nextTick,
|
||||||
toRefs,
|
toRefs,
|
||||||
|
h,
|
||||||
|
renderSlot,
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
import { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'
|
import { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'
|
||||||
import { isValidComponentSize } from '@element-plus/utils/validators'
|
import { isValidComponentSize } from '@element-plus/utils/validators'
|
||||||
@ -50,18 +46,22 @@ export default defineComponent({
|
|||||||
type: String,
|
type: String,
|
||||||
default: undefined,
|
default: undefined,
|
||||||
},
|
},
|
||||||
|
tag: {
|
||||||
|
type: String,
|
||||||
|
default: 'div',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
emits: [UPDATE_MODEL_EVENT, 'change'],
|
emits: [UPDATE_MODEL_EVENT, 'change'],
|
||||||
|
|
||||||
setup(props, ctx) {
|
setup(props, { emit, slots }) {
|
||||||
const { elFormItem } = useCheckboxGroup()
|
const { elFormItem } = useCheckboxGroup()
|
||||||
const checkboxGroupSize = useSize()
|
const checkboxGroupSize = useSize()
|
||||||
|
|
||||||
const changeEvent = (value) => {
|
const changeEvent = (value) => {
|
||||||
ctx.emit(UPDATE_MODEL_EVENT, value)
|
emit(UPDATE_MODEL_EVENT, value)
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
ctx.emit('change', value)
|
emit('change', value)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,6 +88,17 @@ export default defineComponent({
|
|||||||
elFormItem.validate?.('change')
|
elFormItem.validate?.('change')
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
return () => {
|
||||||
|
return h(
|
||||||
|
props.tag,
|
||||||
|
{
|
||||||
|
class: 'el-checkbox-group',
|
||||||
|
role: 'group',
|
||||||
|
'aria-label': 'checkbox-group',
|
||||||
|
},
|
||||||
|
[renderSlot(slots, 'default')]
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user