sign.uvue 1.0 KB

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