Commit 40496a9d98768ae916f0ef747c08f0b2ffb31403
1 parent
51096a59
服务卡自定义模版分页大小设置,商品拼团和秒杀分享海报修改
Showing
2 changed files
with
89 additions
and
55 deletions
components/diy_serviceCard/diy_serviceCard.js
... | ... | @@ -217,7 +217,8 @@ Component({ |
217 | 217 | // await app.request.get("/api/weshop/serviceCard/page?store_id=" + os.stoid + "&goodsidlist=" + str, { |
218 | 218 | await app.request.get("/api/weshop/serviceCard/page?store_id=" + os.stoid + "&ids=" + str, { |
219 | 219 | data: { |
220 | - user_id: user_id | |
220 | + user_id: user_id, | |
221 | + pageSize: th.data.goodscount, | |
221 | 222 | }, |
222 | 223 | isShowLoading: false, |
223 | 224 | success: function(res) { | ... | ... |
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -4682,36 +4682,30 @@ Page({ |
4682 | 4682 | }, |
4683 | 4683 | |
4684 | 4684 | |
4685 | - drawPoster(context, unit, img, vpath) { | |
4685 | + drawPoster(context, unit, img, vpath, type) { | |
4686 | 4686 | // 1.灰色背景 |
4687 | 4687 | context.setFillStyle('#f2f1f6'); |
4688 | 4688 | context.rect(0, 0, 554 * unit, 899 * unit); |
4689 | 4689 | context.fill(); |
4690 | + | |
4690 | 4691 | // 2.商城名称 |
4691 | 4692 | let shopName = this.data.sto_sele_name_1; |
4692 | - // let shopNameLen = context.measureText(shopName); | |
4693 | - // let x_shopNameLen = (554 - shopNameLen.width)/2*unit; | |
4694 | - // console.log('11111111111111',shopNameLen,x_shopNameLen); | |
4695 | 4693 | context.setTextAlign('center'); |
4696 | 4694 | context.setFontSize(26 * unit); |
4697 | 4695 | context.setFillStyle('black'); |
4698 | 4696 | context.fillText(shopName, 277 * unit, 60 * unit); |
4699 | - // // 3.推荐来源 | |
4697 | + | |
4698 | + // 3.推荐来源 | |
4700 | 4699 | let fromText = `来自${getApp().globalData.userInfo.nickname}的推荐`; |
4701 | - // let fromTextLen = context.measureText(fromText); | |
4702 | - // let x_fromText = (375 - fromTextLen.width)/2; | |
4703 | - // console.log('222222',fromTextLen,x_fromText); | |
4704 | 4700 | context.setTextAlign('center'); |
4705 | 4701 | context.setFontSize(22 * unit); |
4706 | 4702 | context.setFillStyle('#96959a'); |
4707 | 4703 | context.fillText(fromText, 277 * unit, 105 * unit); |
4704 | + | |
4708 | 4705 | // 4.海报背景 |
4709 | - // context.beginPath(); | |
4710 | - // context.setStrokeStyle('#f2f1f6'); | |
4711 | 4706 | context.setFillStyle('white'); |
4712 | 4707 | context.fillRect(37 * unit, 157 * unit, 480 * unit, 673 * unit); |
4713 | - // context.stroke(); | |
4714 | - // context.fill(); | |
4708 | + | |
4715 | 4709 | // 5.商品图片 |
4716 | 4710 | // 图片的x坐标 |
4717 | 4711 | let bg_x = 37 * unit |
... | ... | @@ -4732,46 +4726,87 @@ Page({ |
4732 | 4726 | context.arc(bg_x, bg_y + bg_h, 0, Math.PI * 0.5, Math.PI) |
4733 | 4727 | context.clip() |
4734 | 4728 | context.drawImage(img, bg_x, bg_y, bg_w, bg_h); |
4735 | - context.restore() | |
4729 | + context.restore(); | |
4730 | + | |
4736 | 4731 | // 6.强烈推荐 |
4737 | - // context.beginPath(); | |
4738 | - let tj_path = "../../../images/share/q_tj.png"; | |
4739 | - context.beginPath() | |
4740 | - context.drawImage(tj_path, 54 * unit, 648 * unit, 85 * unit, 30 * unit); | |
4741 | - context.setFontSize(16 * unit) | |
4742 | - context.setLineJoin('round'); //交点设置成圆角 | |
4743 | - context.setFillStyle("white") | |
4744 | - context.setTextAlign('left'); | |
4745 | - context.fillText('强烈推荐', 64 * unit, 668 * unit); | |
4732 | + let src = ''; | |
4733 | + context.beginPath(); | |
4734 | + if(type == 0) { // 普通 | |
4735 | + src = '../../../images/share/q_tj.png'; | |
4736 | + context.drawImage(src, 54 * unit, 648 * unit, 85 * unit, 30 * unit); | |
4737 | + context.setFontSize(16 * unit) | |
4738 | + context.setFillStyle("white") | |
4739 | + context.setTextAlign('left'); | |
4740 | + context.fillText('强烈推荐', 64 * unit, 668 * unit); | |
4741 | + }; | |
4742 | + if(type == 1) { // 秒杀 | |
4743 | + src = '../../../images/share/miao_share.png'; | |
4744 | + context.drawImage(src, 54 * unit, 648 * unit, 200 * unit, 36 * unit); | |
4745 | + }; | |
4746 | + if(type == 2) { // 商家和会员团 | |
4747 | + src = '../../../images/share/ct_num.png'; | |
4748 | + context.drawImage(src, 54 * unit, 648 * unit, 120 * unit, 30 * unit); | |
4749 | + context.setTextAlign('left'); | |
4750 | + | |
4751 | + let ct_num = self.data.prom_act.ct_num; | |
4752 | + context.setFontSize(16 * unit) | |
4753 | + context.font = 'normal'; | |
4754 | + context.setFillStyle("red") | |
4755 | + if (ct_num < 10) { | |
4756 | + context.fillText(ct_num + "人拼团", 100 * unit, 670 * unit); | |
4757 | + } else { | |
4758 | + context.fillText(ct_num + "人拼团", 96 * unit, 670 * unit); | |
4759 | + } | |
4760 | + context.setFontSize(22 * unit) | |
4761 | + context.fillText("已拼" + self.data.prom_act.buy_num + "份", 186 * unit, 672 * unit); | |
4762 | + }; | |
4763 | + if(type == 3) { // 阶梯团 | |
4764 | + let list = self.data.prom_act.ct_rylist; | |
4765 | + for (let i = 0; i < list.length; i++) { | |
4766 | + let item = list[i]; | |
4767 | + let wi = i * 90 * unit; | |
4768 | + context.font = 'normal'; | |
4769 | + context.setTextAlign('left'); | |
4770 | + context.setFontSize(16 * unit) | |
4771 | + context.setFillStyle("red") | |
4772 | + context.fillText("¥", 50 * unit + wi, 680 * unit); | |
4773 | + context.setFontSize(22 * unit) | |
4774 | + let pri = parseFloat(item.price).toFixed(2); | |
4775 | + context.fillText(pri, 66 * unit + wi, 680 * unit); | |
4776 | + context.setFillStyle("gray") | |
4777 | + context.fillText("满" + item.rynum + "人", 50 * unit + wi, 716 * unit); | |
4778 | + } | |
4779 | + }; | |
4780 | + | |
4746 | 4781 | // 7.商品价格 |
4747 | - let price = '¥' + this.data.data.shop_price; | |
4748 | - | |
4749 | - if (this.data.card_field && this.data.data[this.data.card_field]) { | |
4750 | - price = '¥' + this.data.data[this.data.card_field]; | |
4751 | - } | |
4752 | - | |
4753 | - | |
4754 | - // if (th.data.prom_act) | |
4755 | - // pri0 = th.data.prom_act.price; | |
4756 | - context.setFontSize(32 * unit); | |
4757 | - context.setFillStyle('#DE1117'); | |
4758 | - context.fillText(price, 54 * unit, 730 * unit); | |
4759 | - // 8.商品标题 | |
4760 | - context.setFontSize(20 * unit); | |
4761 | - context.setFillStyle('#898989'); | |
4762 | - this.draw_Text(context, this.data.data.goods_name, | |
4763 | - 54 * unit, 770 * unit, 240 * unit, 240 * unit, unit); | |
4782 | + if(type != 3) { | |
4783 | + let price = this.data.data.shop_price; | |
4784 | + if (this.data.card_field && this.data.data[this.data.card_field]) { | |
4785 | + price = this.data.data[this.data.card_field]; | |
4786 | + } | |
4787 | + if (this.data.prom_act) price = this.data.prom_price; | |
4788 | + price = parseFloat(price).toFixed(2); | |
4789 | + context.setFontSize(32 * unit); | |
4790 | + context.setFillStyle('#DE1117'); | |
4791 | + context.fillText('¥' + price, 54 * unit, 730 * unit); | |
4792 | + }; | |
4793 | + | |
4794 | + // 8.商品标题 | |
4795 | + context.setFontSize(20 * unit); | |
4796 | + context.setFillStyle('#898989'); | |
4797 | + this.draw_Text(context, this.data.data.goods_name, 54 * unit, 770 * unit, 240 * unit, 240 * unit, unit); | |
4798 | + | |
4764 | 4799 | // 9.小程序码 |
4765 | 4800 | context.drawImage(vpath, 375 * unit, 660 * unit, 120 * unit, 120 * unit); |
4766 | 4801 | context.setFontSize(16 * unit); |
4767 | 4802 | context.setFillStyle('#777'); |
4768 | 4803 | context.fillText('长按识别二维码', 378 * unit, 810 * unit); |
4804 | + | |
4769 | 4805 | // 10.竖线 |
4770 | 4806 | context.beginPath(); |
4771 | 4807 | context.setFillStyle('#eee'); |
4772 | 4808 | context.rect(354 * unit, 670 * unit, 1 * unit, 130 * unit); |
4773 | 4809 | context.fill(); |
4774 | - | |
4775 | 4810 | }, |
4776 | 4811 | |
4777 | 4812 | |
... | ... | @@ -4787,13 +4822,12 @@ Page({ |
4787 | 4822 | |
4788 | 4823 | if (this.data.share_hidden) { |
4789 | 4824 | this.setData({share_hidden: false,}); |
4790 | - } | |
4791 | - ; | |
4825 | + }; | |
4792 | 4826 | |
4793 | 4827 | //类型 0普通商品 1秒杀商品 2商家和会员团 3阶梯团 4阶梯团 |
4794 | 4828 | var type = this.data.prom_type; |
4795 | 4829 | if (type == 2) type = -1; |
4796 | - if (type == 6) type = 2; | |
4830 | + if (type == 6) type = 2; // 6拼团 2团购 | |
4797 | 4831 | |
4798 | 4832 | |
4799 | 4833 | if (this.data.prom_act && this.data.prom_act.kttype == 3) type = 3; |
... | ... | @@ -4847,18 +4881,17 @@ Page({ |
4847 | 4881 | // context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); |
4848 | 4882 | |
4849 | 4883 | |
4850 | - if (type == 0) { // 如果是普通商品,绘制新海报 | |
4851 | - th.drawPoster(context, unit, th.data.share_goods_img, vpath); | |
4884 | + if (type == 0 || type == 1 || type == 2 || type == 3) { // 如果是普通商品,绘制新海报 | |
4885 | + th.drawPoster(context, unit, th.data.share_goods_img, vpath, type); | |
4852 | 4886 | } else { |
4853 | 4887 | context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); |
4854 | - } | |
4855 | - ; | |
4888 | + }; | |
4856 | 4889 | |
4857 | 4890 | // th.drawPoster(context, unit, th.data.share_goods_img, vpath); |
4858 | 4891 | |
4859 | 4892 | |
4860 | 4893 | //-- 是自定义海报的情况下 -- |
4861 | - if (type != 0) { | |
4894 | + if (type != 0 && type != 1 && type != 2 && type != 3) { | |
4862 | 4895 | |
4863 | 4896 | if (th.data.poster && parseInt(th.data.poster.style) == 2) { |
4864 | 4897 | //在线上分享人的情况下 |
... | ... | @@ -4913,7 +4946,7 @@ Page({ |
4913 | 4946 | |
4914 | 4947 | //---产品名称--- |
4915 | 4948 | //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 |
4916 | - if (type != 4 && type != 0) { | |
4949 | + if (type != 4 && type != 0 && type != 1 && type != 2 && type != 3) { | |
4917 | 4950 | context.setFillStyle("black"); |
4918 | 4951 | context.setFontSize(21.3 * unit) |
4919 | 4952 | th.draw_Text(context, share_title, |
... | ... | @@ -4949,7 +4982,7 @@ Page({ |
4949 | 4982 | context.lineTo(wd2 + ut.measureText(pri0, 22 * unit) + 5, 206 * unit); |
4950 | 4983 | context.stroke(); |
4951 | 4984 | |
4952 | - } else if (type == 4 && type != 0) { | |
4985 | + } else if (type == 4 && type != 0 && type != 1 && type != 2 && type != 3) { | |
4953 | 4986 | context.setFillStyle("black"); |
4954 | 4987 | context.setFontSize(21.3 * unit) |
4955 | 4988 | th.draw_Text(context, share_title, |
... | ... | @@ -4977,7 +5010,7 @@ Page({ |
4977 | 5010 | } |
4978 | 5011 | |
4979 | 5012 | //---中间大图--- |
4980 | - if (type != 0) { | |
5013 | + if (type != 0 && type != 1 && type != 2 && type != 3) { | |
4981 | 5014 | context.drawImage(th.data.share_goods_img, 70 * unit, 250 * unit, 408 * unit, 408 * unit); |
4982 | 5015 | } |
4983 | 5016 | ; |
... | ... | @@ -5068,7 +5101,7 @@ Page({ |
5068 | 5101 | ; |
5069 | 5102 | |
5070 | 5103 | break; |
5071 | - case 1: //秒杀商品的展示 | |
5104 | + case -12: //秒杀商品的展示 | |
5072 | 5105 | //---画线--- |
5073 | 5106 | context.setLineWidth(1 * unit) |
5074 | 5107 | context.moveTo(32 * unit, 670 * unit) |
... | ... | @@ -5101,7 +5134,7 @@ Page({ |
5101 | 5134 | } |
5102 | 5135 | break; |
5103 | 5136 | |
5104 | - case 2: //会员团和商家团的展示 | |
5137 | + case -2: //会员团和商家团的展示 | |
5105 | 5138 | //---画线--- |
5106 | 5139 | context.setLineWidth(1 * unit) |
5107 | 5140 | context.moveTo(32 * unit, 670 * unit) |
... | ... | @@ -5146,7 +5179,7 @@ Page({ |
5146 | 5179 | context.drawImage(vpath, 390 * unit, 726 * unit, 136 * unit, 136 * unit); |
5147 | 5180 | } |
5148 | 5181 | break |
5149 | - case 3: //阶梯团的展示 | |
5182 | + case -3: //阶梯团的展示 | |
5150 | 5183 | //---画线--- |
5151 | 5184 | context.setLineWidth(1 * unit) |
5152 | 5185 | context.moveTo(32 * unit, 670 * unit) | ... | ... |