Skip to content

huangyu/SignCollect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SignCollect 签名收集小程序

程序简介:

由于项目需要,事先采集客户的电子签名,用于在Word文档中制作电子签章。大概花了一天多的时间制作本小程序,也熟悉一下小程序的开发流程。

目前项目已上线,修改Bmob.initialize("", "")填入自己的Bmob信息,后台增加Photo表,加入url,name字段即可测试。Bomb接入小程序教程: http://docs.bmob.cn/data/wechatApp/a_faststart/doc/index.html

总体思路:

非常简单,几十行代码即可。利用canvas绘图,input输入信息,form表单配合button提交到Bmob后端云后台。

  1. 绘制签名
    <canvas canvas-id="signCanvas" class="canvas" disable-scroll="false" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd" />

    // 手指触摸动作开始
    touchStart: function (e) {
        this.startX = e.changedTouches[0].x
        this.startY = e.changedTouches[0].y
        this.context = wx.createContext()
        this.context.setLineWidth(4)
        this.context.setLineCap('round')
        this.context.beginPath()
    },

    // 手指触摸后移动
    touchMove: function (e) {
    var startX1 = e.changedTouches[0].x
    var startY1 = e.changedTouches[0].y
    this.context.moveTo(this.startX, this.startY)
    this.context.lineTo(startX1, startY1)
    this.context.stroke()
    this.startX = startX1;
    this.startY = startY1;
    wx.drawCanvas({
      canvasId: 'signCanvas',
      reserve: true,
      actions: this.context.getActions()
    })
    },

    // 手指触摸动作结束
    touchEnd: function (e) {
        
    }
    
    // 暂存canvas图片:
    wx.canvasToTempFilePath()
  1. 表单数据的获取和提交

    // form的bindsubmit和bindreset方法绑定事件

    <form class="form" bindsubmit="submit" bindreset="clear">
    
    // 对应button的formType(submit或reset)
    <button type="primary" formType="submit" class='btnSubmit' disabled="{{disabled}}" loading="{{loading}}"> 提交 </button>
    <button type="default" class="btnClear" formType="reset"> 重签 </button>
    
    // input标签里用name标志输入内容

    <input class="inputText" name="no" focus="true" type="number" />
    <input class="inputText" name="content" />

    // 在<button>提交方法submit里用e.detail.value.###获取<input>输入的值

    submit: function (e) {

    // 获取警号
    var no = e.detail.value.no

    // 获取用户名
    var username = e.detail.value.content
    
    ...
    
    }
  1. Bmob后端云

    // 初始化:
    
    var Bmob = require('../../utils/bmob.js')
    
    Bmob.initialize("", "")
    
    // 上传:
    
    var file = new Bmob.File(photoname, tempFilePath);
    
    file.save().then(function (res) {
          
    }, function (error) {
          
    })

Done.

About

签名收集小程序

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published