itemOnHightlighted method
fence
模式下分组切换
Implementation
void itemOnHightlighted(int index, int column) async {
// final items = getColumn(column);
/// 如果当前点击`item`为最末子集(它的`items`为空)
/// 直接设置选中状态
// if (items[index].items.isEmpty) {
// itemOnSelected(index, column, false);
// }
// for (var k = 0; k < items.length; k++) {
// // 单选
// if (items[k].items.isNotEmpty || column == 0) {
// items[k].highlighted = index == k;
// }
// }
/// 获取子集数据列表
var list = List.of(value.idxList);
for (var i = column; i < value.idxList.length; i++) {
list.replaceRange(i, i + 1, [i > column ? 0 : index]);
}
value = value.copyWith(idxList: list);
/// 单选
if (value.data.isRadio && column == value.idxList.length - 1) {
// itemOnSelected(index, column, false);
final items = getColumn(column);
final item = items[index];
// 清空之前选项
chidrenSelected(value.data.items, false);
// 设置当前及子集选中
item.selected = !item.selected;
for (var i = 0; i < value.idxList.length; i++) {
if (i >= column) {
break;
}
final idx = value.idxList[i];
final list = getColumn(i);
if (list[idx].items.isNotEmpty) {
list[idx].selected = chidrenSelectedStatus(list[idx].items);
}
}
// 结束选择
completed();
}
}