Merge branch 'dev' into next

This commit is contained in:
chenjiahan
2020-10-18 20:10:42 +08:00
21 changed files with 145 additions and 62 deletions
+1 -1
View File
@@ -269,7 +269,7 @@ Following props are supported when the type is range
| --- | --- | --- | --- |
| max-range `v2.4.3` | Number of selectable days | _number \| string_ | Unlimitied |
| range-prompt `v2.4.3` | Error message when exceeded max range | _string_ | `Choose no more than xx days` |
| allow-same-day `v2.5.6` | Whether the start and end time of the range is allowed on the same day | _boolean_ | `fasle` |
| allow-same-day `v2.5.6` | Whether the start and end time of the range is allowed on the same day | _boolean_ | `false` |
### Multiple Props
+1 -1
View File
@@ -271,7 +271,7 @@ export default {
| --- | --- | --- | --- |
| max-range `v2.4.3` | 日期区间最多可选天数 | _number \| string_ | 无限制 |
| range-prompt `v2.4.3` | 范围选择超过最多可选天数时的提示文案 | _string_ | `选择天数不能超过 xx 天` |
| allow-same-day `v2.5.6` | 是否允许日期范围的起止时间为同一天 | _boolean_ | `fasle` |
| allow-same-day `v2.5.6` | 是否允许日期范围的起止时间为同一天 | _boolean_ | `false` |
### Multiple Props
+16 -11
View File
@@ -236,29 +236,34 @@ export default createComponent({
let height = 0;
let currentMonth;
let visibleIndex;
const visibleRange = [-1, -1];
for (let i = 0; i < months.value.length; i++) {
const month = monthRefs.value[i];
const visible = height <= bottom && height + heights[i] >= top;
if (visible && !currentMonth) {
visibleIndex = i;
currentMonth = month;
}
if (visible) {
visibleRange[1] = i;
if (!month.visible && visible) {
emit('month-show', {
date: month.getDate(),
title: month.getTitle(),
});
if (!currentMonth) {
currentMonth = month;
visibleRange[0] = i;
}
if (!month.visible) {
emit('month-show', {
date: month.date,
title: month.title,
});
}
}
height += heights[i];
}
months.value.forEach((month, index) => {
const visible = index >= visibleIndex - 1 && index <= visibleIndex + 1;
const visible =
index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;
monthRefs.value[index].setVisible(visible);
});
@@ -139,7 +139,40 @@ exports[`renders demo correctly 1`] = `
</div>
<div class="van-calendar__month" style="padding-bottom: 0px;">
<div class="van-calendar__month-title">2012年3月</div>
<div></div>
<div role="grid" class="van-calendar__days">
<div class="van-calendar__month-mark">3</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day" style="margin-left: 57.142857142857146%;">1</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">2</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">3</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">4</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">5</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">6</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">7</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">8</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">9</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">10</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">11</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">12</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">13</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">14</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">15</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">16</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">17</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">18</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">19</div>
<div role="gridcell" tabindex="-1" class="van-calendar__day">20</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">21</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">22</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">23</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">24</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">25</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">26</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">27</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">28</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">29</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">30</div>
<div role="gridcell" class="van-calendar__day van-calendar__day--disabled">31</div>
</div>
</div>
</div>
<div class="van-calendar__footer"></div>
+4 -4
View File
@@ -85,15 +85,15 @@ app.use(CellGroup);
### Use Slots
```html
<van-cell value="内容" is-link>
<van-cell value="Content" is-link>
<!-- Use the title slot to customize the title -->
<template #title>
<span class="custom-title">单元格</span>
<van-tag type="danger">标签</van-tag>
<span class="custom-title">Title</span>
<van-tag type="danger">Tag</van-tag>
</template>
</van-cell>
<van-cell title="单元格" icon="shop-o">
<van-cell title="Title" icon="shop-o">
<!-- Use the right-icon slot to customize the right icon -->
<template #right-icon>
<van-icon name="search" class="search-icon" />
-22
View File
@@ -123,28 +123,6 @@ test('lazy render collapse content', async () => {
expect(wrapper).toMatchSnapshot();
});
test('warn when value type is incorrect', () => {
const originConsoleError = console.error;
const error = jest.fn();
console.error = error;
mount({
template: `
<van-collapse v-model="active">
<van-collapse-item title="a" name="first"></van-collapse-item>
</van-collapse>
`,
data() {
return {
active: 0,
};
},
});
expect(error).toHaveBeenCalledTimes(1);
console.error = originConsoleError;
});
test('toggle method', (done) => {
mount({
template: `
-1
View File
@@ -15,7 +15,6 @@
}
&--right {
padding-right: @padding-md;
text-align: right;
}
}
+1 -1
View File
@@ -242,7 +242,7 @@ export default {
| lazy-render | 是否开启延迟渲染(首次切换到标签时才触发内容渲染) | _boolean_ | `true` |
| scrollspy `v2.3.0` | 是否开启滚动导航 | _boolean_ | `false` |
| offset-top `v2.8.7` | 粘性定位布局下与顶部的最小距离,支持 `px` `vw` `rem` 单位,默认 `px` | _number \| string_ | `0` |
| swipe-threshold | 滚动阈值,标签数量超过阈值时开始横向滚动 | _number \| string_ | `5` |
| swipe-threshold | 滚动阈值,标签数量超过阈值且总宽度超过标签栏宽度时开始横向滚动 | _number \| string_ | `5` |
| title-active-color | 标题选中态颜色 | _string_ | - |
| title-inactive-color | 标题默认态颜色 | _string_ | - |
| before-change `v2.9.3` | 切换标签前的回调函数,返回 `false` 可阻止切换,支持返回 Promise | _(name) => boolean \| Promise_ | - |
+3 -2
View File
@@ -60,11 +60,12 @@ export default createComponent({
);
return () => {
if (!slots.default) {
const { animated, swipeable, scrollspy, lazyRender } = parent.props;
if (!slots.default && !animated) {
return;
}
const { animated, swipeable, scrollspy, lazyRender } = parent.props;
const active = isActive();
const show = scrollspy || active;
@@ -1,5 +1,21 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`badge prop 1`] = `
<div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap">
<div role="tablist" class="van-tabs__nav van-tabs__nav--line">
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-tab__text-wrapper"><span class="van-tab__text van-tab__text--ellipsis"></span>
<div class="van-info">10</div>
</span></div>
<div class="van-tabs__line"></div>
</div>
</div>
<div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane">Text</div>
</div>
</div>
`;
exports[`border props 1`] = `
<div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap">
@@ -25,7 +25,7 @@ exports[`height prop 1`] = `
</div>
`;
exports[`nav badge 1`] = `
exports[`nav render badge 1`] = `
<div class="van-tree-select" style="height: 300px;">
<div class="van-sidebar van-tree-select__nav"><a class="van-sidebar-item van-sidebar-item--select van-tree-select__nav-item">
<div class="van-sidebar-item__text">group1<div class="van-badge van-sidebar-item__badge">3</div>
+1 -7
View File
@@ -27,7 +27,6 @@ const mockItems = [
];
test('click-nav event', () => {
const onNavClick = jest.fn();
const onClickNav = jest.fn();
const wrapper = mount(TreeSelect, {
@@ -36,7 +35,6 @@ test('click-nav event', () => {
},
context: {
on: {
navclick: onNavClick,
'click-nav': onClickNav,
},
},
@@ -45,12 +43,10 @@ test('click-nav event', () => {
const navItems = wrapper.findAll('.van-tree-select__nav-item');
navItems.at(1).trigger('click');
expect(onNavClick).toHaveBeenCalledWith(1);
expect(onClickNav).toHaveBeenCalledWith(1);
});
test('click-item event', () => {
const onItemClick = jest.fn();
const onClickItem = jest.fn();
const wrapper = mount(TreeSelect, {
@@ -59,7 +55,6 @@ test('click-item event', () => {
},
context: {
on: {
itemclick: onItemClick,
'click-item': onClickItem,
},
},
@@ -67,7 +62,6 @@ test('click-item event', () => {
const items = wrapper.findAll('.van-tree-select__item');
items.at(0).trigger('click');
expect(onItemClick).toHaveBeenCalledWith(mockItem);
expect(onClickItem).toHaveBeenCalledWith(mockItem);
});
@@ -151,7 +145,7 @@ test('height prop', () => {
expect(wrapper).toMatchSnapshot();
});
test('nav badge', () => {
test('nav render badge', () => {
const wrapper = mount(TreeSelect, {
propsData: {
items: [