sign.uvue 1004 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <cl-page>
  3. <cl-sign
  4. ref="signRef"
  5. :height="isFullscreen ? windowHeight - 200 : 200"
  6. :enable-brush="isBrush"
  7. ></cl-sign>
  8. <view class="p-3">
  9. <cl-list>
  10. <cl-list-item label="操作">
  11. <cl-button type="info" @click="clear">清空</cl-button>
  12. <cl-button @click="preview">预览</cl-button>
  13. </cl-list-item>
  14. <cl-list-item label="全屏">
  15. <cl-switch v-model="isFullscreen"></cl-switch>
  16. </cl-list-item>
  17. <cl-list-item label="毛笔效果">
  18. <cl-switch v-model="isBrush"></cl-switch>
  19. </cl-list-item>
  20. </cl-list>
  21. </view>
  22. </cl-page>
  23. </template>
  24. <script setup lang="ts">
  25. import { ref } from "vue";
  26. const { windowHeight } = uni.getWindowInfo();
  27. const isFullscreen = ref(false);
  28. const isBrush = ref(true);
  29. const signRef = ref<ClSignComponentPublicInstance | null>(null);
  30. function clear() {
  31. signRef.value!.clear();
  32. }
  33. function preview() {
  34. signRef.value!.toPng().then((url) => {
  35. uni.previewImage({
  36. urls: [url]
  37. });
  38. });
  39. }
  40. </script>