import { getOssSign} from '../../../api/api' import { FileUtil } from '../../../utils/fileutil' const app = getApp() Page({ data: { height: app.globalData.height, ctx: null, canvas: null, txt_show: true, template:{ width: '676rpx', height: '414rpx', views: [ {} ], }, }, onReady() { const query = wx.createSelectorQuery() query.select('#sign_panels') .fields({ node: true, size: true }) .exec((res) => { const canvas = res[0].node const ctx = canvas.getContext('2d') ctx.lineWidth = 5; // const dpr = wx.getSystemInfoSync().pixelRatio canvas.width = res[0].width canvas.height = res[0].height ctx.scale(1, 1) console.log(ctx); this.setData({ ctx: ctx, canvas: canvas }); console.log("onReady onReady start") console.log(ctx) console.log(canvas) console.log("onReady onReady end") }) }, ontouchmove(e){ console.log("ontouchmove ontouchmove ontouchmove"); console.log(e); this.data.ctx.lineWidth = 5; this.data.ctx.lineCap="round"; this.data.ctx.lineJoin ="round"; this.data.ctx.lineTo(e.touches[0].x,e.touches[0].y); this.data.ctx.stroke(); }, ontouchstart(e){ console.log("ontouchstart ontouchstart ontouchstart") this.setData({ txt_show: false }); console.log(this.data.ctx); this.data.ctx.beginPath(); this.data.ctx.moveTo(e.touches[0].x,e.touches[0].y); }, toClear() { this.setData({ txt_show: true }); this.data.ctx.clearRect(0,0,this.data.canvas.width,this.data.canvas.height) }, rotate(){ let ctx = this.data.ctx; ctx.rotate(90); }, toSave(event) { let _this = this; let base64Img = _this.data.canvas.toDataURL(); console.log("sign: ", base64Img); wx.canvasToTempFilePath({ canvasId: "sign_panels", canvas: _this.data.canvas, x:0, y:0, success(res) { console.log(res.tempFilePath) let filePath = res.tempFilePath; console.log(_this.data.canvas) console.log(_this.data.canvas.width) console.log(_this.data.canvas.height) let cs = (_this.data.canvas.height - _this.data.canvas.width)/2; _this.setData({ "template.width": _this.data.canvas.height+"rpx", "template.height": _this.data.canvas.width+"rpx", "template.views[0].css.width": _this.data.canvas.width+"rpx", "template.views[0].css.left": cs+"rpx", "template.views[0].css.top": "-"+cs+"rpx", "template.views[0].url": filePath, "template.views[0].type": "image", "template.views[0].css.rotate": "-90", }) // _this.doUploadFile(event, 2, filePath); } }) }, onImgOK(e){ console.log("onImgOK onImgOK onImgOK onImgOK"); console.log(e.detail.path); let txt_show = this.data.txt_show; if(!txt_show){ this.doUploadFile(e, 2, e.detail.path); } }, doUploadFile(event, scene, filePath) { console.log("index douploadFIle: ", event); console.log("scene: ", scene); let _this = this; getOssSign(2).then(response => { console.log(response); console.log("filePath: ", filePath); const filename = FileUtil.UUID()+".png"; const host = response.host; const signature = response.signature; const ossAccessKeyId = response.accessid; const policy = response.policy; const key = response.dir+filename; wx.uploadFile({ url: host, // 开发者服务器的URL。 filePath: filePath, name: 'file', // 必须填file。 formData: { key, policy, OSSAccessKeyId: ossAccessKeyId, signature, }, success: (res) => { console.log("upload: ", res); if (res.statusCode === 204) { wx.showToast({title: '上传成功'}) let url = host+"/"+key; console.log(url); let pages = getCurrentPages(); let prevPage = pages[pages.length - 2] prevPage.setData({ //setData给上个页面的data进行赋值 signImg:url }) wx.navigateBack(); //this.handleAddSign(url) } }, fail: err => { console.log(err); wx.showToast({ title: '上传失败', icon: "error" }) } }); }).catch(error => { if(error.code==30007){ wx.showToast({ title: '您未登录', icon:'none' }) app.method.navigateTo({ url: '/case/pages/mobileLogin/mobileLogin', }) } }) } })