diff --git a/src/components/date-picker/base/month-table.vue b/src/components/date-picker/base/month-table.vue
index 18d6635..78f51ed 100644
--- a/src/components/date-picker/base/month-table.vue
+++ b/src/components/date-picker/base/month-table.vue
@@ -13,7 +13,10 @@
             month: {
                 type: Number
             },
-            disabledDate: {}
+            disabledDate: {},
+            selectionMode: {
+                default: 'month'
+            }
         },
         computed: {
             classes () {
@@ -36,7 +39,7 @@
 
                     const date = new Date(this.date);
                     date.setMonth(i);
-                    cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date);
+                    cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date)  && this.selectionMode === 'month';
 
                     cell.selected = Number(this.month) === i;
                     cells.push(cell);
diff --git a/src/components/date-picker/base/year-table.vue b/src/components/date-picker/base/year-table.vue
index 490d0d7..1934372 100644
--- a/src/components/date-picker/base/year-table.vue
+++ b/src/components/date-picker/base/year-table.vue
@@ -11,7 +11,10 @@
         props: {
             date: {},
             year: {},
-            disabledDate: {}
+            disabledDate: {},
+            selectionMode: {
+                default: 'year'
+            }
         },
         computed: {
             classes () {
@@ -37,7 +40,7 @@
 
                     const date = new Date(this.date);
                     date.setFullYear(cell.text);
-                    cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date);
+                    cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date) && this.selectionMode === 'year';
 
                     cell.selected = Number(this.year) === cell.text;
                     cells.push(cell);
diff --git a/src/components/date-picker/panel/date.vue b/src/components/date-picker/panel/date.vue
index 818accd..e4ed923 100644
--- a/src/components/date-picker/panel/date.vue
+++ b/src/components/date-picker/panel/date.vue
@@ -37,7 +37,6 @@
                     :month="month"
                     :date="date"
                     :value="value"
-                    :week="week"
                     :selection-mode="selectionMode"
                     :disabled-date="disabledDate"
                     @on-pick="handleDatePick"></date-table>
@@ -46,6 +45,7 @@
                     v-show="currentView === 'year'"
                     :year="year"
                     :date="date"
+                    :selection-mode="selectionMode"
                     :disabled-date="disabledDate"
                     @on-pick="handleYearPick"></year-table>
                 <month-table
@@ -53,6 +53,7 @@
                     v-show="currentView === 'month'"
                     :month="month"
                     :date="date"
+                    :selection-mode="selectionMode"
                     :disabled-date="disabledDate"
                     @on-pick="handleMonthPick"></month-table>
             </div>
@@ -85,7 +86,6 @@
                 disabledDate: '',
                 year: null,
                 month: null,
-                week: null,
                 showWeekNumber: false,
                 timePickerVisible: false
             }
diff --git a/test/routers/date.vue b/test/routers/date.vue
index 3313f1a..dda379d 100644
--- a/test/routers/date.vue
+++ b/test/routers/date.vue
@@ -29,6 +29,8 @@
 //                value: '',
                 options: {
                     disabledDate(time) {
+//                        console.log(time)
+//                        return time.getFullYear() < 2016;
                         return time.getTime() < Date.now() - 8.64e7;
 //                        return time && time.valueOf() < Date.now();
                     }
--
libgit2 0.21.4