mirror of
https://gitee.com/baidu/amis.git
synced 2024-12-02 03:58:07 +08:00
fix:checkbox禁用状态对齐云舍 (#4482)
* perf:添加选项必填 * fix:checkbox禁用状态对齐云舍 Co-authored-by: liuguihua <liuguihua@baidu.com>
This commit is contained in:
parent
2ec843d913
commit
d101b4904e
@ -41,7 +41,8 @@ order: 8
|
|||||||
{
|
{
|
||||||
"name": "checkbox",
|
"name": "checkbox",
|
||||||
"type": "checkbox",
|
"type": "checkbox",
|
||||||
"label": "勾选框"
|
"label": "勾选框",
|
||||||
|
"option": "选项说明"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -58,6 +59,7 @@ order: 8
|
|||||||
"name": "checkbox",
|
"name": "checkbox",
|
||||||
"type": "checkbox",
|
"type": "checkbox",
|
||||||
"label": "勾选框",
|
"label": "勾选框",
|
||||||
|
"option": "选项说明",
|
||||||
"trueValue": 1,
|
"trueValue": 1,
|
||||||
"falseValue": 0
|
"falseValue": 0
|
||||||
}
|
}
|
||||||
@ -81,8 +83,7 @@ order: 8
|
|||||||
"trueValue": true,
|
"trueValue": true,
|
||||||
"falseValue": false,
|
"falseValue": false,
|
||||||
"optionType": "button",
|
"optionType": "button",
|
||||||
"option": "选项说明",
|
"option": "选项说明"
|
||||||
"value": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -494,10 +494,12 @@
|
|||||||
--Checkbox-size: #{px2rem(16px)};
|
--Checkbox-size: #{px2rem(16px)};
|
||||||
--Checkbox-inner-size: calc(var(--Checkbox-size) / 2);
|
--Checkbox-inner-size: calc(var(--Checkbox-size) / 2);
|
||||||
--Checkbox-onHover-color: var(--info);
|
--Checkbox-onHover-color: var(--info);
|
||||||
--Checkbox-onDisabled-bg: #e5e7eb;
|
--Checkbox-onDisabled-bg: #f7f7f9;
|
||||||
--Checkbox-onDisabled-color: var(--text--muted-color);
|
--Checkbox-onDisabled-color: #b8babf;
|
||||||
--Checkbox-inner-onDisabled-bg: #d4d6d9;
|
--Checkbox-inner-onDisabled-bg: #d4d6d9;
|
||||||
--Checkbox-disabled-unchecked-bg: #f2f3f3;
|
--Checkbox-inner-onDisabled-color: #ffffff;
|
||||||
|
--Checkbox-disabled-unchecked-bg: #f7f7f9;
|
||||||
|
--Checkbox-inner-disabled-checked-bg: #e8e9eb;
|
||||||
--Checkbox-border-width: var(--Form-input-borderWidth);
|
--Checkbox-border-width: var(--Form-input-borderWidth);
|
||||||
--Checkbox-paddingX: #{px2rem(12px)};
|
--Checkbox-paddingX: #{px2rem(12px)};
|
||||||
--Checkbox-button-height: #{px2rem(32px)};
|
--Checkbox-button-height: #{px2rem(32px)};
|
||||||
|
@ -164,24 +164,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[disabled] + i {
|
&[disabled] + i {
|
||||||
border-color: var(--Checkbox-onDisabled-color);
|
border-color: var(--Checkbox-color);
|
||||||
background: var(--FileControl-onDisabled-bg);
|
background: var(--Checkbox-onDisabled-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
&[disabled]:checked + i {
|
&[disabled]:checked + i {
|
||||||
&:before {
|
&:before {
|
||||||
border-color: var(--Checkbox-onDisabled-color);
|
border-color: var(--Checkbox-onDisabled-color);
|
||||||
|
background: var(--Checkbox-onDisabled-bg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:checked[disabled] + i {
|
&:checked[disabled] + i {
|
||||||
border-color: var(--Checkbox-onDisabled-color);
|
border-color: var(--Checkbox-color);
|
||||||
background: var(--FileControl-onDisabled-bg);
|
background: var(--Checkbox-onDisabled-bg);
|
||||||
|
|
||||||
&:before {
|
|
||||||
background: var(--FileControl-onDisabled-bg);
|
|
||||||
border-color: var(--Checkbox-inner-onDisabled-bg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,6 +252,7 @@
|
|||||||
|
|
||||||
&:hover:not(:disabled) {
|
&:hover:not(:disabled) {
|
||||||
color: var(--Checkbox-onHover-color);
|
color: var(--Checkbox-onHover-color);
|
||||||
|
border-color: var(--Checkbox-onHover-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@ -292,7 +289,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
width: var(--Checkbox--full-inner-size);
|
width: var(--Checkbox--full-inner-size);
|
||||||
height: calc(var(--Checkbox--full-inner-size) / 2);
|
height: calc(var(--Checkbox--full-inner-size) / 2);
|
||||||
transform: translate(-80%, -160%) rotate(-50deg);
|
transform: translate(-80%, -160%) rotate(-50deg) scale(0.8);
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -307,9 +304,13 @@
|
|||||||
|
|
||||||
&:checked[disabled] + i {
|
&:checked[disabled] + i {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border-width: px2rem(8px);
|
border-width: px2rem(7px);
|
||||||
border-color: var(--Checkbox-onHover-color) transparent transparent
|
border-color: var(--Checkbox-inner-disabled-checked-bg) transparent
|
||||||
var(--Checkbox-onHover-color);
|
transparent var(--Checkbox-inner-disabled-checked-bg);
|
||||||
|
&:before {
|
||||||
|
background: transparent;
|
||||||
|
border-color: var(--Checkbox-inner-onDisabled-color) !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> i {
|
> i {
|
||||||
@ -342,9 +343,18 @@
|
|||||||
color: var(--Switch-checked-onHover-bgColor);
|
color: var(--Switch-checked-onHover-bgColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&--button--disabled--unchecked.#{$ns}Checkbox--checkbox.#{$ns}Checkbox--full {
|
&--button--disabled--unchecked.#{$ns}Checkbox--checkbox {
|
||||||
i {
|
background: var(--Checkbox-disabled-unchecked-bg);
|
||||||
background: var(--FileControl-onDisabled-bg);
|
border-color: var(--Checkbox-color);
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--Checkbox-color) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&--button--disabled--checked.#{$ns}Checkbox--checkbox {
|
||||||
|
background: var(--Checkbox-onDisabled-bg);
|
||||||
|
border-color: var(--Checkbox-color) !important;
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--Checkbox-color) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&--radio {
|
&--radio {
|
||||||
|
@ -217,8 +217,8 @@ $L1: 0px 4px 6px 0px rgba(8, 14, 26, 0.06),
|
|||||||
--Number-handler--up-transform: rotate(180deg);
|
--Number-handler--up-transform: rotate(180deg);
|
||||||
--Number-handler--down-content: '\e6dd';
|
--Number-handler--down-content: '\e6dd';
|
||||||
|
|
||||||
--Checkbox-onDisabled-color: #ebebeb;
|
--Checkbox-onDisabled-bg: #F7F7F9;
|
||||||
--Checkbox-onDisabled-bg: #cccccc;
|
--Checkbox-onDisabled-color: #B8BABF;
|
||||||
|
|
||||||
--Checkbox-inner-size: #{px2rem(8px)};
|
--Checkbox-inner-size: #{px2rem(8px)};
|
||||||
--Checkbox--full-inner-size: #{px2rem(8px)};
|
--Checkbox--full-inner-size: #{px2rem(8px)};
|
||||||
|
@ -74,7 +74,12 @@ export class Checkbox extends React.Component<CheckboxProps, any> {
|
|||||||
labelClassName,
|
labelClassName,
|
||||||
optionType
|
optionType
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
const _checked = typeof checked !== 'undefined'
|
||||||
|
? checked
|
||||||
|
: typeof value === 'undefined'
|
||||||
|
? value
|
||||||
|
: value == trueValue;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<label
|
<label
|
||||||
className={cx(`Checkbox Checkbox--${type}`, className, {
|
className={cx(`Checkbox Checkbox--${type}`, className, {
|
||||||
@ -82,9 +87,11 @@ export class Checkbox extends React.Component<CheckboxProps, any> {
|
|||||||
// 'Checkbox--partial': partial
|
// 'Checkbox--partial': partial
|
||||||
[`Checkbox--${size}`]: size,
|
[`Checkbox--${size}`]: size,
|
||||||
'Checkbox--button': optionType === 'button',
|
'Checkbox--button': optionType === 'button',
|
||||||
'Checkbox--button--checked': optionType === 'button' && checked,
|
'Checkbox--button--checked': optionType === 'button' && _checked,
|
||||||
'Checkbox--button--disabled--unchecked':
|
'Checkbox--button--disabled--unchecked':
|
||||||
optionType === 'button' && disabled && !checked
|
optionType === 'button' && disabled && !_checked,
|
||||||
|
'Checkbox--button--disabled--checked':
|
||||||
|
optionType === 'button' && disabled && _checked
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
|
Loading…
Reference in New Issue
Block a user