From e20022b868466d053889769d5f03bb939f8c5fb2 Mon Sep 17 00:00:00 2001 From: cookfront Date: Thu, 30 Mar 2017 21:22:14 +0800 Subject: [PATCH] code review --- docs/assets/docs.css | 10 +-- docs/components/demo-block.vue | 4 +- docs/examples-docs/badge.md | 74 +++++++++++++--- docs/examples-docs/card.md | 36 +++++++- docs/examples-docs/cell.md | 16 +++- docs/examples-docs/layout.md | 50 +++++++++-- docs/examples-docs/loading.md | 98 ++++++++++++++------- docs/examples-docs/panel.md | 38 ++++++++- docs/examples-docs/progress.md | 50 +++++++++-- docs/examples-docs/steps.md | 43 +++++++++- docs/examples-docs/tag.md | 50 +++++++++-- packages/badge/src/badge-group.vue | 6 ++ packages/badge/src/badge.vue | 29 ++++--- packages/card/src/card.vue | 2 +- packages/progress/src/progress.vue | 22 ++--- packages/steps/src/steps.vue | 28 +++--- packages/zanui-css/src/badge.css | 132 +++++++++++++++-------------- packages/zanui-css/src/card.css | 4 +- packages/zanui-css/src/steps.css | 13 ++- packages/zanui-css/src/tag.css | 3 + 20 files changed, 522 insertions(+), 186 deletions(-) diff --git a/docs/assets/docs.css b/docs/assets/docs.css index a5a1c852a..f50fa2246 100644 --- a/docs/assets/docs.css +++ b/docs/assets/docs.css @@ -41,13 +41,13 @@ ul, ol { list-style: none; } -.hljs { - line-height: 1.8; +code.hljs { + line-height: 1.5; font-family: Menlo, Monaco, Consolas, Courier, monospace; font-size: 12px; - padding: 18px 24px; - background-color: #f9fafc; - border: solid 1px #eaeefb; + padding: 20px; + background-color: #f8f8f8; + border: solid 1px #E5E5E5; margin-bottom: 25px; border-radius: 4px; -webkit-font-smoothing: auto; diff --git a/docs/components/demo-block.vue b/docs/components/demo-block.vue index d9e9dc495..50dfb211e 100644 --- a/docs/components/demo-block.vue +++ b/docs/components/demo-block.vue @@ -30,8 +30,8 @@ export default { .examples { width: 320px; box-sizing: border-box; - padding: 10px 0 0; - min-height: 200px; + padding: 10px 0; + min-height: 60px; max-height: 500px; overflow: auto; background-color: #F8F8F8; diff --git a/docs/examples-docs/badge.md b/docs/examples-docs/badge.md index 9b572b20d..c0035bc63 100644 --- a/docs/examples-docs/badge.md +++ b/docs/examples-docs/badge.md @@ -1,7 +1,3 @@ -## Badge 徽章 - -### 基础用法 - +## Badge 徽章 + +### 使用指南 + +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Badge`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Badge`组件了: + +```js +import Vue from 'vue'; +import { Badge, BadgeGroup } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/badge.css'; + +Vue.component(Badge.name, Badge); +Vue.component(BadgeGroup.name, BadgeGroup); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Badge`组件,这样只能在你注册的组件中使用`Badge`: + +```js +import { Badge, BadgeGroup } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-badge': Badge, + 'zan-badge-group': BadgeGroup + } +}; +``` + +### 代码演示 + +#### 基础用法 + +默认情况下激活第一个`badge`。 + :::demo 基础用法 ```html - - - - - + + + + + + +``` +::: + +#### 选中某个badge + +如果想默认选中某个`badge`,你可以在`zan-badge-group`上设置`activeKey`属性,属性值为对应的`badge`索引。 + +:::demo 选中某个badge +```html + + + + + ``` ::: @@ -38,7 +89,6 @@ ### z-badge API | 参数 | 说明 | 类型 | 默认值 | 必须 | |-----------|-----------|-----------|-------------|-------------| -| mark | badge的唯一key值 | `string` | `''` | `required` | | title | badge的文案标题 | `string` | `''` | `required` | -| info | 当前badge的提示消息数量 | `string` | `''` | | -| url | 跳转链接 | `string` | 全连接直接跳转或者hash | | +| info | 当前badge的提示消息 | `string` | `''` | | +| url | 跳转链接 | `string` | 链接直接跳转或者hash | | diff --git a/docs/examples-docs/card.md b/docs/examples-docs/card.md index 09cdb975f..624341f95 100644 --- a/docs/examples-docs/card.md +++ b/docs/examples-docs/card.md @@ -1,6 +1,38 @@ ## Card 图文组件 -### 基础用法 +### 使用指南 + +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Card`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Card`组件了: + +```js +import Vue from 'vue'; +import { Card } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/card.css'; + +Vue.component(Card.name, Card); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Card`组件,这样只能在你注册的组件中使用`Card`: + +```js +import { Card } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-card': Card + } +}; +``` + +### 代码演示 + +#### 基础用法 当没有底部按钮时,右侧内容会居中显示。 @@ -14,7 +46,7 @@ ``` ::: -### 高级用法 +#### 高级用法 可以使用具名`slot`重写标题等信息,其中包含`title`、`desc`、`footer`和`tag`四个`slot`。 diff --git a/docs/examples-docs/cell.md b/docs/examples-docs/cell.md index d9a7450a6..7256d2327 100644 --- a/docs/examples-docs/cell.md +++ b/docs/examples-docs/cell.md @@ -1,8 +1,16 @@ diff --git a/docs/examples-docs/layout.md b/docs/examples-docs/layout.md index f9a7af23a..6d980b0ef 100644 --- a/docs/examples-docs/layout.md +++ b/docs/examples-docs/layout.md @@ -21,12 +21,49 @@ ## Layout 布局 -主要提供了 zan-row 和 zan-col 两个组件来进行行列布局 -### 常规用法 -Layout组件提供了`24列栅格`,通过在`zan-col`上添加`span`属性设置列所占的宽度百分比(span / 24);此外,添加`offset`属性可以设置列的偏移宽度,计算方式与span相同。 +主要提供了`zan-row`和`zan-col`两个组件来进行行列布局。 -:::demo +### 使用指南 + +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Row`和`Col`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Row`和`Col`组件了: + +```js +import Vue from 'vue'; +import { Row, Col } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/col.css'; +import '@youzan/zanui-vue/lib/zanui-css/row.css'; + +Vue.component(Row.name, Row); +Vue.component(Col.name, Col); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Row`和`Col`组件,这样只能在你注册的组件中使用`Row`和`Col`: + +```js +import { Row, Col } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-row': Row, + 'zan-col': Col + } +}; +``` + +### 代码演示 + +#### 常规用法 + +Layout组件提供了`24列栅格`,通过在`zan-col`上添加`span`属性设置列所占的宽度百分比`(span / 24)`;此外,添加`offset`属性可以设置列的偏移宽度,计算方式与span相同。 + +:::demo 常规用法 ```html @@ -47,10 +84,11 @@ Layout组件提供了`24列栅格`,通过在`zan-col`上添加`span`属性设 ``` ::: -### 在列元素之间增加间距 +#### 在列元素之间增加间距 + 列元素之间默认间距为0,如果希望在列元素增加相同的间距,可以在`zan-row`上添加`gutter`属性来设置列元素之间的间距。 -:::demo +:::demo 在列元素之间增加间距 ```html diff --git a/docs/examples-docs/loading.md b/docs/examples-docs/loading.md index 5691d8fb8..cfdca181b 100644 --- a/docs/examples-docs/loading.md +++ b/docs/examples-docs/loading.md @@ -1,49 +1,83 @@ ## Loading 加载 -### 基础用法 +### 使用指南 -:::demo 基础用法 +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Loading`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Loading`组件了: + +```js +import Vue from 'vue'; +import { Loading } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/loading.css'; + +Vue.component(Loading.name, Loading); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Loading`组件,这样只能在你注册的组件中使用`Loading`: + +```js +import { Loading } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-loading': Loading + } +}; +``` + +### 代码演示 + +#### 渐变深色spinner + +:::demo 渐变深色spinner ```html -
-

渐变深色spinner

-
- -
-

渐变浅色spinner

-
- -
-

单色spinner

-
- -
-

单色spinner

-
- -
+ +``` +::: + +#### 渐变浅色spinner + +:::demo +```html +
+
``` ::: +#### 单色spinner + +:::demo +```html + + +``` +::: + ### API | 参数 | 说明 | 类型 | 默认值 | 可选值 | diff --git a/docs/examples-docs/panel.md b/docs/examples-docs/panel.md index e551e43e8..12bae1f50 100644 --- a/docs/examples-docs/panel.md +++ b/docs/examples-docs/panel.md @@ -31,9 +31,41 @@ ## Panel 面板 -面板只是一个容器,里面可以放入自定义的内容。 +### 使用指南 -### 基础用法 +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Panel`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Panel`组件了: + +```js +import Vue from 'vue'; +import { Panel } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/panel.css'; + +Vue.component(Panel.name, Panel); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Panel`组件,这样只能在你注册的组件中使用`Panel`: + +```js +import { Panel } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-panel': Panel + } +}; +``` + +### 代码演示 + +#### 基础用法 + +面板只是一个容器,里面可以放入自定义的内容。 :::demo 基础用法 ```html @@ -45,7 +77,7 @@ ``` ::: -### 高级用法 +#### 高级用法 使用具名`slot`自定义内容。 diff --git a/docs/examples-docs/progress.md b/docs/examples-docs/progress.md index b132611df..6dbd829e8 100644 --- a/docs/examples-docs/progress.md +++ b/docs/examples-docs/progress.md @@ -12,7 +12,41 @@ ## Progress 进度条 -### 基础用法 +### 使用指南 + +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Progress`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Progress`组件了: + +```js +import Vue from 'vue'; +import { Progress } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/progress.css'; + +Vue.component(Progress.name, Progress); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Progress`组件,这样只能在你注册的组件中使用`Progress`: + +```js +import { Progress } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-progress': Progress + } +}; +``` + +### 代码演示 + +#### 基础用法 + +默认情况进度条为蓝色,使用`percentage`属性来设置当前进度。 :::demo 基础用法 ```html @@ -29,7 +63,10 @@ ::: -### Inactive +#### Inactive + +是否置灰进度条,一般用于进度条被取消时。 + :::demo Inactive ```html
@@ -45,8 +82,11 @@ ::: -### 自定义颜色和文字 -:::demo 自定义颜色 +#### 自定义颜色和文字 + +可以使用`pivot-text`属性自定义文字,`color`属性自定义进度条颜色 + +:::demo 自定义颜色和文字 ```html
@@ -64,7 +104,7 @@ | 参数 | 说明 | 类型 | 默认值 | 可选值 | |-----------|-----------|-----------|-------------|-------------| -| inactive | 是否只会 | `boolean` | `false` | `true`, `false` | +| inactive | 是否置灰 | `boolean` | `false` | `true`, `false` | | percentage | 进度百分比 | `number` | `false` | `0-100` | | pivotText | 文字显示 | `string` | 百分比文字 | - | | color | 进度条颜色 | `string` | `#38f` | hexvalue | diff --git a/docs/examples-docs/steps.md b/docs/examples-docs/steps.md index b5beffa8e..de9eb5699 100644 --- a/docs/examples-docs/steps.md +++ b/docs/examples-docs/steps.md @@ -30,11 +30,45 @@ export default { ## Steps 步骤条 -### 基础用法 +### 使用指南 + +如果你已经按照[快速上手](/vue/component/quickstart)中引入了整个`ZanUI`,以下**组件注册**就可以忽略了,因为你已经全局注册了`ZanUI`中的全部组件。 + +#### 全局注册 + +你可以在全局注册`Steps`组件,比如页面的主文件(`index.js`,`main.js`),这样页面任何地方都可以直接使用`Steps`组件了: + +```js +import Vue from 'vue'; +import { Steps, Step } from '@youzan/zanui-vue'; +import '@youzan/zanui-vue/lib/zanui-css/steps.css'; + +Vue.component(Steps.name, Steps); +Vue.component(Step.name, Step); +``` + +#### 局部注册 + +如果你只是想在某个组件中使用,你可以在对应组件中注册`Steps`组件,这样只能在你注册的组件中使用`Steps`: + +```js +import { Steps, Step } from '@youzan/zanui-vue'; + +export default { + components: { + 'zan-steps': Steps, + 'zan-step': Step + } +}; +``` + +### 代码演示 + +#### 基础用法 :::demo 基础用法 ```html - + 买家下单 商家接单 买家提货 @@ -61,7 +95,9 @@ export default { ``` ::: -### 只显示步骤条 +#### 只显示步骤条 + +当你不设置`title`或`description`属性时,就会🈯️显示步骤条,而没有步骤的详细信息。 :::demo 只显示步骤条 ```html @@ -89,5 +125,6 @@ export default { | 名称 | 说明 | |-----------|-----------| +| icon | 自定义icon区域 | | message-extra | 状态栏添加额外的元素 | diff --git a/docs/examples-docs/tag.md b/docs/examples-docs/tag.md index a1a2b89c8..d7f1af015 100644 --- a/docs/examples-docs/tag.md +++ b/docs/examples-docs/tag.md @@ -10,13 +10,47 @@ ## 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/packages/badge/src/badge-group.vue b/packages/badge/src/badge-group.vue index 7e98f52fb..c9f5695b0 100644 --- a/packages/badge/src/badge-group.vue +++ b/packages/badge/src/badge-group.vue @@ -14,6 +14,12 @@ type: [Number, String], default: 0 } + }, + + data() { + return { + badges: [] + }; } }; diff --git a/packages/badge/src/badge.vue b/packages/badge/src/badge.vue index 43f827f21..749f48819 100644 --- a/packages/badge/src/badge.vue +++ b/packages/badge/src/badge.vue @@ -1,5 +1,7 @@