Message 消息提示
用于主动操作后的反馈提示
基本使用
html
<template>
<f-button type="primary" @click="openMessage">打开</f-button>
</template>
<script lang="ts" setup>
import { FMessage } from 'fighting-design'
const openMessage = () => {
FMessage('这是一条消息提示')
}
</script>
开启
自定义消息
message
属性可接收string
显示文本,也可接收VNode
自定义消息
限定最大宽度为500px
html
<template>
<f-button type="primary" @click="openMessageVNode">打开</f-button>
</template>
<script lang="ts" setup>
import { h } from 'vue'
import { FMessage } from 'fighting-design'
const openMessageVNode = () => {
FMessage({
message: h('div', [
h('p', [h('span', '这是一条'), h('b', ' 非常重要 '), h('span', '的消息提示')]),
h('p', '这里是一些不重要的内容')
]),
type: 'primary'
})
}
</script>
开启
多种类型
html
<template>
<f-space>
<f-button @click="openMessage">default</f-button>
<f-button type="primary" @click="openMessagePrimary">primary</f-button>
<f-button type="success" @click="openMessageSuccess">success</f-button>
<f-button type="warning" @click="openMessageWarning">warning</f-button>
<f-button type="danger" @click="openMessageDanger">danger</f-button>
</f-space>
</template>
<script setup lang="ts">
import { FMessage } from 'fighting-design'
const openMessage = () => {
FMessage('这是一条消息提示')
}
const openMessagePrimary = () => {
FMessage.primary('这是一条重要消息提示')
}
const openMessageSuccess = () => {
FMessage.success('这是一条成功消息提示')
}
const openMessageWarning = () => {
FMessage.warning('这是一条警告消息提示')
}
const openMessageDanger = () => {
FMessage.danger('这是一条失败消息提示')
}
</script>
开启
可关闭
可以添加关闭按钮。
默认的 Message
是不可以被人工关闭的。 如果你需要手动关闭功能,你可以把 close
设置为 true
。
此外,Message
拥有可控的 duration, 默认的关闭时间为 2500 毫秒
,当把这个属性的值设置为 0 便表示该消息不会被自动关闭。
可以传递 close-btn
属性来自定义关闭按钮,支持字符串与 icon
。
html
<template>
<f-button type="primary" @click="openMessageClose1">show</f-button>
<f-button type="primary" @click="openMessageClose2">show</f-button>
</template>
<script setup lang="ts">
import { FMessage } from 'fighting-design'
const openMessageClose1 = () => {
FMessage({
message: '这是一条5秒后消失的消息',
type: 'primary',
close: true,
duration: 5000
})
}
const openMessageClose2 = () => {
FMessage({
message: '这是一条不会自动消失的消息',
type: 'primary',
close: true,
closeBtn: '关闭',
duration: 0
})
}
</script>
开启
不同位置
placement
配置项可调整不同弹出位置
html
<script setup lang="ts">
import { FMessage } from 'fighting-design'
import type { MessagePlacement } from 'fighting-design'
const openMessagePlacement = (placement: MessagePlacement): void => {
FMessage({
message: '这是一条自定义位置的消息',
type: 'primary',
close: true,
duration: 0,
placement: placement
})
}
</script>
<template>
<f-space>
<f-button type="primary" @click="openMessagePlacement('top')">顶部</f-button>
<f-button type="primary" @click="openMessagePlacement('top-left')">左上</f-button>
<f-button type="primary" @click="openMessagePlacement('top-right')">右上</f-button>
<f-button type="success" @click="openMessagePlacement('bottom')">底部</f-button>
<f-button type="success" @click="openMessagePlacement('bottom-left')">左下</f-button>
<f-button type="success" @click="openMessagePlacement('bottom-right')">右下</f-button>
</f-space>
</template>
开启
Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
message | 消息文本 | string / VNode | —— | false |
type | 消息类型 | FightingType | default primary success danger warning | default |
duration | 显示时间,单位为毫秒。 设为 0 则不会自动关闭 | number | —— | 2500 |
round | 是否为圆角类型 | boolean | —— | false |
close | 是否可关闭 | boolean | —— | false |
icon | 消息 icon | FightingIcon | —— | —— |
color | 字体颜色 | string | —— | —— |
placement | 位置 | MessagePlacement | top bottom top-left top-right bottom-left bottom-right | top |
offset | 偏移距离 | number | —— | 20 |
background | 自定义背景色 | string | —— | —— |
close-btn | 关闭按钮 | string / FightingIcon | —— | —— |
z-index | 层级 | boolean | —— | 1000 |
on-close | 关闭之后的回调 | MessageClose | —— | —— |
Interface
组件导出以下类型定义:
ts
import type {
MessageInstance,
MessageProps,
MessagePlacement,
MessageClose
} from 'fighting-design'
MessagePlacement
ts
type MessagePlacement =
| 'top'
| 'top-left'
| 'top-right'
| 'bottom'
| 'bottom-left'
| 'bottom-right'
MessageClose
ts
type MessageClose = (evt?: MouseEvent) => void