Skip to content

Commit 1b97315

Browse files
authored
fix(Calendar): does not show current month with larger screen sizes (#7355)
* fix(Calendar): does not show current month with larger screen sizes * chore: fix demo snapshot
1 parent 27d4cb7 commit 1b97315

File tree

2 files changed

+50
-12
lines changed

2 files changed

+50
-12
lines changed

src/calendar/index.js

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -266,28 +266,33 @@ export default createComponent({
266266

267267
let height = 0;
268268
let currentMonth;
269-
let visibleIndex;
269+
const visibleRange = [-1, -1];
270270

271271
for (let i = 0; i < months.length; i++) {
272272
const visible = height <= bottom && height + heights[i] >= top;
273273

274-
if (visible && !currentMonth) {
275-
visibleIndex = i;
276-
currentMonth = months[i];
277-
}
274+
if (visible) {
275+
visibleRange[1] = i;
276+
277+
if (!currentMonth) {
278+
currentMonth = months[i];
279+
visibleRange[0] = i;
280+
}
278281

279-
if (!months[i].visible && visible) {
280-
this.$emit('month-show', {
281-
date: months[i].date,
282-
title: months[i].title,
283-
});
282+
if (!months[i].visible) {
283+
this.$emit('month-show', {
284+
date: months[i].date,
285+
title: months[i].title,
286+
});
287+
}
284288
}
285289

286290
height += heights[i];
287291
}
288292

289293
months.forEach((month, index) => {
290-
month.visible = index >= visibleIndex - 1 && index <= visibleIndex + 1;
294+
month.visible =
295+
index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;
291296
});
292297

293298
/* istanbul ignore else */

src/calendar/test/__snapshots__/demo.spec.js.snap

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,40 @@ exports[`renders demo correctly 1`] = `
139139
</div>
140140
<div class="van-calendar__month" style="padding-bottom: 0px;">
141141
<div class="van-calendar__month-title">2012年3月</div>
142-
<div></div>
142+
<div role="grid" class="van-calendar__days">
143+
<div class="van-calendar__month-mark">3</div>
144+
<div role="gridcell" tabindex="-1" class="van-calendar__day" style="margin-left: 57.142857142857146%;">1</div>
145+
<div role="gridcell" tabindex="-1" class="van-calendar__day">2</div>
146+
<div role="gridcell" tabindex="-1" class="van-calendar__day">3</div>
147+
<div role="gridcell" tabindex="-1" class="van-calendar__day">4</div>
148+
<div role="gridcell" tabindex="-1" class="van-calendar__day">5</div>
149+
<div role="gridcell" tabindex="-1" class="van-calendar__day">6</div>
150+
<div role="gridcell" tabindex="-1" class="van-calendar__day">7</div>
151+
<div role="gridcell" tabindex="-1" class="van-calendar__day">8</div>
152+
<div role="gridcell" tabindex="-1" class="van-calendar__day">9</div>
153+
<div role="gridcell" tabindex="-1" class="van-calendar__day">10</div>
154+
<div role="gridcell" tabindex="-1" class="van-calendar__day">11</div>
155+
<div role="gridcell" tabindex="-1" class="van-calendar__day">12</div>
156+
<div role="gridcell" tabindex="-1" class="van-calendar__day">13</div>
157+
<div role="gridcell" tabindex="-1" class="van-calendar__day">14</div>
158+
<div role="gridcell" tabindex="-1" class="van-calendar__day">15</div>
159+
<div role="gridcell" tabindex="-1" class="van-calendar__day">16</div>
160+
<div role="gridcell" tabindex="-1" class="van-calendar__day">17</div>
161+
<div role="gridcell" tabindex="-1" class="van-calendar__day">18</div>
162+
<div role="gridcell" tabindex="-1" class="van-calendar__day">19</div>
163+
<div role="gridcell" tabindex="-1" class="van-calendar__day">20</div>
164+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">21</div>
165+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">22</div>
166+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">23</div>
167+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">24</div>
168+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">25</div>
169+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">26</div>
170+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">27</div>
171+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">28</div>
172+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">29</div>
173+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">30</div>
174+
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">31</div>
175+
</div>
143176
</div>
144177
</div>
145178
<div class="van-calendar__footer"></div>

0 commit comments

Comments
 (0)