全局组件
即默认注册的组件,在各模块中可直接引用。考虑到各组件的使用频率,本UI库采用了以下最常用的四个组件(弹窗、通知、按钮、图标)作为全局组件。
弹窗
1.调用方式
1.1 js调用
最常用。
// Vue实例中...
computed () {
/*
* 展示
*/
// 普通
this.$alert.show({ // this指向Vue实例
title: '标题',
content: '内容'
});
// 简单
this.$alert.show('内容');
/*
* 隐藏
*/
this.$alert.hide();
}
// ...
1.2 组件内调用
此类形式常用于弹窗内容复杂的情况下,可利用<slot>插槽插入复杂节点。
<div>
<!-- demo 1 -->
<v-alert title="标题" content="内容" :show="true"/>
<!-- demo 2 -->
<v-alert title="标题" :show="true">
<v-icon type="right">
<p>弹窗内容</p>
</v-alert>
</div>
1.3 *特殊调用
非特殊情况建议不要使用此种方式。
// 字段同js调用
Vue.prototype.$alert.show('内容');
2.API
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | String | '' | 弹窗标题(可选) |
| content | String | '' | 弹窗内容,可填入HTML字符串(必填) |
| className | String | '' | 弹窗添加class,多用于特殊弹窗展示(可选) |
| noBtn | Boolean | false | 是否隐藏弹窗按钮(可选) |
| btns | Array | [{ text: '确定' }] | 弹窗点击按钮(可选) |
| maskStyle | Object | null | 弹窗背景蒙板样式(可选) |
| maskClick | Function | null | 弹窗背景蒙板点击事件(可选) |
其中btns
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | String | '' | 按钮文案(必填) |
| className | String | '' | 弹窗添加class,多用于文字颜色展示(可选) |
| callback | Function | $alert.hide() | 弹窗按钮点击回调(可选) |
通知
1.调用方式
1.1 js调用
/*
* 展示
*/
// 普通
this.$toast.show({ // this指向Vue实例
type: 'middle',
message: '内容'
});
// 简单
this.$toast.show('内容');
// 隐藏
this.$toast.hide();
1.2 组件内调用
<div>
<v-toast type="middle" duration="内容" show="true"/>
</div>
1.3 *特殊调用
// 字段同js调用
Vue.prototype.$toast.show('内容');
2.API
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| message | String | '' | 通知内容(必填) |
| duration | Number | 1500 | 通知显示时间,单位ms(可选) |
| className | String | '' | 通知添加class,多用于特殊通知展示(可选) |
| color | String | '#fff' | 通知文字颜色(可选) |
| backgroundColor | String | 'rgba(0, 0, 0, 0.8)' | 通知背景颜色(可选) |
| type | String | 'bottom' | 通知展示位置,top页面顶部,middle页面中心,bottom页面底部(可选) |
| icon | String | '' | 展示图标,具体字段间下文图标模块(可选) |
按钮
1.调用方式
<div>
<h4>这是一个按钮</h4>
<v-button>按钮</v-button>
</div>
2.API
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | String | 'default' | 按钮类型(可选) |
| inline | Boolean | true | 是否为行内元素(可选) |
| link | String | '' | 是否有跳转地址(可选) |
| disabled | Boolean | false | 是否为禁用样式(可选) |
| className | String/Array | '' | 按钮添加class,多用于特殊按钮展示(可选) |
其中type默认包含:
- 'red'红色按钮(#fe5d4e)、'red_bd'红色边框按钮('bd'指边框型);
- 'blue'蓝色按钮(#01a2fc)、'blue_bd'蓝色边框按钮;
- 'gray_bd'灰色边框按钮(#ccc);
- 'white'白色按钮(#fff);
如需添加新类型可以新建样式表,如下
.btn-yellow {
color: #fff;
background-color: yellow;
}
使用
<div>
<v-button type="yellow">黄色按钮</v-button>
</div>
图标
鸣谢:@阿里通信,@蚂蚁antd
1.调用方式
<div>
<h4>这是一个图标</h4>
<v-icon type="heart"/>
</div>
2.API
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | String | '' | 图标类型(必填) |
| className | String | '' | 图标添加class,多用于图标大小或颜色展示(可选) |
3.全量图标
考虑到请求资源,默认引入的图标库为轻量库(首次显示时加载),4.8k;如需使用较全的图标库则需手动引入全量图标组件(/Icon),10k;
<template>
<div>
<h4>这是一个全量图标</h4>
<v-icon-full type="lock"/>
</div>
</template>
<script>
import Icon from 'ijijin-view/vue/Icon'
export default {
data () {
return {}
},
components: {
'v-icon-full': Icon
}
}
</sctipt>
具体样例见右示例