toast.uvue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-button @tap="open()">{{ t("打开") }}</cl-button>
  6. </demo-item>
  7. <demo-item :label="t('不同位置')">
  8. <view class="flex flex-row">
  9. <cl-button type="light" @tap="open('top')">{{ t("顶部") }}</cl-button>
  10. <cl-button type="light" @tap="open('center')">{{ t("中间") }}</cl-button>
  11. <cl-button type="light" @tap="open('bottom')">{{ t("底部") }}</cl-button>
  12. </view>
  13. </demo-item>
  14. <demo-item :label="t('不同类型')">
  15. <view class="flex flex-row flex-wrap mb-2">
  16. <cl-button type="light" @tap="openType('success')">{{ t("成功") }}</cl-button>
  17. <cl-button type="light" @tap="openType('error')">{{ t("失败") }}</cl-button>
  18. <cl-button type="light" @tap="openType('warn')">{{ t("警告") }}</cl-button>
  19. <cl-button type="light" @tap="openType('question')">{{ t("问题") }}</cl-button>
  20. <cl-button type="light" @tap="openType('disabled')">{{ t("禁用") }}</cl-button>
  21. </view>
  22. <view class="flex flex-row flex-wrap">
  23. <cl-button type="light" @tap="openType('stop')">{{ t("停止") }}</cl-button>
  24. </view>
  25. </demo-item>
  26. <demo-item :label="t('自定义图标')">
  27. <view class="flex flex-row">
  28. <cl-button
  29. type="light"
  30. icon="star-line"
  31. @tap="openIcon('star-line')"
  32. ></cl-button>
  33. <cl-button
  34. type="light"
  35. icon="mail-line"
  36. @tap="openIcon('mail-line')"
  37. ></cl-button>
  38. <cl-button
  39. type="light"
  40. icon="file-line"
  41. @tap="openIcon('file-line')"
  42. ></cl-button>
  43. </view>
  44. </demo-item>
  45. <demo-item :label="t('只存在一个')">
  46. <cl-button @tap="openClear()">{{ t("打开") }}</cl-button>
  47. </demo-item>
  48. </view>
  49. </cl-page>
  50. </template>
  51. <script lang="ts" setup>
  52. import { useUi, type ClToastType } from "@/uni_modules/cool-ui";
  53. import DemoItem from "../components/item.uvue";
  54. import { t } from "@/locale";
  55. const ui = useUi();
  56. function open(position: "top" | "center" | "bottom" = "center") {
  57. ui.showToast({
  58. message: t("不同位置提示"),
  59. position: position
  60. });
  61. }
  62. function openType(type: ClToastType) {
  63. ui.showToast({
  64. message: t("不同类型提示"),
  65. type
  66. });
  67. }
  68. function openIcon(icon: string) {
  69. ui.showToast({
  70. message: t("带图标提示"),
  71. icon
  72. });
  73. }
  74. function openClear() {
  75. ui.showToast({
  76. message: t("移除其他已存在的提示"),
  77. clear: true
  78. });
  79. }
  80. </script>