Merge branch 'dev' into next

This commit is contained in:
chenjiahan 2020-09-26 21:35:53 +08:00
commit 47a270effb
9 changed files with 233 additions and 40 deletions

View File

@ -109,7 +109,7 @@ export function getWebpackConfig(defaultConfig: WebpackConfig): WebpackConfig {
// 如果是函数形式,可能并不仅仅是添加额外的处理流程,而是在原有流程上进行修改
// 比如修改markdown-loader,添加options.enableMetaData
if (typeof config === 'function') {
return config(defaultConfig);
return merge(defaultConfig, config(defaultConfig));
}
return merge(defaultConfig, config);

View File

@ -379,7 +379,10 @@ export default {
},
methods: {
onConfirm(values) {
this.value = values.map((item) => item.name).join('/');
this.value = values
.filter((item) => !!item)
.map((item) => item.name)
.join('/');
this.showArea = false;
},
},
@ -447,6 +450,14 @@ export default {
| trigger `v2.5.2` | When to validate the formcan be set to `onChange``onBlur` | _string_ |
| formatter `v2.5.3` | Format value before validate | _(value, rule) => any_ |
### validate-trigger
| Value | Description |
| -------- | --------------------------------------------------------------- |
| onSubmit | Trigger validation after submiting form |
| onBlur | Trigger validation after submiting form or bluring input |
| onChange | Trigger validation after submiting form or changing input value |
### Events
| Event | Description | Arguments |

View File

@ -18,7 +18,7 @@ app.use(Form);
### 基础用法
在表单中,每个 [Field 组件](#/zh-CN/field) 代表一个表单项,使用 Field 的`rules`属性定义校验规则
在表单中,每个 [Field 组件](#/zh-CN/field) 代表一个表单项,使用 Field 的 `rules` 属性定义校验规则
```html
<van-form @submit="onSubmit">
@ -63,7 +63,7 @@ export default {
### 校验规则
通过`rules`定义表单校验规则,可用字段见[下方表格](#/zh-CN/form#rule-shu-ju-jie-gou)
通过 `rules` 定义表单校验规则,可用字段见[下方表格](#/zh-CN/form#rule-shu-ju-jie-gou)
```html
<van-form validate-first @failed="onFailed">
@ -133,7 +133,7 @@ export default {
### 表单项类型 - 开关
在表单中使用 [Switch 组件](#/zh-CN/switch)
在表单中使用 [Switch 组件](#/zh-CN/switch)
```html
<van-field name="switch" label="开关">
@ -155,7 +155,7 @@ export default {
### 表单项类型 - 复选框
在表单中使用 [Checkbox 组件](#/zh-CN/checkbox)
在表单中使用 [Checkbox 组件](#/zh-CN/checkbox)
```html
<van-field name="checkbox" label="复选框">
@ -186,7 +186,7 @@ export default {
### 表单项类型 - 单选框
在表单中使用 [Radio 组件](#/zh-CN/radio)
在表单中使用 [Radio 组件](#/zh-CN/radio)
```html
<van-field name="radio" label="单选框">
@ -211,7 +211,7 @@ export default {
### 表单项类型 - 步进器
在表单中使用 [Stepper 组件](#/zh-CN/stepper)
在表单中使用 [Stepper 组件](#/zh-CN/stepper)
```html
<van-field name="stepper" label="步进器">
@ -233,7 +233,7 @@ export default {
### 表单项类型 - 评分
在表单中使用 [Rate 组件](#/zh-CN/rate)
在表单中使用 [Rate 组件](#/zh-CN/rate)
```html
<van-field name="rate" label="评分">
@ -255,7 +255,7 @@ export default {
### 表单项类型 - 滑块
在表单中使用 [Slider 组件](#/zh-CN/slider)
在表单中使用 [Slider 组件](#/zh-CN/slider)
```html
<van-field name="slider" label="滑块">
@ -277,7 +277,7 @@ export default {
### 表单项类型 - 文件上传
在表单中使用 [Uploader 组件](#/zh-CN/uploader)
在表单中使用 [Uploader 组件](#/zh-CN/uploader)
```html
<van-field name="uploader" label="文件上传">
@ -299,7 +299,7 @@ export default {
### 表单项类型 - 选择器
在表单中使用 [Picker 组件](#/zh-CN/picker)
在表单中使用 [Picker 组件](#/zh-CN/picker)
```html
<van-field
@ -340,7 +340,7 @@ export default {
### 表单项类型 - 时间选择器
在表单中使用 [DatetimePicker 组件](#/zh-CN/datetime-picker)
在表单中使用 [DatetimePicker 组件](#/zh-CN/datetime-picker)
```html
<van-field
@ -380,7 +380,7 @@ export default {
### 表单项类型 - 省市区选择器
在表单中使用 [Area 组件](#/zh-CN/area)
在表单中使用 [Area 组件](#/zh-CN/area)
```html
<van-field
@ -412,7 +412,10 @@ export default {
},
methods: {
onConfirm(values) {
this.value = values.map((item) => item.name).join('/');
this.value = values
.filter((item) => !!item)
.map((item) => item.name)
.join('/');
this.showArea = false;
},
},
@ -421,7 +424,7 @@ export default {
### 表单项类型 - 日历
在表单中使用 [Calendar 组件](#/zh-CN/calendar)
在表单中使用 [Calendar 组件](#/zh-CN/calendar)
```html
<van-field
@ -463,7 +466,7 @@ export default {
| label-align |  表单项 label 对齐方式,可选值为 `center` `right` | _string_ | `left` |
| input-align | 输入框对齐方式,可选值为 `center` `right` | _string_ | `left` |
| error-message-align | 错误提示文案对齐方式,可选值为 `center` `right` | _string_ | `left` |
| validate-trigger `v2.5.2` | 表单校验触发时机,可选值为 `onChange``onSubmit` | _string_ | `onBlur` |
| validate-trigger `v2.5.2` | 表单校验触发时机,可选值为 `onChange``onSubmit`,详见下表 | _string_ | `onBlur` |
| colon | 是否在 label 后面添加冒号 | _boolean_ | `false` |
| validate-first | 是否在某一项校验不通过时停止校验 | _boolean_ | `false` |
| scroll-to-error `v2.5.2` | 是否在提交表单且校验不通过时滚动至错误的表单项 | _boolean_ | `false` |
@ -486,6 +489,16 @@ export default {
| trigger `v2.5.2` | 本项规则的触发时机,可选值为`onChange``onBlur` | _string_ |
| formatter `v2.5.3` | 格式化函数,将表单项的值转换后进行校验 | _(value, rule) => any_ |
### validate-trigger  可选值
通过 `validate-trigger` 属性可以自定义表单校验的触发时机。
| 值 | 描述 |
| -------- | ------------------------------------ |
| onSubmit | 仅在提交表单时触发校验 |
| onBlur | 在提交表单和输入框失焦时触发校验 |
| onChange | 在提交表单和输入框内容变化时触发校验 |
### Events
| 事件名 | 说明 | 回调参数 |

View File

@ -52,7 +52,10 @@ export default {
methods: {
onConfirm(values) {
this.value = values.map((item) => item.name).join('/');
this.value = values
.filter((item) => !!item)
.map((item) => item.name)
.join('/');
this.showArea = false;
},

View File

@ -37,16 +37,18 @@ Locale.add(messages);
Current supported languages:
| Language | Filename |
| ------------------------ | -------- |
| Chinese | zh-CN |
| Traditional Chinese (HK) | zh-HK |
| Traditional Chinese (TW) | zh-TW |
| English | en-US |
| Turkish | tr-TR |
| Spanish (Spain) | es-ES |
| Japanese | ja-JP |
| Romanian | ro-RO |
| Norwegian | nb-NO |
| Language | Filename |
| ------------------------ | ------------ |
| Chinese | zh-CN |
| Traditional Chinese (HK) | zh-HK |
| Traditional Chinese (TW) | zh-TW |
| English | en-US |
| German | de-DE |
| German (formal) | de-DE-formal |
| Norwegian | nb-NO |
| Japanese | ja-JP |
| Romanian | ro-RO |
| Spanish (Spain) | es-ES |
| Turkish | tr-TR |
> View all language configs [Here](https://github.com/youzan/vant/tree/dev/src/locale/lang).

View File

@ -37,17 +37,19 @@ Locale.add(messages);
目前支持的语言:
| 语言 | 文件名 |
| -------------- | ------ |
| 简体中文 | zh-CN |
| 繁體中文(港) | zh-HK |
| 繁體中文(台) | zh-TW |
| 英语 | en-US |
| 土耳其语 | tr-TR |
| 西班牙语 | es-ES |
| 日语 | ja-JP |
| 罗马尼亚语 | ro-RO |
| 挪威语 | nb-NO |
| 语言 | 文件名 |
| -------------- | ------------ |
| 简体中文 | zh-CN |
| 繁體中文(港) | zh-HK |
| 繁體中文(台) | zh-TW |
| 英语 | en-US |
| 德语 | de-DE |
| 德语 (正式) | de-DE-formal |
| 土耳其语 | tr-TR |
| 西班牙语 | es-ES |
| 日语 | ja-JP |
| 罗马尼亚语 | ro-RO |
| 挪威语 | nb-NO |
> 在 [这里](https://github.com/youzan/vant/tree/dev/src/locale/lang) 查看所有的 i18n 配置文件。

View File

@ -0,0 +1,77 @@
export default {
name: 'Name',
tel: 'Telefon',
save: 'Speichern',
confirm: 'Bestätigen',
cancel: 'Abbrechen',
delete: 'Löschen',
complete: 'Complete',
loading: 'Laden...',
telEmpty: 'Bitte füllen Sie das Telefon aus',
nameEmpty: 'Bitte geben Sie den Name an',
nameInvalid: 'Ungültiger Name',
confirmDelete: 'Sind Sie sicher, dass Sie löschen möchten?',
telInvalid: 'Ungültige Telefonnummer',
vanCalendar: {
end: 'Ende',
start: 'Start',
title: 'Kalender',
startEnd: 'Start/Ende',
weekdays: ['So', 'Mo', 'Di', 'Mo', 'Do', 'Fr', 'Sa'],
monthTitle: (year: number, month: number) => `${year}/${month}`,
rangePrompt: (maxRange: number) => `Wähle nicht mehr als ${maxRange} Tage`,
},
vanContactCard: {
addText: 'Kontaktinformationen hinzufügen',
},
vanContactList: {
addText: 'Neuen Kontakt hinzufügen',
},
vanPagination: {
prev: 'Vorherige',
next: 'Nächste',
},
vanPullRefresh: {
pulling: 'Zum Aktualisieren herunterziehen...',
loosing: 'Loslassen zum Aktualisieren...',
},
vanSubmitBar: {
label: 'Total',
},
vanCoupon: {
unlimited: 'Unbegrenzt',
discount: (discount: number) => `${discount * 10}% Rabatt`,
condition: (condition: number) => `Mindestens ${condition}`,
},
vanCouponCell: {
title: 'Coupon',
tips: 'Keine Coupons',
count: (count: number) => `Sie haben ${count} Coupons`,
},
vanCouponList: {
empty: 'Keine Coupons',
exchange: 'Austauschen',
close: 'Schließen',
enable: 'Verfügbar',
disabled: 'Nicht verfügbar',
placeholder: 'Couponcode',
},
vanAddressEdit: {
area: 'Standort',
postal: 'PLZ',
areaEmpty: 'Bitte geben Sie Ihren Standort an',
addressEmpty: 'Adresse darf nicht leer sein',
postalEmpty: 'Falsche Postleitzahl',
defaultAddress: 'Als Standardadresse festgelegen',
telPlaceholder: 'Telefon',
namePlaceholder: 'Name',
areaPlaceholder: 'Ort',
},
vanAddressEditDetail: {
label: 'Adresse',
placeholder: 'Adresse',
},
vanAddressList: {
add: 'Neue Adresse hinzufügen',
},
};

77
src/locale/lang/de-DE.ts Normal file
View File

@ -0,0 +1,77 @@
export default {
name: 'Name',
tel: 'Telefon',
save: 'Speichern',
confirm: 'Bestätigen',
cancel: 'Abbrechen',
delete: 'Löschen',
complete: 'Complete',
loading: 'Laden...',
telEmpty: 'Bitte das Telefon ausfüllen',
nameEmpty: 'Bitte den Name angeben',
nameInvalid: 'Ungültiger Name',
confirmDelete: 'Bist du sicher, dass du löschen möchtest?',
telInvalid: 'Ungültige Telefonnummer',
vanCalendar: {
end: 'Ende',
start: 'Start',
title: 'Kalender',
startEnd: 'Start/Ende',
weekdays: ['So', 'Mo', 'Di', 'Mo', 'Do', 'Fr', 'Sa'],
monthTitle: (year: number, month: number) => `${year}/${month}`,
rangePrompt: (maxRange: number) => `Wähle nicht mehr als ${maxRange} Tage`,
},
vanContactCard: {
addText: 'Kontaktinformationen hinzufügen',
},
vanContactList: {
addText: 'Neuen Kontakt hinzufügen',
},
vanPagination: {
prev: 'Vorherige',
next: 'Nächste',
},
vanPullRefresh: {
pulling: 'Zum Aktualisieren herunterziehen...',
loosing: 'Loslassen zum Aktualisieren...',
},
vanSubmitBar: {
label: 'Total',
},
vanCoupon: {
unlimited: 'Unbegrenzt',
discount: (discount: number) => `${discount * 10}% Rabatt`,
condition: (condition: number) => `Mindestens ${condition}`,
},
vanCouponCell: {
title: 'Coupon',
tips: 'Keine Coupons',
count: (count: number) => `Du hast ${count} Coupons`,
},
vanCouponList: {
empty: 'Keine Coupons',
exchange: 'Austauschen',
close: 'Schließen',
enable: 'Verfügbar',
disabled: 'Nicht verfügbar',
placeholder: 'Couponcode',
},
vanAddressEdit: {
area: 'Standort',
postal: 'PLZ',
areaEmpty: 'Bitte deinen Ort angeben',
addressEmpty: 'Adresse darf nicht leer sein',
postalEmpty: 'Falsche Postleitzahl',
defaultAddress: 'Als Standardadresse festgelegen',
telPlaceholder: 'Telefon',
namePlaceholder: 'Name',
areaPlaceholder: 'Ort',
},
vanAddressEditDetail: {
label: 'Adresse',
placeholder: 'Adresse',
},
vanAddressList: {
add: 'Neue Adresse hinzufügen',
},
};

View File

@ -130,6 +130,14 @@ export default {
## 常见问题
### PullReresh 的内容未填满屏幕时,只有一部分区域可以下拉?
默认情况下,下拉区域的高度是和内容高度保持一致的,如果需要让下拉区域始终为全屏,可以给 PullRefresh 设置一个与屏幕大小相等的最小高度:
```html
<van-pull-refresh style="min-height: 100vh;" />
```
### 在桌面端无法操作组件?
参见[在桌面端使用](#/zh-CN/quickstart#zai-zhuo-mian-duan-shi-yong)。