fix(form-checkbox): 修复初始半选时,再点击选中后的图标状态异常问题 (#2882)

* fix(form-checkbox): 修复初始半选时,再点击选中后的图标状态异常问题

* update
This commit is contained in:
morning-star
2025-10-23 23:15:43 +08:00
committed by GitHub
parent 104fbfeca6
commit bd4dcb160b
2 changed files with 7 additions and 7 deletions

View File

@@ -904,7 +904,7 @@ hr.layui-border-black{border-width: 0 0 1px;}
.layui-form-checked.layui-checkbox-disabled[lay-skin="primary"] > i{background: #eee!important; border-color: #eee!important;}
.layui-checkbox-disabled[lay-skin="primary"]:hover > i{border-color: #d2d2d2;}
.layui-form-item .layui-form-checkbox[lay-skin="primary"]{margin-top: 10px;}
.layui-form-checkbox[lay-skin="primary"] > .layui-icon-indeterminate{border-color: #16b777;}
.layui-form-checkbox[lay-skin="primary"] > .layui-icon-indeterminate{border-color: #16b777; background-color: #fff;}
.layui-form-checkbox[lay-skin="primary"] > .layui-icon-indeterminate:before{content: ''; display: inline-block; vertical-align: middle; position: relative; width: 50%; height: 1px; margin: -1px auto 0; background-color: #16b777;}
/* 复选框-开关风格 */

View File

@@ -1001,7 +1001,9 @@ layui.define(['lay', 'i18n', 'layer', 'util'], function(exports){
var CLASS = {
"checkbox": ['layui-form-checkbox', 'layui-form-checked', 'checkbox'],
"switch": ['layui-form-switch', 'layui-form-onswitch', 'switch'],
SUBTRA: 'layui-icon-indeterminate'
SUBTRA: 'layui-icon-indeterminate',
ICON: 'layui-icon',
ICON_OK: 'layui-icon-ok'
};
var clickEventName = 'click.lay_checkbox_click';
var checks = elem || elemForm.find('input[type=checkbox]');
@@ -1027,9 +1029,7 @@ layui.define(['lay', 'i18n', 'layer', 'util'], function(exports){
if(check[0].disabled) return;
// 半选
if (check[0].indeterminate) {
check[0].indeterminate = false;
}
check[0].indeterminate = check[0].indeterminate;
// 开关
check[0].checked = check[0].checked;
@@ -1063,9 +1063,9 @@ layui.define(['lay', 'i18n', 'layer', 'util'], function(exports){
if(isPrimary){
that.syncAppearanceOnPropChanged(this, 'indeterminate', function(){
if(this.indeterminate){
reElem.children('.layui-icon-ok').removeClass('layui-icon-ok').addClass(CLASS.SUBTRA);
reElem.children('.' + CLASS.ICON).removeClass(CLASS.ICON_OK).addClass(CLASS.SUBTRA);
}else{
reElem.children('.'+ CLASS.SUBTRA).removeClass(CLASS.SUBTRA).addClass('layui-icon-ok');
reElem.children('.' + CLASS.ICON).removeClass(CLASS.SUBTRA).addClass(CLASS.ICON_OK);
}
})
}