1.星期選擇互斥處理。如果選擇‘*||‘1,2,3,4,5,6’||‘0,6’’這三個其中的一個后,再選其他的,會將這些替換掉。
const getFromEvent1 = (args) => { const defaultVals = ['*', '1,2,3,4,5', '0,6'] if (args && args.length) { const lastVal = args[args.length - 1] if (defaultVals.includes(lastVal)) { return [lastVal]; } else { return args.filter(val => !defaultVals.includes(val)) } } return args; };
2.星期選擇互斥處理。如果選擇‘*||‘1,2,3,4,5,6’||‘0,6’’這三個其中的一個后,再無法選中其他的,除非先取消他們,才能再去選擇其他。
const getFromEvent2 = args => { if (args.some(val => val === '*')) { return ['*']; } else if (args.some(val => val === '1,2,3,4,5')) { return ['1,2,3,4,5']; } else if (args.some(val => val === '0,6')) { return ['0,6']; } return args; }

代碼實現:
<Col span={24}>
<FormItem
{...FormItemLayout}
label="重復"
name="day_of_week"
rules={[{ required: true, message: '請選擇重復周期' }]}
getValueFromEvent={e => getValueFromEvent1(e)}
style={{ margin: '0.5rem 0' }}
>
<Select
mode="multiple"
showArrow
allowClear
style={{ width: '100%' }}
onChange={handleChange}
tokenSeparators={[',']}
placeholder={'請選擇重復周期'}
dropdownRender={menu => <div key={menu}>{menu}</div>}
>
<Option value={'*'} key={'*'}>
每天
</Option>
<Option value={'1,2,3,4,5'} key={'1,2,3,4,5'}>
工作日
</Option>
<Option value={'0,6'} key={'0,6'}>
周末
</Option>
{children}
</Select>
</FormItem>
</Col>

