| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- // pages/sign.js
- var context = null; // 使用 wx.createContext 获取绘图上下文 context
- var isButtonDown = false; //是否在绘制中
- var arrx = []; //动作横坐标
- var arry = []; //动作纵坐标
- var arrz = []; //总做状态,标识按下到抬起的一个组合
- var canvasw = 0; //画布宽度
- var canvash = 0; //画布高度
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- canvasw: '',
- canvash: '',
- imgUrl: '',
- info: {},
- signBase64: '',
- sysType: '' // 判断机型
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- let that = this
- let res = wx.getSystemInfoSync()
- const system = res.system.split(' ')
- that.setData({
- sysType: system[0],
- })
- // let params = JSON.parse(options.params)
- // that.setData({
- // info: params,
- // })
- that.startCanvas();
- that.initCanvas()
- },
- /**
- * 以下 - 手写签名 / 上传签名
- */
- startCanvas() { //画布初始化执行
- var that = this;
- //获取系统信息
- wx.getSystemInfo({
- success: function (res) {
- canvasw = res.windowWidth;
- canvash = res.windowHeight;
- that.setData({
- canvasw: canvasw
- });
- that.setData({
- canvash: canvash
- });
- }
- });
- this.initCanvas();
- this.cleardraw();
- },
- //初始化函数
- initCanvas() {
- context = wx.createCanvasContext('canvas');
- context.beginPath()
- if (this.data.sysType === 'iOS') {
- context.fillStyle = 'rgba(255, 255, 255, 1)';
- context.setStrokeStyle('#444');
- } else {
- context.fillStyle = 'rgba(0, 0, 0, 1)';
- context.setStrokeStyle('#aaa');
- }
- context.setLineWidth(4);
- context.setLineCap('round');
- context.setLineJoin('round');
- },
- canvasStart(event) {
- isButtonDown = true;
- arrz.push(0);
- arrx.push(event.changedTouches[0].x);
- arry.push(event.changedTouches[0].y);
- },
- canvasMove(event) {
- if (isButtonDown) {
- arrz.push(1);
- arrx.push(event.changedTouches[0].x);
- arry.push(event.changedTouches[0].y);
- }
- for (var i = 0; i < arrx.length; i++) {
- if (arrz[i] == 0) {
- context.moveTo(arrx[i], arry[i])
- } else {
- context.lineTo(arrx[i], arry[i])
- }
- }
- context.clearRect(0, 0, canvasw, canvash);
- if (this.data.sysType === 'iOS') {
- context.fillStyle = 'rgba(255, 255, 255, 1)';
- context.setStrokeStyle('#444');
- } else {
- context.fillStyle = 'rgba(0, 0, 0, 1)';
- context.setStrokeStyle('#aaa');
- }
- context.setLineWidth(3);
- context.setLineCap('round');
- context.setLineJoin('round');
- context.stroke();
- context.draw(false);
- },
- canvasEnd(event) {
- isButtonDown = false;
- },
- //清除画布
- cleardraw() {
- arrx = [];
- arry = [];
- arrz = [];
- context.clearRect(0, 0, canvasw, canvash);
- if (this.data.sysType === 'iOS') {
- context.fillStyle = 'rgba(255, 255, 255, 1)';
- context.setStrokeStyle('#444');
- } else {
- context.fillStyle = 'rgba(0, 0, 0, 1)';
- context.setStrokeStyle('#aaa');
- }
- context.draw(true);
- },
- uploadImg() {
- var that = this
- //生成图片
- setTimeout(() => {
- wx.canvasToTempFilePath({
- canvasId: 'canvas',
- //设置输出图片的宽高
- fileType: 'jpg',
- quality: 1,
- success: function (res) {
- // canvas图片地址 res.tempFilePath
- // let imgBase64 = wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')
- // that.setData({
- // imgUrl: res.tempFilePath,
- // signBase64: imgBase64
- // })
- // that.submitSign()
- // console.log('imgBase64', 'data:image/jpeg;base64,' + imgBase64)
- wx.saveImageToPhotosAlbum({
- filePath: res.tempFilePath,
- success(res4) {
- console.log(res,'保存res4');
- wx.showToast( {
- title: '已成功保存到相册',
- duration: 2000
- } );
- }
- })
- },
- fail: function () {
- wx.showModal({
- title: '提示',
- content: 'canvas生成图片失败。微信当前版本不支持,请更新到最新版本!',
- showCancel: false
- });
- },
- complete: function () {}
- }, 5000)
- })
- },
- // 提交签名
- submitSign() {
- let that = this
- wx.showLoading({
- title: '正在提交...',
- mask: true
- })
- let type = '1'
- if (that.data.sysType === 'iOS') {
- type = '0'
- } else {
- type = '1'
- }
- wx.$getWxLoginCode(resp => {
- const params = {
- qmbase64: that.data.signBase64,
- }
- console.info("入参", params)
- wx.kservice.yyyurl(params, res => {
- wx.hideLoading()
- if (res.statusCode === '200') {
- wx.showModal({
- title: '提示',
- content: res.message,
- showCancel: false,
- confirmText: '返回首页',
- success(res) {
- if (res.confirm) {
- wx.reLaunch({
- url: '/pages/index/index'
- })
- }
- }
- })
- } else {
- wx.showModal({
- title: '提示',
- content: res.message,
- showCancel: true,
- cancelText: '返回首页',
- confirmText: '重新提交',
- success: (result) => {
- if (result.cancel) {
- // 取消停留
- wx.reLaunch({
- url: '/pages/index/index'
- })
- } else if (result.confirm) {
- //重新提交
- that.submitSign()
- }
- },
- });
- }
- }, {}, true, true)
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- }
- })
|