From 8d29e5c8c6df278800865596f285c17029150963 Mon Sep 17 00:00:00 2001 From: songweite Date: Fri, 3 Jul 2020 10:35:59 +0800 Subject: [PATCH 01/15] refactor(Sku): use datetime-picker --- src/sku/components/SkuDateTimeFiled.js | 90 ++++++++++++++++++++++++++ src/sku/components/SkuMessages.js | 21 +++++- src/sku/index.less | 7 ++ src/sku/lang.ts | 16 ++--- src/sku/test/index.spec.js | 12 ++++ src/sku/utils/time-helper.js | 30 +++++++++ 6 files changed, 166 insertions(+), 10 deletions(-) create mode 100644 src/sku/components/SkuDateTimeFiled.js create mode 100644 src/sku/utils/time-helper.js diff --git a/src/sku/components/SkuDateTimeFiled.js b/src/sku/components/SkuDateTimeFiled.js new file mode 100644 index 000000000..c105b7edd --- /dev/null +++ b/src/sku/components/SkuDateTimeFiled.js @@ -0,0 +1,90 @@ +// Utils +import { createNamespace } from '../../utils'; +import { string2Date, date2String } from '../utils/time-helper'; + +// Components +import Popup from '../../popup'; +import DateTimePicker from '../../datetime-picker'; +import Field from '../../field'; + +const [createComponent, bem, t] = createNamespace('sku-datetime-filed'); + +export default createComponent({ + props: { + value: String, + label: String, + required: Boolean, + placeholder: String, + type: { + type: String, + default: 'date', + }, + }, + + data() { + return { + showDatePicker: false, + currentDate: this.type === 'time' ? '' : new Date(), + }; + }, + + watch: { + value(val) { + switch (this.type) { + case 'time': + this.currentDate = val; + break; + case 'date': + case 'datetime': + this.currentDate = string2Date(val) || new Date(); + break; + } + }, + }, + + methods: { + onClick() { + this.showDatePicker = true; + }, + onConfirm(val) { + let data = val; + if (this.type !== 'time') { + data = date2String(val, this.type); + } + this.$emit('input', data); + this.showDatePicker = false; + }, + onCancel() { + this.showDatePicker = false; + }, + }, + + render() { + return ( + + + + + + ); + }, +}); diff --git a/src/sku/components/SkuMessages.js b/src/sku/components/SkuMessages.js index 854e046a3..d24293e0f 100644 --- a/src/sku/components/SkuMessages.js +++ b/src/sku/components/SkuMessages.js @@ -7,6 +7,7 @@ import { isNumeric } from '../../utils/validate/number'; import Cell from '../../cell'; import Field from '../../field'; import SkuImgUploader from './SkuImgUploader'; +import SkuDateTimeFiled from './SkuDateTimeFiled'; const [createComponent, bem, t] = createNamespace('sku-messages'); @@ -48,7 +49,7 @@ export default createComponent({ if (message.type === 'id_no') { return 'text'; } - return message.datetime > 0 ? 'datetime-local' : message.type; + return message.datetime > 0 ? 'datetime' : message.type; }, getMessages() { @@ -125,7 +126,6 @@ export default createComponent({ +
{t('imageLabel')}
); } + // 时间和日期使用的vant选择器 + const isDateOrTime = ['date', 'time'].indexOf(message.type) > -1; + if (isDateOrTime) { + return ( + + ); + } + return ( { wrapper.find('.van-button--danger').trigger('click'); expect(wrapper.emitted('buy-clicked').length).toEqual(1); }); + +test('string2Date', () => { + expect(date2String(string2Date(''))).toEqual(''); + expect(date2String(string2Date('2020-07-01'))).toEqual('2020-07-01'); + expect(date2String(string2Date('2020-07-01 22:44'), 'datetime')).toEqual( + '2020-07-01 22:44' + ); + expect(date2String(string2Date('2020-12-31 23:59'), 'datetime')).toEqual( + '2020-12-31 23:59' + ); +}); diff --git a/src/sku/utils/time-helper.js b/src/sku/utils/time-helper.js new file mode 100644 index 000000000..0dc1d0fee --- /dev/null +++ b/src/sku/utils/time-helper.js @@ -0,0 +1,30 @@ +function length2(int) { + return int > 9 ? `${int}` : `0${int}`; +} + +// 字符串转 Date +// 只处理 YYYY-MM-DD 或者 YYYY-MM-DD HH:MM 格式 +export function string2Date(timeString) { + if (!timeString) { + return null; + } + return new Date(timeString.replace(/-/g, '/')); +} + +// Date 转字符串 +// type: date or datetime +export function date2String(date, type = 'date') { + if (!date) { + return ''; + } + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + let timeString = `${year}-${length2(month)}-${length2(day)}`; + if (type === 'datetime') { + const hours = date.getHours(); + const minute = date.getMinutes(); + timeString += ` ${length2(hours)}:${length2(minute)}`; + } + return timeString; +} From 7343e55409900635a0e39063edb9f67493048a54 Mon Sep 17 00:00:00 2001 From: songweite Date: Fri, 3 Jul 2020 17:48:50 +0800 Subject: [PATCH 02/15] refactor(Sku): refactor image upload --- src/sku/components/SkuImgUploader.js | 95 ++++++++-------------------- src/sku/index.less | 69 -------------------- 2 files changed, 26 insertions(+), 138 deletions(-) diff --git a/src/sku/components/SkuImgUploader.js b/src/sku/components/SkuImgUploader.js index a9d8003aa..d92aeed5a 100644 --- a/src/sku/components/SkuImgUploader.js +++ b/src/sku/components/SkuImgUploader.js @@ -2,8 +2,6 @@ import { createNamespace } from '../../utils'; // Components -import Icon from '../../icon'; -import Loading from '../../loading'; import Uploader from '../../uploader'; const [createComponent, bem, t] = createNamespace('sku-img-uploader'); @@ -20,26 +18,32 @@ export default createComponent({ data() { return { - // 正在上传的图片 base64 - paddingImg: '', - uploadFail: false, + fileList: [], }; }, + watch: { + value(val) { + if (val) { + this.fileList = [{ url: val, isImage: true }]; + } else { + this.fileList = []; + } + }, + }, + methods: { afterReadFile(file) { - // 上传文件 - this.paddingImg = file.content; - this.uploadFail = false; + file.status = 'uploading'; + file.message = '上传中...'; this.uploadImg(file.file, file.content) .then((img) => { + file.status = 'done'; this.$emit('input', img); - this.$nextTick(() => { - this.paddingImg = ''; - }); }) .catch(() => { - this.uploadFail = true; + file.status = 'failed'; + file.message = '上传失败'; }); }, @@ -47,68 +51,21 @@ export default createComponent({ this.$toast(t('oversize', this.maxSize)); }, - genUploader(content, disabled = false) { - return ( - -
{content}
-
- ); - }, - - genMask() { - return ( -
- {this.uploadFail ? ( - [ - , -
, - ] - ) : ( - - )} -
- ); + onDelete() { + this.$emit('input', ''); }, }, render() { return ( -
- {this.value && - this.genUploader( - [ - , - { - this.$emit('input', ''); - }} - />, - ], - true - )} - - {this.paddingImg && - this.genUploader( - [, this.genMask()], - !this.uploadFail - )} - - {!this.value && - !this.paddingImg && - this.genUploader( -
- -
- )} -
+ ); }, }); diff --git a/src/sku/index.less b/src/sku/index.less index 5b53f5d59..a9e2a2374 100644 --- a/src/sku/index.less +++ b/src/sku/index.less @@ -332,7 +332,6 @@ } &-label { - margin-top: @padding-xs; color: @cell-label-color; font-size: @cell-label-font-size; line-height: @cell-label-line-height; @@ -340,74 +339,6 @@ } } - &-img-uploader { - display: inline-block; - - &__uploader { - vertical-align: middle; - } - - &__img { - position: relative; - float: left; - width: 64px; - height: 64px; - margin-right: @padding-xs; - background: @sku-item-background-color; - border-radius: @border-radius-sm; - - img { - width: 100%; - height: 100%; - object-fit: contain; - } - } - - &__delete { - position: absolute; - top: -12px; - right: -14px; - z-index: 1; - padding: 6px; - color: @sku-upload-mask-color; - opacity: 0.8; - - &::before { - background-color: @white; - border-radius: 14px; - } - } - - &__mask { - position: absolute; - top: 0; - left: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - color: white; - background: @sku-upload-mask-color; - } - - &__warn-text { - margin-top: 6px; - font-size: @font-size-sm; - line-height: 14px; - } - - &__trigger { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - color: @sku-icon-gray-color; - } - } - &-actions { display: flex; flex-shrink: 0; From 2472a647a41adfee9bbc591c2ed78bac0244610b Mon Sep 17 00:00:00 2001 From: songweite Date: Sun, 5 Jul 2020 14:32:52 +0800 Subject: [PATCH 03/15] fix(Sku): delete unuse logic --- src/sku/components/SkuMessages.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/sku/components/SkuMessages.js b/src/sku/components/SkuMessages.js index d24293e0f..0d096dd64 100644 --- a/src/sku/components/SkuMessages.js +++ b/src/sku/components/SkuMessages.js @@ -56,11 +56,7 @@ export default createComponent({ const messages = {}; this.messageValues.forEach((item, index) => { - let { value } = item; - if (this.messages[index].datetime > 0) { - value = value.replace(/T/g, ' '); - } - messages[`message_${index}`] = value; + messages[`message_${index}`] = item.value; }); return messages; @@ -70,12 +66,8 @@ export default createComponent({ const messages = {}; this.messageValues.forEach((item, index) => { - let { value } = item; const message = this.messages[index]; - if (message.datetime > 0) { - value = value.replace(/T/g, ' '); - } - messages[message.name] = value; + messages[message.name] = item.value; }); return messages; From ba16c6bff54b00d6b7a957cf24d1ac8fed30e211 Mon Sep 17 00:00:00 2001 From: songweite Date: Tue, 7 Jul 2020 13:36:23 +0800 Subject: [PATCH 04/15] fix(Sku): change code style --- src/sku/components/SkuDateTimeFiled.js | 7 ++++--- src/sku/components/SkuImgUploader.js | 4 ++-- src/sku/lang.ts | 3 ++- src/sku/test/index.spec.js | 12 ++++++------ src/sku/utils/time-helper.js | 12 +++++------- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/sku/components/SkuDateTimeFiled.js b/src/sku/components/SkuDateTimeFiled.js index c105b7edd..e48940107 100644 --- a/src/sku/components/SkuDateTimeFiled.js +++ b/src/sku/components/SkuDateTimeFiled.js @@ -1,6 +1,6 @@ // Utils import { createNamespace } from '../../utils'; -import { string2Date, date2String } from '../utils/time-helper'; +import { stringToDate, dateToString } from '../utils/time-helper'; // Components import Popup from '../../popup'; @@ -36,7 +36,7 @@ export default createComponent({ break; case 'date': case 'datetime': - this.currentDate = string2Date(val) || new Date(); + this.currentDate = stringToDate(val) || new Date(); break; } }, @@ -49,7 +49,7 @@ export default createComponent({ onConfirm(val) { let data = val; if (this.type !== 'time') { - data = date2String(val, this.type); + data = dateToString(val, this.type); } this.$emit('input', data); this.showDatePicker = false; @@ -73,6 +73,7 @@ export default createComponent({ > { file.status = 'done'; @@ -43,7 +43,7 @@ export default createComponent({ }) .catch(() => { file.status = 'failed'; - file.message = '上传失败'; + file.message = t('fail'); }); }, diff --git a/src/sku/lang.ts b/src/sku/lang.ts index 86f64f6f5..90aa660ea 100644 --- a/src/sku/lang.ts +++ b/src/sku/lang.ts @@ -26,7 +26,8 @@ export default { vanSkuImgUploader: { oversize: (maxSize: number) => `最大可上传图片为${maxSize}MB,请尝试压缩图片尺寸`, - fail: '上传失败
重新上传', + fail: '上传失败', + uploading: '上传中...', }, vanSkuStepper: { quotaLimit: (quota: number) => `限购${quota}件`, diff --git a/src/sku/test/index.spec.js b/src/sku/test/index.spec.js index 6cb365c94..01efb6f04 100644 --- a/src/sku/test/index.spec.js +++ b/src/sku/test/index.spec.js @@ -1,7 +1,7 @@ import { mount } from '../../../test'; import Sku from '..'; import { getSkuData, initialSku } from '../demo/data'; -import { string2Date, date2String } from '../utils/time-helper'; +import { stringToDate, dateToString } from '../utils/time-helper'; const skuData = getSkuData(); @@ -32,13 +32,13 @@ test('resetSelectedSku method', () => { expect(wrapper.emitted('buy-clicked').length).toEqual(1); }); -test('string2Date', () => { - expect(date2String(string2Date(''))).toEqual(''); - expect(date2String(string2Date('2020-07-01'))).toEqual('2020-07-01'); - expect(date2String(string2Date('2020-07-01 22:44'), 'datetime')).toEqual( +test('stringToDate', () => { + expect(dateToString(stringToDate(''))).toEqual(''); + expect(dateToString(stringToDate('2020-07-01'))).toEqual('2020-07-01'); + expect(dateToString(stringToDate('2020-07-01 22:44'), 'datetime')).toEqual( '2020-07-01 22:44' ); - expect(date2String(string2Date('2020-12-31 23:59'), 'datetime')).toEqual( + expect(dateToString(stringToDate('2020-12-31 23:59'), 'datetime')).toEqual( '2020-12-31 23:59' ); }); diff --git a/src/sku/utils/time-helper.js b/src/sku/utils/time-helper.js index 0dc1d0fee..2010e10b8 100644 --- a/src/sku/utils/time-helper.js +++ b/src/sku/utils/time-helper.js @@ -1,10 +1,8 @@ -function length2(int) { - return int > 9 ? `${int}` : `0${int}`; -} +import { padZero } from '../../utils/format/string'; // 字符串转 Date // 只处理 YYYY-MM-DD 或者 YYYY-MM-DD HH:MM 格式 -export function string2Date(timeString) { +export function stringToDate(timeString) { if (!timeString) { return null; } @@ -13,18 +11,18 @@ export function string2Date(timeString) { // Date 转字符串 // type: date or datetime -export function date2String(date, type = 'date') { +export function dateToString(date, type = 'date') { if (!date) { return ''; } const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); - let timeString = `${year}-${length2(month)}-${length2(day)}`; + let timeString = `${year}-${padZero(month)}-${padZero(day)}`; if (type === 'datetime') { const hours = date.getHours(); const minute = date.getMinutes(); - timeString += ` ${length2(hours)}:${length2(minute)}`; + timeString += ` ${padZero(hours)}:${padZero(minute)}`; } return timeString; } From ae3167da8c861934a9f383696507c2ad27948627 Mon Sep 17 00:00:00 2001 From: songweite Date: Tue, 7 Jul 2020 16:09:46 +0800 Subject: [PATCH 05/15] fix(Sku): eslint --- src/sku/components/SkuDateTimeFiled.js | 2 +- src/sku/components/SkuImgUploader.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sku/components/SkuDateTimeFiled.js b/src/sku/components/SkuDateTimeFiled.js index e48940107..faefc7789 100644 --- a/src/sku/components/SkuDateTimeFiled.js +++ b/src/sku/components/SkuDateTimeFiled.js @@ -7,7 +7,7 @@ import Popup from '../../popup'; import DateTimePicker from '../../datetime-picker'; import Field from '../../field'; -const [createComponent, bem, t] = createNamespace('sku-datetime-filed'); +const [createComponent] = createNamespace('sku-datetime-filed'); export default createComponent({ props: { diff --git a/src/sku/components/SkuImgUploader.js b/src/sku/components/SkuImgUploader.js index 0c5573c34..b017c1eba 100644 --- a/src/sku/components/SkuImgUploader.js +++ b/src/sku/components/SkuImgUploader.js @@ -4,7 +4,9 @@ import { createNamespace } from '../../utils'; // Components import Uploader from '../../uploader'; -const [createComponent, bem, t] = createNamespace('sku-img-uploader'); +const namespace = createNamespace('sku-img-uploader'); +const createComponent = namespace[0]; +const t = namespace[2]; export default createComponent({ props: { From eef0c90269676811cda56afbc4623b6e386db839 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Tue, 7 Jul 2020 16:56:06 +0800 Subject: [PATCH 06/15] style(Sku): remove unused border style --- src/sku/index.less | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/sku/index.less b/src/sku/index.less index a9e2a2374..f663c091d 100644 --- a/src/sku/index.less +++ b/src/sku/index.less @@ -314,12 +314,6 @@ &-messages { padding-bottom: @padding-xl; - .van-cell::after { - top: 0; - right: @padding-md; - bottom: auto; - } - &__image-cell { .van-cell__title { max-width: @field-label-width; From 67be6f4f02a00e85b69883cc30b3181b1e3a088a Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Tue, 7 Jul 2020 16:59:54 +0800 Subject: [PATCH 07/15] docs(Form): use round popup --- src/form/demo/FieldTypeArea.vue | 1 + src/form/demo/FieldTypeCalendar.vue | 1 + src/form/demo/FieldTypeDatetimePicker.vue | 1 + src/form/demo/FieldTypePicker.vue | 1 + 4 files changed, 4 insertions(+) diff --git a/src/form/demo/FieldTypeArea.vue b/src/form/demo/FieldTypeArea.vue index 01731324c..f8bcfeb5a 100644 --- a/src/form/demo/FieldTypeArea.vue +++ b/src/form/demo/FieldTypeArea.vue @@ -10,6 +10,7 @@ > Date: Tue, 7 Jul 2020 17:07:33 +0800 Subject: [PATCH 08/15] types(ImagePreview): swipeTo should be optional (#6727) --- types/image-preview.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/types/image-preview.d.ts b/types/image-preview.d.ts index 4792825b0..01a209c91 100644 --- a/types/image-preview.d.ts +++ b/types/image-preview.d.ts @@ -20,9 +20,9 @@ export type ImagePreviewOptions = closeOnPopstate?: boolean; closeIconPosition?: string; getContainer?: string | (() => Element); - onClose?: () => void; - onChange?: (index: number) => void; - swipeTo(index: number, options?: SwipeToOptions): void; + onClose?(): void; + onChange?(index: number): void; + swipeTo?(index: number, options?: SwipeToOptions): void; }; export class VanImagePreview extends VanPopupMixin { From b944c2467bf1fb87d54beb416cb516ab7530b69b Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 7 Jul 2020 18:58:12 +0800 Subject: [PATCH 09/15] fix(Checkbox): dynamic bind group (#6730) --- src/mixins/relation.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mixins/relation.js b/src/mixins/relation.js index bcf9cb5dd..f6d503616 100644 --- a/src/mixins/relation.js +++ b/src/mixins/relation.js @@ -30,6 +30,14 @@ export function ChildrenMixin(parent, options = {}) { }, }, + watch: { + disableBindRelation(val) { + if (!val) { + this.bindRelation(); + } + }, + }, + mounted() { this.bindRelation(); }, From 62557c64229102c1120fa7bd41236d3d8b6419e0 Mon Sep 17 00:00:00 2001 From: Waiter Date: Tue, 7 Jul 2020 19:01:33 +0800 Subject: [PATCH 10/15] fix(Sku): formater datepicker (#6729) Co-authored-by: songweite --- .../{SkuDateTimeFiled.js => SkuDateTimeField.js} | 16 +++++++++++++++- src/sku/components/SkuMessages.js | 4 ++-- src/sku/lang.ts | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) rename src/sku/components/{SkuDateTimeFiled.js => SkuDateTimeField.js} (83%) diff --git a/src/sku/components/SkuDateTimeFiled.js b/src/sku/components/SkuDateTimeField.js similarity index 83% rename from src/sku/components/SkuDateTimeFiled.js rename to src/sku/components/SkuDateTimeField.js index faefc7789..2727db761 100644 --- a/src/sku/components/SkuDateTimeFiled.js +++ b/src/sku/components/SkuDateTimeField.js @@ -7,7 +7,9 @@ import Popup from '../../popup'; import DateTimePicker from '../../datetime-picker'; import Field from '../../field'; -const [createComponent] = createNamespace('sku-datetime-filed'); +const namespace = createNamespace('sku-datetime-field'); +const createComponent = namespace[0]; +const t = namespace[2]; export default createComponent({ props: { @@ -42,6 +44,12 @@ export default createComponent({ }, }, + computed: { + title() { + return t(`title.${this.type}`); + }, + }, + methods: { onClick() { this.showDatePicker = true; @@ -57,6 +65,10 @@ export default createComponent({ onCancel() { this.showDatePicker = false; }, + formatter(type, val) { + const word = t(`format.${type}`); + return `${val}${word}`; + }, }, render() { @@ -80,7 +92,9 @@ export default createComponent({ > diff --git a/src/sku/components/SkuMessages.js b/src/sku/components/SkuMessages.js index 0d096dd64..7c50eda87 100644 --- a/src/sku/components/SkuMessages.js +++ b/src/sku/components/SkuMessages.js @@ -7,7 +7,7 @@ import { isNumeric } from '../../utils/validate/number'; import Cell from '../../cell'; import Field from '../../field'; import SkuImgUploader from './SkuImgUploader'; -import SkuDateTimeFiled from './SkuDateTimeFiled'; +import SkuDateTimeField from './SkuDateTimeField'; const [createComponent, bem, t] = createNamespace('sku-messages'); @@ -136,7 +136,7 @@ export default createComponent({ const isDateOrTime = ['date', 'time'].indexOf(message.type) > -1; if (isDateOrTime) { return ( - Date: Tue, 7 Jul 2020 20:51:01 +0800 Subject: [PATCH 11/15] chore: release 2.9.1-beta.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bdf0b4a65..b8f192f48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "2.9.0", + "version": "2.9.1-beta.1", "description": "Mobile UI Components built on Vue", "main": "lib/index.js", "module": "es/index.js", From b2c84f784b3b6b11de8b0663e552d5233a694694 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Tue, 7 Jul 2020 20:57:20 +0800 Subject: [PATCH 12/15] docs(changelog): 2.9.1-beta.1 --- docs/markdown/changelog.en-US.md | 20 ++++++++++++++++++++ docs/markdown/changelog.zh-CN.md | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/docs/markdown/changelog.en-US.md b/docs/markdown/changelog.en-US.md index 54ed52e5e..986adf6c3 100644 --- a/docs/markdown/changelog.en-US.md +++ b/docs/markdown/changelog.en-US.md @@ -10,6 +10,26 @@ Vant follows [Semantic Versioning 2.0.0](https://semver.org/lang/zh-CN/). - Minor version:released every one to two months, including backwards compatible features. - Major version:including breaking changes and new features. +### [v2.9.1-beta.1](https://github.com/youzan/vant/compare/v2.9.0...v2.9.1-beta.1) + +`2020-07-07` + +**Feature** + +- Field: add clear-trigger prop [#6699](https://github.com/youzan/vant/issues/6699) +- Search: add clear-trigger prop [#6700](https://github.com/youzan/vant/issues/6700) +- Uploader: add preview-cover slot [#6707](https://github.com/youzan/vant/issues/6707) +- Sku: improve message datetime picker [8d29e5](https://github.com/youzan/vant/commit/8d29e5c8c6df278800865596f285c17029150963) [7343e5](https://github.com/youzan/vant/commit/7343e55409900635a0e39063edb9f67493048a54) + +**Bug Fixes** + +- Calendar: subtitle not updated in some cases [#6723](https://github.com/youzan/vant/issues/6723) +- Checkbox: dynamic bind group [#6730](https://github.com/youzan/vant/issues/6730) +- Image: memory leak during SSR [#6721](https://github.com/youzan/vant/issues/6721) +- ImagePreview: swipeTo type should be optional [#6727](https://github.com/youzan/vant/issues/6727) +- Picker: click during momentum case incorrect result [#6724](https://github.com/youzan/vant/issues/6724) +- Popup: lock-scroll not work in some cases [#6698](https://github.com/youzan/vant/issues/6698) + ### [v2.9.0](https://github.com/youzan/vant/compare/v2.8.7...v2.9.0) `2020-07-03` diff --git a/docs/markdown/changelog.zh-CN.md b/docs/markdown/changelog.zh-CN.md index ba5b98011..89062cb62 100644 --- a/docs/markdown/changelog.zh-CN.md +++ b/docs/markdown/changelog.zh-CN.md @@ -10,6 +10,26 @@ Vant 遵循 [Semver](https://semver.org/lang/zh-CN/) 语义化版本规范。 - 次版本号:每隔一至二个月发布,包含新特性和较大的功能更新,向下兼容。 - 主版本号:发布时间不定,包含不兼容更新,预计下一个主版本会与 Vue 3.0 同期发布。 +### [v2.9.1-beta.1](https://github.com/youzan/vant/compare/v2.9.0...v2.9.1-beta.1) + +`2020-07-07` + +**Feature** + +- Field: 新增 clear-trigger 属性 [#6699](https://github.com/youzan/vant/issues/6699) +- Search: 新增 clear-trigger 属性 [#6700](https://github.com/youzan/vant/issues/6700) +- Uploader: 新增 preview-cover 插槽 [#6707](https://github.com/youzan/vant/issues/6707) +- Sku: 优化留言栏时间选择交互 [8d29e5](https://github.com/youzan/vant/commit/8d29e5c8c6df278800865596f285c17029150963) [7343e5](https://github.com/youzan/vant/commit/7343e55409900635a0e39063edb9f67493048a54) + +**Bug Fixes** + +- Calendar: 修复个别情况下日历标题不更新的问题 [#6723](https://github.com/youzan/vant/issues/6723) +- Checkbox: 修复动态设置 bind-group 时不生效的问题 [#6730](https://github.com/youzan/vant/issues/6730) +- Image: 修复 SSR 时 LazyLoad 属性存在内存泄露的问题 [#6721](https://github.com/youzan/vant/issues/6721) +- ImagePreview: 修复 swipeTo 方法类型定义错误 [#6727](https://github.com/youzan/vant/issues/6727) +- Picker: 修复惯性滚动过程中点击选项会导致选中结果错误的问题 [#6724](https://github.com/youzan/vant/issues/6724) +- Popup: 修复 lock-scroll 在个别场景下不生效的问题 [#6698](https://github.com/youzan/vant/issues/6698) + ### [v2.9.0](https://github.com/youzan/vant/compare/v2.8.7...v2.9.0) `2020-07-03` From 7defe344895ea2d1b935e0b9c404499b4c318abc Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 8 Jul 2020 07:37:46 +0800 Subject: [PATCH 13/15] chore: add more keywords --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b8f192f48..0bc6cfebb 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,12 @@ "url": "git@github.com:youzan/vant.git" }, "keywords": [ + "ui", "vue", - "component" + "frontend", + "mobile ui", + "component", + "components" ], "author": "youzanfe", "license": "MIT", From a1d0716a612072801bd0e899d78f08722053d063 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 8 Jul 2020 07:56:09 +0800 Subject: [PATCH 14/15] docs: update badges --- README.md | 11 ++++++----- README.zh-CN.md | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a0f49455a..00509b5b6 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,12 @@

Mobile UI Components built on Vue

- npm version - npm version - Coverage Status - downloads - Gzip Size + npm version + npm version + Coverage Status + downloads + Jsdelivr Hits + Gzip Size

diff --git a/README.zh-CN.md b/README.zh-CN.md index 0fd160821..5a4311308 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -4,11 +4,12 @@

轻量、可靠的移动端 Vue 组件库

- npm version - npm version - Coverage Status - downloads - Gzip Size + npm version + npm version + Coverage Status + downloads + Jsdelivr Hits + Gzip Size

From 650aa8503aad073687339785bdc4a62d875c8069 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 8 Jul 2020 08:02:48 +0800 Subject: [PATCH 15/15] docs: update README --- README.md | 4 +++- README.zh-CN.md | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 00509b5b6..766f5857c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ logo

-

Mobile UI Components built on Vue

+

Vant

+ +

Mobile UI Components built on Vue

npm version diff --git a/README.zh-CN.md b/README.zh-CN.md index 5a4311308..e3804faf1 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,7 +1,10 @@

logo

-

轻量、可靠的移动端 Vue 组件库

+ +

Vant

+ +

轻量、可靠的移动端 Vue 组件库

npm version