demo.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div class="demo">
  3. <h2>{{ translate('basic') }}</h2>
  4. <nut-cell :title="translate('toastText')" is-link @click="textToast(translate('toastText'))"></nut-cell>
  5. <nut-cell :title="translate('toastTitle')" is-link @click="titleToast(translate('toastText'))"></nut-cell>
  6. <nut-cell :title="translate('toastSuccess')" is-link @click="successToast(translate('toastSuccess'))"></nut-cell>
  7. <nut-cell :title="translate('toastError')" is-link @click="errorToast(translate('toastError'))"></nut-cell>
  8. <nut-cell :title="translate('toastWarning')" is-link @click="warningToast(translate('toastWarning'))"></nut-cell>
  9. <nut-cell :title="translate('toastLoading')" is-link @click="loadingToast(translate('toastLoading'))"></nut-cell>
  10. <h2>{{ translate('toastAll') }}</h2>
  11. <nut-cell :title="translate('toastAll')" is-link @click="NoToast(translate('toastAll'))"></nut-cell>
  12. <h2>{{ translate('toastBottom') }}</h2>
  13. <nut-cell :title="translate('toastBottom')" is-link @click="BottomToast(translate('toastBottom'))"></nut-cell>
  14. <h2>{{ translate('toastTransparent') }}</h2>
  15. <nut-cell
  16. :title="translate('toastTransparent')"
  17. is-link
  18. @click="NoLoading(translate('toastTransparent'))"
  19. ></nut-cell>
  20. </div>
  21. </template>
  22. <script lang="ts">
  23. import { createComponent } from '@/packages/utils/create';
  24. const { createDemo, translate } = createComponent('toast');
  25. import { Toast } from '@/packages/nutui.vue';
  26. import { useTranslate } from '@/sites/assets/util/useTranslate';
  27. import { onUnmounted } from 'vue';
  28. useTranslate({
  29. 'zh-CN': {
  30. basic: '基本用法',
  31. toastText: '文字提示',
  32. toastTitle: '标题展示',
  33. toastSuccess: '成功提示',
  34. toastError: '错误提示',
  35. toastWarning: '警告提示',
  36. toastLoading: '加载提示',
  37. toastAll: 'Toast 不消失',
  38. toastBottom: '自定义底部高度',
  39. toastTransparent: '加载状态透明遮罩'
  40. },
  41. 'en-US': {
  42. basic: 'Basic Usage',
  43. toastText: 'Text Message',
  44. toastTitle: 'Title',
  45. toastSuccess: 'Success',
  46. toastError: 'Error',
  47. toastWarning: 'Warning',
  48. toastLoading: 'Loading',
  49. toastAll: 'Not Disappear',
  50. toastBottom: 'Custom Bottom Height',
  51. toastTransparent: 'Loading Transparent Cover'
  52. }
  53. });
  54. export default createDemo({
  55. setup() {
  56. const textToast = (msg: string) => {
  57. Toast.text(msg);
  58. };
  59. const titleToast = (msg: string) => {
  60. Toast.text(msg, {
  61. title: translate('toastTitle')
  62. });
  63. };
  64. const successToast = (msg: string) => {
  65. Toast.success(msg);
  66. };
  67. const errorToast = (msg: string) => {
  68. Toast.fail(msg);
  69. };
  70. const warningToast = (msg: string) => {
  71. Toast.warn(msg);
  72. };
  73. const loadingToast = (msg: string) => {
  74. Toast.loading(msg);
  75. };
  76. let t: any;
  77. const NoToast = (msg: string) => {
  78. t = Toast.text(msg, {
  79. duration: 0
  80. });
  81. };
  82. onUnmounted(() => {
  83. t && t.hide();
  84. });
  85. const BottomToast = (msg: string) => {
  86. Toast.text(msg, {
  87. center: false,
  88. bottom: '10%'
  89. });
  90. };
  91. const NoLoading = (msg: string) => {
  92. Toast.loading(msg, {
  93. cover: true
  94. });
  95. };
  96. return {
  97. textToast,
  98. titleToast,
  99. successToast,
  100. errorToast,
  101. warningToast,
  102. loadingToast,
  103. NoToast,
  104. NoLoading,
  105. BottomToast,
  106. translate
  107. };
  108. }
  109. });
  110. </script>
  111. <style lang="scss" scoped></style>