161 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Vue
		
	
	
| <script>
 | |
| import '../assets/index.less'
 | |
| 
 | |
| import moment from 'moment'
 | |
| 
 | |
| import TimePicker from '../index'
 | |
| 
 | |
| const format = 'h:mm a'
 | |
| 
 | |
| const now = moment().hour(0).minute(0)
 | |
| 
 | |
| function onChange (value) {
 | |
|   console.log(value && value.format(format))
 | |
| }
 | |
| 
 | |
| const showSecond = true
 | |
| const str = showSecond ? 'HH:mm:ss' : 'HH:mm'
 | |
| 
 | |
| const now1 = moment().hour(14).minute(30)
 | |
| 
 | |
| function generateOptions (length, excludedOptions) {
 | |
|   const arr = []
 | |
|   for (let value = 0; value < length; value++) {
 | |
|     if (excludedOptions.indexOf(value) < 0) {
 | |
|       arr.push(value)
 | |
|     }
 | |
|   }
 | |
|   return arr
 | |
| }
 | |
| 
 | |
| function onChange1 (value) {
 | |
|   console.log(value && value.format(str))
 | |
| }
 | |
| 
 | |
| function disabledHours () {
 | |
|   return [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23]
 | |
| }
 | |
| 
 | |
| function disabledMinutes (h) {
 | |
|   switch (h) {
 | |
|     case 9:
 | |
|       return generateOptions(60, [30])
 | |
|     case 21:
 | |
|       return generateOptions(60, [0])
 | |
|     default:
 | |
|       return generateOptions(60, [0, 30])
 | |
|   }
 | |
| }
 | |
| 
 | |
| function disabledSeconds (h, m) {
 | |
|   return [h + m % 60]
 | |
| }
 | |
| 
 | |
| export default{
 | |
|   data () {
 | |
|     return {
 | |
|       open: false,
 | |
|       value: moment(),
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     setOpen ({ open }) {
 | |
|       this.open = open
 | |
|     },
 | |
|     toggleOpen () {
 | |
|       this.open = !this.open
 | |
|     },
 | |
|     handleValueChange  (value) {
 | |
|       console.log(value && value.format('HH:mm:ss'))
 | |
|       this.value = value
 | |
|     },
 | |
|     clear () {
 | |
|       this.value = undefined
 | |
|     },
 | |
|   },
 | |
|   render () {
 | |
|     return (
 | |
|       <div>
 | |
|         <TimePicker
 | |
|           showSecond={false}
 | |
|           defaultValue={now}
 | |
|           class='xxx'
 | |
|           onChange={onChange}
 | |
|           format={format}
 | |
|           use12Hours
 | |
|           inputReadOnly
 | |
|         />
 | |
|         <br/>
 | |
|         <br/>
 | |
|         <div>
 | |
|           <h3>Disabled picker</h3>
 | |
|           <TimePicker
 | |
|             defaultValue={now1}
 | |
|             disabled
 | |
|             onChange={onChange1}
 | |
|           />
 | |
|           <h3>Disabled options</h3>
 | |
|           <TimePicker
 | |
|             showSecond={showSecond}
 | |
|             defaultValue={now1}
 | |
|             class='xxx'
 | |
|             onChange={onChange1}
 | |
|             disabledHours={disabledHours}
 | |
|             disabledMinutes={disabledMinutes}
 | |
|             disabledSeconds={disabledSeconds}
 | |
|           />
 | |
|         </div>
 | |
|         <div>
 | |
|           <TimePicker defaultValue={moment()} showHour={false} />
 | |
|           <TimePicker defaultValue={moment()} showMinute={false} />
 | |
|           <TimePicker defaultValue={moment()} showSecond={false} />
 | |
| 
 | |
|           <TimePicker defaultValue={moment()} showMinute={false} showSecond={false} />
 | |
|           <TimePicker defaultValue={moment()} showHour={false} showSecond={false}/>
 | |
|           <TimePicker defaultValue={moment()} showHour={false} showMinute={false} />
 | |
|         </div>
 | |
|         <TimePicker
 | |
|           format={str}
 | |
|           showSecond={showSecond}
 | |
|           // use to control utfOffset, locale, default open value
 | |
|           defaultOpenValue={moment()}
 | |
|           class='xxx'
 | |
|           onChange={onChange1}
 | |
|           disabledHours={() => [0, 1, 2, 3, 4, 5, 6, 7, 8, 22, 23]}
 | |
|           disabledMinutes={() => [0, 2, 4, 6, 8]}
 | |
|           hideDisabledOptions
 | |
|         />
 | |
|         <div>
 | |
|           <button onClick={this.toggleOpen}>Toggle open</button>
 | |
|           <TimePicker
 | |
|             open={this.open}
 | |
|             onOpen={this.setOpen}
 | |
|             onClose={this.setOpen}
 | |
|             focusOnOpen
 | |
|           />
 | |
|         </div>
 | |
|         <TimePicker
 | |
|           style={{ width: '100px' }}
 | |
|           showSecond={showSecond}
 | |
|           defaultValue={moment()}
 | |
|           class='xxx'
 | |
|           onChange={onChange}
 | |
|         />
 | |
|         <TimePicker defaultValue={moment()} showSecond={false} minuteStep={15} />
 | |
|         <div>
 | |
|           <TimePicker
 | |
|             defaultValue={this.value}
 | |
|             onChange={this.handleValueChange}
 | |
|           />
 | |
|           <TimePicker
 | |
|             value={this.value}
 | |
|             onChange={this.handleValueChange}
 | |
|           />
 | |
|           <button onClick={this.clear}>clear</button>
 | |
|         </div>
 | |
|       </div>
 | |
|     )
 | |
|   },
 | |
| }
 | |
| </script>
 |