Commit 287ec49aa53c0a86473f0f5f22760cff41e0c2f6
1 parent
e18e6275
普通海报分享改版
Showing
1 changed file
with
206 additions
and
90 deletions
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -4179,6 +4179,92 @@ Page({ |
4179 | 4179 | } |
4180 | 4180 | }) |
4181 | 4181 | }, |
4182 | + | |
4183 | + | |
4184 | + drawPoster(context, unit, img, vpath) { | |
4185 | + // 1.灰色背景 | |
4186 | + context.setFillStyle('#f2f1f6'); | |
4187 | + context.rect(0,0,554*unit,899*unit); | |
4188 | + context.fill(); | |
4189 | + // 2.商城名称 | |
4190 | + let shopName = this.data.sto_sele_name_1; | |
4191 | + // let shopNameLen = context.measureText(shopName); | |
4192 | + // let x_shopNameLen = (554 - shopNameLen.width)/2*unit; | |
4193 | + // console.log('11111111111111',shopNameLen,x_shopNameLen); | |
4194 | + context.setTextAlign('center'); | |
4195 | + context.setFontSize(26*unit); | |
4196 | + context.setFillStyle('black'); | |
4197 | + context.fillText(shopName, 277*unit, 60*unit); | |
4198 | + // // 3.推荐来源 | |
4199 | + let fromText = `来自${getApp().globalData.userInfo.nickname}的推荐`; | |
4200 | + // let fromTextLen = context.measureText(fromText); | |
4201 | + // let x_fromText = (375 - fromTextLen.width)/2; | |
4202 | + // console.log('222222',fromTextLen,x_fromText); | |
4203 | + context.setTextAlign('center'); | |
4204 | + context.setFontSize(22*unit); | |
4205 | + context.setFillStyle('#96959a'); | |
4206 | + context.fillText(fromText, 277*unit, 105*unit); | |
4207 | + // 4.海报背景 | |
4208 | + // context.beginPath(); | |
4209 | + // context.setStrokeStyle('#f2f1f6'); | |
4210 | + context.setFillStyle('white'); | |
4211 | + context.fillRect(37*unit, 157*unit, 480*unit, 673*unit); | |
4212 | + // context.stroke(); | |
4213 | + // context.fill(); | |
4214 | + // 5.商品图片 | |
4215 | + // 图片的x坐标 | |
4216 | + let bg_x = 37*unit | |
4217 | + // 图片的y坐标 | |
4218 | + let bg_y = 157*unit | |
4219 | + // 图片宽度 | |
4220 | + let bg_w = 480*unit | |
4221 | + // 图片高度 | |
4222 | + let bg_h = 474*unit | |
4223 | + // 图片圆角 | |
4224 | + let bg_r = 4 | |
4225 | + // 绘制海报背景图片圆角 | |
4226 | + context.save() | |
4227 | + context.beginPath() | |
4228 | + context.arc(bg_x + bg_r, bg_y + bg_r, bg_r, Math.PI, Math.PI*1.5) | |
4229 | + context.arc(bg_x + bg_w - bg_r, bg_y + bg_r, bg_r, Math.PI * 1.5, Math.PI * 2) | |
4230 | + context.arc(bg_x + bg_w, bg_y + bg_h, bg_r, 0, Math.PI * 0.5) | |
4231 | + context.arc(bg_x, bg_y + bg_h, 0, Math.PI * 0.5, Math.PI) | |
4232 | + context.clip() | |
4233 | + context.drawImage(img, bg_x, bg_y, bg_w, bg_h); | |
4234 | + context.restore() | |
4235 | + // 6.强烈推荐 | |
4236 | + // context.beginPath(); | |
4237 | + let tj_path = "../../../images/share/q_tj.png"; | |
4238 | + context.beginPath() | |
4239 | + context.drawImage(tj_path, 54*unit, 648*unit, 85*unit, 30*unit); | |
4240 | + context.setFontSize(16*unit) | |
4241 | + context.setLineJoin('round'); //交点设置成圆角 | |
4242 | + context.setFillStyle("white") | |
4243 | + context.setTextAlign('left'); | |
4244 | + context.fillText('强烈推荐', 64*unit, 672*unit); | |
4245 | + // 7.商品价格 | |
4246 | + context.setFontSize(32*unit); | |
4247 | + context.setFillStyle('#DE1117'); | |
4248 | + context.fillText('¥59.00', 54*unit, 730*unit); | |
4249 | + // 8.商品标题 | |
4250 | + context.setFontSize(20*unit); | |
4251 | + context.setFillStyle('#898989'); | |
4252 | + this.draw_Text(context, this.data.data.goods_name, | |
4253 | + 54*unit, 770*unit, 240*unit, 240*unit, unit); | |
4254 | + // 9.小程序码 | |
4255 | + context.drawImage(vpath, 375*unit, 660*unit, 120*unit, 120*unit); | |
4256 | + context.setFontSize(16*unit); | |
4257 | + context.setFillStyle('#777'); | |
4258 | + context.fillText('长按识别二维码', 378*unit, 810*unit); | |
4259 | + // 10.竖线 | |
4260 | + context.beginPath(); | |
4261 | + context.setFillStyle('#eee'); | |
4262 | + context.rect(354*unit, 670*unit, 1*unit, 130*unit); | |
4263 | + context.fill(); | |
4264 | + | |
4265 | + }, | |
4266 | + | |
4267 | + | |
4182 | 4268 | |
4183 | 4269 | //--定义的保存图片方法,分享团--- |
4184 | 4270 | saveImageToPhotosAlbum: function () { |
... | ... | @@ -4229,67 +4315,90 @@ Page({ |
4229 | 4315 | os.stoid + "?sceneValue=" + scene + "&pageValue=pages/goods/goodsInfo/goodsInfo"; |
4230 | 4316 | |
4231 | 4317 | console.log(path3); |
4318 | + | |
4232 | 4319 | |
4233 | - //读取文件成功则OK-- | |
4320 | + // 读取文件成功则OK-- | |
4234 | 4321 | wx.getImageInfo({ |
4235 | 4322 | src: path3, |
4236 | 4323 | success: function (res) { |
4237 | - //回调写法 | |
4324 | + // 回调写法 | |
4238 | 4325 | th.get_head_temp(th.get_goods_temp, function () { |
4239 | 4326 | var vpath = res.path; |
4240 | 4327 | var context = wx.createCanvasContext('share'); |
4241 | - //先画背景 | |
4328 | + // 先画背景 | |
4242 | 4329 | var pg_path = "../../../images/share/share_bg.png"; |
4243 | 4330 | |
4244 | 4331 | // context.fillStyle="#FFFFFF"; |
4245 | 4332 | // context.fillRect(0,0,554 * unit, 899 * unit); |
4333 | + | |
4334 | + // if(type == 0) { | |
4335 | + // this.drawPoster(context); | |
4336 | + // return false; | |
4337 | + // }; | |
4338 | + | |
4246 | 4339 | |
4247 | 4340 | //-- 如果有自定义海报的时候,判断背景的图片 -- |
4248 | 4341 | if (th.data.share_b_img) { |
4249 | 4342 | pg_path = th.data.share_b_img; |
4250 | 4343 | } |
4251 | - context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); | |
4344 | + // context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); | |
4345 | + | |
4346 | + | |
4347 | + if(type == 0) { // 如果是普通商品,绘制新海报 | |
4348 | + th.drawPoster(context, unit, th.data.share_goods_img, vpath); | |
4349 | + } else { | |
4350 | + context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); | |
4351 | + }; | |
4352 | + | |
4353 | + // th.drawPoster(context, unit, th.data.share_goods_img, vpath); | |
4354 | + | |
4252 | 4355 | |
4253 | 4356 | //-- 是自定义海报的情况下 -- |
4254 | - if (th.data.poster && parseInt(th.data.poster.style) == 2) { | |
4255 | - //在线上分享人的情况下 | |
4256 | - if (parseInt(th.data.poster.show_headpic)) { | |
4257 | - //获取坐标 | |
4258 | - var x = parseFloat(th.data.poster.head_x) * 2; | |
4259 | - var y = parseFloat(th.data.poster.head_y) * 2; | |
4260 | - var x1 = (x + 90) * unit; | |
4261 | - var y1 = (y + 50) * unit; | |
4262 | - //--昵称--- | |
4263 | - context.setFontSize(24 * unit) | |
4264 | - context.setFillStyle("black") | |
4265 | - context.fillText(app.globalData.userInfo.nickname, x1, y1); | |
4266 | - var width = 24 * app.globalData.userInfo.nickname.length * unit + 4 * unit; | |
4267 | - //强烈推荐 改许程 | |
4268 | - var tj_path = "../../../images/share/q_tj.png"; | |
4269 | - context.drawImage(tj_path, x1 + width, y1 - 22 * unit, 85 * unit, 30 * unit); | |
4270 | - context.setFontSize(16 * unit) | |
4271 | - context.setLineJoin('round'); //交点设置成圆角 | |
4272 | - context.setFillStyle("white") | |
4273 | - context.fillText('强烈推荐', x1 + width + 8 * unit, y1 - 1 * unit); | |
4274 | - | |
4275 | - //context.setFillStyle("black") | |
4276 | - //context.setFontSize(24 * unit) | |
4277 | - //context.fillText(getApp().globalData.config.store_name, 40 * unit, 130 * unit); | |
4278 | - } | |
4279 | - } else { | |
4280 | - //--昵称--- | |
4281 | - context.setFontSize(24 * unit) | |
4282 | - context.setFillStyle("black") | |
4283 | - context.fillText(app.globalData.userInfo.nickname, 152 * unit, 76 * unit); | |
4284 | - var width = 24 * app.globalData.userInfo.nickname.length * unit + 2 * unit; | |
4285 | - //强烈推荐 改许程 | |
4286 | - var tj_path = "../../../images/share/q_tj.png"; | |
4287 | - context.drawImage(tj_path, 152 * unit + width, 54 * unit, 85 * unit, 30 * unit); | |
4288 | - context.setFontSize(16 * unit); | |
4289 | - context.setLineJoin('round'); //交点设置成圆角 | |
4290 | - context.setFillStyle("white"); | |
4291 | - context.fillText('强烈推荐', 149 * unit + width + 15 * unit, 75 * unit); | |
4292 | - } | |
4357 | + if(type != 0) { | |
4358 | + | |
4359 | + if (th.data.poster && parseInt(th.data.poster.style) == 2) { | |
4360 | + //在线上分享人的情况下 | |
4361 | + if (parseInt(th.data.poster.show_headpic)) { | |
4362 | + //获取坐标 | |
4363 | + var x = parseFloat(th.data.poster.head_x) * 2; | |
4364 | + var y = parseFloat(th.data.poster.head_y) * 2; | |
4365 | + var x1 = (x + 90) * unit; | |
4366 | + var y1 = (y + 50) * unit; | |
4367 | + //--昵称--- | |
4368 | + context.setFontSize(24 * unit) | |
4369 | + context.setFillStyle("black") | |
4370 | + context.fillText(app.globalData.userInfo.nickname, x1, y1); | |
4371 | + var width = 24 * app.globalData.userInfo.nickname.length * unit + 4 * unit; | |
4372 | + //强烈推荐 改许程 | |
4373 | + var tj_path = "../../../images/share/q_tj.png"; | |
4374 | + context.drawImage(tj_path, x1 + width, y1 - 22 * unit, 85 * unit, 30 * unit); | |
4375 | + context.setFontSize(16 * unit); | |
4376 | + context.setLineJoin('round'); //交点设置成圆角 | |
4377 | + context.setFillStyle("white"); | |
4378 | + context.fillText('强烈推荐', x1 + width + 8 * unit, y1 - 1 * unit); | |
4379 | + | |
4380 | + //context.setFillStyle("black") | |
4381 | + //context.setFontSize(24 * unit) | |
4382 | + //context.fillText(getApp().globalData.config.store_name, 40 * unit, 130 * unit); | |
4383 | + } | |
4384 | + } else { | |
4385 | + //--昵称--- | |
4386 | + context.setFontSize(24 * unit); | |
4387 | + context.setFillStyle("black"); | |
4388 | + context.fillText(app.globalData.userInfo.nickname, 152 * unit, 76 * unit); | |
4389 | + var width = 24 * app.globalData.userInfo.nickname.length * unit + 2 * unit; | |
4390 | + //强烈推荐 改许程 | |
4391 | + var tj_path = "../../../images/share/q_tj.png"; | |
4392 | + context.drawImage(tj_path, 152 * unit + width, 54 * unit, 85 * unit, 30 * unit); | |
4393 | + context.setFontSize(16 * unit); | |
4394 | + context.setLineJoin('round'); //交点设置成圆角 | |
4395 | + context.setFillStyle("white"); | |
4396 | + context.fillText('强烈推荐', 149 * unit + width + 15 * unit, 75 * unit); | |
4397 | + } | |
4398 | + | |
4399 | + }; | |
4400 | + | |
4401 | + | |
4293 | 4402 | |
4294 | 4403 | var share_title = th.data.data.goods_name; |
4295 | 4404 | if (th.data.prom_type == 1 || th.data.prom_type == 6 || th.data.prom_type == 4) { |
... | ... | @@ -4300,7 +4409,7 @@ Page({ |
4300 | 4409 | |
4301 | 4410 | //---产品名称--- |
4302 | 4411 | //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 |
4303 | - if (type != 4) { | |
4412 | + if (type != 4 && type != 0) { | |
4304 | 4413 | context.setFillStyle("black"); |
4305 | 4414 | context.setFontSize(21.3 * unit) |
4306 | 4415 | th.draw_Text(context, share_title, |
... | ... | @@ -4333,7 +4442,7 @@ Page({ |
4333 | 4442 | context.lineTo(wd2 + ut.measureText(pri0, 22 * unit) + 5, 206 * unit); |
4334 | 4443 | context.stroke(); |
4335 | 4444 | |
4336 | - } else { | |
4445 | + } else if(type == 4 && type != 0) { | |
4337 | 4446 | context.setFillStyle("black"); |
4338 | 4447 | context.setFontSize(21.3 * unit) |
4339 | 4448 | th.draw_Text(context, share_title, |
... | ... | @@ -4353,10 +4462,15 @@ Page({ |
4353 | 4462 | } |
4354 | 4463 | |
4355 | 4464 | //---中间大图--- |
4356 | - context.drawImage(th.data.share_goods_img, 70 * unit, 250 * unit, 408 * unit, 408 * unit); | |
4465 | + if(type != 0) { | |
4466 | + context.drawImage(th.data.share_goods_img, 70 * unit, 250 * unit, 408 * unit, 408 * unit); | |
4467 | + }; | |
4468 | + | |
4469 | + | |
4470 | + | |
4357 | 4471 | //-------大图后面就不一样了----------- |
4358 | 4472 | switch (type) { |
4359 | - case 0: //普通商品的展示 | |
4473 | + case 0: break;//普通商品的展示 | |
4360 | 4474 | case 4: |
4361 | 4475 | //中间的几个字 |
4362 | 4476 | if (th.data.poster && parseInt(th.data.poster.style) == 2) { |
... | ... | @@ -4423,7 +4537,6 @@ Page({ |
4423 | 4537 | context.fillText("长按识别二维码", 40 * unit, 806 * unit); |
4424 | 4538 | context.fillText("立即开始兑换", 40 * unit, 846 * unit); |
4425 | 4539 | |
4426 | - | |
4427 | 4540 | } |
4428 | 4541 | |
4429 | 4542 | //---二维吗图--- |
... | ... | @@ -4435,7 +4548,7 @@ Page({ |
4435 | 4548 | } else { |
4436 | 4549 | //---二维吗图--- |
4437 | 4550 | context.drawImage(vpath, 390 * unit, 726 * unit, 136 * unit, 136 * unit); |
4438 | - } | |
4551 | + }; | |
4439 | 4552 | |
4440 | 4553 | break; |
4441 | 4554 | case 1: //秒杀商品的展示 |
... | ... | @@ -4478,7 +4591,6 @@ Page({ |
4478 | 4591 | context.lineTo(520 * unit, 670 * unit) |
4479 | 4592 | context.stroke(); |
4480 | 4593 | //---文字--- |
4481 | - | |
4482 | 4594 | context.setFillStyle("black") |
4483 | 4595 | context.setFontSize(24 * unit) |
4484 | 4596 | context.fillText(th.data.sto_sele_name_1, 40 * unit, 720 * unit); |
... | ... | @@ -4524,7 +4636,6 @@ Page({ |
4524 | 4636 | context.lineTo(520 * unit, 670 * unit) |
4525 | 4637 | context.stroke(); |
4526 | 4638 | //---文字--- |
4527 | - | |
4528 | 4639 | context.setFillStyle("black") |
4529 | 4640 | context.setFontSize(24 * unit) |
4530 | 4641 | context.fillText(th.data.sto_sele_name_1, 40 * unit, 720 * unit); |
... | ... | @@ -4575,45 +4686,50 @@ Page({ |
4575 | 4686 | |
4576 | 4687 | |
4577 | 4688 | //--- 如果是自定义海报的时候 --- |
4578 | - if (th.data.poster && parseInt(th.data.poster.style) == 2) { | |
4579 | - | |
4580 | - //如果显示会员信息的话 | |
4581 | - if (parseInt(th.data.poster.show_headpic)) { | |
4582 | - //获取坐标 | |
4583 | - var x = parseFloat(th.data.poster.head_x) * 2; | |
4584 | - var y = parseFloat(th.data.poster.head_y) * 2; | |
4585 | - //---绘制圆形要放在最后---- | |
4586 | - context.save(); | |
4587 | - context.beginPath(); | |
4588 | - var h_x = x * unit; | |
4589 | - var h_y = y * unit; | |
4590 | - var h_r = 40 * unit; | |
4591 | - var cx = h_x + h_r; | |
4592 | - var cy = h_y + h_r; | |
4593 | - context.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
4594 | - context.closePath(); | |
4595 | - context.fill(); | |
4596 | - context.clip(); | |
4597 | - context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); | |
4598 | - context.restore(); | |
4599 | - } | |
4600 | - | |
4601 | - } else { | |
4602 | - //---绘制圆形要放在最后---- | |
4603 | - context.save(); | |
4604 | - context.beginPath(); | |
4605 | - var h_x = 60 * unit; | |
4606 | - var h_y = 24 * unit; | |
4607 | - var h_r = 40 * unit; | |
4608 | - var cx = h_x + h_r; | |
4609 | - var cy = h_y + h_r; | |
4610 | - context.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
4611 | - context.closePath(); | |
4612 | - context.fill(); | |
4613 | - context.clip(); | |
4614 | - context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); | |
4615 | - context.restore(); | |
4616 | - } | |
4689 | + if(type != 0) { | |
4690 | + | |
4691 | + if (th.data.poster && parseInt(th.data.poster.style) == 2) { | |
4692 | + | |
4693 | + //如果显示会员信息的话 | |
4694 | + if (parseInt(th.data.poster.show_headpic)) { | |
4695 | + //获取坐标 | |
4696 | + var x = parseFloat(th.data.poster.head_x) * 2; | |
4697 | + var y = parseFloat(th.data.poster.head_y) * 2; | |
4698 | + //---绘制圆形要放在最后---- | |
4699 | + context.save(); | |
4700 | + context.beginPath(); | |
4701 | + var h_x = x * unit; | |
4702 | + var h_y = y * unit; | |
4703 | + var h_r = 40 * unit; | |
4704 | + var cx = h_x + h_r; | |
4705 | + var cy = h_y + h_r; | |
4706 | + context.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
4707 | + context.closePath(); | |
4708 | + context.fill(); | |
4709 | + context.clip(); | |
4710 | + context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); | |
4711 | + context.restore(); | |
4712 | + } | |
4713 | + | |
4714 | + } else { | |
4715 | + //---绘制圆形要放在最后---- | |
4716 | + context.save(); | |
4717 | + context.beginPath(); | |
4718 | + var h_x = 60 * unit; | |
4719 | + var h_y = 24 * unit; | |
4720 | + var h_r = 40 * unit; | |
4721 | + var cx = h_x + h_r; | |
4722 | + var cy = h_y + h_r; | |
4723 | + context.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
4724 | + context.closePath(); | |
4725 | + context.fill(); | |
4726 | + context.clip(); | |
4727 | + context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); | |
4728 | + context.restore(); | |
4729 | + } | |
4730 | + | |
4731 | + }; | |
4732 | + | |
4617 | 4733 | |
4618 | 4734 | |
4619 | 4735 | //把画板内容绘制成图片,并回调 画板图片路径 | ... | ... |