ant-design-vue/components/vc-time-picker/demo/all.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>