实现下拉互斥效果

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
   }
  };