Skip to content

Message 全局提示

基本用法

从顶部出现, 3 秒后自动消失。

<script lang="ts" setup>
import { h } from "vue";
import { LMessage } from "lotus-plus";

const open = () => {
  LMessage("Congrats, this is a success message.");
};

const openVn = () => {
  LMessage({
    message: h("p", { style: "line-height: 1; font-size: 14px" }, [
      h("span", null, "Message can be "),
      h("i", { style: "color: teal" }, "VNode")
    ])
  });
};
</script>
<template>
  <div>
    <l-button @click="open">Show message</l-button>
    <l-button @click="openVn">VNode</l-button>
  </div>
</template>

消息类型

全局提示有 5 种不同的类型, 分别为: info , success , warning , error , loading

<script lang="ts" setup>
import { LMessage } from "lotus-plus";

const open1 = () => {
  LMessage({
    message: "This is a message.",
    type: "info"
  });
};
const open2 = () => {
  LMessage({
    message: "Congrats, this is a success message.",
    type: "success"
  });
};
const open3 = () => {
  LMessage({
    message: "Warning, this is a warning message.",
    type: "warning"
  });
};
const open4 = () => {
  LMessage({
    message: "Oops, this is a error message.",
    type: "error"
  });
};
const open5 = () => {
  LMessage({
    message: "Loading...",
    type: "loading"
  });
};
</script>
<template>
  <div>
    <l-button @click="open1">Info</l-button>
    <l-button @click="open2">Success</l-button>
    <l-button @click="open3">Warning</l-button>
    <l-button @click="open4">Error</l-button>
    <l-button @click="open5">Loading</l-button>
  </div>
</template>

自定义图标

通过 icon 属性可以自定义图标。

<script lang="ts" setup>
import { LMessage } from "lotus-plus";

const open1 = () => {
  LMessage({
    message: "This is a message.",
    type: "info",
    icon: "edit"
  });
};
const open2 = () => {
  LMessage({
    message: "Loading...",
    type: "loading",
    icon: "star"
  });
};
</script>
<template>
  <div>
    <l-button @click="open1">Info</l-button>
    <l-button @click="open2">Loading</l-button>
  </div>
</template>

可关闭

通过 showClose 属性可以让提示可关闭。

<script lang="ts" setup>
import { LMessage } from "lotus-plus";

const open = () => {
  LMessage({ message: "Congrats, this is a success message.", showClose: true });
};
</script>
<template>
  <div>
    <l-button @click="open">Show message</l-button>
  </div>
</template>

关闭所有消息

通过 closeAll 方法可以关闭所有消息。

<script lang="ts" setup>
import { LMessage } from "lotus-plus";

const open = () => {
  LMessage({ message: "Congrats, this is a success message.", showClose: true });
  LMessage({ message: "Congrats, this is a success message.", showClose: true });
  LMessage({ message: "Congrats, this is a success message.", showClose: true });
};
</script>
<template>
  <div>
    <l-button @click="open">点击打开多条消息</l-button>
    <l-button @click="LMessage.closeAll()">点击关闭所有消息</l-button>
  </div>
</template>

更新内容

更新消息内容。

<script lang="ts" setup>
import { LMessage } from "lotus-plus";

const open = () => {
  LMessage({
    id: "loading",
    message: "Loading...",
    type: "loading"
  });
  setTimeout(() => {
    LMessage({
      id: "loading",
      message: "loaded",
      type: "success"
    });
  }, 2000);
};
</script>
<template>
  <div>
    <l-button @click="open">Open Message</l-button>
  </div>
</template>

调用方式

Lotus Plus 为 app.config.globalProperties 添加了全局方法 $message , 可以通过 $message 调用。同时也提供了 $message.info$message.success$message.warning$message.error$message.loading 等方法。

<script lang="ts" setup>
import { LMessage } from "lotus-plus";
const open1 = () => {
  LMessage({ message: "Congrats, this is a success message.", type: "success" });
};
const open2 = () => {
  LMessage.success("Congrats, this is a success message.");
};
</script>
<template>
  <div>
    <l-button @click="open1">插件式调用</l-button>
    <l-button @click="open2">函数式调用</l-button>
    <l-button @click="() => $message.success('Congrats, this is a success message.')"
      >全局方法调用</l-button
    >
  </div>
</template>

Message API

Config

参数名描述类型默认值
id唯一 idstring-
message内容string | VNode | (() => VNode)-
type消息类型info | success | warning | error | loadinginfo
icon自定义图标string | Component-
showClose是否显示关闭按钮booleanfalse
duration显示时长, 单位毫秒number3000
onClose关闭时触发的回调函数() => void-
onDestroy销毁时触发的回调函数() => void-

Methods

事件名描述类型
info显示信息提示(config: MessageParams) => MessageHandler
success显示成功提示(config: MessageParams) => MessageHandler
warning显示警告提示(config: MessageParams) => MessageHandler
error显示错误提示(config: MessageParams) => MessageHandler
loading显示加载提示(config: MessageParams) => MessageHandler
closeAll关闭所有消息(可筛选类型)(type?: MessageType) => void

Slots

插槽名描述
default自定义内容

鲁ICP备2024093316号