sign.uvue 1.0 KB

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