-
+
+
+
+
+
```
:::
+
+### API
+
+| 参数 | 说明 | 类型 | 默认值 | 可选值 |
+|-----------|-----------|-----------|-------------|-------------|
+| autoPlay | 是否自动轮播 | `boolean` | `false` | `true`, `false` |
+| showIndicators | 是否显示指示器 | `boolean` | `true` | `true`, `false` |
+
+### 事件
+
+| 事件名 | 说明 | 参数 |
+|-----------|-----------|-----------|
+| `pagechange:end` | 每一页轮播结束后触发 | `(elem, currIndex)`:`elem`为触发页当前的DOM节点 |
diff --git a/docs/examples-docs/switch.md b/docs/examples-docs/switch.md
index b9a0e332d..4ebdd4949 100644
--- a/docs/examples-docs/switch.md
+++ b/docs/examples-docs/switch.md
@@ -1,83 +1,122 @@
-## Switch组件
+## Switch 开关
-### 基础用法
+### 使用指南
+
+如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。
+
+#### 全局注册
+
+你可以在全局注册`Switch`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Switch`组件了:
+
+```js
+import Vue from 'vue';
+import { Switch } from '@youzan/zanui-vue';
+import '@youzan/zanui-vue/lib/zanui-css/switch.css';
+
+Vue.component(Switch.name, Switch);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用,你可以在对应组件中注册`Switch`组件,这样只能在你注册的组件中使用`Switch`:
+
+```js
+import { Switch } from '@youzan/zanui-vue';
+
+export default {
+ components: {
+ 'zan-switch': Switch
+ }
+};
+```
+
+### 代码演示
+
+#### 基础用法
:::demo 基础用法
```html
-
-
-
{{switchStateText}}
-
-
-
-
-
+
+{{ switchState1 ? ' ON' : 'OFF' }}
+
+```
+:::
+
+:::demo 基础用法
+```html
+
+{{ switchState2 ? ' ON' : 'OFF' }}
+
+
+
+```
+:::
+
+#### loading状态
+
+设置`loading`属性为`true`,此时开关为加载状态,一般用于点击开关时正在向后端发送请求,此时正在loading,请求成功后,结束loading。
+
+:::demo
+```html
+
+ON, LOADING
+
+
+OFF, LOADING
+
+
+```
+:::
+
### API
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
-| checked | 开关状态 | `boolean` | `false` | `true`, `false` |
+| v-model | 开关状态 | `boolean` | `false` | `true`, `false` |
| loading | loading状态 | `boolean` | `false` | `true`, `false` |
| disabled | 禁用状态 | `boolean` | `false` | `true`, `false` |
+| onChange | 开关状态切换回调(默认则改变开关状态) | `function` | - | - |
diff --git a/docs/examples-docs/tab.md b/docs/examples-docs/tab.md
index 9aad91c35..5b9c2a7c5 100644
--- a/docs/examples-docs/tab.md
+++ b/docs/examples-docs/tab.md
@@ -5,6 +5,22 @@
background-color: #fff;
padding: 20px;
}
+
+ .zan-tabs--card .zan-tab__pane {
+ background-color: transparent;
+ }
+
+ .custom-tabwrap .zan-tab-active {
+ color: #20a0ff;
+ }
+ .custom-tabwrap .zan-tabs-nav-bar {
+ background: #20a0ff;
+ }
+ .custom-pane {
+ text-align: center;
+ height: 50px;
+ line-height: 50px;
+ }
}
}
@@ -24,14 +40,54 @@ export default {
methods: {
popalert() {
alert('haha')
+ },
+
+ handleTabClick(index) {
+ alert(index);
}
}
};
-## Tab 组件
+## Tab 标签
-### 基础用法
+### 使用指南
+
+如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。
+
+#### 全局注册
+
+你可以在全局注册`Tab`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Tab`组件了:
+
+```js
+import Vue from 'vue';
+import { Tab, Tabs } from '@youzan/zanui-vue';
+import '@youzan/zanui-vue/lib/zanui-css/tab.css';
+
+Vue.component(Tab.name, Tab);
+Vue.component(Tabs.name, Tabs);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用,你可以在对应组件中注册`Tab`组件,这样只能在你注册的组件中使用`Tab`:
+
+```js
+import { Tab, Tabs } from '@youzan/zanui-vue';
+
+export default {
+ components: {
+ 'zan-tab': Tab,
+ 'zan-tabs': Tabs
+ }
+};
+```
+
+### 代码演示
+
+#### 基础用法
+
+默认情况下是启用第一个`tab`。
:::demo 基础用法
```html
@@ -43,18 +99,38 @@ export default {
内容五
```
-
:::
-### 禁用用法
-:::demo 禁用用法
+
+#### active特定tab
+
+可以在`zan-tabs`上设置`active`为对应`tab`的索引(从0开始,即0代表第一个)即可激活对应`tab`。
+
+:::demo 基础用法
```html
内容一
- 内容二
+ 内容二
内容三
内容四
内容五
+```
+:::
+
+#### 禁用tab
+
+在对应的`zan-tab`上设置`disabled`属性即可,如果需要监听禁用事件,可以监听`disabled`事件。
+
+:::demo 禁用tab
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+ 内容五
+
+
+```
+:::
+
### zan-tabs API
| 参数 | 说明 | 类型 | 默认值 | 可选 |
@@ -141,8 +238,16 @@ export default {
### zan-tab API
+
| 参数 | 说明 | 类型 | 默认值 | 可选 |
|-----------|-----------|-----------|-------------|-------------|
| title | tab的标题 | `string` | | |
-| disable | 是否禁用这个tab | `boolean` | `false` | |
+| disabled | 是否禁用这个tab | `boolean` | `false` | |
+
+### zan-tabs Event
+
+| 事件名 | 说明 | 参数 |
+|-----------|-----------|-----------|
+| click | 某个tab点击事件 | index:点击的`tab`的索引 |
+| disabled | 某个tab禁用时点击事件 | index:点击的`tab`的索引 |
diff --git a/docs/examples-docs/tag.md b/docs/examples-docs/tag.md
index 126ba5c38..d7f1af015 100644
--- a/docs/examples-docs/tag.md
+++ b/docs/examples-docs/tag.md
@@ -8,15 +8,49 @@
}
-## Tag 组件
+## Tag 标记
-### 基础用法
+### 使用指南
+
+如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。
+
+#### 全局注册
+
+你可以在全局注册`Tag`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Tag`组件了:
+
+```js
+import Vue from 'vue';
+import { Tag } from '@youzan/zanui-vue';
+import '@youzan/zanui-vue/lib/zanui-css/tag.css';
+
+Vue.component(Tag.name, Tag);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用,你可以在对应组件中注册`Tag`组件,这样只能在你注册的组件中使用`Tag`:
+
+```js
+import { Tag } from '@youzan/zanui-vue';
+
+export default {
+ components: {
+ 'zan-tag': Tag
+ }
+};
+```
+
+### 代码演示
+
+#### 基础用法
+
+`Tag`目前有三种类型,`danger`、`success`、`primary`,它们分别显示为红色,绿色和蓝色,你也可以加上自定义的类,为它们加上其他的颜色。
:::demo 基础用法
```html
返现
- 返现
+ 返现
返现
@@ -26,24 +60,26 @@
```
:::
-### 高级用法
+#### 高级用法
+
+设置`plain`为`true`时表示空心的`tag`,还可以设置`mark`为`true`,表示是否为标记。
:::demo 高级用法
```html
返现
- 返现
+ 返现
返现
- 返现
+ 返现
返现
- 返现
+ 返现
- 返现
+ 返现
```
:::
diff --git a/docs/examples-docs/toast.md b/docs/examples-docs/toast.md
index a828742e4..53197e154 100644
--- a/docs/examples-docs/toast.md
+++ b/docs/examples-docs/toast.md
@@ -38,9 +38,9 @@ export default {
type: 'success',
message: leftSec.toString()
});
- window.setInterval(() => {
+ const id = window.setInterval(() => {
if (leftSec <= 1) {
- window.clearInterval();
+ window.clearInterval(id);
toast.message = '跳转中...'
return;
}
@@ -63,9 +63,19 @@ export default {
};
-## Toast
+## Toast 轻提示
-### 基础用法
+### 使用指南
+
+`Toast`和其他组件不同,不是通过HTML结构的方式来使用,而是通过函数调用的方式。使用前需要先引入它。
+
+```js
+import { Toast } from '@youzan/zanui-vue';
+```
+
+### 代码演示
+
+#### 基础用法
:::demo 基础用法
```html
@@ -106,9 +116,9 @@ export default {
type: 'success',
message: leftSec.toString()
});
- window.setInterval(() => {
+ const id = window.setInterval(() => {
if (leftSec <= 1) {
- window.clearInterval();
+ window.clearInterval(id);
toast.message = '跳转中...'
return;
}
@@ -121,7 +131,7 @@ export default {
```
:::
-### 手动关闭
+#### 手动关闭
:::demo 手动关闭
```html
@@ -134,10 +144,10 @@ import { Toast } from 'src/index';
export default {
methods: {
showToast() {
- this.toast = Toast('我是提示文案,建议不超过十五字~');
+ Toast('我是提示文案,建议不超过十五字~');
},
closeToast() {
- this.toast.clear();
+ Toast.clear();
}
}
};
@@ -146,7 +156,7 @@ export default {
:::
-### 传入html
+#### 传入html
:::demo 手动关闭
```html
@@ -171,7 +181,8 @@ export default {
### 基础用法
-### Toast(options)
+
+#### Toast(options)
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
@@ -181,7 +192,8 @@ export default {
| duration | 时长(ms) | Number | 3000ms | -|
### 快速用法
-### Toast(message) || Toast(message, options)
+
+#### Toast(message) || Toast(message, options)
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
@@ -189,14 +201,14 @@ export default {
| forbidClick | 不允许背景点击 | Boolean | false | true, false|
| duration | 时长(ms) | Number | 3000ms | -|
-### Toast.loading() || Toast.loading(message, options)
+#### Toast.loading() || Toast.loading(message, options)
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
| forbidClick | 不允许背景点击 | Boolean | false | true, false|
| duration | 时长(ms) | Number | 3000ms | -|
-### Toast.success(message) || Toast.success(message, options)
+#### Toast.success(message) || Toast.success(message, options)
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
@@ -204,7 +216,7 @@ export default {
| forbidClick | 不允许背景点击 | Boolean | false | true, false|
| duration | 时长(ms) | Number | 3000ms | -|
-### Toast.fail(message) || Toast.fail(message, options)
+#### Toast.fail(message) || Toast.fail(message, options)
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------|-----------|-----------|-------------|-------------|
@@ -212,5 +224,6 @@ export default {
| forbidClick | 不允许背景点击 | Boolean | false | true, false|
| duration | 时长(ms) | Number | 3000ms | -|
-### instanceOfToast.clear()
+#### Toast.clear()
+
关闭toast。
diff --git a/docs/examples-docs/uploader.md b/docs/examples-docs/uploader.md
index c65780f6c..36466c171 100644
--- a/docs/examples-docs/uploader.md
+++ b/docs/examples-docs/uploader.md
@@ -12,9 +12,42 @@ export default {
}
};
-## Uploader 组件
-### 基础用法
+## Uploader 图片上传
+
+### 使用指南
+
+如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。
+
+#### 全局注册
+
+你可以在全局注册`Uploader`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Uploader`组件了:
+
+```js
+import Vue from 'vue';
+import { Uploader } from '@youzan/zanui-vue';
+import '@youzan/zanui-vue/lib/zanui-css/uploader.css';
+
+Vue.component(Uploader.name, Uploader);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用,你可以在对应组件中注册`Uploader`组件,这样只能在你注册的组件中使用`Uploader`:
+
+```js
+import { Uploader } from '@youzan/zanui-vue';
+
+export default {
+ components: {
+ 'zan-uploader': Uploader
+ }
+};
+```
+
+### 代码演示
+
+#### 基础用法
:::demo 基础用法
```html
@@ -26,7 +59,9 @@ export default {
```
:::
-### 自定义上传图标
+
+#### 自定义上传图标
+
:::demo 自定义上传图标
```html
diff --git a/docs/examples-docs/waterfall.md b/docs/examples-docs/waterfall.md
index 7ba9035da..2155b2689 100644
--- a/docs/examples-docs/waterfall.md
+++ b/docs/examples-docs/waterfall.md
@@ -1,6 +1,34 @@
## Waterfall 瀑布流
-### 基础用法
+### 使用指南
+
+#### 全局注册
+
+`Waterfall`引入后就自动全局安装。如果需要,可以再次手动安装:
+
+```js
+import Vue from 'vue';
+import { Waterfall } from '@youzan/zanui-vue';
+
+Waterfall.install(Vue);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用`Waterfall`,你可以在对应组件中注册`Waterfall`指令,这样只能在你注册的组件中使用`Waterfall`:
+
+```js
+import { Waterfall } from '@youzan/zanui-vue';
+
+export default {
+ directives: {
+ WaterfallLower: Waterfall('lower'),
+ WaterfallUpper: Waterfall('upper')
+ }
+};
+```
+
+### 代码演示
diff --git a/docs/components/demo-block.vue b/docs/src/components/demo-block.vue
similarity index 89%
rename from docs/components/demo-block.vue
rename to docs/src/components/demo-block.vue
index f0291eebf..50dfb211e 100644
--- a/docs/components/demo-block.vue
+++ b/docs/src/components/demo-block.vue
@@ -23,25 +23,27 @@ export default {
code {
font-family: Menlo, Monaco, Consolas, Courier, monospace;
+ overflow: auto;
+ white-space: pre-wrap;
}
.examples {
width: 320px;
- float: right;
box-sizing: border-box;
- padding: 10px 0 0;
- min-height: 200px;
- max-height: 600px;
+ padding: 10px 0;
+ min-height: 60px;
+ max-height: 500px;
overflow: auto;
background-color: #F8F8F8;
border: 1px solid #E5E5E5;
+ float: right;
}
.highlight {
- margin-right: 345px;
box-sizing: border-box;
border: 1px solid #E5E5E5;
border-radius: 4px;
+ margin-right: 345px;
pre {
margin: 0;
diff --git a/docs/components/demo-list.vue b/docs/src/components/demo-list.vue
similarity index 96%
rename from docs/components/demo-list.vue
rename to docs/src/components/demo-list.vue
index 46b148166..3369229e4 100644
--- a/docs/components/demo-list.vue
+++ b/docs/src/components/demo-list.vue
@@ -13,7 +13,7 @@
+
+
diff --git a/docs/src/components/page-header.vue b/docs/src/components/page-header.vue
new file mode 100644
index 000000000..4d333391d
--- /dev/null
+++ b/docs/src/components/page-header.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
diff --git a/docs/components/side-nav.vue b/docs/src/components/side-nav.vue
similarity index 86%
rename from docs/components/side-nav.vue
rename to docs/src/components/side-nav.vue
index fe786fbbf..dd15b876c 100644
--- a/docs/components/side-nav.vue
+++ b/docs/src/components/side-nav.vue
@@ -2,7 +2,7 @@