update TimePicker

update TimePicker
This commit is contained in:
梁灏 2016-12-26 15:57:12 +08:00
parent c1abaed980
commit 36628acaab
3 changed files with 85 additions and 8 deletions

View file

@ -2,21 +2,29 @@
<div :class="classes"> <div :class="classes">
<div :class="[prefixCls+ '-wrapper']"> <div :class="[prefixCls+ '-wrapper']">
<ul :class="[prefixCls + '-list']"> <ul :class="[prefixCls + '-list']">
<li v-for="item in hoursList"></li> <li :class="getCellCls(item)" v-for="item in hoursList" v-show="!item.hide">{{ item.text }}</li>
</ul> </ul>
</div> </div>
<div :class="[prefixCls+ '-wrapper']"> <div :class="[prefixCls+ '-wrapper']">
<li v-for="item in minutesList"></li> <ul :class="[prefixCls + '-list']">
<li :class="getCellCls(item)" v-for="item in minutesList" v-show="!item.hide">{{ item.text }}</li>
</ul>
</div> </div>
<div :class="[prefixCls+ '-wrapper']" v-show="showSeconds"> <div :class="[prefixCls+ '-wrapper']" v-show="showSeconds">
<li v-for="item in secondsList"></li> <ul :class="[prefixCls + '-list']">
<li :class="getCellCls(item)" v-for="item in secondsList" v-show="!item.hide">{{ item.text }}</li>
</ul>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import Options from '../time-mixins';
import { deepCopy } from '../../../utils/assist';
const prefixCls = 'ivu-time-picker-cells'; const prefixCls = 'ivu-time-picker-cells';
export default { export default {
mixins: [Options],
props: { props: {
hours: { hours: {
type: Number, type: Number,
@ -50,17 +58,82 @@
]; ];
}, },
hoursList () { hoursList () {
return []; let hours = [];
const hour_tmpl = {
text: '',
selected: false,
disabled: false,
hide: false
};
for (let i = 0; i < 24; i++) {
const hour = deepCopy(hour_tmpl);
hour.text = i;
if (this.disabledHours && this.disabledHours.indexOf(i) > -1) {
hour.disabled = true;
if (this.hideDisabledOptions) hour.hide = true;
}
hours.push(hour);
}
return hours;
}, },
minutesList () { minutesList () {
return []; let minutes = [];
const minute_tmpl = {
text: '',
selected: false,
disabled: false,
hide: false
};
for (let i = 0; i < 60; i++) {
const minute = deepCopy(minute_tmpl);
minute.text = i;
if (this.disabledMinutes && this.disabledMinutes.indexOf(i) > -1) {
minute.disabled = true;
if (this.hideDisabledOptions) minute.hide = true;
}
minutes.push(minute);
}
return minutes;
}, },
secondsList () { secondsList () {
return []; let seconds = [];
const second_tmpl = {
text: '',
selected: false,
disabled: false,
hide: false
};
for (let i = 0; i < 60; i++) {
const second = deepCopy(second_tmpl);
second.text = i;
if (this.disabledSeconds && this.disabledSeconds.indexOf(i) > -1) {
second.disabled = true;
if (this.hideDisabledOptions) second.hide = true;
}
seconds.push(second);
}
return seconds;
} }
}, },
methods: { methods: {
getCellCls (cell) {
return [
`${prefixCls}-cell`,
{
[`${prefixCls}-cell-selected`]: cell.selected,
[`${prefixCls}-cell-disabled`]: cell.disabled
}
];
}
} }
}; };
</script> </script>

View file

@ -7,6 +7,10 @@
:hours="hours" :hours="hours"
:minutes="minutes" :minutes="minutes"
:seconds="seconds" :seconds="seconds"
:disabled-hours="disabledHours"
:disabled-minutes="disabledMinutes"
:disabled-seconds="disabledSeconds"
:hide-disabled-options="hideDisabledOptions"
@on-change="handleChange" @on-change="handleChange"
@on-pick-click="handlePickClick"></time-spinner> @on-pick-click="handlePickClick"></time-spinner>
</div> </div>

View file

@ -7,7 +7,7 @@
<date-picker type="daterange" placement="bottom-end" placeholder="选择日期" style="width: 200px"></date-picker> <date-picker type="daterange" placement="bottom-end" placeholder="选择日期" style="width: 200px"></date-picker>
</i-col> </i-col>
<i-col span="12"> <i-col span="12">
<time-picker placeholder="选择时间" :disabled-hours="[1,2]" style="width: 200px"></time-picker> <time-picker placeholder="选择时间" :hide-disabled-options="false" :disabled-hours="[1,2]" style="width: 200px"></time-picker>
</i-col> </i-col>
</row> </row>
</template> </template>