qianming.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. var content = null;
  2. var touchs = [];
  3. var canvasw = 0;
  4. var canvash = 0;
  5. var that = null;
  6. const app = getApp()
  7. Page({
  8. /**
  9. * 页面的初始数据
  10. */
  11. data: {
  12. host: app.globalData.host,
  13. index: null,
  14. },
  15. // 画布的触摸移动开始手势响应
  16. start: function (event) {
  17. // console.log("触摸开始" + event.changedTouches[0].y)
  18. // console.log("触摸开始" + event.changedTouches[0].x)
  19. //获取触摸开始的 x,y
  20. let point = {
  21. x: event.changedTouches[0].y,
  22. y: event.changedTouches[0].x
  23. }
  24. touchs.push(point)
  25. },
  26. // 画布的触摸移动手势响应
  27. move: function (e) {
  28. let point = {
  29. x: e.touches[0].y,
  30. y: e.touches[0].x
  31. }
  32. touchs.push(point)
  33. if (touchs.length >= 2) {
  34. this.draw(touchs)
  35. }
  36. },
  37. // 画布的触摸移动结束手势响应
  38. end: function (e) {
  39. // console.log("触摸结束" + e)
  40. //清空轨迹数组
  41. for (let i = 0; i < touchs.length; i++) {
  42. touchs.pop()
  43. }
  44. },
  45. /**
  46. * 生命周期函数--监听页面加载
  47. */
  48. onLoad: function (options) {
  49. this.data.index = options.index
  50. that = this
  51. //获得Canvas的上下文
  52. content = wx.createCanvasContext('firstCanvas')
  53. //设置线的颜色
  54. content.setStrokeStyle("#000")
  55. //设置线的宽度
  56. content.setLineWidth(5)
  57. //设置线两端端点样式更加圆润
  58. content.setLineCap('round')
  59. //设置两条线连接处更加圆润
  60. content.setLineJoin('round')
  61. },
  62. /**
  63. * 生命周期函数--监听页面初次渲染完成
  64. */
  65. onReady: function () {
  66. // 获取画布尺寸
  67. var query = wx.createSelectorQuery()
  68. query.select('#canvas').boundingClientRect()
  69. query.exec(function (res) {
  70. canvasw = res[0].width;
  71. canvash = res[0].height
  72. })
  73. },
  74. //绘制
  75. draw: function (touchs) {
  76. let point1 = touchs[0]
  77. let point2 = touchs[1]
  78. touchs.shift()
  79. content.moveTo(point1.y, point1.x)
  80. content.lineTo(point2.y, point2.x)
  81. content.stroke()
  82. content.draw(true)
  83. },
  84. //清除操作
  85. clearClick: function () {
  86. //清除画布
  87. content.clearRect(0, 0, canvasw, canvash)
  88. content.draw(true)
  89. },
  90. //保存图片
  91. saveClick: function () {
  92. var that = this
  93. wx.canvasToTempFilePath({
  94. canvasId: 'firstCanvas',
  95. success: function (res) {
  96. //打印图片路径
  97. var path = res.tempFilePath
  98. //上传图片
  99. // that.uploadSignPic(path)
  100. // console.log(path)
  101. let page = getCurrentPages();
  102. let prevPage = page[page.length - 2];
  103. //获取全局唯一的文件管理器
  104. wx.getFileSystemManager().readFile({ //读取本地文件内容
  105. filePath: path, // 文件路径
  106. encoding: 'base64', // 返回格式
  107. success: res => {
  108. prevPage.setData({
  109. index: that.data.index,
  110. qianming: path,
  111. qianmingBase64: res.data,
  112. });
  113. //返回页面
  114. wx.navigateBack()
  115. }
  116. });
  117. }
  118. })
  119. },
  120. // /**
  121. // * 上传签名图片
  122. // */
  123. // uploadSignPic: function (path) {
  124. // //具体实现的业务逻辑
  125. // }
  126. })