feat: number add compactSize & disabledContext
parent
df6a1fdb71
commit
c1ed77f67a
|
@ -21,6 +21,8 @@ import { booleanType, stringType } from '../_util/type';
|
|||
|
||||
// CSSINJS
|
||||
import useStyle from './style';
|
||||
import { NoCompactStyle, useCompactItemContext } from '../space/Compact';
|
||||
import { useInjectDisabled } from '../config-provider/DisabledContext';
|
||||
|
||||
const baseProps = baseInputNumberProps();
|
||||
export const inputNumberProps = () => ({
|
||||
|
@ -52,11 +54,14 @@ const InputNumber = defineComponent({
|
|||
const formItemContext = useInjectFormItemContext();
|
||||
const formItemInputContext = FormItemInputContext.useInject();
|
||||
const mergedStatus = computed(() => getMergedStatus(formItemInputContext.status, props.status));
|
||||
const { prefixCls, size, direction } = useConfigInject('input-number', props);
|
||||
|
||||
const { prefixCls, size, direction, disabled } = useConfigInject('input-number', props);
|
||||
const { compactSize, compactItemClassnames } = useCompactItemContext(prefixCls, direction);
|
||||
// Style
|
||||
const [wrapSSR, hashId] = useStyle(prefixCls);
|
||||
|
||||
const mergedSize = computed(() => compactSize.value || size.value);
|
||||
const disabledContext = useInjectDisabled();
|
||||
const mergedDisabled = computed(() => disabled.value ?? disabledContext.value);
|
||||
const mergedValue = ref(props.value === undefined ? props.defaultValue : props.value);
|
||||
const focused = ref(false);
|
||||
watch(
|
||||
|
@ -109,11 +114,10 @@ const InputNumber = defineComponent({
|
|||
|
||||
const preCls = prefixCls.value;
|
||||
|
||||
const mergeSize = size.value;
|
||||
const inputNumberClass = classNames(
|
||||
{
|
||||
[`${preCls}-lg`]: mergeSize === 'large',
|
||||
[`${preCls}-sm`]: mergeSize === 'small',
|
||||
[`${preCls}-lg`]: mergedSize.value === 'large',
|
||||
[`${preCls}-sm`]: mergedSize.value === 'small',
|
||||
[`${preCls}-rtl`]: direction.value === 'rtl',
|
||||
[`${preCls}-readonly`]: readonly,
|
||||
[`${preCls}-borderless`]: !bordered,
|
||||
|
@ -121,6 +125,7 @@ const InputNumber = defineComponent({
|
|||
},
|
||||
getStatusClassNames(preCls, mergedStatus.value),
|
||||
className,
|
||||
compactItemClassnames.value,
|
||||
hashId.value,
|
||||
);
|
||||
|
||||
|
@ -154,9 +159,9 @@ const InputNumber = defineComponent({
|
|||
getStatusClassNames(`${preCls}-affix-wrapper`, mergedStatus.value, hasFeedback),
|
||||
{
|
||||
[`${preCls}-affix-wrapper-focused`]: focused.value,
|
||||
[`${preCls}-affix-wrapper-disabled`]: props.disabled,
|
||||
[`${preCls}-affix-wrapper-sm`]: size.value === 'small',
|
||||
[`${preCls}-affix-wrapper-lg`]: size.value === 'large',
|
||||
[`${preCls}-affix-wrapper-disabled`]: mergedDisabled.value,
|
||||
[`${preCls}-affix-wrapper-sm`]: mergedSize.value === 'small',
|
||||
[`${preCls}-affix-wrapper-lg`]: mergedSize.value === 'large',
|
||||
[`${preCls}-affix-wrapper-rtl`]: direction.value === 'rtl',
|
||||
[`${preCls}-affix-wrapper-readonly`]: readonly,
|
||||
[`${preCls}-affix-wrapper-borderless`]: !bordered,
|
||||
|
@ -198,8 +203,8 @@ const InputNumber = defineComponent({
|
|||
const mergedGroupClassName = classNames(
|
||||
`${preCls}-group-wrapper`,
|
||||
{
|
||||
[`${preCls}-group-wrapper-sm`]: mergeSize === 'small',
|
||||
[`${preCls}-group-wrapper-lg`]: mergeSize === 'large',
|
||||
[`${preCls}-group-wrapper-sm`]: mergedSize.value === 'small',
|
||||
[`${preCls}-group-wrapper-lg`]: mergedSize.value === 'large',
|
||||
[`${preCls}-group-wrapper-rtl`]: direction.value === 'rtl',
|
||||
},
|
||||
getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus.value, hasFeedback),
|
||||
|
@ -209,9 +214,17 @@ const InputNumber = defineComponent({
|
|||
element = (
|
||||
<div class={mergedGroupClassName} style={style}>
|
||||
<div class={mergedWrapperClassName}>
|
||||
{addonBeforeNode && <NoFormStatus>{addonBeforeNode}</NoFormStatus>}
|
||||
{addonBeforeNode && (
|
||||
<NoCompactStyle>
|
||||
<NoFormStatus>{addonBeforeNode}</NoFormStatus>
|
||||
</NoCompactStyle>
|
||||
)}
|
||||
{element}
|
||||
{addonAfterNode && <NoFormStatus>{addonAfterNode}</NoFormStatus>}
|
||||
{addonAfterNode && (
|
||||
<NoCompactStyle>
|
||||
<NoFormStatus>{addonAfterNode}</NoFormStatus>
|
||||
</NoCompactStyle>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue