Toast 提示

轻提示。

效果

使用方法

<template>
<div class="demo-list">
<lc-title title="提示"></lc-title>
<category title="基本用法"></category>
<div>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="textToast1('我只传了文案一个参数')"
>
<span slot="title">
<label>文字提示</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="
textToast2('我传了文案和显示时长两个参数,多行文字默认居中展示', 5000)
"
>
<span slot="title">
<label>长文字提示</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="sucToast('操作成功')"
>
<span slot="title">
<label>成功提示</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="failToast('操作失败')"
>
<span slot="title">
<label>失败提示</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="warnToast('操作警告')"
>
<span slot="title">
<label>警告提示</label>
</span>
</lc-cell>
</div>

<category title="加载提示"></category>
<div>
<lc-cell :showIcon="true" :isLink="true" @click.native="showLoading()">
<span slot="title">
<label>Loading</label>
</span>
<span slot="desc">带文案+带透明遮罩(默认)+自动消失</span>
</lc-cell>
<lc-cell :showIcon="true" :isLink="true" @click.native="showLoading2()">
<span slot="title">
<label>Loading</label>
</span>
<span slot="desc">带文案+带半透明遮罩+自动消失</span>
</lc-cell>
<lc-cell :showIcon="true" :isLink="true" @click.native="showLoading3()">
<span slot="title">
<label>Loading</label>
</span>
<span slot="desc">不自动消失+不带遮罩</span>
</lc-cell>
<lc-cell :showIcon="true" :isLink="true" @click.native="hideLoading()">
<span slot="title">
<label>隐藏Loading</label>
</span>
<span slot="desc">点击手动隐藏上面的Loading</span>
</lc-cell>
</div>

<category title="自定义样式"></category>
<div>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="cusBgToast('我修改了背景色和透明度')"
>
<span slot="title">
<label>自定义背景色和透明度</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="cusClassToast('我有一个名为 my-class 自定义class')"
>
<span slot="title">
<label>自定义class</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="cusIconToast('自定义Icon')"
>
<span slot="title">
<label>自定义Icon</label>
</span>
</lc-cell>
</div>

<category title="共享实例"></category>
<div>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="idToast1('我设置了id为123')"
>
<span slot="title">
<label>我设置了id为123</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="idToast2('我设置了id为321')"
>
<span slot="title">
<label>我设置了id为321</label>
</span>
</lc-cell>
</div>

<category title="更改默认配置"></category>
<div>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="setDefaultOptions()"
>
<span slot="title">
<label>将所有Toast提示展示时长设置为5000毫秒</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="resetDefaultOptions()"
>
<span slot="title">
<label>恢复所有Toast提示默认配置</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="setDefaultOptions2()"
>
<span slot="title">
<label>更改文字提示默认配置</label>
</span>
</lc-cell>
<lc-cell
:showIcon="true"
:isLink="true"
@click.native="resetDefaultOptions2()"
>
<span slot="title">
<label>恢复文字提示默认配置</label>
</span>
</lc-cell>
</div>
</div>
</template>

<script>
import LcTitle from '_mods/title.vue';
import Category from '_mods/category.vue';
export default {
components: { LcTitle, Category },
data() {
return {};
},
methods: {
textToast1(msg) {
this.$toast.text(msg);
},
textToast2(msg, duration) {
this.$toast.text(msg, { duration });
},
sucToast(msg) {
this.$toast.success(msg, { duration: 3000 });
},
failToast(msg) {
this.$toast.fail(msg);
},
warnToast(msg) {
this.$toast.warn(msg);
},
showLoading() {
this.hideLoading();
this.$toast.loading("加载中...", {
duration: 3000
});
},
showLoading2() {
this.hideLoading();
this.$toast.loading("加载中...", {
duration: 3000,
coverColor: "rgba(0,0,0,0.5)",
closeOnClickOverlay: true
});
},
showLoading3() {
if (this.loading) return;
this.loading = this.$toast.loading("", {
cover: false
});
},
hideLoading() {
this.loading && this.loading.hide();
this.loading = null;
},
cusBgToast(msg) {
this.$toast.text(msg, {
bgColor: "rgba(50, 50, 50, 0.6)"
});
},
cusClassToast(msg) {
this.$toast.text(msg, { customClass: "my-class" });
},
cusIconToast(msg) {
this.$toast.text(msg, {
icon:
"https://img13.360buyimg.com/imagetools/jfs/t1/98294/28/14470/22072/5e65ba08E865683aa/ded7441bdd098511.png",
duration: 3000
});
},
idToast1(msg) {
this.$toast.success(msg, { id: 123 });
},
idToast2(msg) {
this.$toast.text(msg, { id: 321, duration: 4000 });
},
setDefaultOptions() {
this.$toast.setDefaultOptions({
duration: 5000,
coverColor: "rgba(0, 0, 0, 0.2)",
closeOnClickOverlay: true,
cover: true
});
this.$toast.text(
"将所有Toast提示展示时长设置为5000毫秒,并且点击遮罩层可关闭提示"
);
},
resetDefaultOptions() {
this.$toast.resetDefaultOptions();
this.$toast.text("恢复所有Toast提示默认配置");
},
setDefaultOptions2() {
this.$toast.setDefaultOptions("text", {
size: "large",
cover: true,
coverColor: "rgba(0, 0, 0, 0.2)",
duration: 4000,
closeOnClickOverlay: true
});
this.$toast.text(
"设置文字提示默认配置为:大小设置为large,遮罩层透明度0.2,展示4秒"
);
},
resetDefaultOptions2() {
this.$toast.resetDefaultOptions("text");
this.$toast.text("文字提示默认配置已恢复");
}
}
};
</script>

<style lang="less" scoped>
p{ line-height: 26px; padding:10px; font-size: 14px;}
</style>

可配置参数

API

方法名 说明 参数 返回值
Toast.text 展示文字提示 options/message toast 实例
Toast.loading 展示加载提示 options/message toast 实例
Toast.success 展示成功提示 options/message toast 实例
Toast.fail 展示失败提示 options/message toast 实例
Toast.warn 展示警告提示 options/message toast 实例
Toast.hide 关闭提示 force:boolean void
Toast.setDefaultOptions 修改默认配置,对所有 Toast 生效,传入 type 可以修改指定类型的默认配置 type/options void
Toast.resetDefaultOptions 重置默认配置,对所有 Toast 生效,传入 type 可以重置指定类型的默认配置 type void

option

字段 说明 类型 默认值
msg 消息文案 String “”
option.id 标识符,相同者共用一个实例。loading类型默认使用一个实例,其他类型默认不共用。 String/Number -
option.duration 展示时长(毫秒),为0时不自动关闭(loading类型默认为0) Number 2000
option.center 是否展示在页面中部(为false时展示在底部) Boolean true
option.bottom 距页面底部的距离(像素),option.center为false时生效 Number 30
option.textAlignCenter 多行文案是否居中 Boolean true
option.bgColor 背景颜色(透明度) String “rgba(46, 46, 46, 0.7)”
option.customClass 增加自定义class String “”
option.icon 自定义图标,Data URI格式 String “”
option.size 文字尺寸,small/base/large三选一 String “base”
option.cover 透明遮罩,loading类型默认打开 Boolean loading类型true/其他false
option.coverColor 遮罩层颜色,默认透明 String “rgba(0,0,0,0)”
option.loadingRotate loading图标是否旋转,仅对loading类型生效 Boolean true
option.onClose 关闭时触发的事件 function null
option.closeOnClickOverlay 是否在点击遮罩层后关闭提示 Boolean false
  • *通过Toast.setDefaultOptions函数可以全局修改 Toast 的默认配置,值得注意的是,loading无法支持默认配置的修改和重置
  • *option.center无法通过Toast.setDefaultOptions函数配置
  • *option.center对loading类型不生效