mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
按钮新增类型,layout补全文档
This commit is contained in:
parent
7bbb53e5f5
commit
874df43df0
@ -44,7 +44,7 @@ module.exports = {
|
|||||||
'generator-star-spacing': [2, { 'before': true, 'after': true }],
|
'generator-star-spacing': [2, { 'before': true, 'after': true }],
|
||||||
'handle-callback-err': [2, '^(err|error)$' ],
|
'handle-callback-err': [2, '^(err|error)$' ],
|
||||||
'indent': [2, 2, { 'SwitchCase': 1 }],
|
'indent': [2, 2, { 'SwitchCase': 1 }],
|
||||||
'jsx-quotes': [2, 'prefer-single'],
|
'jsx-quotes': [2, 'prefer-double'],
|
||||||
'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }],
|
'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }],
|
||||||
'keyword-spacing': [2, { 'before': true, 'after': true }],
|
'keyword-spacing': [2, { 'before': true, 'after': true }],
|
||||||
'new-cap': [2, { 'newIsCap': true, 'capIsNew': false }],
|
'new-cap': [2, { 'newIsCap': true, 'capIsNew': false }],
|
||||||
|
@ -7,10 +7,6 @@
|
|||||||
.zan-col {
|
.zan-col {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
.button-group {
|
|
||||||
font-size: 0;
|
|
||||||
padding: 0 20px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -53,7 +49,7 @@
|
|||||||
|
|
||||||
### 按钮尺寸
|
### 按钮尺寸
|
||||||
|
|
||||||
只接受`large`, `normal`, `small`, `mini`四种尺寸,默认`normal`。
|
只接受`large`, `normal`, `small`, `mini`四种尺寸,默认`normal`。`large`按钮默认100%宽度。
|
||||||
|
|
||||||
:::demo 按钮尺寸
|
:::demo 按钮尺寸
|
||||||
```html
|
```html
|
||||||
@ -62,15 +58,19 @@
|
|||||||
<zan-button size="large">large</zan-button>
|
<zan-button size="large">large</zan-button>
|
||||||
</zan-col>
|
</zan-col>
|
||||||
</zan-row>
|
</zan-row>
|
||||||
<zan-row gutter="10">
|
<zan-row>
|
||||||
<zan-col span="8">
|
<zan-col span="24">
|
||||||
<zan-button type="primary" block>normal</zan-button>
|
<zan-button size="normal">normal</zan-button>
|
||||||
</zan-col>
|
</zan-col>
|
||||||
<zan-col span="8">
|
</zan-row>
|
||||||
<zan-button size="small" block>small</zan-button>
|
<zan-row>
|
||||||
|
<zan-col span="24">
|
||||||
|
<zan-button size="small">small</zan-button>
|
||||||
</zan-col>
|
</zan-col>
|
||||||
<zan-col span="8">
|
</zan-row>
|
||||||
<zan-button size="mini" block>mini</zan-button>
|
<zan-row>
|
||||||
|
<zan-col span="24">
|
||||||
|
<zan-button size="mini">mini</zan-button>
|
||||||
</zan-col>
|
</zan-col>
|
||||||
</zan-row>
|
</zan-row>
|
||||||
```
|
```
|
||||||
@ -107,6 +107,27 @@
|
|||||||
```
|
```
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
### 页面底部操作按钮
|
||||||
|
一般用于fixed在底部的区域或是popup弹层的底部,一般只使用`primary`和`normal`两种状态。
|
||||||
|
|
||||||
|
:::demo
|
||||||
|
```html
|
||||||
|
<zan-row>
|
||||||
|
<zan-col span="24">
|
||||||
|
<zan-button type="primary" bottom-action>立即购买</zan-button>
|
||||||
|
</zan-col>
|
||||||
|
</zan-row>
|
||||||
|
<zan-row>
|
||||||
|
<zan-col span="12">
|
||||||
|
<zan-button bottom-action>加入购物车</zan-button>
|
||||||
|
</zan-col>
|
||||||
|
<zan-col span="12">
|
||||||
|
<zan-button type="primary" bottom-action>立即购买</zan-button>
|
||||||
|
</zan-col>
|
||||||
|
</zan-row>
|
||||||
|
```
|
||||||
|
:::
|
||||||
|
|
||||||
### API
|
### API
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
||||||
@ -114,6 +135,7 @@
|
|||||||
| type | 按钮类型 | `string` | `default` | `primary`, `danger` |
|
| type | 按钮类型 | `string` | `default` | `primary`, `danger` |
|
||||||
| size | 按钮尺寸 | `string` | `normal` | `large`, `small`, `mini` |
|
| size | 按钮尺寸 | `string` | `normal` | `large`, `small`, `mini` |
|
||||||
| tag | 按钮标签 | `string` | `button` | `a`, `span`, ... |
|
| tag | 按钮标签 | `string` | `button` | `a`, `span`, ... |
|
||||||
| diabled | 按钮是否禁用 | `boolean` | | |
|
| diabled | 按钮是否禁用 | `boolean` | false | |
|
||||||
| block | 按钮是否显示为块级元素 | `boolean` | | |
|
| block | 按钮是否显示为块级元素 | `boolean` | false | |
|
||||||
|
| bottomAction | 按钮是否显示为底部行动按钮,一般显示在页面底部,有特殊样式 | `boolean` | false | |
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<zan-icon name="check"></zan-icon>
|
<zan-icon name="check"></zan-icon>
|
||||||
<zan-icon name="checked"></zan-icon>
|
<zan-icon name="checked"></zan-icon>
|
||||||
<zan-icon name="like-o"></zan-icon>
|
<zan-icon name="like-o"></zan-icon>
|
||||||
<zan-icon name="like"></zan-icon>
|
<zan-icon name="like" :style="{ color: '#f44' }"></zan-icon>
|
||||||
<zan-icon name="chat"></zan-icon>
|
<zan-icon name="chat"></zan-icon>
|
||||||
<zan-icon name="shop"></zan-icon>
|
<zan-icon name="shop"></zan-icon>
|
||||||
<zan-icon name="photograph"></zan-icon>
|
<zan-icon name="photograph"></zan-icon>
|
||||||
|
@ -0,0 +1,67 @@
|
|||||||
|
<style>
|
||||||
|
@component-namespace demo {
|
||||||
|
@b layout {
|
||||||
|
.zan-row {
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
.zan-col {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.gray {
|
||||||
|
height: 30px;
|
||||||
|
background: #666;
|
||||||
|
}
|
||||||
|
.white {
|
||||||
|
height: 30px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
## Layout 布局
|
||||||
|
主要提供了 zan-row 和 zan-col 两个组件来进行行列布局
|
||||||
|
|
||||||
|
### 常规用法
|
||||||
|
Layout组件提供了`24列栅格`,通过在`zan-col`上添加`span`属性设置列所占的宽度百分比(span / 24);此外,添加`offset`属性可以设置列的偏移宽度,计算方式与span相同。
|
||||||
|
|
||||||
|
:::demo
|
||||||
|
```html
|
||||||
|
<zan-row>
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="gray"></div>
|
||||||
|
</zan-col>
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="white"></div>
|
||||||
|
</zan-col>
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="gray"></div>
|
||||||
|
</zan-col>
|
||||||
|
</zan-row>
|
||||||
|
<zan-row>
|
||||||
|
<zan-col offset="12" span="12">
|
||||||
|
<div class="gray"></div>
|
||||||
|
</zan-col>
|
||||||
|
</zan-row>
|
||||||
|
```
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 在列元素之间增加间距
|
||||||
|
列元素之间默认间距为0,如果希望在列元素增加相同的间距,可以在`zan-row`上添加`gutter`属性来设置列元素之间的间距。
|
||||||
|
|
||||||
|
:::demo
|
||||||
|
```html
|
||||||
|
<zan-row gutter="10">
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="gray"></div>
|
||||||
|
</zan-col>
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="white"></div>
|
||||||
|
</zan-col>
|
||||||
|
<zan-col span="8">
|
||||||
|
<div class="gray"></div>
|
||||||
|
</zan-col>
|
||||||
|
</zan-row>
|
||||||
|
```
|
||||||
|
:::
|
@ -52,6 +52,10 @@
|
|||||||
"path": "/loading",
|
"path": "/loading",
|
||||||
"title": "Loading 加载"
|
"title": "Loading 加载"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "/layout",
|
||||||
|
"title": "Layout 布局"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "/steps",
|
"path": "/steps",
|
||||||
"title": "Steps 步骤条"
|
"title": "Steps 步骤条"
|
||||||
|
@ -21,6 +21,7 @@ export default {
|
|||||||
disabled: Boolean,
|
disabled: Boolean,
|
||||||
loading: Boolean,
|
loading: Boolean,
|
||||||
block: Boolean,
|
block: Boolean,
|
||||||
|
bottomAction: Boolean,
|
||||||
tag: {
|
tag: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'button'
|
default: 'button'
|
||||||
@ -49,8 +50,8 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
render(h) {
|
render(h) {
|
||||||
let { type, nativeType, size, disabled, loading, block } = this;
|
const { type, nativeType, size, disabled, loading, block, bottomAction } = this;
|
||||||
let Tag = this.tag;
|
const Tag = this.tag;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tag
|
<Tag
|
||||||
@ -63,19 +64,20 @@ export default {
|
|||||||
{
|
{
|
||||||
'zan-button--disabled': disabled,
|
'zan-button--disabled': disabled,
|
||||||
'zan-button--loading': loading,
|
'zan-button--loading': loading,
|
||||||
'zan-button--block': block
|
'zan-button--block': block,
|
||||||
|
'zan-button--bottom-action': bottomAction
|
||||||
}
|
}
|
||||||
]}
|
]}
|
||||||
onClick={this.handleClick}
|
onClick={this.handleClick}
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
loading ?
|
loading
|
||||||
<zan-loading
|
? <zan-loading
|
||||||
class="zan-button__icon-loading"
|
class="zan-button__icon-loading"
|
||||||
type="circle"
|
type="circle"
|
||||||
color={type === 'default' ? 'black' : 'white'}>
|
color={type === 'default' ? 'black' : 'white'}>
|
||||||
</zan-loading> :
|
</zan-loading>
|
||||||
null
|
: null
|
||||||
}
|
}
|
||||||
<span class="zan-button__text">{this.$slots.default}</span>
|
<span class="zan-button__text">{this.$slots.default}</span>
|
||||||
</Tag>
|
</Tag>
|
||||||
|
@ -76,8 +76,9 @@ export default {
|
|||||||
this.$emit('change', val);
|
this.$emit('change', val);
|
||||||
},
|
},
|
||||||
value(val) {
|
value(val) {
|
||||||
if (val) {
|
val = this.correctValue(+val);
|
||||||
this.currentValue = this.correctValue(+val);
|
if (val !== this.currentValue) {
|
||||||
|
this.currentValue = val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
height: 45px;
|
height: 45px;
|
||||||
line-height: 43px;
|
line-height: 43px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 0;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@ -28,12 +27,11 @@
|
|||||||
opacity: .3;
|
opacity: .3;
|
||||||
}
|
}
|
||||||
|
|
||||||
& + .zan-button {
|
@e icon-loading {
|
||||||
margin-left: 10px;
|
display: inline-block;
|
||||||
}
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
& + .zan-button--block {
|
vertical-align: middle;
|
||||||
margin-left: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@m default {
|
@m default {
|
||||||
@ -62,7 +60,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@m normal {
|
@m normal {
|
||||||
padding: 0 10px;
|
padding: 0 15px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,11 +103,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@e icon-loading {
|
@m bottom-action {
|
||||||
display: inline-block;
|
width: 100%;
|
||||||
width: 16px;
|
height: 50px;
|
||||||
height: 16px;
|
line-height: 50px;
|
||||||
vertical-align: middle;
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
background-color: $bottom-action-button-default-background-color;
|
||||||
|
color: $bottom-action-button-default-color;
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
&.zan-button--primary {
|
||||||
|
background-color: $bottom-action-button-primary-background-color;
|
||||||
|
color: $bottom-action-button-primary-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,3 +32,9 @@ $button-danger-border-color: #e33;
|
|||||||
$button-disabled-color: $c-gray-dark;
|
$button-disabled-color: $c-gray-dark;
|
||||||
$button-disabled-background-color: $c-gray-light;
|
$button-disabled-background-color: $c-gray-light;
|
||||||
$button-disabled-border-color: #cacaca;
|
$button-disabled-border-color: #cacaca;
|
||||||
|
|
||||||
|
$bottom-action-button-default-color: $c-white;
|
||||||
|
$bottom-action-button-default-background-color: #f85;
|
||||||
|
|
||||||
|
$bottom-action-button-primary-color: $c-white;
|
||||||
|
$bottom-action-button-primary-background-color: #f44;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user