董国庆
2025-04-09 bc48a619a1ddf7661ac4d3e80b1e32a17c696f0c
src/components/SignatureCanvas.vue
@@ -164,8 +164,28 @@
    confirmSignature() {
      const canvas = this.$refs.signatureCanvas
      const imageData = canvas.toDataURL('image/png')
      this.$emit('confirm', imageData)
      const ctx = this.context
      // 保存当前画布内容
      const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height)
      // 先填充背景色
      ctx.fillStyle = 'rgba(239, 248, 250, 1)'
      ctx.fillRect(0, 0, canvas.width, canvas.height)
      // 创建一个临时画布来保存签名内容
      const tempCanvas = document.createElement('canvas')
      tempCanvas.width = canvas.width
      tempCanvas.height = canvas.height
      const tempCtx = tempCanvas.getContext('2d')
      tempCtx.putImageData(imageData, 0, 0)
      // 将签名内容绘制到主画布上
      ctx.drawImage(tempCanvas, 0, 0)
      // 导出图片
      const signatureImage = canvas.toDataURL('image/png')
      this.$emit('confirm', signatureImage)
    }
  },
  beforeDestroy() {