antd Select下拉多選中互斥問題


 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>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM