Compare commits

...

11 Commits

Author SHA1 Message Date
chenjiahan
e08e9845a2 breaking change(AddressEdit): remove postal 2022-03-26 20:12:24 +08:00
chenjiahan
8e822a591d Merge branch 'dev' into next 2022-03-26 19:10:50 +08:00
Alan Wang
0eae222b88
fix(calendar): scrollToDate method is invalid (#10432) 2022-03-26 11:21:56 +08:00
neverland
66cb711066
docs(Grid): fix reverse prop (#10437) 2022-03-26 11:15:04 +08:00
neverland
9414c38154
feat(CouponList): update empty image (#10436)
* feat(CouponList): update empty image

* docs: update axure link
2022-03-26 11:13:22 +08:00
neverland
d02b0b8eb6
docs: using jsdelivr for assets (#10434) 2022-03-26 09:33:47 +08:00
Nemo Shen
c7904c4f63
fix(DatetimePicker): fix minDate && maxDate wacher (#10431)
* fix(DatetimePicker): fix minDate

* fix(DatePicker): prettier

* fix(DatePicker): prettier
2022-03-24 23:11:17 +08:00
aisen
aa304ad22f
docs(SwipeCell): remove css variables document (#10429) 2022-03-24 09:38:58 +08:00
neverland
651305e8ce
feat(NumberKeyboard): improve shuffle algorithm (#10428) 2022-03-23 22:09:48 +08:00
zhbhun
12a0f9a24c
fix: fix wrong ternary expression (#10426) 2022-03-23 21:52:35 +08:00
Nemo Shen
334699d264
fix(Tab): add key when render TabsTitle (#10392)
* fix(Tab): add key when render TabsTitle

* fix(Tab): change key

* fix(Tabs): use each TabRef.id as key
2022-03-23 17:34:46 +08:00
139 changed files with 402 additions and 509 deletions

View File

@ -1,5 +1,5 @@
<p align="center">
<img alt="logo" src="https://img.yzcdn.cn/vant/logo.png" width="120" height="120" style="margin-bottom: 10px;">
<img alt="logo" src="https://cdn.jsdelivr.net/npm/@vant/assets/logo.png" width="120" height="120" style="margin-bottom: 10px;">
</p>
<h1 align="center">Vant</h1>
@ -113,7 +113,7 @@ Vant 3/4 supports modern browsers and Chrome >= 51、iOS >= 10.0 (same as Vue 3)
You can scan the following QR code to access the demo
<img src="https://img.yzcdn.cn/vant/preview_qrcode_20180528.png" width="220" height="220" >
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/preview-qrcode.png" width="220" height="220" >
## Core Team

View File

@ -1,5 +1,5 @@
<p align="center">
<img alt="logo" src="https://img.yzcdn.cn/vant/logo.png" width="120" style="margin-bottom: 10px;">
<img alt="logo" src="https://cdn.jsdelivr.net/npm/@vant/assets/logo.png" width="120" style="margin-bottom: 10px;">
</p>
<h1 align="center">Vant</h1>
@ -121,7 +121,7 @@ Vant 3/4 支持现代浏览器以及 Chrome >= 51、iOS >= 10.0(与 Vue 3 一
可以手机扫码以下二维码访问手机端 demo
<img src="https://img.yzcdn.cn/vant/preview_qrcode_20180528.png" width="220" height="220" >
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/preview-qrcode.png" width="220" height="220" >
## 核心团队

View File

@ -10,7 +10,7 @@ module.exports = {
},
site: {
title: '<%= name %>',
logo: 'https://img.yzcdn.cn/vant/logo.png',
logo: 'https://cdn.jsdelivr.net/npm/@vant/assets/logo.png',
nav: [
{
title: '开发指南',

View File

@ -10,7 +10,7 @@ export default {
},
site: {
title: '<%= name %>',
logo: 'https://img.yzcdn.cn/vant/logo.png',
logo: 'https://cdn.jsdelivr.net/npm/@vant/assets/logo.png',
nav: [
{
title: '开发指南',

View File

@ -44,7 +44,7 @@ export default {
// 标题
title: 'Demo UI',
// 图标
logo: 'https://img.yzcdn.cn/vant/logo.png',
logo: 'https://cdn.jsdelivr.net/npm/@vant/assets/logo.png',
// 描述
description: '示例组件库',
// 左侧导航

View File

@ -20,7 +20,7 @@ Vant 图标库托管在 [iconfont.cn](https://iconfont.cn) 上,同时仓库中
从 Sketch 中导出图标对应的 SVG 文件,并上传到 [iconfont 项目](https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=2553510)中。
<img src="https://img.yzcdn.cn/upload_files/2021/12/21/Fi0XXEorB1SVr_BT-Dz6txHOKNlB.png" style="width: 800px;">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/iconfont-upload.png" style="width: 800px;">
> 此步骤需要图标库管理员权限,请联系 Vant 维护者进行添加。
@ -38,7 +38,7 @@ Vant 图标库托管在 [iconfont.cn](https://iconfont.cn) 上,同时仓库中
字体文件的 base64 URL 通过 [transfonter](https://transfonter.org/) 生成,步骤如下图所示:
<img src="https://img01.yzcdn.cn/upload_files/2021/12/21/FlMHanQNhDV1XWaw8spnAtHKumjW.png" style="width: 800px;">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/icon-transform.png" style="width: 800px;">
### 4. 发布图标库

View File

@ -92,8 +92,9 @@ export default {
data() {
return {
checked: true,
activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png',
activeIcon: 'https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png',
inactiveIcon:
'https://cdn.jsdelivr.net/npm/@vant/assets/user-inactive.png',
};
},
};
@ -223,4 +224,4 @@ iPhone X 等机型底部存在底部指示条,指示条的操作区域与页
<van-number-keyboard safe-area-inset-bottom />
```
<img src="https://img.yzcdn.cn/vant/safearea.png">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/safearea.png">

View File

@ -12,15 +12,15 @@ Contains color specifications, font specifications, and component design specifi
#### Colors
<img src="https://img.yzcdn.cn/vant/color_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/color_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
#### Fonts
<img src="https://img.yzcdn.cn/vant/words_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/words_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
#### Components
<img src="https://img.yzcdn.cn/vant/tab_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/tab_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://github.com/youzan/vant/blob/dev/packages/vant/docs/assets/design.sketch?raw=true">Download</a>
@ -28,15 +28,15 @@ Contains color specifications, font specifications, and component design specifi
Contains icon library resources.
<img src="https://img.yzcdn.cn/vant/design-icons-0321.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/design-icons-0321.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://github.com/youzan/vant/blob/dev/packages/vant-icons/assets/icons.sketch?raw=true">Download</a>
### Axure
<img src="https://img.yzcdn.cn/vant/vant-axure-0905.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/vant-axure-0905.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://b.yzcdn.cn/vant/vant-axure-20200905.zip">Download</a>
<a class="design-download" href="https://github.com/vant-ui/vant-assets/blob/main/design/axure-20200905.zip?raw=true">Download</a>
<style>
a.design-download {

View File

@ -12,15 +12,15 @@
#### 色彩规范
<img src="https://img.yzcdn.cn/vant/color_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/color_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
#### 字体规范
<img src="https://img.yzcdn.cn/vant/words_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/words_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
#### 组件规范
<img src="https://img.yzcdn.cn/vant/tab_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/tab_202009101415.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://github.com/youzan/vant/blob/dev/packages/vant/docs/assets/design.sketch?raw=true">下载</a>
@ -28,7 +28,7 @@
包含 Sketch 格式的图标库资源。
<img src="https://img.yzcdn.cn/vant/design-icons-0321.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/design-icons-0321.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://github.com/youzan/vant/blob/dev/packages/vant-icons/assets/icons.sketch?raw=true">下载</a>
@ -40,9 +40,9 @@ Vant 的所有图标都托管在 **iconfont.cn** 上,点此查看:[Vant 图
Axure 元件库,由社区的 [@axure-tczy](https://github.com/axure-tczy) 同学贡献。
<img src="https://img.yzcdn.cn/vant/vant-axure-0905.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/vant-axure-0905.png" style="width: 80%; box-shadow: 0 1px 2px rgba(0,0,0,.2)">
<a class="design-download" href="https://b.yzcdn.cn/vant/vant-axure-20200905.zip">下载</a>
<a class="design-download" href="https://github.com/vant-ui/vant-assets/blob/main/design/axure-20200905.zip?raw=true">下载</a>
<style>
a.design-download {

View File

@ -1,6 +1,6 @@
<div class="van-doc-card">
<div class="van-doc-intro">
<img class="van-doc-intro__logo" style="width: 120px; height: 120px;" src="https://img.yzcdn.cn/vant/logo.png">
<img class="van-doc-intro__logo" style="width: 120px; height: 120px;" src="https://cdn.jsdelivr.net/npm/@vant/assets/logo.png">
<h2 style="margin: 0; font-size: 36px; line-height: 60px;">Vant</h2>
<p>Mobile UI Components built on Vue</p>
</div>

View File

@ -1,6 +1,6 @@
<div class="van-doc-card">
<div class="van-doc-intro">
<img class="van-doc-intro__logo" style="width: 120px; height: 120px;" src="https://img.yzcdn.cn/vant/logo.png">
<img class="van-doc-intro__logo" style="width: 120px; height: 120px;" src="https://cdn.jsdelivr.net/npm/@vant/assets/logo.png">
<h2 style="margin: 0; font-size: 36px; line-height: 60px;">Vant</h2>
<p>轻量、可靠的移动端 Vue 组件库</p>
</div>

View File

@ -101,6 +101,8 @@ emit('clickInput');
#### AddressEdit
- 移除 `show-postal` 属性
- 移除 `postal-validator` 属性
- `change-area` 事件的参数调整为 `PickerOption[]` 类型
- 移除未在文档中标注的 `getArea` 实例方法

View File

@ -86,7 +86,7 @@ vue create hello-world
vue ui
```
![](https://img.yzcdn.cn/vant/vue-cli-demo-201809030812.png)
![](https://cdn.jsdelivr.net/npm/@vant/assets/vue-cli-demo-201809030812.png)
In the GUI, click on 'Dependencies' -> `Install Dependencies` and add `vant` to the dependencies.

View File

@ -51,12 +51,9 @@ const DEFAULT_DATA: AddressEditInfo = {
province: '',
areaCode: '',
isDefault: false,
postalCode: '',
addressDetail: '',
};
const isPostal = (value: string) => /^\d{6}$/.test(value);
const addressEditProps = {
areaList: Object as PropType<AreaList>,
isSaving: Boolean,
@ -67,7 +64,6 @@ const addressEditProps = {
showArea: truthProp,
showDetail: truthProp,
showDelete: Boolean,
showPostal: Boolean,
disableArea: Boolean,
searchResult: Array as PropType<AddressEditSearchItem[]>,
telMaxlength: numericProp,
@ -87,10 +83,6 @@ const addressEditProps = {
type: Function as PropType<(val: string) => boolean>,
default: isMobile,
},
postalValidator: {
type: Function as PropType<(val: string) => boolean>,
default: isPostal,
},
};
export type AddressEditProps = ExtractPropTypes<typeof addressEditProps>;
@ -145,7 +137,7 @@ export default defineComponent({
};
const rules = computed<Record<string, FieldRule[]>>(() => {
const { validator, telValidator, postalValidator } = props;
const { validator, telValidator } = props;
const makeRule = (name: string, emptyMessage: string): FieldRule => ({
validator: (value) => {
@ -170,10 +162,6 @@ export default defineComponent({
],
areaCode: [makeRule('areaCode', t('areaEmpty'))],
addressDetail: [makeRule('addressDetail', t('addressEmpty'))],
postalCode: [
makeRule('addressDetail', t('postalEmpty')),
{ validator: postalValidator, message: t('postalEmpty') },
],
};
});
@ -323,18 +311,6 @@ export default defineComponent({
onInput={onChangeDetail}
onSelectSearch={(event: Event) => emit('selectSearch', event)}
/>
{props.showPostal && (
<Field
v-show={!hideBottomFields.value}
v-model={data.postalCode}
type="tel"
rules={rules.value.postalCode}
label={t('postal')}
maxlength="6"
placeholder={t('postal')}
onFocus={() => onFocus('postalCode')}
/>
)}
{slots.default?.()}
</div>
{renderSetDefaultCell()}

View File

@ -23,7 +23,6 @@ app.use(AddressEdit);
```html
<van-address-edit
:area-list="areaList"
show-postal
show-delete
show-set-default
show-search-result
@ -80,7 +79,6 @@ export default {
| area-placeholder | placeholder of area input field | _string_ | `Area` |
| address-info | Address Info | _AddressEditInfo_ | `{}` |
| search-result | Address search result | _AddressEditSearchItem[]_ | `[]` |
| show-postal | Whether to show postal field | _boolean_ | `false` |
| show-delete | Whether to show delete button | _boolean_ | `false` |
| show-set-default | Whether to show default address switch | _boolean_ | `false` |
| show-search-result | Whether to show address search result | _boolean_ | `false` |
@ -95,7 +93,6 @@ export default {
| is-deleting | Whether to show delete button loading status | _boolean_ | `false` |
| tel-validator | The method to validate tel | _(tel: string) => boolean_ | - |
| tel-maxlength | Tel maxlength | _number \| string_ | - |
| postal-validator | The method to validate postal | _(tel: string) => boolean_ | - |
| validator | Custom validator | _(key, val) => string_ | - |
### Events
@ -113,9 +110,9 @@ export default {
### Slots
| Name | Description |
| ------- | --------------------------- |
| default | Custom content below postal |
| Name | Description |
| ------- | ----------------------------------- |
| default | Custom content below address detail |
### Methods
@ -160,7 +157,6 @@ addressEditRef.value?.setAddressDetail('');
| county | County | _string_ |
| addressDetail | Detailed Address | _string_ |
| areaCode | Area code | _string_ |
| postalCode | Postal code | _string_ |
| isDefault | Is default address | _boolean_ |
### AddressEditSearchItem Data Structure

View File

@ -23,7 +23,6 @@ app.use(AddressEdit);
```html
<van-address-edit
:area-list="areaList"
show-postal
show-delete
show-set-default
show-search-result
@ -80,7 +79,6 @@ export default {
| area-placeholder | 地区输入框占位提示文字 | _string_ | `选择省 / 市 / 区` |
| address-info | 地址信息初始值 | _AddressEditInfo_ | `{}` |
| search-result | 详细地址搜索结果 | _AddressEditSearchItem[]_ | `[]` |
| show-postal | 是否显示邮政编码 | _boolean_ | `false` |
| show-delete | 是否显示删除按钮 | _boolean_ | `false` |
| show-set-default | 是否显示默认地址栏 | _boolean_ | `false` |
| show-search-result | 是否显示搜索结果 | _boolean_ | `false` |
@ -95,7 +93,6 @@ export default {
| is-deleting | 是否显示删除按钮加载动画 | _boolean_ | `false` |
| tel-validator | 手机号格式校验函数 | _string => boolean_ | - |
| tel-maxlength | 手机号最大长度 | _number \| string_ | - |
| postal-validator | 邮政编码格式校验函数 | _string => boolean_ | - |
| validator | 自定义校验函数 | _(key, val) => string_ | - |
### Events
@ -162,7 +159,6 @@ addressEditRef.value?.setAddressDetail('');
| county | 区县 | _string_ |
| addressDetail | 详细地址 | _string_ |
| areaCode | 地区编码,通过 [省市区选择](#/zh-CN/area) 获取(必填) | _string_ |
| postalCode | 邮政编码 | _string_ |
| isDefault | 是否为默认地址 | _boolean_ |
### AddressEditSearchItem 数据格式

View File

@ -52,7 +52,6 @@ const onChangeDetail = (val: string) => {
<demo-block :title="t('basicUsage')">
<van-address-edit
:area-list="areaList"
show-postal
show-delete
show-set-default
show-search-result

View File

@ -88,25 +88,6 @@ exports[`should render demo and match snapshot 1`] = `
</div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label">
<label id="van-field-label"
for="van-field-input"
>
Postal
</label>
</div>
<div class="van-cell__value van-field__value">
<div class="van-field__body">
<input type="tel"
id="van-field-input"
class="van-field__control"
placeholder="Postal"
aria-labelledby="van-field-label"
>
</div>
</div>
</div>
</div>
<div class="van-cell van-cell--center van-address-edit__default">
<div class="van-cell__title">

View File

@ -193,25 +193,6 @@ exports[`should render AddressEdit with props correctly 1`] = `
</div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label">
<label id="van-field-label"
for="van-field-input"
>
Postal
</label>
</div>
<div class="van-cell__value van-field__value">
<div class="van-field__body">
<input type="tel"
id="van-field-input"
class="van-field__control"
placeholder="Postal"
aria-labelledby="van-field-label"
>
</div>
</div>
</div>
</div>
<div class="van-cell van-cell--center van-address-edit__default">
<div class="van-cell__title">
@ -322,31 +303,6 @@ exports[`should valid name and render error message correctly 1`] = `
</div>
`;
exports[`should valid postal code and render error message correctly 1`] = `
<div class="van-cell van-field">
<div class="van-cell__title van-field__label">
<label id="van-field-label"
for="van-field-input"
>
Postal
</label>
</div>
<div class="van-cell__value van-field__value">
<div class="van-field__body">
<input type="tel"
id="van-field-input"
class="van-field__control"
placeholder="Postal"
aria-labelledby="van-field-label"
>
</div>
<div class="van-field__error-message">
Wrong postal code
</div>
</div>
</div>
`;
exports[`should valid tel and render error message correctly 1`] = `
<div class="van-cell van-field">
<div class="van-cell__title van-field__label">

View File

@ -11,7 +11,6 @@ const defaultAddressInfo = {
county: '朝阳区',
addressDetail: 'address detail',
areaCode: '110101',
postalCode: '10000',
isDefault: true,
};
@ -23,7 +22,6 @@ const createComponent = (addressInfo = {}) => {
...defaultAddressInfo,
...addressInfo,
},
showPostal: true,
showSetDefault: true,
},
});
@ -45,7 +43,6 @@ test('should render AddressEdit with props correctly', () => {
props: {
areaList,
addressInfo: defaultAddressInfo,
showPostal: true,
showSetDefault: true,
showSearchResult: true,
},
@ -103,15 +100,6 @@ test('should valid address detail and render error message correctly', async ()
expect(fields[3].html()).toMatchSnapshot();
});
test('should valid postal code and render error message correctly', async () => {
const { fields, wrapper } = createComponent({
postalCode: '123',
});
await submitForm(wrapper);
expect(fields[4].html()).toMatchSnapshot();
});
test('should emit changeDetail event after changing address detail', () => {
const wrapper = mount(AddressEdit);
const field = wrapper.findAll('.van-field__control')[3];

View File

@ -15,7 +15,6 @@ export type AddressEditInfo = {
province: string;
areaCode: string;
isDefault?: boolean;
postalCode?: string;
addressDetail: string;
};

View File

@ -69,7 +69,10 @@ app.use(Button);
```html
<van-button icon="plus" type="primary" />
<van-button icon="plus" type="primary">Button</van-button>
<van-button icon="https://img.yzcdn.cn/vant/user-active.png" type="primary">
<van-button
icon="https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png"
type="primary"
>
Button
</van-button>
```

View File

@ -83,7 +83,10 @@ app.use(Button);
```html
<van-button icon="plus" type="primary" />
<van-button icon="plus" type="primary">按钮</van-button>
<van-button icon="https://img.yzcdn.cn/vant/user-active.png" type="primary">
<van-button
icon="https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png"
type="primary"
>
按钮
</van-button>
```

View File

@ -107,7 +107,7 @@ const t = useTranslate({
<van-button
plain
type="primary"
icon="https://img.yzcdn.cn/vant/user-active.png"
icon="https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png"
:text="t('button')"
/>
</demo-block>

View File

@ -237,7 +237,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-button__content">
<i class="van-badge__wrapper van-icon van-button__icon">
<img class="van-icon__image"
src="https://img.yzcdn.cn/vant/user-active.png"
src="https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png"
>
</i>
<span class="van-button__text">

View File

@ -308,8 +308,8 @@ export default defineComponent({
// add Math.floor to avoid decimal height issues
// https://github.com/youzan/vant/issues/5640
bodyHeight = Math.floor(useRect(bodyRef).height);
scrollToCurrentDate();
});
scrollToCurrentDate();
};
const reset = (date = getInitialDate()) => {

View File

@ -26,7 +26,7 @@ app.use(Card);
price="2.00"
title="Title"
desc="Description"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
/>
```
@ -40,7 +40,7 @@ app.use(Card);
title="Title"
desc="Description"
origin-price="10.00"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
/>
```
@ -54,7 +54,7 @@ Use slot to custom content.
title="Title"
desc="Description"
price="2.00"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
>
<template #tags>
<van-tag plain type="primary">Tag</van-tag>

View File

@ -26,7 +26,7 @@ app.use(Card);
price="2.00"
desc="描述信息"
title="商品标题"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
/>
```
@ -41,7 +41,7 @@ app.use(Card);
price="2.00"
desc="描述信息"
title="商品标题"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
origin-price="10.00"
/>
```
@ -56,7 +56,7 @@ app.use(Card);
price="2.00"
desc="描述信息"
title="商品标题"
thumb="https://img.yzcdn.cn/vant/ipad.jpeg"
thumb="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
>
<template #tags>
<van-tag plain type="primary">标签</van-tag>

View File

@ -16,7 +16,7 @@ const t = useTranslate({
},
});
const imageURL = 'https://img.yzcdn.cn/vant/ipad.jpeg';
const imageURL = 'https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg';
</script>
<template>

View File

@ -8,7 +8,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 100%;"
>
<img src="https://img.yzcdn.cn/vant/ipad.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
class="van-image__img"
style="object-fit: cover;"
>
@ -57,7 +57,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 100%;"
>
<img src="https://img.yzcdn.cn/vant/ipad.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
class="van-image__img"
style="object-fit: cover;"
>
@ -116,7 +116,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 100%;"
>
<img src="https://img.yzcdn.cn/vant/ipad.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/ipad.jpeg"
class="van-image__img"
style="object-fit: cover;"
>

View File

@ -89,8 +89,9 @@ export default {
const checked = ref(true);
return {
checked,
activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png',
activeIcon: 'https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png',
inactiveIcon:
'https://cdn.jsdelivr.net/npm/@vant/assets/user-inactive.png',
};
},
};

View File

@ -97,8 +97,9 @@ export default {
const checked = ref(true);
return {
checked,
activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png',
activeIcon: 'https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png',
inactiveIcon:
'https://cdn.jsdelivr.net/npm/@vant/assets/user-inactive.png',
};
},
};

View File

@ -58,8 +58,9 @@ const state = reactive({
horizontalResult: [],
});
const activeIcon = 'https://img.yzcdn.cn/vant/user-active.png';
const inactiveIcon = 'https://img.yzcdn.cn/vant/user-inactive.png';
const activeIcon = 'https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png';
const inactiveIcon =
'https://cdn.jsdelivr.net/npm/@vant/assets/user-inactive.png';
const group = ref<CheckboxGroupInstance>();
const [refs, setRefs] = useRefs<CheckboxInstance>();

View File

@ -98,7 +98,7 @@ exports[`should render demo and match snapshot 1`] = `
aria-checked="true"
>
<div class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked">
<img src="https://img.yzcdn.cn/vant/user-active.png">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png">
</div>
<span class="van-checkbox__label">
Custom Icon

View File

@ -41,7 +41,7 @@ export function useTouch() {
const move = ((event: TouchEvent) => {
const touch = event.touches[0];
// safari back will set clientX to negative number
deltaX.value = touch.clientX < 0 ? 0 : touch.clientX - startX.value;
deltaX.value = (touch.clientX < 0 ? 0 : touch.clientX) - startX.value;
deltaY.value = touch.clientY - startY.value;
offsetX.value = Math.abs(deltaX.value);
offsetY.value = Math.abs(deltaY.value);

View File

@ -24,19 +24,19 @@ import { useRefs } from '../composables/use-refs';
// Components
import { Tab } from '../tab';
import { Tabs } from '../tabs';
import { Empty } from '../empty';
import { Field } from '../field';
import { Button } from '../button';
import { Coupon, CouponInfo } from '../coupon';
import { useRect } from '@vant/use';
const [name, bem, t] = createNamespace('coupon-list');
const EMPTY_IMAGE = 'https://img.yzcdn.cn/vant/coupon-empty.png';
const couponListProps = {
code: makeStringProp(''),
coupons: makeArrayProp<CouponInfo>(),
currency: makeStringProp('¥'),
showCount: truthProp,
emptyImage: makeStringProp(EMPTY_IMAGE),
emptyImage: String,
chosenCoupon: makeNumberProp(-1),
enabledTitle: String,
disabledTitle: String,
@ -101,10 +101,9 @@ export default defineComponent({
};
const renderEmpty = () => (
<div class={bem('empty')}>
<img src={props.emptyImage} />
<p>{t('noCoupon')}</p>
</div>
<Empty image={props.emptyImage}>
<p class={bem('empty-tip')}>{t('noCoupon')}</p>
</Empty>
);
const renderExchangeBar = () => {

View File

@ -117,7 +117,7 @@ export default {
| close-button-text | Close button text | _string_ | `Close` |
| input-placeholder | Input placeholder | _string_ | `Coupon code` |
| currency | Currency symbol | _string_ | `¥` |
| empty-image | Placeholder image when list is empty | _string_ | `https://img.yzcdn.cn/vant/coupon-empty.png` |
| empty-image | Placeholder image when list is empty | _string_ | - |
| show-count | Whether to show coupon count in tab title | _boolean_ | `true` |
### CouponList Events
@ -186,7 +186,6 @@ The component provides the following CSS variables, which can be used to customi
| --van-coupon-list-field-padding | _5px 0 5px var(--van-padding-md)_ | - |
| --van-coupon-list-exchange-button-height | _32px_ | - |
| --van-coupon-list-close-button-height | _40px_ | - |
| --van-coupon-list-empty-image-size | _200px_ | - |
| --van-coupon-list-empty-tip-color | _var(--van-text-color-2)_ | - |
| --van-coupon-list-empty-tip-font-size | _var(--van-font-size-md)_ | - |
| --van-coupon-list-empty-tip-line-height | _var(--van-line-height-md)_ | - |

View File

@ -119,7 +119,7 @@ export default {
| input-placeholder | 输入框文字提示 | _string_ | `请输入优惠码` |
| show-exchange-bar | 是否展示兑换栏 | _boolean_ | `true` |
| currency | 货币符号 | _string_ | `¥` |
| empty-image | 列表为空时的占位图 | _string_ | `https://img.yzcdn.cn/vant/coupon-empty.png` |
| empty-image | 列表为空时的占位图 | _string_ | - |
| show-count | 是否展示可用 / 不可用数量 | _boolean_ | `true` |
### CouponList Events
@ -188,7 +188,6 @@ import type { CouponCellProps, CouponListProps } from 'vant';
| --van-coupon-list-field-padding | _5px 0 5px var(--van-padding-md)_ | - |
| --van-coupon-list-exchange-button-height | _32px_ | - |
| --van-coupon-list-close-button-height | _40px_ | - |
| --van-coupon-list-empty-image-size | _200px_ | - |
| --van-coupon-list-empty-tip-color | _var(--van-text-color-2)_ | - |
| --van-coupon-list-empty-tip-font-size | _var(--van-font-size-md)_ | - |
| --van-coupon-list-empty-tip-line-height | _var(--van-line-height-md)_ | - |

View File

@ -3,7 +3,6 @@ body {
--van-coupon-list-field-padding: 5px 0 5px var(--van-padding-md);
--van-coupon-list-exchange-button-height: 32px;
--van-coupon-list-close-button-height: 40px;
--van-coupon-list-empty-image-size: 200px;
--van-coupon-list-empty-tip-color: var(--van-text-color-2);
--van-coupon-list-empty-tip-font-size: var(--van-font-size-md);
--van-coupon-list-empty-tip-line-height: var(--van-line-height-md);
@ -79,20 +78,9 @@ body {
height: var(--van-coupon-list-close-button-height);
}
&__empty {
padding-top: 60px;
text-align: center;
p {
margin: var(--van-padding-md) 0;
color: var(--van-coupon-list-empty-tip-color);
font-size: var(--van-coupon-list-empty-tip-font-size);
line-height: var(--van-coupon-list-empty-tip-line-height);
}
img {
width: var(--van-coupon-list-empty-image-size);
height: var(--van-coupon-list-empty-image-size);
}
&__empty-tip {
color: var(--van-coupon-list-empty-tip-color);
font-size: var(--van-coupon-list-empty-tip-font-size);
line-height: var(--van-coupon-list-empty-tip-line-height);
}
}

View File

@ -362,11 +362,15 @@ exports[`should have two "van-coupon-list__empty" classes when render coupon lis
<div class="van-coupon-list__list van-coupon-list__list--with-bottom"
style="height: 624px;"
>
<div class="van-coupon-list__empty">
<img src="https://img.yzcdn.cn/vant/coupon-empty.png">
<p>
No coupons
</p>
<div class="van-empty">
<div class="van-empty__image">
<img src="https://img.yzcdn.cn/vant/empty-image-default.png">
</div>
<div class="van-empty__bottom">
<p class="van-coupon-list__empty-tip">
No coupons
</p>
</div>
</div>
</div>
</div>
@ -380,11 +384,15 @@ exports[`should have two "van-coupon-list__empty" classes when render coupon lis
<div class="van-coupon-list__list van-coupon-list__list--with-bottom"
style="height: 624px;"
>
<div class="van-coupon-list__empty">
<img src="https://img.yzcdn.cn/vant/coupon-empty.png">
<p>
No coupons
</p>
<div class="van-empty">
<div class="van-empty__image">
<img src="https://img.yzcdn.cn/vant/empty-image-default.png">
</div>
<div class="van-empty__bottom">
<p class="van-coupon-list__empty-tip">
No coupons
</p>
</div>
</div>
</div>
</div>
@ -474,11 +482,15 @@ exports[`should render list-footer slot correctly 1`] = `
<div class="van-coupon-list__list van-coupon-list__list--with-bottom"
style="height: 624px;"
>
<div class="van-coupon-list__empty">
<img src="https://img.yzcdn.cn/vant/coupon-empty.png">
<p>
No coupons
</p>
<div class="van-empty">
<div class="van-empty__image">
<img src="https://img.yzcdn.cn/vant/empty-image-default.png">
</div>
<div class="van-empty__bottom">
<p class="van-coupon-list__empty-tip">
No coupons
</p>
</div>
</div>
List Footer
</div>
@ -493,11 +505,15 @@ exports[`should render list-footer slot correctly 1`] = `
<div class="van-coupon-list__list van-coupon-list__list--with-bottom"
style="height: 624px;"
>
<div class="van-coupon-list__empty">
<img src="https://img.yzcdn.cn/vant/coupon-empty.png">
<p>
No coupons
</p>
<div class="van-empty">
<div class="van-empty__image">
<img src="https://img.yzcdn.cn/vant/empty-image-default.png">
</div>
<div class="van-empty__bottom">
<p class="van-coupon-list__empty-tip">
No coupons
</p>
</div>
</div>
Disabled List Footer
</div>
@ -588,11 +604,15 @@ exports[`should use custom src when using empty-image prop 1`] = `
<div class="van-coupon-list__list van-coupon-list__list--with-bottom"
style="height: 624px;"
>
<div class="van-coupon-list__empty">
<img src="https://img.yzcdn.com/xxx.png">
<p>
No coupons
</p>
<div class="van-empty">
<div class="van-empty__image">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/xxx.jpeg">
</div>
<div class="van-empty__bottom">
<p class="van-coupon-list__empty-tip">
No coupons
</p>
</div>
</div>
</div>
</div>

View File

@ -106,7 +106,7 @@ test('should have two "van-coupon-list__empty" classes when render coupon list i
test('should use custom src when using empty-image prop', async () => {
const wrapper = mount(CouponList, {
props: {
emptyImage: 'https://img.yzcdn.com/xxx.png',
emptyImage: 'https://cdn.jsdelivr.net/npm/@vant/assets/xxx.jpeg',
},
});

View File

@ -112,7 +112,7 @@ If you need to render vue components within a dialog, you can use dialog compone
```html
<van-dialog v-model:show="show" title="Title" show-cancel-button>
<img src="https://img.yzcdn.cn/vant/apple-3.jpg" />
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg" />
</van-dialog>
```

View File

@ -156,7 +156,7 @@ export default {
```html
<van-dialog v-model:show="show" title="标题" show-cancel-button>
<img src="https://img.yzcdn.cn/vant/apple-3.jpg" />
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg" />
</van-dialog>
```

View File

@ -36,7 +36,7 @@ const t = useTranslate({
});
const show = ref(false);
const image = 'https://img.yzcdn.cn/vant/apple-3.jpg';
const image = 'https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg';
const onClickAlert = () => {
Dialog.alert({

View File

@ -105,7 +105,7 @@ exports[`should render demo and match snapshot 1`] = `
Title
</div>
<div class="van-dialog__content">
<img src="https://img.yzcdn.cn/vant/apple-3.jpg">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg">
</div>
<div class="van-hairline--top van-dialog__footer">
<button type="button"

View File

@ -42,7 +42,7 @@ Use the image prop to display different placeholder images.
```html
<van-empty
class="custom-image"
image="https://img.yzcdn.cn/vant/leaf.jpg"
image="https://cdn.jsdelivr.net/npm/@vant/assets/leaf.jpeg"
description="Description"
/>

View File

@ -44,7 +44,7 @@ Empty 组件内置了多种占位图片类型,可以在不同业务场景下
```html
<van-empty
class="custom-image"
image="https://img.yzcdn.cn/vant/custom-empty-image.png"
image="https://cdn.jsdelivr.net/npm/@vant/assets/custom-empty-image.png"
description="描述文字"
/>

View File

@ -52,7 +52,7 @@ const active = ref('error');
<demo-block :title="t('customImage')">
<van-empty
class="custom-image"
image="https://img.yzcdn.cn/vant/custom-empty-image.png"
image="https://cdn.jsdelivr.net/npm/@vant/assets/custom-empty-image.png"
:description="t('description')"
/>
</demo-block>

View File

@ -96,7 +96,7 @@ exports[`should render demo and match snapshot 1`] = `
<div>
<div class="van-empty custom-image">
<div class="van-empty__image">
<img src="https://img.yzcdn.cn/vant/custom-empty-image.png">
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/custom-empty-image.png">
</div>
<p class="van-empty__description">
Description

View File

@ -308,7 +308,9 @@ import { ref } from 'vue';
export default {
setup() {
const value = ref([{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]);
const value = ref([
{ url: 'https://cdn.jsdelivr.net/npm/@vant/assets/leaf.jpeg' },
]);
return { value };
},
};

View File

@ -332,7 +332,9 @@ import { ref } from 'vue';
export default {
setup() {
const value = ref([{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]);
const value = ref([
{ url: 'https://cdn.jsdelivr.net/npm/@vant/assets/leaf.jpeg' },
]);
return { value };
},
};

View File

@ -54,7 +54,9 @@ const rate = ref(3);
const radio = ref('1');
const slider = ref(50);
const stepper = ref(1);
const uploader = ref([{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]);
const uploader = ref([
{ url: 'https://cdn.jsdelivr.net/npm/@vant/assets/leaf.jpeg' },
]);
const checkbox = ref(false);
const checkboxGroup = ref([]);
const switchChecked = ref(false);

View File

@ -449,7 +449,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-uploader__wrapper">
<div class="van-uploader__preview">
<div class="van-image van-uploader__preview-image">
<img src="https://img.yzcdn.cn/vant/leaf.jpg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/leaf.jpeg"
class="van-image__img"
style="object-fit: cover;"
>

View File

@ -43,13 +43,13 @@ app.use(GridItem);
```html
<van-grid :border="false" :column-num="3">
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-1.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg" />
</van-grid-item>
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-2.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg" />
</van-grid-item>
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-3.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg" />
</van-grid-item>
</van-grid>
```
@ -112,6 +112,7 @@ app.use(GridItem);
| square | Whether to be square shape | _boolean_ | `false` |
| clickable | Whether to show click feedback when clicked | _boolean_ | `false` |
| direction | Content arrangement direction, can be set to `horizontal` | _string_ | `vertical` |
| reverse `v3.1.0` | Whether to reverse the position of icon and text | _boolean_ | `false` |
### GridItem Props
@ -121,7 +122,6 @@ app.use(GridItem);
| icon | Icon name or URL | _string_ | - |
| icon-prefix | Icon className prefix | _string_ | `van-icon` |
| icon-color | Icon color | _string_ | - |
| reverse `v3.1.0` | Whether to reverse the position of icon and text | _boolean_ | `false` |
| dot | Whether to show red dot | _boolean_ | `false` |
| badge | Content of the badge | _number \| string_ | - |
| badge-props `v3.2.8` | Props of Badgesee [Badge - props](#/en-US/badge#props) | _BadgeProps_ | - |

View File

@ -49,13 +49,13 @@ app.use(GridItem);
```html
<van-grid :border="false" :column-num="3">
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-1.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg" />
</van-grid-item>
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-2.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg" />
</van-grid-item>
<van-grid-item>
<van-image src="https://img.yzcdn.cn/vant/apple-3.jpg" />
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg" />
</van-grid-item>
</van-grid>
```
@ -128,6 +128,7 @@ app.use(GridItem);
| square | 是否将格子固定为正方形 | _boolean_ | `false` |
| clickable | 是否开启格子点击反馈 | _boolean_ | `false` |
| direction | 格子内容排列的方向,可选值为 `horizontal` | _string_ | `vertical` |
| reverse `v3.1.0` | 是否调换图标和文本的位置 | _boolean_ | `false` |
### GridItem Props
@ -137,7 +138,6 @@ app.use(GridItem);
| icon | 图标名称或图片链接,等同于 Icon 组件的 [name 属性](#/zh-CN/icon#props) | _string_ | - |
| icon-prefix | 图标类名前缀,等同于 Icon 组件的 [class-prefix 属性](#/zh-CN/icon#props) | _string_ | `van-icon` |
| icon-color | 图标颜色,等同于 Icon 组件的 [color 属性](#/zh-CN/icon#props) | _string_ | - |
| reverse `v3.1.0` | 是否调换图标和文本的位置 | _boolean_ | `false` |
| dot | 是否显示图标右上角小红点 | _boolean_ | `false` |
| badge | 图标右上角徽标的内容 | _number \| string_ | - |
| badge-props `v3.2.8` | 自定义徽标的属性,传入的对象会被透传给 [Badge 组件的 props](#/zh-CN/badge#props) | _BadgeProps_ | - |

View File

@ -48,13 +48,22 @@ const t = useTranslate({
<demo-block :title="t('customContent')">
<van-grid :border="false" :column-num="3">
<van-grid-item>
<van-image fit="contain" src="https://img.yzcdn.cn/vant/apple-1.jpg" />
<van-image
fit="contain"
src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg"
/>
</van-grid-item>
<van-grid-item>
<van-image fit="contain" src="https://img.yzcdn.cn/vant/apple-2.jpg" />
<van-image
fit="contain"
src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg"
/>
</van-grid-item>
<van-grid-item>
<van-image fit="contain" src="https://img.yzcdn.cn/vant/apple-3.jpg" />
<van-image
fit="contain"
src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg"
/>
</van-grid-item>
</van-grid>
</demo-block>

View File

@ -126,7 +126,7 @@ exports[`should render demo and match snapshot 1`] = `
>
<div class="van-grid-item__content van-grid-item__content--center">
<div class="van-image">
<img src="https://img.yzcdn.cn/vant/apple-1.jpg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg"
class="van-image__img"
style="object-fit: contain;"
>
@ -142,7 +142,7 @@ exports[`should render demo and match snapshot 1`] = `
>
<div class="van-grid-item__content van-grid-item__content--center">
<div class="van-image">
<img src="https://img.yzcdn.cn/vant/apple-2.jpg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg"
class="van-image__img"
style="object-fit: contain;"
>
@ -158,7 +158,7 @@ exports[`should render demo and match snapshot 1`] = `
>
<div class="van-grid-item__content van-grid-item__content--center">
<div class="van-image">
<img src="https://img.yzcdn.cn/vant/apple-3.jpg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg"
class="van-image__img"
style="object-fit: contain;"
>

View File

@ -31,7 +31,7 @@ Use `name` prop to set icon name or icon URL.
You can directly passing an image URL to the `name` props.
```html
<van-icon name="https://b.yzcdn.cn/vant/icon-demo-1126.png" />
<van-icon name="https://cdn.jsdelivr.net/npm/@vant/assets/icon-demo.png" />
```
### Show Badge

View File

@ -31,7 +31,7 @@ app.use(Icon);
你也可以直接在 `name` 属性中传入一个图片 URL 来作为图标。
```html
<van-icon name="https://b.yzcdn.cn/vant/icon-demo-1126.png" />
<van-icon name="https://cdn.jsdelivr.net/npm/@vant/assets/icon-demo.png" />
```
### 徽标提示

View File

@ -63,7 +63,7 @@ const t = useTranslate({
const tab = ref(0);
const demoIcon = 'chat-o';
const demoImage = 'https://b.yzcdn.cn/vant/icon-demo-1126.png';
const demoImage = 'https://cdn.jsdelivr.net/npm/@vant/assets/icon-demo.png';
const copy = (icon: string, option: Record<string, unknown> = {}) => {
let tag = `<van-icon name="${icon}"`;

View File

@ -78,7 +78,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-col van-col--6">
<i class="van-badge__wrapper van-icon">
<img class="van-icon__image"
src="https://b.yzcdn.cn/vant/icon-demo-1126.png"
src="https://cdn.jsdelivr.net/npm/@vant/assets/icon-demo.png"
>
</i>
</div>

View File

@ -33,7 +33,7 @@ exports[`should render icon with local image correctly 1`] = `
exports[`should render icon with url name correctly 1`] = `
<i class="van-badge__wrapper van-icon">
<img class="van-icon__image"
src="https://img.yzcdn.com/icon.jpg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
>
</i>
`;

View File

@ -13,7 +13,7 @@ test('should render icon with builtin icon name correctly', () => {
test('should render icon with url name correctly', () => {
const wrapper = mount(Icon, {
props: {
name: 'https://img.yzcdn.com/icon.jpg',
name: 'https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg',
},
});
expect(wrapper.html()).toMatchSnapshot();

View File

@ -22,8 +22,8 @@ app.use(ImagePreview);
```js
ImagePreview([
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
]);
```
@ -32,8 +32,8 @@ ImagePreview([
```js
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
startPosition: 1,
});
@ -46,8 +46,8 @@ After setting the `closeable` attribute, the close icon will be displayed in the
```js
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
closeable: true,
});
@ -60,8 +60,8 @@ import { Toast } from 'vant';
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
onClose() {
Toast('closed');
@ -74,8 +74,8 @@ ImagePreview({
```js
const instance = ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
beforeClose: () => false,
});
@ -101,8 +101,8 @@ export default {
const show = ref(false);
const index = ref(0);
const images = [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
];
const onChange = (newIndex) => {
index.value = newIndex;

View File

@ -11,7 +11,7 @@
```js
import { ImagePreview } from 'vant';
ImagePreview(['https://img.yzcdn.cn/vant/apple-1.jpg']);
ImagePreview(['https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg']);
```
### 组件调用
@ -57,8 +57,8 @@ export default {
```js
ImagePreview([
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
]);
```
@ -69,8 +69,8 @@ ImagePreview([
```js
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
startPosition: 1,
});
@ -83,8 +83,8 @@ ImagePreview({
```js
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
closeable: true,
});
@ -99,8 +99,8 @@ import { Toast } from 'vant';
ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
onClose() {
Toast('关闭');
@ -115,8 +115,8 @@ ImagePreview({
```js
const instance = ImagePreview({
images: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
beforeClose: () => false,
});
@ -145,8 +145,8 @@ export default {
const show = ref(false);
const index = ref(0);
const images = [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
];
const onChange = (newIndex) => {
index.value = newIndex;

View File

@ -33,10 +33,10 @@ const t = useTranslate({
});
const images = [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://img.yzcdn.cn/vant/apple-3.jpg',
'https://img.yzcdn.cn/vant/apple-4.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-4.jpeg',
];
const show = ref(false);

View File

@ -79,7 +79,7 @@ exports[`zoom in and drag image to move 1`] = `
<div class="van-image van-image-preview__image"
style="transition-duration: .3s;"
>
<img src="https://img.yzcdn.cn/1.png"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg"
class="van-image__img"
style="object-fit: contain;"
>
@ -120,7 +120,7 @@ exports[`zoom in and drag image to move 2`] = `
<div class="van-image van-image-preview__image"
style="transition-duration: .3s;"
>
<img src="https://img.yzcdn.cn/1.png"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg"
class="van-image__img"
style="object-fit: contain;"
>

View File

@ -2,9 +2,9 @@ import { DOMWrapper } from '@vue/test-utils/dist/domWrapper';
import { trigger } from '../../../test';
export const images = [
'https://img.yzcdn.cn/1.png',
'https://img.yzcdn.cn/2.png',
'https://img.yzcdn.cn/3.png',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg',
];
function triggerTwoFingerTouchmove(

View File

@ -21,7 +21,11 @@ app.use(VanImage);
### Basic Usage
```html
<van-image width="100" height="100" src="https://img.yzcdn.cn/vant/cat.jpeg" />
<van-image
width="100"
height="100"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
### Fit Mode
@ -33,7 +37,7 @@ Same as [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
width="10rem"
height="10rem"
fit="contain"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -47,7 +51,7 @@ Same as [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/objec
height="10rem"
fit="cover"
position="left"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -60,7 +64,7 @@ Show round image, it may not works at `fit=contain` and `fit=scale-down`.
round
width="10rem"
height="10rem"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -71,7 +75,7 @@ Show round image, it may not works at `fit=contain` and `fit=scale-down`.
width="100"
height="100"
lazy-load
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```

View File

@ -23,7 +23,11 @@ app.use(VanImage);
基础用法与原生 `img` 标签一致,可以设置 `src``width``height``alt` 等原生属性。
```html
<van-image width="100" height="100" src="https://img.yzcdn.cn/vant/cat.jpeg" />
<van-image
width="100"
height="100"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
### 填充模式
@ -35,7 +39,7 @@ app.use(VanImage);
width="10rem"
height="10rem"
fit="contain"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -49,7 +53,7 @@ app.use(VanImage);
height="10rem"
fit="cover"
position="left"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -62,7 +66,7 @@ app.use(VanImage);
round
width="10rem"
height="10rem"
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -75,7 +79,7 @@ app.use(VanImage);
width="100"
height="100"
lazy-load
src="https://img.yzcdn.cn/vant/cat.jpeg"
src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
/>
```
@ -92,7 +96,7 @@ app.use(Lazyload);
`Image` 组件提供了默认的加载中提示,支持通过 `loading` 插槽自定义内容。
```html
<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg">
<template v-slot:loading>
<van-loading type="spinner" size="20" />
</template>
@ -104,7 +108,7 @@ app.use(Lazyload);
`Image` 组件提供了默认的加载失败提示,支持通过 `error` 插槽自定义内容。
```html
<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
<van-image src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg">
<template v-slot:error>加载失败</template>
</van-image>
```

View File

@ -28,7 +28,7 @@ const t = useTranslate({
},
});
const image = 'https://img.yzcdn.cn/vant/cat.jpeg';
const image = 'https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg';
const fits = ['contain', 'cover', 'fill', 'none', 'scale-down'] as const;
const positions1 = ['left', 'center', 'right'] as const;
const positions2 = ['top', 'center', 'bottom'] as const;

View File

@ -6,7 +6,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100px; height: 100px;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
>
<div class="van-image__loading">
@ -24,7 +24,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: contain;"
>
@ -43,7 +43,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: cover;"
>
@ -62,7 +62,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: fill;"
>
@ -81,7 +81,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: none;"
>
@ -100,7 +100,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: scale-down;"
>
@ -123,7 +123,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: cover; object-position: left;"
>
@ -145,7 +145,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: cover; object-position: center;"
>
@ -167,7 +167,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: cover; object-position: right;"
>
@ -189,7 +189,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: contain; object-position: top;"
>
@ -211,7 +211,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: contain; object-position: center;"
>
@ -233,7 +233,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: contain; object-position: bottom;"
>
@ -259,7 +259,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image van-image--round"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: contain;"
>
@ -278,7 +278,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image van-image--round"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: cover;"
>
@ -297,7 +297,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image van-image--round"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: fill;"
>
@ -316,7 +316,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image van-image--round"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: none;"
>
@ -335,7 +335,7 @@ exports[`should render demo and match snapshot 1`] = `
<div class="van-image van-image--round"
style="width: 100%; height: 27vw;"
>
<img src="https://img.yzcdn.cn/vant/cat.jpeg"
<img src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg"
class="van-image__img"
style="object-fit: scale-down;"
>

View File

@ -34,8 +34,8 @@ export default {
setup() {
return {
imageList: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
};
},

View File

@ -38,8 +38,8 @@ export default {
setup() {
return {
imageList: [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
],
};
},

View File

@ -18,18 +18,18 @@ const t = useTranslate({
});
const imageList = [
'https://img.yzcdn.cn/vant/apple-1.jpg',
'https://img.yzcdn.cn/vant/apple-2.jpg',
'https://img.yzcdn.cn/vant/apple-3.jpg',
'https://img.yzcdn.cn/vant/apple-4.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-3.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-4.jpeg',
];
const backgroundImageList = [
'https://img.yzcdn.cn/vant/apple-5.jpg',
'https://img.yzcdn.cn/vant/apple-6.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-5.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-6.jpeg',
];
const componentImageList = [
'https://img.yzcdn.cn/vant/apple-8.jpg',
'https://img.yzcdn.cn/vant/apple-7.jpg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-8.jpeg',
'https://cdn.jsdelivr.net/npm/@vant/assets/apple-7.jpeg',
];
</script>

View File

@ -59,10 +59,8 @@ export default {
},
vanAddressEdit: {
area: 'এরিয়া',
postal: 'ডাক',
areaEmpty: 'অনুগ্রহ করে একটি রিসিভিং এলাকা নির্বাচন করুন',
addressEmpty: 'ঠিকানা খালি হতে পারে না',
postalEmpty: 'ভুল পোস্টাল কোড',
addressDetail: 'ঠিকানা',
defaultAddress: 'ডিফল্ট ঠিকানা হিসাবে সেট করুন',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Standort',
postal: 'PLZ',
areaEmpty: 'Bitte geben Sie Ihren Standort an',
addressEmpty: 'Adresse darf nicht leer sein',
postalEmpty: 'Falsche Postleitzahl',
addressDetail: 'Adresse',
defaultAddress: 'Als Standardadresse festgelegen',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Standort',
postal: 'PLZ',
areaEmpty: 'Bitte deinen Ort angeben',
addressEmpty: 'Adresse darf nicht leer sein',
postalEmpty: 'Falsche Postleitzahl',
addressDetail: 'Adresse',
defaultAddress: 'Als Standardadresse festgelegen',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Area',
postal: 'Postal',
areaEmpty: 'Please select a receiving area',
addressEmpty: 'Address can not be empty',
postalEmpty: 'Wrong postal code',
addressDetail: 'Address',
defaultAddress: 'Set as the default address',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Área',
postal: 'Código Postal',
areaEmpty: 'Por favor selecciona una área de recogida',
addressEmpty: 'La dirección no puede estar vacia',
postalEmpty: 'Código postal inválido',
addressDetail: 'Dirección',
defaultAddress: 'Establecer como dirección por defecto',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Zone',
postal: 'Postal',
areaEmpty: 'Veuillez sélectionner une zone de réception',
addressEmpty: "L'adresse ne peut pas être vide",
postalEmpty: 'Mauvais code postal',
addressDetail: 'Adresse',
defaultAddress: 'Définir comme adresse par défaut',
},

View File

@ -58,10 +58,8 @@ export default {
},
vanAddressEdit: {
area: 'क्षेत्र',
postal: 'डाक का',
areaEmpty: 'कृपया एक क्षेत्र चुनें',
addressEmpty: 'पता खाली नहीं हो सकता',
postalEmpty: 'गलत पोस्टल कोड',
addressDetail: 'पता',
defaultAddress: 'डिफ़ॉल्ट पते के रूप में सेट करें',
},

View File

@ -51,10 +51,8 @@ export default {
},
vanAddressEdit: {
area: 'Daerah',
postal: 'pos',
areaEmpty: 'Silakan pilih area penerima',
addressEmpty: 'Alamat tidak boleh kosong',
postalEmpty: 'Kode pos salah',
addressDetail: 'Alamat',
defaultAddress: 'Tetapkan sebagai alamat default',
},

View File

@ -58,10 +58,8 @@ export default {
},
vanAddressEdit: {
area: 'Svæði',
postal: 'póstur',
areaEmpty: 'Vinsamlega veldu móttökusvæði',
addressEmpty: 'Heimilisfang má ekki vera tómt',
postalEmpty: 'Rangt póstnúmer',
addressDetail: 'Heimilisfang',
defaultAddress: 'Setja sem sjálfgefið heimilisfang',
},

View File

@ -58,10 +58,8 @@ export default {
},
vanAddressEdit: {
area: 'Area',
postal: 'Postale',
areaEmpty: "Seleziona un'area di ricezione",
addressEmpty: "L'indirizzo non può essere vuoto",
postalEmpty: 'Codice postale errato',
addressDetail: 'Indirizzo',
defaultAddress: 'Imposta come indirizzo predefinito',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: '地域',
postal: '郵便番号',
areaEmpty: '地域を選択してください',
addressEmpty: '詳しい住所を入力してください',
postalEmpty: '間違った郵便番号',
addressDetail: '詳しい住所',
defaultAddress: 'デフォルトの住所に設定',
},

View File

@ -58,10 +58,8 @@ export default {
},
vanAddressEdit: {
area: '지역',
postal: '우편 엽서',
areaEmpty: '접수지역을 선택해주세요',
addressEmpty: '주소는 비워둘 수 없습니다',
postalEmpty: '잘못된 우편번호',
addressDetail: '주소',
defaultAddress: '기본 주소로 설정',
},

View File

@ -51,10 +51,8 @@ export default {
},
vanAddressEdit: {
area: 'ພື້ນທີ່',
postal: 'ລະຫັດໄປສະນີ',
areaEmpty: 'ກະລຸນາເລືອກພື້ນທີ່',
addressEmpty: 'ກະລຸນາປ້ອນທີ່ຢູ່',
postalEmpty: 'ກະລຸນາປ້ອນລະຫັດໄປສະນີ',
addressDetail: 'ທີ່ຢູ່',
defaultAddress: 'ຕັ້ງເປັນທີ່ຢູ່ເລີ່ມຕົ້ນ',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Område',
postal: 'Postkode',
areaEmpty: 'Vennligst fyll inn område',
addressEmpty: 'Addresse kan ikke være tomt',
postalEmpty: 'Feil postkode',
addressDetail: 'Adresse',
defaultAddress: 'Sett som standard adresse',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Área',
postal: 'CEP',
areaEmpty: 'Por favor, selecione uma área de recebimento',
addressEmpty: 'Endereço não pode ser vazio',
postalEmpty: 'CEP inválido',
addressDetail: 'Endereço',
defaultAddress: 'Usar como endereço padrão',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Zonă',
postal: 'Cod postal',
areaEmpty: 'Te rugăm sa selectezi o zona de primire',
addressEmpty: 'Adresa nu poate fi goală',
postalEmpty: 'Cod postal invalid',
addressDetail: 'Adresă',
defaultAddress: 'Setează ca adresă de pornire',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Область',
postal: 'Индекс',
areaEmpty: 'Укажите зону доставки',
addressEmpty: 'Адрес не может быть пустым',
postalEmpty: 'Некорректный индекс',
addressDetail: 'Адрес',
defaultAddress: 'Сделать адресом по умолчанию',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Område',
postal: 'Post',
areaEmpty: 'Välj ett mottagningsområde',
addressEmpty: 'Adressen får inte vara tom',
postalEmpty: 'Fel postnummer',
addressDetail: 'Adress',
defaultAddress: 'Ange som standardadress',
},

View File

@ -51,10 +51,8 @@ export default {
},
vanAddressEdit: {
area: 'พื้นที่',
postal: 'รหัสไปรษณีย์',
areaEmpty: 'โปรดเลือกภูมิภาค',
addressEmpty: 'กรุณากรอกที่อยู่โดยละเอียด',
postalEmpty: 'รูปแบบรหัสไปรษณีย์ไม่ถูกต้อง',
addressDetail: 'ที่อยู่',
defaultAddress: 'ตั้งเป็นที่อยู่จัดส่งเริ่มต้น',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: 'Alan',
postal: 'Posta',
areaEmpty: 'Lütfen alıcı alanını seçin',
addressEmpty: 'Adres boş olamaz!',
postalEmpty: 'Yanlış posta kodu',
addressDetail: 'Adres',
defaultAddress: 'Varsayılan adres olarak ayarla',
},

View File

@ -59,10 +59,8 @@ export default {
},
vanAddressEdit: {
area: 'Область',
postal: 'Поштовий',
areaEmpty: 'Будь ласка, виберіть зону прийому',
addressEmpty: 'Адреса не може бути порожньою',
postalEmpty: 'Неправильний поштовий індекс',
addressDetail: 'Адреса',
defaultAddress: 'Встановити як адресу за замовчуванням',
},

View File

@ -58,10 +58,8 @@ export default {
},
vanAddressEdit: {
area: 'Khu vực',
postal: 'Bưu điện',
areaEmpty: 'Vui lòng chọn khu vực nhận hàng',
addressEmpty: 'Địa chỉ không được để trống',
postalEmpty: 'Mã bưu chính sai',
addressDetail: 'Địa chỉ',
defaultAddress: 'Đặt làm địa chỉ mặc định',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: '地区',
postal: '邮政编码',
areaEmpty: '请选择地区',
addressEmpty: '请填写详细地址',
postalEmpty: '邮政编码不正确',
addressDetail: '详细地址',
defaultAddress: '设为默认收货地址',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: '地區',
postal: '郵政編碼',
areaEmpty: '請選擇地區',
addressEmpty: '請填寫詳細地址',
postalEmpty: '郵政編碼不正確',
addressDetail: '詳細地址',
defaultAddress: '設為默認收貨地址',
},

View File

@ -50,10 +50,8 @@ export default {
},
vanAddressEdit: {
area: '地區',
postal: '郵遞區號',
areaEmpty: '請選擇地區',
addressEmpty: '請填寫詳細地址',
postalEmpty: '郵遞區號不正確',
addressDetail: '詳細地址',
defaultAddress: '設為預設收貨地址',
},

Some files were not shown because too many files have changed in this diff Show More