Forráskód Böngészése

fix datepicker year select mode bug (#1385)

baiyaaaaa 8 éve
szülő
commit
ce13d974b5

+ 2 - 4
packages/date-picker/src/basic/year-table.vue

@@ -50,9 +50,7 @@
     props: {
       disabledDate: {},
       date: {},
-      year: {
-        type: Number
-      }
+      year: {}
     },
 
     computed: {
@@ -86,7 +84,7 @@
         const target = event.target;
         if (target.tagName === 'A') {
           if (hasClass(target.parentNode, 'disabled')) return;
-          const year = parseInt(target.textContent || target.innerText, 10);
+          const year = target.textContent || target.innerText;
           this.$emit('pick', year);
         }
       }

+ 2 - 2
packages/date-picker/src/panel/date.vue

@@ -20,7 +20,7 @@
             @click="handleShortcutClick(shortcut)">{{ shortcut.text }}</button>
         </div>
         <div class="el-picker-panel__body">
-         <div class="el-date-picker__time-header" v-if="showTime">
+          <div class="el-date-picker__time-header" v-if="showTime">
             <span class="el-date-picker__editor-wrap">
               <input
                 :placehoder="t('el.datepicker.selectDate')"
@@ -310,7 +310,7 @@
 
         this.date.setFullYear(year);
         if (this.selectionMode === 'year') {
-          this.$emit('pick', year);
+          this.$emit('pick', new Date(year));
         } else {
           this.currentView = 'month';
         }

+ 4 - 11
packages/date-picker/src/picker.vue

@@ -58,7 +58,8 @@ const DEFAULT_FORMATS = {
   time: 'HH:mm:ss',
   timerange: 'HH:mm:ss',
   daterange: 'yyyy-MM-dd',
-  datetimerange: 'yyyy-MM-dd HH:mm:ss'
+  datetimerange: 'yyyy-MM-dd HH:mm:ss',
+  year: 'yyyy'
 };
 const HAVE_TRIGGER_TYPES = [
   'date',
@@ -163,16 +164,8 @@ const TYPE_VALUE_RESOLVER_MAP = {
     parser: DATE_PARSER
   },
   year: {
-    formatter(value) {
-      if (!value) return '';
-      return '' + value;
-    },
-    parser(text) {
-      const year = Number(text);
-      if (!isNaN(year)) return year;
-
-      return null;
-    }
+    formatter: DATE_FORMATTER,
+    parser: DATE_PARSER
   },
   number: {
     formatter(value) {