mirror of
https://github.com/tenrok/vue2-datepicker.git
synced 2026-06-23 18:40:35 +03:00
feat: add pick event when date clicked (#429)
This commit is contained in:
@@ -277,6 +277,7 @@ set fixed time list to select;
|
|||||||
| input-error | When user type a invalid Date | the input text |
|
| input-error | When user type a invalid Date | the input text |
|
||||||
| focus | When input focus | |
|
| focus | When input focus | |
|
||||||
| blur | When input blur | |
|
| blur | When input blur | |
|
||||||
|
| pick | when select date [#429](issues/429) | date |
|
||||||
|
|
||||||
### Slots
|
### Slots
|
||||||
|
|
||||||
|
|||||||
+12
-11
@@ -263,17 +263,18 @@ data() {
|
|||||||
|
|
||||||
### 事件
|
### 事件
|
||||||
|
|
||||||
| 名称 | 描述 | 回调函数的参数 |
|
| 名称 | 描述 | 回调函数的参数 |
|
||||||
| ----------- | -------------------- | -------------------------------------------- |
|
| ----------- | ------------------------------- | -------------------------------------------- |
|
||||||
| input | 当选择日期的事件触发 | date |
|
| input | 当选择日期的事件触发 | date |
|
||||||
| change | 当选择日期的事件触发 | date, type(date, hour, minute, second, ampm) |
|
| change | 当选择日期的事件触发 | date, type(date, hour, minute, second, ampm) |
|
||||||
| open | 当弹出层打开时候 | |
|
| open | 当弹出层打开时候 | |
|
||||||
| close | 当弹出层关闭时候 | |
|
| close | 当弹出层关闭时候 | |
|
||||||
| confirm | 当点击确认按钮 | date |
|
| confirm | 当点击确认按钮 | date |
|
||||||
| clear | 当点击清除按钮 | |
|
| clear | 当点击清除按钮 | |
|
||||||
| input-error | 当输入一个无效的时间 | 输入的值 |
|
| input-error | 当输入一个无效的时间 | 输入的值 |
|
||||||
| focus | 当输入框有焦点 | |
|
| focus | 当输入框有焦点 | |
|
||||||
| blur | 当输入框失焦 | |
|
| blur | 当输入框失焦 | |
|
||||||
|
| pick | 当点击日期时 [#429](issues/429) | date |
|
||||||
|
|
||||||
### Slots
|
### Slots
|
||||||
|
|
||||||
|
|||||||
@@ -352,4 +352,17 @@ describe('DatePicker', () => {
|
|||||||
expect(v.element.type).toBe('button');
|
expect(v.element.type).toBe('button');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should emit pick event on first click', () => {
|
||||||
|
wrapper = mount(DatePicker, {
|
||||||
|
range: true,
|
||||||
|
propsData: {
|
||||||
|
open: true,
|
||||||
|
defaultValue: new Date(2019, 9, 1),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const td = wrapper.find('.mx-table-date td');
|
||||||
|
td.trigger('click');
|
||||||
|
expect(wrapper.emitted().pick[0][0]).toEqual(new Date(2019, 8, 29));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ import TableDate from './table-date';
|
|||||||
import TableMonth from './table-month';
|
import TableMonth from './table-month';
|
||||||
import TableYear from './table-year';
|
import TableYear from './table-year';
|
||||||
import { getLocaleFieldValue } from '../locale';
|
import { getLocaleFieldValue } from '../locale';
|
||||||
|
import emitter from '../mixin/emitter';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CalendarPanel',
|
name: 'CalendarPanel',
|
||||||
@@ -122,6 +123,7 @@ export default {
|
|||||||
TableMonth,
|
TableMonth,
|
||||||
TableYear,
|
TableYear,
|
||||||
},
|
},
|
||||||
|
mixins: [emitter],
|
||||||
inject: {
|
inject: {
|
||||||
t: {
|
t: {
|
||||||
default: () => getLocaleFieldValue,
|
default: () => getLocaleFieldValue,
|
||||||
@@ -248,6 +250,8 @@ export default {
|
|||||||
emitDate(date, type) {
|
emitDate(date, type) {
|
||||||
if (!this.isDisabled(date)) {
|
if (!this.isDisabled(date)) {
|
||||||
this.$emit('select', date, type);
|
this.$emit('select', date, type);
|
||||||
|
// someone need get the first selected date to set range value. (#429)
|
||||||
|
this.dispatch('DatePicker', 'pick', date, type);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateCalendar(date) {
|
updateCalendar(date) {
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
export default {
|
||||||
|
methods: {
|
||||||
|
dispatch(componentName, ...params) {
|
||||||
|
let parent = this.$parent || this.$root;
|
||||||
|
let { name } = parent.$options;
|
||||||
|
|
||||||
|
while (parent && (!name || name !== componentName)) {
|
||||||
|
parent = parent.$parent;
|
||||||
|
|
||||||
|
if (parent) {
|
||||||
|
name = parent.$options.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (parent) {
|
||||||
|
parent.$emit(...params);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user