diff --git a/docs/examples-docs/address-list.md b/docs/examples-docs/address-list.md new file mode 100644 index 000000000..419621805 --- /dev/null +++ b/docs/examples-docs/address-list.md @@ -0,0 +1,122 @@ + + +## AddressList 地址列表 + +### 使用指南 +``` javascript +import { AddressList } from 'vant'; + +Vue.component(AddressList.name, AddressList); +``` + +### 代码演示 + +#### 基础用法 + +:::demo 基础用法 +```html + +``` + +```javascript +export default { + data() { + return { + chosenAddressId: '1', + list: [ + { + id: '1', + name: '张三', + tel: '13000000000', + address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室' + }, + { + id: '2', + name: '李四', + tel: '1310000000', + address: '浙江省杭州市拱墅区莫干山路 50 号' + } + ] + } + }, + + methods: { + onAdd() { + Toast('新增收货地址'); + }, + onEdit(item, index) { + Toast('编辑收货地址:' + index); + } + } +} +``` +::: + +### API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| v-model | 当前选中地址的 id | String | - | - | +| list | 地址列表 | Array | `[]` | - | +| addButtonText | 底部按钮文字 | String | `新增收货地址` | - | + +### Event + +| 事件名 | 说明 | 参数 | +|-----------|-----------|-----------| +| add | 点击新增按钮时触发 | - | +| edit | 点击编辑按钮时触发 | item: 当前地址对象,index: 索引 | +| change | 切换选中的地址时触发 | item: 当前地址对象,index: 索引 | + +### 数据格式 +#### 地址列表字段说明 +| key | 说明 | 类型 | +|-----------|-----------|-----------| +| id | 每条地址的唯一标识 | `String | Number` | +| name | 收货人姓名 | `String` | +| tel | 收货人手机号 | `String` | +| address | 收货地址 | `String` | diff --git a/docs/examples-docs/field.md b/docs/examples-docs/field.md index 377ab8bfd..4865b5746 100644 --- a/docs/examples-docs/field.md +++ b/docs/examples-docs/field.md @@ -1,8 +1,6 @@ @@ -10,17 +8,11 @@ export default { data() { return { - username: 'zhangmin' + value: '', + password: '', + username: 'zhangmin', + message: '' }; - }, - methods: { - onIconClick() { - this.username = ''; - }, - - onFieldBlur() { - console.log('blured'); - } } }; @@ -39,92 +31,78 @@ Vue.component(Field.name, Field); ### 代码演示 #### 基础用法 - -根据`type`属性显示不同的输入框。 +通过 v-model 绑定输入框的值 :::demo 基础用法 ```html + + + +``` +::: + +#### 自定义类型 +根据`type`属性定义不同类型的输入框 + +:::demo 自定义类型 +```html + placeholder="请输入用户名" + required + @click-icon="username = ''" + > + + - - ``` ::: -#### 无label的输入框 +#### 禁用输入框 -不传入`label`属性即可。 - -:::demo 无label的输入框 +:::demo 禁用输入框 ```html - + ``` ::: -#### 带border的输入框 +#### 错误提示 -传入一个`border`属性。 - -:::demo 带border的输入框 -```html -
- -
-``` -::: - -#### 禁用的输入框 - -传入`disabled`属性即可。 - -:::demo 禁用的输入框 +:::demo 错误提示 ```html - + ``` ::: -#### 错误的输入框 +#### 高度自适应 +对于 textarea,可以通过`autosize`属性设置高度自适应 -传入`error`属性即可。 - -:::demo 错误的输入框 +:::demo 高度自适应 ```html - - -``` -::: - - -#### Autosize的输入框(仅支持textarea) - -传入`autosize`属性, 且将`rows`设为1。 - -:::demo 错误的输入框 -```html - - + + ``` ::: @@ -133,23 +111,24 @@ Vue.component(Field.name, Field); | 参数 | 说明 | 类型 | 默认值 | 可选值 | |-----------|-----------|-----------|-------------|-------------| -| type | 输入框类型 | `String` | `text` | `text`, `number`, `email`, `url`, `tel`, `date`, `datetime`, `password`, `textarea` | -| placeholder | 输入框placeholder | `String` | | | -| value | 输入框的值 | `String` | | | -| label | 输入框标签 | `String` | | | -| disabled | 是否禁用输入框 | `Boolean` | `false` | | -| error | 输入框是否有错误 | `Boolean` | `false` | | -| readonly | 输入框是否只读 | `Boolean` | `false` | | -| maxlength | 输入框maxlength | `String`, `Number` | | | -| rows | textarea rows | `String`, `Number` | | | -| cols | textarea cols | `String`, `Number` | | | -| autosize | 自动调整高度(仅支持textarea) | `Boolean` | `false` | `true`, `false` | -| icon | 输入框尾部图标 | `String` | | icon中支持的类型 | -| onIconClick | 点击图标的回调函数 | `Function` | | | +| type | 输入框类型 | `String` | `text` | `number` `email`
`textarea` `tel`
`datetime` `date`
`password` `url` | +| value | 输入框的值 | `String` | - | - | +| label | 输入框标签 | `String` | - | - | +| disabled | 是否禁用输入框 | `Boolean` | `false` | - | +| error | 输入框是否有错误 | `Boolean` | `false` | - | +| autosize | 高度自适应(仅支持textarea) | `Boolean` | `false` | - | +| icon | 输入框尾部图标 | `String` | - | Icon 组件支持的类型 | + +### Event + +| 事件名称 | 说明 | 回调参数 | +|-----------|-----------|-----------| +| focus | 输入框聚焦时触发 | - | +| blur | 输入框失焦时触发 | - | +| click-icon | 点击尾部图标时触发 | - | ### Slot | name | 描述 | |-----------|-----------| | icon | 自定义icon | - diff --git a/docs/examples-docs/notice-bar.md b/docs/examples-docs/notice-bar.md index 7da1faa12..61933d463 100644 --- a/docs/examples-docs/notice-bar.md +++ b/docs/examples-docs/notice-bar.md @@ -21,7 +21,7 @@ Vue.component(NoticeBar.name, NoticeBar); :::demo 基础用法 ```html - + ``` ::: diff --git a/docs/src/ExamplesApp.vue b/docs/src/ExamplesApp.vue index ae9d63a7a..201ab0f1e 100644 --- a/docs/src/ExamplesApp.vue +++ b/docs/src/ExamplesApp.vue @@ -1,93 +1,9 @@ - - diff --git a/docs/src/doc.config.js b/docs/src/doc.config.js index 7ab9edcd7..619899742 100644 --- a/docs/src/doc.config.js +++ b/docs/src/doc.config.js @@ -214,6 +214,10 @@ module.exports = { { "groupName": "业务组件", "list": [ + { + "path": "/address-list", + "title": "AddressList 地址列表" + }, { "path": "/area", "title": "Area 省市区选择" diff --git a/docs/src/examples.js b/docs/src/examples.js index 674f838a2..edeb94775 100644 --- a/docs/src/examples.js +++ b/docs/src/examples.js @@ -36,7 +36,12 @@ router.afterEach(() => { window.vueRouter = router; +if (process.env.NODE_ENV !== 'production') { + Vue.config.productionTip = false; +} + new Vue({ // eslint-disable-line render: h => h(App), - router -}).$mount('#app-container'); + router, + el: '#app-container' +}); diff --git a/docs/src/index.js b/docs/src/index.js index 6c6b36dd6..bb2d3d9e2 100644 --- a/docs/src/index.js +++ b/docs/src/index.js @@ -35,7 +35,12 @@ router.afterEach(() => { window.vueRouter = router; +if (process.env.NODE_ENV !== 'production') { + Vue.config.productionTip = false; +} + new Vue({ // eslint-disable-line render: h => h(App), - router -}).$mount('#app-container'); + router, + el: '#app-container' +}); diff --git a/packages/address-list/index.vue b/packages/address-list/index.vue new file mode 100644 index 000000000..9088f2489 --- /dev/null +++ b/packages/address-list/index.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/cell/index.vue b/packages/cell/index.vue index aa50d3020..0f43adcef 100644 --- a/packages/cell/index.vue +++ b/packages/cell/index.vue @@ -27,6 +27,7 @@ + diff --git a/packages/field/index.vue b/packages/field/index.vue index e7b5cb489..ba281a720 100644 --- a/packages/field/index.vue +++ b/packages/field/index.vue @@ -1,47 +1,43 @@