diff --git a/src/field/Field.tsx b/src/field/Field.tsx index 38112ce66..beef4b1b3 100644 --- a/src/field/Field.tsx +++ b/src/field/Field.tsx @@ -386,14 +386,18 @@ export default defineComponent({ }; const renderInput = () => { - const inputAlign = getProp('inputAlign'); + const controlClass = bem('control', [ + getProp('inputAlign'), + { + error: showError.value, + custom: !!slots.input, + 'min-height': props.type === 'textarea' && !props.autosize, + }, + ]); if (slots.input) { return ( -
+
{slots.input()}
); @@ -403,7 +407,7 @@ export default defineComponent({ ref: inputRef, name: props.name, rows: props.rows !== undefined ? +props.rows : undefined, - class: bem('control', inputAlign), + class: controlClass, value: props.modelValue, disabled: getProp('disabled'), readonly: getProp('readonly'), @@ -559,10 +563,8 @@ export default defineComponent({ size={props.size} icon={props.leftIcon} class={bem({ - error: showError.value, disabled, [`label-${labelAlign}`]: labelAlign, - 'min-height': props.type === 'textarea' && !props.autosize, })} center={props.center} border={props.border} diff --git a/src/field/index.less b/src/field/index.less index 5d126a114..078d8eea5 100644 --- a/src/field/index.less +++ b/src/field/index.less @@ -111,6 +111,16 @@ min-height: var(--van-cell-line-height); } + &--error, + &--error::placeholder { + color: var(--van-field-input-error-text-color); + -webkit-text-fill-color: currentColor; + } + + &--min-height { + min-height: var(--van-field-text-area-min-height); + } + // for ios wechat &[type='date'], &[type='time'], @@ -184,20 +194,4 @@ line-height: var(--van-field-word-limit-line-height); text-align: right; } - - &--error { - .van-field__control { - &, - &::placeholder { - color: var(--van-field-input-error-text-color); - -webkit-text-fill-color: currentColor; - } - } - } - - &--min-height { - .van-field__control { - min-height: var(--van-field-text-area-min-height); - } - } } diff --git a/src/field/test/__snapshots__/demo.spec.ts.snap b/src/field/test/__snapshots__/demo.spec.ts.snap index b9702d413..0468dc03e 100644 --- a/src/field/test/__snapshots__/demo.spec.ts.snap +++ b/src/field/test/__snapshots__/demo.spec.ts.snap @@ -183,7 +183,7 @@ exports[`should render demo and match snapshot 1`] = `
-
+
Username @@ -192,7 +192,7 @@ exports[`should render demo and match snapshot 1`] = `