image.uvue 2.5 KB

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