Skip to content

signature 签名组件

手写签名组件,自适应宽高。提供简便的绘制、保存和清空功能。

基础用法

loading

属性

属性名说明类型默认值
lineWidth线条宽度number2
lineColor线条颜色string#000000
backgroundColor背景颜色string#ffffff
quality图片的质量number1
disabled是否禁用booleanfalse

事件

事件名说明回调参数
confirm保存签名时触发data: string (签名的 base64 编码)
clear清除签名时触发-
start开始绘制时触发-
end结束绘制时触发-
signing签名内容变化时触发isEmpty: boolean (是否为空)

方法

方法名说明参数返回值
clear清除签名--
save保存签名并触发 save 事件--
isEmpty检查签名是否为空-boolean
getBase64获取签名的 base64 编码-string
undo撤销上一步操作--
redo重做上一步操作--
canUndo判断是否可以撤销-boolean
canRedo判断是否可以重做-boolean

自定义样式示例

可以通过属性自定义签名组件的样式:

vue
<template>
  <LSignature :line-width="5" :line-color="'#ff0000'" :background-color="'#f5f5f5'" />
</template>

保存与清除示例

vue
<template>
  <div class="signature-demo">
    <LSignature ref="signatureRef" @change="handleChange" />
    <div class="buttons">
      <button @click="handleClear">清除</button>
      <button @click="handleSave" :disabled="isEmpty">保存</button>
    </div>
  </div>
</template>

<script setup>
import { ref } from 'vue';

const signatureRef = ref(null);
const isEmpty = ref(true);

const handleClear = () => {
  signatureRef.value.clear();
};

const handleSave = () => {
  signatureRef.value.save();
};

const handleChange = (empty) => {
  isEmpty.value = empty;
};
</script>

<style>
.signature-demo {
  width: 100%;
  height: 200px;
}
.buttons {
  margin-top: 10px;
  display: flex;
  gap: 10px;
}
</style>