index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <script setup lang="ts">
  2. import { h } from "vue";
  3. import hot from "@/assets/svg/hot.svg?component";
  4. import { message, closeAllMessage } from "@/utils/message";
  5. import { useRenderIcon } from "@/components/ReIcon/src/hooks";
  6. defineOptions({
  7. name: "Message"
  8. });
  9. </script>
  10. <template>
  11. <el-card>
  12. <template #header>
  13. <div class="card-header">
  14. <span class="font-medium"> Message提示 </span>
  15. </div>
  16. </template>
  17. <h4 class="mb-4">element-plus 的消息提示,点击弹出提示信息</h4>
  18. <el-space wrap>
  19. <el-button
  20. type="info"
  21. @click="message('Info类型消息', { customClass: 'el' })"
  22. >
  23. Info
  24. </el-button>
  25. <el-button
  26. type="success"
  27. @click="
  28. message('Success类型消息', { customClass: 'el', type: 'success' })
  29. "
  30. >
  31. Success
  32. </el-button>
  33. <el-button
  34. type="warning"
  35. @click="
  36. message('Warning类型消息', { customClass: 'el', type: 'warning' })
  37. "
  38. >
  39. Warning
  40. </el-button>
  41. <el-button
  42. type="danger"
  43. @click="message('Error类型消息', { customClass: 'el', type: 'error' })"
  44. >
  45. Error
  46. </el-button>
  47. <el-button
  48. @click="message('可关闭消息', { customClass: 'el', showClose: true })"
  49. >
  50. 可关闭
  51. </el-button>
  52. <el-button
  53. @click="
  54. message('分组消息合并', {
  55. customClass: 'el',
  56. type: 'success',
  57. grouping: true
  58. })
  59. "
  60. >
  61. 分组消息合并
  62. </el-button>
  63. <el-button
  64. @click="
  65. message('自定义消息图标', {
  66. customClass: 'el',
  67. icon: useRenderIcon('check')
  68. })
  69. "
  70. >
  71. 自定义图标
  72. </el-button>
  73. <el-button
  74. @click="
  75. message('3秒后关闭', {
  76. customClass: 'el',
  77. duration: 3000,
  78. onClose: () =>
  79. message('消息已关闭', { customClass: 'el', type: 'success' })
  80. })
  81. "
  82. >
  83. 自定义延时关闭时间并设置关闭后其他操作
  84. </el-button>
  85. <el-button
  86. @click="
  87. message(
  88. h('p', null, [
  89. h('span', null, 'Message can be '),
  90. h('i', { style: 'color: teal' }, 'VNode')
  91. ]),
  92. { customClass: 'el' }
  93. )
  94. "
  95. >
  96. 自定义内容
  97. </el-button>
  98. <el-button
  99. @click="
  100. message('<strong>This is <i>HTML</i> string</strong>', {
  101. customClass: 'el',
  102. dangerouslyUseHTMLString: true
  103. })
  104. "
  105. >
  106. HTML 片段作为正文内容
  107. </el-button>
  108. </el-space>
  109. <el-divider />
  110. <h4 class="mb-4">
  111. 类似 Ant Design 风格的消息提示,点击弹出提示信息(基于 ElMessage
  112. 样式改版,不会影响 ElMessage
  113. 原本样式,使用和打包大小成本极低并适配暗黑模式)
  114. </h4>
  115. <el-space wrap>
  116. <el-button type="info" @click="message('Info类型消息')">Info</el-button>
  117. <el-button
  118. type="success"
  119. @click="message('Success类型消息', { type: 'success' })"
  120. >
  121. Success
  122. </el-button>
  123. <el-button
  124. type="warning"
  125. @click="message('Warning类型消息', { type: 'warning' })"
  126. >
  127. Warning
  128. </el-button>
  129. <el-button
  130. type="danger"
  131. @click="message('Error类型消息', { type: 'error' })"
  132. >
  133. Error
  134. </el-button>
  135. <el-button @click="message('可关闭消息', { showClose: true })">
  136. 可关闭
  137. </el-button>
  138. <el-button
  139. @click="message('分组消息合并', { type: 'success', grouping: true })"
  140. >
  141. 分组消息合并
  142. </el-button>
  143. <el-button
  144. @click="
  145. message('自定义消息图标', {
  146. icon: hot
  147. })
  148. "
  149. >
  150. 自定义图标
  151. </el-button>
  152. <el-button
  153. @click="
  154. message('3秒后关闭', {
  155. duration: 3000,
  156. onClose: () => message('消息已关闭', { type: 'success' })
  157. })
  158. "
  159. >
  160. 自定义延时关闭时间并设置关闭后其他操作
  161. </el-button>
  162. <el-button
  163. @click="
  164. message(
  165. h('p', null, [
  166. h('span', null, 'Message can be '),
  167. h('i', { style: 'color: teal' }, 'VNode')
  168. ])
  169. )
  170. "
  171. >
  172. 自定义内容
  173. </el-button>
  174. <el-button
  175. @click="
  176. message('<strong>This is <i>HTML</i> string</strong>', {
  177. dangerouslyUseHTMLString: true
  178. })
  179. "
  180. >
  181. HTML 片段作为正文内容
  182. </el-button>
  183. </el-space>
  184. <el-divider />
  185. <el-button @click="closeAllMessage"> 关闭所有消息提示 </el-button>
  186. </el-card>
  187. </template>