vue使用smooth-signature實現(xiàn)移動端橫豎屏電子簽字
更新時間:2023年10月27日 10:08:24 作者:菜鳥書生
這篇文章主要為大家介紹了vue使用smooth-signature實現(xiàn)移動端橫豎屏電子簽字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
vue使用smooth-signature實現(xiàn)移動端電子簽字,包括橫豎屏
使用smooth-signature
npm install --save smooth-signature
頁面引入插件
import SmoothSignature from "smooth-signature";
實現(xiàn)效果
完整代碼
<template> <div class="sign-finish"> <div class="wrap1" v-show="showFull"> <span class="sign-title">請在區(qū)域內(nèi)簽字</span> <canvas class="canvas1" ref="canvas1" /> <div class="actions"> <button class="danger" @click="handleClear1" >清除</button> <button class="warning" @click="handleUndo1" >撤銷</button> <button class="primary" @click="handleFull" >橫屏</button> <button class="success" @click="handlePreview1" >保存</button> </div> </div> <div class="wrap2" v-show="!showFull"> <div class="actionsWrap"> <div class="actions"> <button class="danger" @click="handleClear1" >清除</button> <button class="warning" @click="handleUndo1" >撤銷</button> <button class="primary" @click="handleFull" >豎屏</button> <button class="success" @click="handlePreview1" >保存</button> </div> </div> <canvas class="canvas" ref="canvas2" /> </div> </div> </template> <script> import SmoothSignature from "smooth-signature"; export default { name: "mbDemo", data() { return { showFull: true, }; }, mounted() { this.initSignature1(); this.initSignture2(); }, methods: { initSignature1() { const canvas = this.$refs["canvas1"]; const options = { width: window.innerWidth - 30, height: 200, minWidth: 2, maxWidth: 6, openSmooth:true, // color: "#1890ff", bgColor: '#f6f6f6', }; this.signature1 = new SmoothSignature(canvas, options); }, initSignture2() { const canvas = this.$refs["canvas2"]; const options = { width: window.innerWidth - 120, height: window.innerHeight - 80, minWidth: 3, maxWidth: 10, openSmooth:true, // color: "#1890ff", bgColor: '#f6f6f6', }; this.signature2 = new SmoothSignature(canvas, options); }, handleClear1() { this.signature1.clear(); }, handleClear2() { this.signature2.clear(); }, handleUndo1() { this.signature1.undo(); }, handleUndo2() { this.signature2.undo(); }, handleFull() { this.showFull = !this.showFull; }, handlePreview1() { const isEmpty = this.signature1.isEmpty(); if (isEmpty) { alert("isEmpty"); return; } const pngUrl = this.signature1.getPNG(); console.log(pngUrl); // window.previewImage(pngUrl); }, handlePreview2() { const isEmpty = this.signature2.isEmpty(); if (isEmpty) { alert("isEmpty"); return; } const canvas = this.signature2.getRotateCanvas(-90); const pngUrl = canvas.toDataURL(); console.log('pngUrl',pngUrl); // window.previewImage(pngUrl, 90); }, }, }; </script> <style lang="less"> .sign-finish { height: 100vh; width: 100vw; button { height: 32px; padding: 0 8px; font-size: 12px; border-radius: 2px; } .danger { color: #fff; background: #ee0a24; border: 1px solid #ee0a24; } .warning { color: #fff; background: #ff976a; border: 1px solid #ff976a; } .primary { color: #fff; background: #1989fa; border: 1px solid #1989fa; } .success { color: #fff; background: #07c160; border: 1px solid #07c160; } canvas { border-radius: 10px; border: 2px dashed #ccc; } .wrap1 { height: 100%; width: 96%; margin: auto; margin-top: 100px; .actions { display: flex; justify-content: space-around; } } .wrap2 { padding: 15px; height: 100%; display: flex; justify-content: center; .actionsWrap { width: 50px; display: flex; justify-content: center; align-items: center; } .canvas { flex: 1; } .actions { margin-right: 10px; white-space: nowrap; transform: rotate(90deg); button{ margin-right: 20px; } } } } </style>
參考 https://github.com/linjc/smooth-signature
以上就是vue使用smooth-signature實現(xiàn)移動端橫豎屏電子簽字的詳細內(nèi)容,更多關(guān)于vue smooth-signature電子簽字的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue3中使用ref與reactive創(chuàng)建響應(yīng)式數(shù)據(jù)的示例代碼
這篇文章主要介紹了Vue3中使用ref與reactive創(chuàng)建響應(yīng)式數(shù)據(jù)的方法,文中通過代碼示例講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-08-08vue之el-upload使用FormData多文件同時上傳問題
這篇文章主要介紹了vue之el-upload使用FormData多文件同時上傳問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05nuxt 實現(xiàn)在其它js文件中使用store的方式
這篇文章主要介紹了nuxt 實現(xiàn)在其它js文件中使用store的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11搭建vue3項目以及按需引入element-ui框架組件全過程
element是基于vue.js框架開發(fā)的快速搭建前端的UI框架,下面這篇文章主要給大家介紹了關(guān)于搭建vue3項目以及按需引入element-ui框架組件的相關(guān)資料,文中通過圖文以及代碼介紹的非常詳細,需要的朋友可以參考下2024-02-02