Files
AllinSSL/frontend/packages/vue/naive-ui/src/examples/MessageExample.tsx
2026-01-13 17:47:39 +08:00

125 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { defineComponent } from 'vue'
import { NSpace, NButton } from 'naive-ui'
import { useMessage, createAllApi } from '../hooks'
// 创建全局API实例可以在组件外使用
const globalApi = createAllApi()
// 组件外使用示例
function showGlobalMessage(type: 'success' | 'error' | 'info' | 'warning') {
switch (type) {
case 'success':
globalApi.message.success('这是一条全局成功消息')
break
case 'error':
globalApi.message.error('这是一条全局错误消息')
break
case 'info':
globalApi.message.info('这是一条全局信息消息')
break
case 'warning':
globalApi.message.warning('这是一条全局警告消息')
break
}
}
// API请求结果示例
function handleApiResult(success: boolean) {
const result = {
status: success,
message: success ? '操作成功!' : '操作失败,请重试',
}
// 使用统一的request方法处理
globalApi.message.request(result)
}
export default defineComponent({
name: 'MessageExample',
setup() {
// 在组件内使用useMessage
const message = useMessage()
// 组件内显示消息
const showComponentMessage = (type: 'success' | 'error' | 'info' | 'warning') => {
switch (type) {
case 'success':
message.success('这是一条组件内成功消息')
break
case 'error':
message.error('这是一条组件内错误消息')
break
case 'info':
message.info('这是一条组件内信息消息')
break
case 'warning':
message.warning('这是一条组件内警告消息')
break
}
}
// 组件内处理API请求结果
const handleComponentApiResult = (success: boolean) => {
const result = {
status: success,
message: success ? '操作成功!' : '操作失败,请重试',
}
// 使用统一的request方法处理
message.request(result)
}
return {
showComponentMessage,
handleComponentApiResult,
}
},
render() {
return (
<div>
<h2>Message </h2>
<h3>使 useMessage</h3>
<NSpace>
<NButton type="primary" onClick={() => this.showComponentMessage('success')}>
</NButton>
<NButton type="error" onClick={() => this.showComponentMessage('error')}>
</NButton>
<NButton onClick={() => this.showComponentMessage('info')}></NButton>
<NButton type="warning" onClick={() => this.showComponentMessage('warning')}>
</NButton>
<NButton type="success" onClick={() => this.handleComponentApiResult(true)}>
API成功结果
</NButton>
<NButton type="error" onClick={() => this.handleComponentApiResult(false)}>
API失败结果
</NButton>
</NSpace>
<h3>使 createAllApi</h3>
<NSpace>
<NButton type="primary" onClick={() => showGlobalMessage('success')}>
</NButton>
<NButton type="error" onClick={() => showGlobalMessage('error')}>
</NButton>
<NButton onClick={() => showGlobalMessage('info')}></NButton>
<NButton type="warning" onClick={() => showGlobalMessage('warning')}>
</NButton>
<NButton type="success" onClick={() => handleApiResult(true)}>
API成功结果
</NButton>
<NButton type="error" onClick={() => handleApiResult(false)}>
API失败结果
</NButton>
</NSpace>
</div>
)
},
})