代码拉取完成,页面将自动刷新
适配移动和pc端, 从vue2组件的方式变更为vue最新的hooks方式, 旨在更好的兼容 VUE
组合式API
, 更好的对调用者暴露可选操作;
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
type | 类型, 可选值为 png jpg jpeg svg
|
string | png |
quality | 质量, 可选值为 0~1
|
number | 0.8 |
minDistance | 最小距离, 以像素为单位 | number | 5 |
velocityFilterWeight | 速度过滤器权重, 可选值为 0~1
|
number | 0.7 |
backgroundColor | 签名画布的背景色 | string | rgba(0,0,0,0) |
throttle | 节流阀速度, 以毫秒为单位 | number | 16 |
dotSize | 画笔的大小, 大于0, 则minWidth 和maxWidth 失效 |
number | 0 |
minWidth | 画笔的最小宽度 | number | 0.5 |
maxWidth | 画笔的最大宽度 | number | 2.5 |
penColor | 画笔颜色 | string | black |
import { defineComponent, ref } from "vue";
import './index.scss';
import { useESign } from "../hook";
export default defineComponent({
setup() {
const src = ref<string>();
const canvas = ref<HTMLCanvasElement>();
// 调用电子签名的hooks
const sign = useESign(()=>canvas.value);
const preview = () => {
src.value = sign.getData();
}
return () => (
<>
<div class="e-sign">
<canvas style='width:100%' ref={canvas} />
</div>
<div class="option">
<button type="button" onClick={sign.undo}>撤销</button>
<button type="button" onClick={sign.changePenColor}>颜色</button>
<button type="button" onClick={sign.clear}> 重置</button>
<button type="button" onClick={sign.save}> 保存</button>
<button type="button" onClick={preview}> 预览</button>
</div>
<div class="e-sign">
<img src={src.value} alt="preview" />
</div>
</>
);
}
});
/* index.scss */
.e-sign {
display: flex;
height: 9rem;
border: 1px solid #d7d7d7;
border-radius: 4px;
img {
width: 100%;
object-fit: contain;
}
}
.option {
margin: 5px 0;
display: flex;
justify-content: space-around;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。