ソースを参照

fix(calendar): 个别月份不展示问题, 滑动卡顿问题 、滑动月份不变更问题 (#618)

* fix: 修改 calendar 组件个别月份不展示问题

* fix: 修改calendar组件demo结束时间
拧巴的猫 4 年 前
コミット
d166de8e3c

+ 1 - 1
src/packages/__VUE/calendar/demo.vue

@@ -15,7 +15,7 @@
         @close="closeSwitch('isVisible')"
         @choose="setChooseValue"
         :start-date="`2019-10-11`"
-        :end-date="`2022-11-11`"
+        :end-date="`2029-11-11`"
       >
       </nut-calendar>
     </div>

+ 0 - 3
src/packages/__VUE/calendar/index.scss

@@ -186,6 +186,3 @@
     }
   }
 }
-.nut-calendar-taro {
-  height: 65vh;
-}

+ 0 - 3
src/packages/__VUE/calendaritem/index.scss

@@ -190,6 +190,3 @@
     }
   }
 }
-.nut-calendar-taro {
-  height: 65vh;
-}

+ 6 - 3
src/packages/__VUE/calendaritem/index.vue

@@ -498,7 +498,7 @@ export default create({
         if (weeksPanel?.value && monthsPanel?.value) {
           const top = weeksPanel?.value.getBoundingClientRect().bottom;
           const monthsDoms =
-            monthsPanel.value.getElementsByClassName('.calendar-month');
+            monthsPanel.value.getElementsByClassName('calendar-month');
           for (let i = 0; i < monthsDoms.length; i++) {
             if (
               monthsDoms[i].getBoundingClientRect().top <= top &&
@@ -602,10 +602,13 @@ export default create({
       const updateMove = move + state.transformY;
       const h = months.value?.offsetHeight || 0;
       const offsetHeight = monthsPanel.value?.offsetHeight || 0;
-
       if (updateMove > 0) {
         getMonth(getCurrData('prev'), 'prev');
-      } else if (updateMove < -offsetHeight + h * 2) {
+      } else if (
+        updateMove < 0 &&
+        updateMove <
+          -offsetHeight + (Math.abs(move) > h ? Math.abs(move) : h) * 5
+      ) {
         getMonth(getCurrData('next'), 'next');
         if (Math.abs(move) >= 300) {
           getMonth(getCurrData('next'), 'next');