Skip to content

Signature 签名

预览
01:38

组件名:rice-signature

用于签名场景的组件,基于 Canvas 实现。
右侧模拟器有问题,请使用真机或者打开手机模式进行预览

平台兼容性

uni-app x

AndroidiOS鸿蒙Next微信小程序h5

警告

App端要自定义基座,否则会报错: canvas组件不存在,请确保组件代码正确或重新制作自定义基座。

基础用法

通过 submit 事件可以拿到签名的 base64 格式的图片。默认的图片背景色为透明色,如果要设置背景色,可以通过 bg-color 属性设置

html
<rice-signature @submit="onSubmit" />

<script setup lang="ts">
const signatureImg=ref('')
const onSubmit = (image:string) => {
  if (image == '') {
    showToast('未签名')
    return
  }
  signatureImg.value = image
}

</script>

自定义画笔样式

通过 line-color 设置画笔的颜色,line-width 设置画笔的粗细

html
<rice-signature line-color="#f56c6c" :line-width="6" @submit="onSubmit" />

自定义提示语

通过 tips 设置提示语

html
<rice-signature line-color="#f56c6c" tips="请签名" @submit="onSubmit" />

自定义按钮

设置按钮的值为空字符串即可不显示默认的按钮

html
<rice-signature ref="signatureRef" clear-button-text="" confirm-button-text="" />
<view class="btn">
  <rice-button text="done" type="primary" size="small" @click="done"></rice-button>
  <rice-button text="clear" type="warning" size="small" :custom-style="{margin:'0 6px'}"
    @click="clear"></rice-button>
</view>

<script setup>
  const signatureRef = ref<RiceSignatureComponentPublicInstance | null>(null)
  const done = () => {
    const image = signatureRef.value!.done() as string
    onSubmit(image)
  }

  const clear = () => {
    signatureRef.value!.clear()
  }
</script>

自定义背景色

通过 bg-color 设置画板的背景颜色,也就是导出图片的背景颜色。

html
<rice-signature bg-color="#f1f1f1" tips="请签名" @submit="onSubmit" />

API

Props

属性名类型说明默认值
typeString导出图片的格式,可选jpegpng
widthString|Numbercanvas宽度100%
heightString|Numbercanvas高度200px
disabledBoolean是否禁用-
tipsString签名版中间的提示语-
tips-sizeString|Number提示语大小24px
tips-colorString提示语颜色-
line-colorString笔触颜色-
line-widthNumber线条宽度-
bg-colorStringcanvas背景颜色,也就是导出图片的背景颜色-
content-bg-colorString容器的背景颜色,导出图片的背景颜色为透明,如果设置了bgColor,该值无效-
clear-button-textString清除按钮文案,为空时不显示此按钮清除
confirm-button-textString确认按钮文案,为空时不显示此按钮确认
custom-styleObject自定义样式-

Events

事件名说明回调参数
start开始签名时触发-
signing签名过程中触发-
end结束签名时触发-
submit点击确定按钮时触发(image:string)

方法

通过 ref 可以获取到 Signature 实例并且调用实例的方法

方法名说明返回值
done触发 submit 事件(image:string)
clear可以调用此方法来清除签名-
resize外层元素大小或者组件显示状态变化时,可以调用此方法重绘-

Radio Slots

名称说明参数
tips自定义提示语-

类型定义

组件导出如下类型

ts
// 组件类型
const signatureRef=ref<RiceSignatureComponentPublicInstance|null>(null)