实现下拉互斥效果
csdn — antD Form表单Select下拉多选支持互斥逻辑 — 日月之行_
// 实现全部选项和其他剩下的选项互斥
<Form.Item
name="deptCode"
label="科室"
rules={[{ required: true, message: '必填信息不能为空' }]}
getValueFromEvent={e => getValueFromEvent(e)}
>
<Select
mode="multiple"
placeholder="请选择"
showSearch
filterOption={(input: any, option: any) =>
option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
>
<Option value={'0'} key={'0'}>
全部科室
</Option>
{departOptions.map(item => (
<Option value={item.deptCode} key={item.deptCode}>
{item.deptName}
</Option>
))}
</Select>
</Form.Item>
// 互斥逻辑
const getValueFromEvent = (args: string[]) => {
if (args.some(val => val === '0')) {
return ['0'];
}
return args;
};
// 互斥逻辑2.0
getValueFromEvent = (args) => {
let index = args.length-1//判断最近加入的值
let arr = _.compact(args)//Lodash 清除空值
if(args[index]==''){
return ['']
}else{
return arr
}
};