From 2987a9b01605701793066dd90383b732184eb3ac Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 17 Sep 2020 19:35:51 +0800 Subject: [PATCH 01/10] docs: add intro (#7197) --- README.zh-CN.md | 10 ++++++++-- docs/markdown/home.zh-CN.md | 12 +++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 2ac860702..fa6a0c4c3 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -24,10 +24,16 @@ --- +### 介绍 + +Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万前端开发者,是业界主流的移动端组件库之一。 + +目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 + ## 特性 -- 60+ 高质量组件 -- 90% 单元测试覆盖率 +- 60+ 高质量组件,覆盖移动端各类场景 +- 90%+ 单元测试覆盖率,提供稳定性保障 - 完善的中英文文档和示例 - 支持按需引入 - 支持主题定制 diff --git a/docs/markdown/home.zh-CN.md b/docs/markdown/home.zh-CN.md index ad310a9d0..b033ab480 100644 --- a/docs/markdown/home.zh-CN.md +++ b/docs/markdown/home.zh-CN.md @@ -6,15 +6,21 @@ +### 介绍 + +Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万前端开发者,是业界主流的移动端组件库之一。

+ +目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 + ### 特性 -- 60+ 高质量组件 -- 90% 单元测试覆盖率 +- 60+ 高质量组件,覆盖移动端各类场景 +- 90%+ 单元测试覆盖率,提供稳定性保障 - 完善的中英文文档和示例 - 支持按需引入 - 支持主题定制 - 支持国际化 -- 支持 TS +- 支持 TypeScript - 支持 SSR ### 快速上手 From 2277815d695ced3b855609d1f7438e1232600878 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Thu, 17 Sep 2020 19:50:03 +0800 Subject: [PATCH 02/10] docs: update README --- README.zh-CN.md | 8 ++++---- docs/markdown/home.zh-CN.md | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index fa6a0c4c3..f66630781 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -26,9 +26,9 @@ ### 介绍 -Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万前端开发者,是业界主流的移动端组件库之一。 +Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。 -目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 +目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 ## 特性 @@ -77,11 +77,11 @@ vant 也支持按需引入、CDN 引入等方式,详细说明见 [快速上手 ## 加入我们 -**有赞前端团队**是由一群年轻、皮实、对技术饱含热情的小伙伴组成的,目前共有 100 多名前端工程师,分布在业务中台、电商、零售、美业、资产、赋能等业务线。 +**有赞前端团队**是由一群年轻、皮实、对技术饱含热情的小伙伴组成的,目前共有 100 多名前端工程师,分布在业务中台、电商、零售、美业、资产、有赞云、赋能平台、增长中心等业务线。 我们热爱分享和开源,崇尚用工程师的方式解决问题,因此造了很多工具来解决我们遇到的问题,目前我们维护的开源产品有: - + 我们正在寻找更多优秀的小伙伴,一起拓展前端技术的边界,期待你的加入! diff --git a/docs/markdown/home.zh-CN.md b/docs/markdown/home.zh-CN.md index b033ab480..a2fe61b50 100644 --- a/docs/markdown/home.zh-CN.md +++ b/docs/markdown/home.zh-CN.md @@ -8,9 +8,9 @@ ### 介绍 -Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万前端开发者,是业界主流的移动端组件库之一。

+Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。

-目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 +目前 Vant 官方提供了 [Vue 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)。 ### 特性 @@ -39,7 +39,7 @@ Vant 是**有赞前端团队**开源的移动端组件库,于 2016 年开源 ### 加入我们 -**有赞前端团队**是由一群年轻、皮实、对技术饱含热情的小伙伴组成的,目前共有 100 多名前端工程师,分布在业务中台、电商、零售、美业、资产、赋能等业务线。 +**有赞前端团队**是由一群年轻、皮实、对技术饱含热情的小伙伴组成的,目前共有 100 多名前端工程师,分布在业务中台、电商、零售、美业、资产、有赞云、赋能平台、增长中心等业务线。 我们热爱分享和开源,崇尚用工程师的方式解决问题,因此造了很多工具来解决我们遇到的问题,目前我们维护的开源产品有: From 0f6ba68ebedad67a29c34dbdc39f9af385350f8b Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 17 Sep 2020 19:56:22 +0800 Subject: [PATCH 03/10] docs: fix image size --- README.zh-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index f66630781..140ef63c9 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -81,7 +81,7 @@ vant 也支持按需引入、CDN 引入等方式,详细说明见 [快速上手 我们热爱分享和开源,崇尚用工程师的方式解决问题,因此造了很多工具来解决我们遇到的问题,目前我们维护的开源产品有: - + 我们正在寻找更多优秀的小伙伴,一起拓展前端技术的边界,期待你的加入! From d541724bfc63478c35ca5158169309120f9c8a88 Mon Sep 17 00:00:00 2001 From: microJ Date: Fri, 18 Sep 2020 11:28:34 +0800 Subject: [PATCH 04/10] docs: fix class name (#7200) --- src/cell/README.zh-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cell/README.zh-CN.md b/src/cell/README.zh-CN.md index 86394eec0..e0b448b63 100644 --- a/src/cell/README.zh-CN.md +++ b/src/cell/README.zh-CN.md @@ -96,7 +96,7 @@ Vue.use(CellGroup); From e026a5614d275b53f53ca6bb3137dffc6dc6d8e3 Mon Sep 17 00:00:00 2001 From: Lindy <33708359+Lindysen@users.noreply.github.com> Date: Fri, 18 Sep 2020 11:29:34 +0800 Subject: [PATCH 05/10] fix(CouponCell): discounted value (#7196) * fix(CouponCell): discounted value * feat(CouponCell): add unit test * feat(CouponCell): add unit test --- src/coupon-cell/index.tsx | 4 +--- .../test/__snapshots__/index.spec.js.snap | 9 +++++++++ src/coupon-list/test/index.spec.js | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/coupon-cell/index.tsx b/src/coupon-cell/index.tsx index 86e3b3d59..368758649 100644 --- a/src/coupon-cell/index.tsx +++ b/src/coupon-cell/index.tsx @@ -30,9 +30,7 @@ function formatValue(props: CouponCellProps) { if (isDef(coupon.value)) { ({ value } = coupon); - } - - if (isDef(coupon.denominations)) { + } else if (isDef(coupon.denominations)) { value = coupon.denominations; } diff --git a/src/coupon-list/test/__snapshots__/index.spec.js.snap b/src/coupon-list/test/__snapshots__/index.spec.js.snap index 1c6330ea1..614ef278f 100644 --- a/src/coupon-list/test/__snapshots__/index.spec.js.snap +++ b/src/coupon-list/test/__snapshots__/index.spec.js.snap @@ -54,6 +54,15 @@ exports[`render coupon cell with coupon 1`] = ` `; + +exports[`render coupon cell with zero discount 1`] = ` +
+
优惠券
+
-¥ 0.00
+ +
+`; + exports[`render coupon list 1`] = `
diff --git a/src/coupon-list/test/index.spec.js b/src/coupon-list/test/index.spec.js index 1fa8732e6..a0e2053d4 100644 --- a/src/coupon-list/test/index.spec.js +++ b/src/coupon-list/test/index.spec.js @@ -26,6 +26,12 @@ const coupon3 = { denominations: 123, }; +const coupon4 = { + ...coupon, + startAt: 1600327871, + endAt: 1700327871, +}; + const emptyCoupon = { id: 0, discount: 0, @@ -162,3 +168,13 @@ test('render coupon cell with coupon', () => { }); expect(wrapper).toMatchSnapshot(); }); + +test('render coupon cell with zero discount', () => { + const wrapper = mount(CouponCell, { + propsData: { + coupons: [{ ...coupon4, value: 0, denominations: 150 }], + chosenCoupon: 0, + }, + }); + expect(wrapper).toMatchSnapshot(); +}); From ffb01671a187cfb77c059639ed2aabb07390147f Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 18 Sep 2020 16:29:35 +0800 Subject: [PATCH 06/10] fix(List): scoped style not applied to first child (#7202) --- src/list/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/list/index.js b/src/list/index.js index 4a6aef7a5..282bc8eeb 100644 --- a/src/list/index.js +++ b/src/list/index.js @@ -121,7 +121,7 @@ export default createComponent({ genLoading() { if (this.innerLoading && !this.finished) { return ( -
+
{this.slots('loading') || ( {this.loadingText || t('loading')} )} From e3d63288153817388c78a0aca5c3678bec0a7c19 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 18 Sep 2020 21:30:16 +0800 Subject: [PATCH 07/10] fix(Field): incorrect disabled color in iOS 14 (#7206) * fix(Field): incorrect disabled color in iOS 14 * fix: field style --- src/field/index.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/field/index.less b/src/field/index.less index 88712250b..645f79769 100644 --- a/src/field/index.less +++ b/src/field/index.less @@ -55,10 +55,10 @@ &:disabled { color: @field-input-disabled-text-color; - background-color: transparent; cursor: not-allowed; opacity: 1; - -webkit-text-fill-color: currentColor; // fix disabled color in iOS + // fix disabled color in mobile safari + -webkit-text-fill-color: @field-input-disabled-text-color; } &:read-only { From 4528c6b9cc55be1b59fc2ec057ea526a6df3cfea Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 18 Sep 2020 21:38:27 +0800 Subject: [PATCH 08/10] fix(Calendar): incorrect month title (#7205) * fix(Calendar): incorrect month title * chore: adjust util order * fix: snapshot --- src/calendar/index.js | 25 +++++++------ .../test/__snapshots__/demo.spec.js.snap | 35 +------------------ 2 files changed, 13 insertions(+), 47 deletions(-) diff --git a/src/calendar/index.js b/src/calendar/index.js index e3e172677..5fc0c1ec4 100644 --- a/src/calendar/index.js +++ b/src/calendar/index.js @@ -1,4 +1,5 @@ // Utils +import { raf } from '../utils/dom/raf'; import { isDate } from '../utils/validate/date'; import { getScrollTop } from '../utils/dom/scroll'; import { @@ -188,13 +189,13 @@ export default createComponent({ this.$refs.body.getBoundingClientRect().height ); this.onScroll(); + this.scrollIntoView(); }); - this.scrollIntoView(); }, // scroll to current month scrollIntoView() { - this.$nextTick(() => { + raf(() => { const { currentDate } = this; if (!currentDate) { @@ -254,29 +255,24 @@ export default createComponent({ onScroll() { const { body, months } = this.$refs; const top = getScrollTop(body); + const bottom = top + this.bodyHeight; const heights = months.map((item) => item.getHeight()); const heightSum = heights.reduce((a, b) => a + b, 0); // iOS scroll bounce may exceed the range - let bottom = top + this.bodyHeight; if (bottom > heightSum && top > 0) { - bottom = heightSum; + return; } let height = 0; let currentMonth; - - // add offset to avoid rem accuracy issues - // see: https://github.com/youzan/vant/issues/6929 - const viewportOffset = 50; - const viewportTop = top - viewportOffset; - const viewportBottom = bottom + viewportOffset; + let visibleIndex; for (let i = 0; i < months.length; i++) { - const visible = - height <= viewportBottom && height + heights[i] >= viewportTop; + const visible = height <= bottom && height + heights[i] >= top; if (visible && !currentMonth) { + visibleIndex = i; currentMonth = months[i]; } @@ -287,10 +283,13 @@ export default createComponent({ }); } - months[i].visible = visible; height += heights[i]; } + months.forEach((month, index) => { + month.visible = index >= visibleIndex - 1 && index <= visibleIndex + 1; + }); + /* istanbul ignore else */ if (currentMonth) { this.subtitle = currentMonth.title; diff --git a/src/calendar/test/__snapshots__/demo.spec.js.snap b/src/calendar/test/__snapshots__/demo.spec.js.snap index b0a56dda3..74018afa8 100644 --- a/src/calendar/test/__snapshots__/demo.spec.js.snap +++ b/src/calendar/test/__snapshots__/demo.spec.js.snap @@ -139,40 +139,7 @@ exports[`renders demo correctly 1`] = `
2012年3月
-
-
3
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
+
From deeff0bdeca1f0e4ed555061d3e8a693364561b3 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 18 Sep 2020 21:49:54 +0800 Subject: [PATCH 09/10] fix(Swipe): incorrect indicator color trantision (#7207) --- src/swipe/index.less | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/swipe/index.less b/src/swipe/index.less index af15d62cb..6ae3b7d1f 100644 --- a/src/swipe/index.less +++ b/src/swipe/index.less @@ -41,7 +41,8 @@ background-color: @swipe-indicator-inactive-background-color; border-radius: 100%; opacity: @swipe-indicator-inactive-opacity; - transition: opacity 0.2s; + transition: opacity @animation-duration-fast, + background-color @animation-duration-fast; &:not(:last-child) { margin-right: @swipe-indicator-size; From d9e24286d2e8254cc9e96cdd5ee2aba549a3dd00 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 18 Sep 2020 21:53:50 +0800 Subject: [PATCH 10/10] fix(Swipe): can't disable loop in some cases (#7208) --- src/swipe/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/swipe/index.js b/src/swipe/index.js index 608289690..fd18fdeff 100644 --- a/src/swipe/index.js +++ b/src/swipe/index.js @@ -167,8 +167,8 @@ export default createComponent({ this.rect = rect; this.swiping = true; this.active = active; - this.computedWidth = Math.round(+this.width || rect.width); - this.computedHeight = Math.round(+this.height || rect.height); + this.computedWidth = Math.floor(+this.width || rect.width); + this.computedHeight = Math.floor(+this.height || rect.height); this.offset = this.getTargetOffset(active); this.children.forEach((swipe) => { swipe.offset = 0;