fix(Field): should not render empty label

This commit is contained in:
chenjiahan 2020-08-17 19:57:35 +08:00
parent 832ed6f80f
commit 4d58dbe3a6
2 changed files with 7 additions and 4 deletions

View File

@ -19,7 +19,8 @@ export default createComponent({
setup(props, { slots, emit }) {
return function () {
const { icon, size, title, label, value, isLink } = props;
const showTitle = slots.title || isDef(title);
const titleSlot = slots.title?.();
const showTitle = titleSlot || isDef(title);
function Label() {
const showLabel = slots.label || isDef(label);
@ -40,7 +41,7 @@ export default createComponent({
class={[bem('title'), props.titleClass]}
style={props.titleStyle}
>
{slots.title ? slots.title() : <span>{title}</span>}
{slots.title ? titleSlot : <span>{title}</span>}
{Label()}
</div>
);

View File

@ -557,12 +557,14 @@ export default createComponent({
render() {
const slots = this.$slots;
const labelAlign = this.getProp('labelAlign');
const Label = this.genLabel();
const LeftIcon = this.genLeftIcon();
return (
<Cell
v-slots={{
icon: this.genLeftIcon,
title: this.genLabel,
icon: LeftIcon ? () => LeftIcon : null,
title: Label ? () => Label : null,
extra: slots.extra,
}}
icon={this.leftIcon}