From d7908397decf600c26c1828a01a2486c6e3263ca Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 19 八月 2025 14:59:39 +0800
Subject: [PATCH] fix: bug

---
 packages/components/src/Calendar/Calendar.vue |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/packages/components/src/Calendar/Calendar.vue b/packages/components/src/Calendar/Calendar.vue
index acb8468..bb1db00 100644
--- a/packages/components/src/Calendar/Calendar.vue
+++ b/packages/components/src/Calendar/Calendar.vue
@@ -1,13 +1,8 @@
 <template>
   <div class="bole-calendar-wrapper">
-    <div :class="['bole-calendar-inner', { isCollapse }]">
-      <nut-calendar-card
-        v-model="model"
-        class="bole-calendar"
-        ref="calendar"
-        @change="handleChange"
-      ></nut-calendar-card>
-    </div>
+    <scroll-view :enhanced="true" :scroll-y="true" :class="['bole-calendar-inner', { isCollapse }]">
+      <nut-calendar-card v-model="model" class="bole-calendar"></nut-calendar-card>
+    </scroll-view>
     <div :class="['bole-calendar-arrow', { active: !isCollapse }]" @click="toggle">
       <DownArrow :size="12" :class="['bole-calendar-arrow-icon']" />
     </div>
@@ -16,8 +11,9 @@
 
 <script setup lang="ts">
 import { DownArrow } from '@nutui/icons-vue-taro';
+import Taro from '@tarojs/taro';
 import { useToggle } from 'senin-mini/hooks';
-import { ref, watch } from 'vue';
+import { onMounted, ref, watch } from 'vue';
 
 defineOptions({
   name: 'Calendar',
@@ -30,11 +26,20 @@
 
 const { isCollapse, toggle } = useToggle(true);
 
-const calendar = ref();
-function handleChange(value) {
-  console.log('value: ', value);
-  console.log('calendar: ', calendar.value);
-}
+onMounted(() => {
+  const query = Taro.createSelectorQuery();
+  query.select('.nut-calendarcard-day.current.active').boundingClientRect();
+  query.select('.bole-calendar-inner').boundingClientRect();
+  query.select('.bole-calendar-inner').node();
+  query.exec(function (res) {
+    const calendarWindowHeight = res[1].height + res[1].top;
+    const currentDayWindowHeight = res[0].height + res[0].top;
+    if (currentDayWindowHeight > calendarWindowHeight) {
+      const scrollView = res[2].node;
+      scrollView?.scrollIntoView?.('.nut-calendarcard-day.current.active');
+    }
+  });
+});
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1