Ver código fonte

DatePicker: fix defualt selected in weekpicker, fixed #3058 (#3680)

cinwell.li 8 anos atrás
pai
commit
fd42bf1efc

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

@@ -14,7 +14,7 @@
     <tr
       class="el-date-table__row"
       v-for="row in rows"
-      :class="{ current: value && isWeekActive(row[1]) }">
+      :class="{ current: isWeekActive(row[1]) }">
       <td
         v-for="cell in row"
         :class="getCellClasses(cell)"
@@ -78,9 +78,7 @@
             column: null
           };
         }
-      },
-
-      value: {}
+      }
     },
 
     computed: {

+ 5 - 11
packages/date-picker/src/panel/date.vue

@@ -85,7 +85,6 @@
               :year="year"
               :month="month"
               :date="date"
-              :value="value"
               :week="week"
               :selection-mode="selectionMode"
               :first-day-of-week="firstDayOfWeek"
@@ -127,7 +126,7 @@
 </template>
 
 <script type="text/babel">
-  import { formatDate, parseDate } from '../util';
+  import { formatDate, parseDate, getWeekNumber } from '../util';
   import Locale from 'element-ui/src/mixins/locale';
   import ElInput from 'element-ui/packages/input';
   import TimePicker from './time';
@@ -175,15 +174,14 @@
           if (this.currentView !== 'year' || this.currentView !== 'month') {
             this.currentView = 'month';
           }
+        } else if (newVal === 'week') {
+          this.week = getWeekNumber(this.date);
         }
       },
 
       date(newVal) {
-        /* istanbul ignore next */
-        if (!this.year) {
-          this.year = newVal.getFullYear();
-          this.month = newVal.getMonth();
-        }
+        this.year = newVal.getFullYear();
+        this.month = newVal.getMonth();
       }
     },
 
@@ -356,10 +354,6 @@
     },
 
     mounted() {
-      if (this.selectionMode === 'month') {
-        this.currentView = 'month';
-      }
-
       if (this.date && !this.year) {
         this.year = this.date.getFullYear();
         this.month = this.date.getMonth();

+ 1 - 1
packages/date-picker/src/picker.vue

@@ -407,7 +407,7 @@ export default {
       if (this.$isServer) return;
       if (!this.picker) {
         this.panel.defaultValue = this.currentValue;
-        this.picker = new Vue(this.panel).$mount(document.createElement('div'));
+        this.picker = new Vue(this.panel).$mount();
         this.picker.popperClass = this.popperClass;
         this.popperElm = this.picker.$el;
         this.picker.width = this.reference.getBoundingClientRect().width;