image.uvue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-image :src="url"></cl-image>
  6. </demo-item>
  7. <demo-item :label="t('不同裁剪')">
  8. <view class="flex flex-row justify-between">
  9. <view class="flex flex-col items-center justify-center">
  10. <cl-image :src="url" mode="aspectFill"></cl-image>
  11. <cl-text
  12. :pt="{
  13. className: 'text-sm mt-1'
  14. }"
  15. >aspectFill</cl-text
  16. >
  17. </view>
  18. <view class="flex flex-col items-center justify-center">
  19. <cl-image :src="url" mode="aspectFit"></cl-image>
  20. <cl-text
  21. :pt="{
  22. className: 'text-sm mt-1'
  23. }"
  24. >aspectFit</cl-text
  25. >
  26. </view>
  27. <view class="flex flex-col items-center justify-center">
  28. <cl-image :src="url" mode="heightFix"></cl-image>
  29. <cl-text
  30. :pt="{
  31. className: 'text-sm mt-1'
  32. }"
  33. >heightFix</cl-text
  34. >
  35. </view>
  36. <view class="flex flex-col items-center justify-center">
  37. <cl-image :src="url" mode="scaleToFill"></cl-image>
  38. <cl-text
  39. :pt="{
  40. className: 'text-sm mt-1'
  41. }"
  42. >scaleToFill</cl-text
  43. >
  44. </view>
  45. </view>
  46. </demo-item>
  47. <demo-item :label="t('点击可预览')">
  48. <cl-image :src="url" preview></cl-image>
  49. </demo-item>
  50. <demo-item :label="t('失败时显示')">
  51. <cl-image src="url"></cl-image>
  52. </demo-item>
  53. <demo-item :label="t('加载中')">
  54. <cl-image src=""></cl-image>
  55. </demo-item>
  56. <demo-item :label="t('自定义圆角')">
  57. <view class="flex flex-row">
  58. <cl-image
  59. :src="url"
  60. :pt="{
  61. inner: {
  62. className: '!rounded-none'
  63. }
  64. }"
  65. ></cl-image>
  66. <cl-image
  67. :src="url"
  68. :pt="{
  69. className: 'ml-3',
  70. inner: {
  71. className: '!rounded-2xl'
  72. }
  73. }"
  74. ></cl-image>
  75. <cl-image
  76. :src="url"
  77. :pt="{
  78. className: 'ml-3',
  79. inner: {
  80. className: '!rounded-3xl'
  81. }
  82. }"
  83. ></cl-image>
  84. <cl-image
  85. :src="url"
  86. :pt="{
  87. className: 'ml-3',
  88. inner: {
  89. className: '!rounded-full'
  90. }
  91. }"
  92. ></cl-image>
  93. </view>
  94. </demo-item>
  95. </view>
  96. </cl-page>
  97. </template>
  98. <script lang="ts" setup>
  99. import { ref } from "vue";
  100. import DemoItem from "../components/item.uvue";
  101. import { t } from "@/locale";
  102. const url = ref("https://unix.cool-js.com/images/demo/avatar.jpg");
  103. </script>