From 4d935d7e240d842931e1f058a66699db300d9805 Mon Sep 17 00:00:00 2001 From: mengxiong10 <15623530290@163.com> Date: Fri, 29 Nov 2019 15:19:12 +0800 Subject: [PATCH] feat: add `getWeek` in custom format (#382) --- .../__snapshots__/date-picker.test.js.snap | 489 ++++++++++++++++++ __test__/date-picker.test.js | 9 +- src/calendar/table-date.vue | 7 +- src/date-picker.vue | 9 +- 4 files changed, 511 insertions(+), 3 deletions(-) diff --git a/__test__/__snapshots__/date-picker.test.js.snap b/__test__/__snapshots__/date-picker.test.js.snap index bad4344..c235a45 100644 --- a/__test__/__snapshots__/date-picker.test.js.snap +++ b/__test__/__snapshots__/date-picker.test.js.snap @@ -92,6 +92,495 @@ exports[`DatePicker prop: clearable 1`] = ` `; +exports[`DatePicker prop: custom format 1`] = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + Su + + Mo + + Tu + + We + + Th + + Fr + + Sa +
+ + 29 + + +
+ 29 +
+
+
+ 30 +
+
+
+ 1 +
+
+
+ 2 +
+
+
+ 3 +
+
+
+ 4 +
+
+
+ 5 +
+
+ + 6 + + +
+ 6 +
+
+
+ 7 +
+
+
+ 8 +
+
+
+ 9 +
+
+
+ 10 +
+
+
+ 11 +
+
+
+ 12 +
+
+ + 13 + + +
+ 13 +
+
+
+ 14 +
+
+
+ 15 +
+
+
+ 16 +
+
+
+ 17 +
+
+
+ 18 +
+
+
+ 19 +
+
+ + 20 + + +
+ 20 +
+
+
+ 21 +
+
+
+ 22 +
+
+
+ 23 +
+
+
+ 24 +
+
+
+ 25 +
+
+
+ 26 +
+
+ + 27 + + +
+ 27 +
+
+
+ 28 +
+
+
+ 29 +
+
+
+ 30 +
+
+
+ 31 +
+
+
+ 1 +
+
+
+ 2 +
+
+ + 3 + + +
+ 3 +
+
+
+ 4 +
+
+
+ 5 +
+
+
+ 6 +
+
+
+ 7 +
+
+
+ 8 +
+
+
+ 9 +
+
+`; + exports[`DatePicker prop: editable 1`] = `
{ }); it('prop: custom format', () => { - wrapper = shallowMount(DatePicker, { + wrapper = mount(DatePicker, { propsData: { valueType: 'format', value: '13/10/2019', + open: true, + type: 'week', format: { stringify(date) { return format(date, 'dd/MM/yyyy'); @@ -147,11 +149,16 @@ describe('DatePicker', () => { parse(value) { return parse(value, 'dd/MM/yyyy', new Date()); }, + getWeek(date) { + return date.getDate(); + }, }, }, }); const input = wrapper.find('input').element; expect(input.value).toBe('13/10/2019'); + const tableDate = wrapper.find('.mx-table-date'); + expect(tableDate.element).toMatchSnapshot(); }); it('prop: valueType', () => { diff --git a/src/calendar/table-date.vue b/src/calendar/table-date.vue index 40d4bba..234331d 100644 --- a/src/calendar/table-date.vue +++ b/src/calendar/table-date.vue @@ -36,6 +36,11 @@ import { createDate } from '../util/date'; export default { name: 'TableDate', mixins: [localeMixin, formatMixin], + inject: { + getWeek: { + default: getWeek, + }, + }, props: { calendarYear: { type: Number, @@ -132,7 +137,7 @@ export default { const year = this.calendarYear; const month = this.calendarMonth; const date = createDate(year, month, day); - return getWeek(date, this.t('formatLocale')); + return this.getWeek(date, this.t('formatLocale')); }, }, }; diff --git a/src/date-picker.vue b/src/date-picker.vue index 32b16e9..7534c5b 100644 --- a/src/date-picker.vue +++ b/src/date-picker.vue @@ -86,7 +86,7 @@