Files
vue-ts-example-2025/src/pages/demos/primevue-demo.page.vue
严浩 b0b65b454c
Some checks failed
CI/CD Pipeline / playwright (push) Successful in 4m6s
CI/CD Pipeline / build-and-deploy (push) Successful in 4m22s
测试最新依赖 / playwright (push) Successful in 1m50s
测试最新依赖 / build-and-test (push) Failing after 2m24s
feat(toast): 添加一键打开所有 Toast 消息功能并优化显示时间
2025-10-29 00:13:08 +08:00

62 lines
1.5 KiB
Vue

<script setup lang="ts">
import type { ToastMessageOptions } from 'primevue/toast';
definePage({
meta: {},
});
const tostSeverities = [
'secondary',
'success',
'info' /* 默认 */,
'warn',
'error',
'contrast',
undefined,
] satisfies ToastMessageOptions['severity'][];
const openAllToasts = () => {
tostSeverities.forEach((severity, index) => {
setTimeout(() => {
ToastService.add({
severity,
summary: `severity: ${severity ?? 'default'}`,
life: 3000,
detail: `${index + 1}. 消息内容`,
});
}, index * 500);
});
};
</script>
<template>
<div class="prime-vue-demo-page">
<Card>
<template #title>PrimeVue 组件演示</template>
<template #content>
<Message severity="info">演示 PrimeVue 各种组件的使用方法和功能特性</Message>
<Panel header="Toast 消息" class="mt-1.5">
<div flex="~ wrap" gap="4">
<Button
v-for="(severity, index) in tostSeverities"
:key="severity ?? 'default'"
@click="
ToastService.add({
severity: severity,
summary: `severity: ${severity ?? 'default'}`,
life: 3000,
detail: '消息内容',
})
"
>
{{ `${index + 1}. ${severity ?? 'default'}` }}
</Button>
<Button @click="openAllToasts"> 一键打开所有 </Button>
</div>
</Panel>
</template>
</Card>
</div>
</template>