DatePicker: fix trigger multiple watch, fixed #597

pull/608/head
qingwei.li 2016-10-24 11:33:48 +08:00
parent 4e36ff0eb5
commit 202a77abc1
9 changed files with 12 additions and 14 deletions

2
.gitattributes vendored
View File

@ -1 +1 @@
*.js linguist-language=Vue test/**/*.js linguist-language=Vue

View File

@ -47,7 +47,7 @@
</table> </table>
</template> </template>
<script type="text/ecmascript-6"> <script type="text/babel">
import { $t } from '../util'; import { $t } from '../util';
export default { export default {

View File

@ -78,7 +78,6 @@
this.hoursPrivate = oldVal; this.hoursPrivate = oldVal;
} }
this.$refs.hour.scrollTop = Math.max(0, (this.hoursPrivate - 2.5) * 32 + 80); this.$refs.hour.scrollTop = Math.max(0, (this.hoursPrivate - 2.5) * 32 + 80);
this.$emit('change', { hours: newVal }); this.$emit('change', { hours: newVal });
}, },

View File

@ -400,6 +400,9 @@
}, },
handleRangePick(val, close = true) { handleRangePick(val, close = true) {
if (this.maxDate === val.maxDate && this.minDate === val.minDate) {
return;
}
this.maxDate = val.maxDate; this.maxDate = val.maxDate;
this.minDate = val.minDate; this.minDate = val.minDate;

View File

@ -260,8 +260,8 @@
} else { } else {
this.date.setMonth(month); this.date.setMonth(month);
this.resetDate(); this.resetDate();
this.value = new Date(this.date.getFullYear(), month, 1); const value = new Date(this.date.getFullYear(), month, 1);
this.$emit('pick', this.value); this.$emit('pick', value);
} }
}, },

View File

@ -87,6 +87,9 @@
watch: { watch: {
value(val) { value(val) {
const time = clacTime(val); const time = clacTime(val);
if (time.minTime === this.minTime && time.maxTime === this.maxTime) {
return;
}
this.handleMinChange({ this.handleMinChange({
hours: time.minTime.getHours(), hours: time.minTime.getHours(),
@ -183,6 +186,7 @@
this.minTime = limitRange(this.minTime, minSelectableRange); this.minTime = limitRange(this.minTime, minSelectableRange);
this.maxTime = limitRange(this.maxTime, maxSelectableRange); this.maxTime = limitRange(this.maxTime, maxSelectableRange);
if (first) return;
this.$emit('pick', [this.minTime, this.maxTime], visible, first); this.$emit('pick', [this.minTime, this.maxTime], visible, first);
}, },

View File

@ -72,14 +72,6 @@
if (this.value && val && compareTime(this.value, val) === -1) { if (this.value && val && compareTime(this.value, val) === -1) {
this.$emit('pick'); this.$emit('pick');
} }
},
value(val, old) {
if (val && this.items.some(i => i.value === val && !i.disabled)) {
this.$emit('pick', val, true);
} else {
this.$emit('pick', old, true);
}
} }
}, },

View File

@ -129,6 +129,7 @@
}, },
handleConfirm(visible = false, first) { handleConfirm(visible = false, first) {
if (first) return;
const date = new Date(limitRange(this.currentDate, this.selectableRange)); const date = new Date(limitRange(this.currentDate, this.selectableRange));
this.$emit('pick', date, visible, first); this.$emit('pick', date, visible, first);
}, },

View File

@ -46,7 +46,6 @@ const newPopper = {
beforeDestroy: Popper.beforeDestroy beforeDestroy: Popper.beforeDestroy
}; };
// const FUNCTION_KEYS = [13, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40];
const RANGE_SEPARATOR = ' - '; const RANGE_SEPARATOR = ' - ';
const DEFAULT_FORMATS = { const DEFAULT_FORMATS = {
date: 'yyyy-MM-dd', date: 'yyyy-MM-dd',