takeBill.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import {
  2. uploadFile
  3. } from "../../utils/upload"
  4. Page({
  5. data: {
  6. avatar: "https://6875-huihenduo-2gx127w7f837b584-1255802371.tcb.qcloud.la/miniapp-static/avatar-icon.jpg?sign=f5c66c94d189436f82353eb48cb01f08&t=1634538864",
  7. cameraIcon: "https://6875-huihenduo-2gx127w7f837b584-1255802371.tcb.qcloud.la/miniapp-static/camera-icon.png?sign=11a65871a2800cd04ecaa8991687fccd&t=1634607415",
  8. newCameraIcon: "https://6875-huihenduo-2gx127w7f837b584-1255802371.tcb.qcloud.la/miniapp-static/camera.png?sign=ad0fe8bead6a46cb20f45f792d4bed67&t=1645502416",
  9. userName: "",
  10. phone: "",
  11. shipName: "",
  12. shipMmsi: "",
  13. authModal: false,
  14. modalText: "位置",
  15. cw: '',
  16. ch: ''
  17. },
  18. test() {
  19. const ctx = wx.createCameraContext()
  20. ctx.takePhoto({
  21. quality: 'high',
  22. success: (res) => {
  23. let src = res.tempImagePath
  24. wx.getImageInfo({
  25. src,
  26. success: e => {
  27. console.log(e)
  28. let ch = e.height * 2
  29. let cw = e.width * 2
  30. this.setData({
  31. ch,
  32. cw
  33. })
  34. const query = wx.createSelectorQuery();
  35. query.select('#myCanvas').node().exec((res) => {
  36. const canvas = res[0].node;
  37. const ctx = canvas.getContext('2d');
  38. const img = canvas.createImage();
  39. let h = ch / 2
  40. let w = cw / 2
  41. canvas.height = h * 0.85
  42. canvas.width = w * 0.9
  43. img.src = src
  44. img.onload = () => {
  45. ctx.drawImage(img, -w * 0.05, -h * 0.05);
  46. }
  47. this.saveImg()
  48. })
  49. }
  50. })
  51. }
  52. })
  53. },
  54. goBack() {
  55. wx.redirectTo({
  56. url: '/pages/takePhoto/takePhoto',
  57. })
  58. },
  59. async saveImg() {
  60. const query = wx.createSelectorQuery();
  61. const canvas = await new Promise((resolve, reject) => {
  62. query.select('#myCanvas')
  63. .fields({
  64. node: true,
  65. size: true
  66. })
  67. .exec(async (res) => {
  68. resolve(res[0].node);
  69. })
  70. });
  71. wx.canvasToTempFilePath({
  72. canvas,
  73. success: async e => {
  74. let res = await uploadFile(e.tempFilePath, {
  75. type: 0,
  76. // userId: wx.getStorageSync('userId'),
  77. userId: 89,
  78. location: ''
  79. })
  80. wx.showToast({
  81. title: res.msg,
  82. })
  83. this.goBack()
  84. },
  85. fail(res) {
  86. console.log('fail');
  87. }
  88. })
  89. },
  90. onLoad() {
  91. let userName = wx.getStorageSync('userName')
  92. let userId = wx.getStorageSync('userId')
  93. let phone = wx.getStorageSync('phone')
  94. let shipId = wx.getStorageSync('shipId')
  95. this.setData({
  96. userName,
  97. phone,
  98. userId,
  99. shipId
  100. })
  101. }
  102. })