vue 实现签字功能

2023-12-13 18:48:42

1、安装:npm install vue-esign --save

2、main.js文件中全局引入:

// 签字
import vueEsign from 'vue-esign'
Vue.use(vueEsign)

3、页面内容

<vue-esign ref="esign"?:width="800"?:height="300"?:isCrop="isCrop"?:lineWidth="lineWidth"?:lineColor="lineColor"?:bgColor.sync="bgColor"?/>

<button @click="handleReset">清空画板</button>

<button @click="handleGenerate">生成图片</button>

4、说明:

5、

data () {

return?{

lineWidth: 6,

lineColor: '#000000',

bgColor: '',

resultImg: '',

isCrop: false

}

},

methods: {

handleReset () {

this.$refs['esign'].reset() //清空画布

},

handleGenerate () {

this.$refs['esign'].generate().then(res => {

this.resultImg = res // 得到了签字生成的base64图片

let?imgFile = this.base64ImgtoFile(res, 'file') //得到文件格式

}).catch(err => { // 没有签名,点击生成图片时调用

this.$message({

message: err + ' 未签名!',

type: 'warning'

})

alert(err) // 画布没有签字时会执行这里 'Not Signned'

})

}

}

6、将base64转化成图片方法:

// 将base64,转换成图片
base64ImgtoFile(dataurl, filename='file') {
const?arr = dataurl.split(',')
const?mime = arr[0].match(/:(.*?);/)[1]
const?suffix = mime.split('/')[1]
const?bstr = atob(arr[1])
let?n = bstr.length
const?u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
},
}

文章来源:https://blog.csdn.net/lrbtony/article/details/134975476
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。