From c76ead9dfe257b6eb613843537e8a6994e4a3674 Mon Sep 17 00:00:00 2001 From: taiyuan Date: Thu, 15 Apr 2021 15:14:09 +0800 Subject: [PATCH] 服务卡项分享 --- packageA/pages/service_share/g_filter.wxs | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ packageA/pages/service_share/service_share.js | 883 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------- packageA/pages/service_share/service_share.json | 7 ++++++- packageA/pages/service_share/service_share.wxml | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- packageA/pages/service_share/service_share.wxss | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 1176 insertions(+), 47 deletions(-) create mode 100644 packageA/pages/service_share/g_filter.wxs diff --git a/packageA/pages/service_share/g_filter.wxs b/packageA/pages/service_share/g_filter.wxs new file mode 100644 index 0000000..9b68b2e --- /dev/null +++ b/packageA/pages/service_share/g_filter.wxs @@ -0,0 +1,85 @@ +var g_filters = { + //-- 判断是不是有等级价 -- + is_has_rank:function(rank_switch,item){ + if(!rank_switch) return false; + if(item.cardprice1 || item.cardprice2 || item.cardprice3) {return true} + return false; + }, + + //-- 判断,不是等级会员时候,要显示的最低等级价和名称 -- + get_card_price:function(goods,all_card,type){ + var price1=parseFloat(goods['cardprice1']); + var price2=parseFloat(goods['cardprice2']); + var price3=parseFloat(goods['cardprice3']); + if(!all_card){ + if(type==0) return 0; + return ""; + } + + var arr=[]; + var min_price= 0; + var min_name=""; + + var min_price=null; + var min_name=null; + //---设置对应的价格名字---- + for(var i=0;i<3;i++) { + var vl=all_card[i]; + if(!vl) continue; + if(vl['CorrPrice']=="Price1" && price1>0) + { + if(min_price==null) { + min_price=price1;min_name=vl['CardName']; + } + else if(price10) + { + if(min_price==null) { + min_price=price2;min_name=vl['CardName']; + } + else if(price20) + { + if(min_price==null) { + min_price=price3;min_name=vl['CardName']; + } + else if(price34) min_name=min_name.substring(0, 8); + return min_name; + }, +} +module.exports = { + is_has_rank:g_filters.is_has_rank, + get_card_price:g_filters.get_card_price, +} \ No newline at end of file diff --git a/packageA/pages/service_share/service_share.js b/packageA/pages/service_share/service_share.js index 43fb45c..5a68c69 100644 --- a/packageA/pages/service_share/service_share.js +++ b/packageA/pages/service_share/service_share.js @@ -1,66 +1,863 @@ -// packageA//pages/service_share/service_share.js +// packageA//pages/goods_share/goods_share.js +var app=getApp(),oo = app.globalData.setting,os=oo,ut = require("../../../utils/util.js"); Page({ - /** * 页面的初始数据 */ data: { - + // 控制价格 + active1: false, + // 控制佣金 + active2: false, + url:oo.imghost, + orderField:'sales_sum', + orderType:'desc', + list:[], + is_load:0, //是否正在加载 + is_no_data:0, //没有数据 + is_no_more:0, //没有更多数据 + key_str:'', + pattern:0, //分成的方式 + currentPage:1, //当前的页码 + + canvasHidden: 1, //-- 隐藏画布 -- + dis_switch:0, //-- 分销开关 -- + pattern:0, //-- 分成的方式 -- + share_hidden:1, //-- 分享的按钮隐藏 -- + share_good:null //--- 要分享的商品 --- }, - /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { - - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - + var th=this; + //接受有没有导购的参数 + var first_leader=options.first_leader; + var StaffId=options.StaffId; + var StorageId=options.StorageId; + if(first_leader){ + //-- user_id代过来免登录 -- + getApp().globalData.user_id=first_leader; + getApp().getUserFir(); + + //设置分享会员和导购id和归属门店ID + this.setData({first_leader:first_leader,StaffId:StaffId,StorageId:StorageId}); + } + this.requestGoodsList(); + + //-- 自定义海报 -- + getApp().request.promiseGet("/api/weshop/goods/poster/page",{ + data:{store_id:os.stoid, type:1, is_use:1 } + }).then(res=>{ + if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData[0] ){ + + var poster_data=res.data.data.pageData[0]; + var json_str=poster_data.jsonStr; + + if(json_str){ + var json_data=JSON.parse(json_str); + if(json_data.bg_img){ + + //-- 把图片那到本地 -- + wx.getImageInfo({ + src:json_data.bg_img, + success: function(res) { + var path= res.path; + th.setData({share_b_img:path}) + }, + fail: function(res) {} + }); + } + + th.setData({poster:json_data}) + + } + } + }) + + //获取分销的配置 + getApp().request.promiseGet("/api/weshop/storeDistribut/get/"+oo.stoid,{}).then(res=>{ + if(res.data.code==0){ + th.setData({dis_switch:res.data.data.switch,pattern:res.data.data.pattern}); + } + }); + //获取用户设备信息,屏幕宽度 + wx.getSystemInfo({ + success: res => { + th.setData({ + screenWidth: res.screenWidth + }) + } + }); + }, - /** - * 生命周期函数--监听页面显示 - */ + /*** 生命周期函数--监听页面显示***/ onShow: function () { - + var th=this; + getApp().getConfig2(function(rs){ + //计算等级价相关 + var swithc_list=rs.switch_list; + var sw_arr=JSON.parse(swithc_list); + //---如果后台又开等级卡的开关--- + if(sw_arr.rank_switch && sw_arr.rank_switch=="2"){ + th.setData({rank_switch:true}); + var user=getApp().globalData.userInfo; + + //---回调卡的列表--- + th.getPlusCardType(function(ob){ + th.setData({card_list:ob.card_list}); + + var ti=setInterval(function(){ + if(!user) return false; + clearInterval(ti); + + if(user.card_field && user['card_expiredate']){ + var str = user['card_expiredate'].replace(/-/g, '/'); + var end = new Date(str); + end = Date.parse(end) / 1000; + var now = ut.gettimestamp(); + //--- 判断是等级会员,且在有效期范围内 --- + if(user.card_field && now4) card_name=card_name.substring(0,4); + th.setData({card_field:user.card_field,card_name:card_name,card_list:ob.card_list}); + } + } + },1000) + }) + + } + }); }, /** * 生命周期函数--监听页面隐藏 */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** + onHide: function () {}, + /**e * 用户点击右上角分享 */ onShareAppMessage: function () { + var th = this; + var item=this.data.share_good; + var price = item.money; + var title= item.serviceName; + var img=this.data.url+item.original_img; + + var url="/pages/goods/goodsInfo/goodsInfo?goods_id=" + item.goods_id; + if(getApp().globalData.user_id){ + url+="&first_leader="+getApp().globalData.user_id; + } + var ob={ + title: price + "元 " +title, + path:url, + imageUrl: img, + }; + th.setData({share_hidden:1}); + th.insert_goods_share(); + return ob; + + }, + + // 点击价格排序 + sort1() { + if(this.data.active2) { + this.setData({ + active2: !this.data.active2 + }); + }; + if(this.data.orderField!="shop_price"){ + this.setData({ + active1: 1,orderField:'shop_price',orderType:'asc',is_no_data:0,is_no_more:0,list:[], + }); + }else{ + + var ty=this.data.orderType=='asc'?'desc':'asc'; + this.setData({ + orderType:ty,is_no_data:0,is_no_more:0,list:[], + }); + } + this.data.is_load=0; + this.data.currentPage=1; + this.requestGoodsList(); + + }, + // 点击佣金排序 + sort2() { + if(this.data.active1) { + this.setData({ + active1: !this.data.active1 + }); + }; + if(this.data.orderField!="commission"){ + + if(this.data.pattern==0){ + this.setData({ + active2: 1,orderField:'commission',orderType:'asc',is_no_data:0,is_no_more:0,list:[], + }); + }else{ + this.setData({ + active2: 1,orderField:'(fir_rate+sec_rate+thi_rate)',orderType:'asc',is_no_data:0,is_no_more:0,list:[], + }); + } + + + }else{ + this.setData({ + orderType: (this.data.orderType=='asc'?'desc':'asc'),is_no_data:0,is_no_more:0,list:[], + }); + } + this.data.is_load=0; + this.data.currentPage=1; + this.requestGoodsList(); + }, + + //-- ----销量---- + sale_sort(){ + if(this.data.orderField!="sales_sum"){ + this.setData({ + active1: 0,active2:0,orderType:'desc',is_no_data:0,is_no_more:0,orderField:'sales_sum',list:[], + }); + this.data.is_load=0; + this.data.currentPage=1; + this.requestGoodsList(); + } + }, + + //-- ---最新--- + new_sort:function(){ + if(this.data.orderField!="is_new"){ + this.setData({ + active1: 0,active2:0,orderType:'desc',is_no_data:0,is_no_more:0,orderField:'is_new',list:[], + }); + this.data.is_load=0; + this.data.currentPage=1; + this.requestGoodsList(); + } + }, + + requestGoodsList:function(){ + var th=this; + if(th.data.is_load) return false; //-- 正在加载 + if(th.data.is_no_data) return false; //-- 没有数据 + if(th.data.is_no_more) return false; //-- 没有更多 + th.data.is_load=1; + + var url="/api/weshop/serviceCard/page"; + var req_data={ + page:this.data.currentPage, + is_mainshow:1, + isonsale:1, + store_id:oo.stoid, + orderField:this.data.orderField, + orderType:this.data.orderType, + } + if(this.data.key_str && this.data.key_str.trim()){ + var str=this.data.key_str.trim(); + req_data.key_str=str; + } + //-- ---调用接口---- + app.request.promiseGet(url,{data:req_data,isShowLoading:1}).then(res=>{ + th.data.is_load=0; + if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0){ + th.data.currentPage++; + var data=res.data.data.pageData; + if(res.data.data.page*10>res.data.data.total){th.setData({is_no_more:1});} + var list=th.data.list; + list=list.concat(data); + th.setData({list:list}); + }else{ + if(th.data.currentPage==1){ + th.setData({is_no_data:1}); + } + } + }) + }, + + + //--- 获取卡类列表 --- + getPlusCardType: function (func) { + var storid = oo.stoid; + var th = this; + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { + + if(res.data.code!=0 || !res.data.data){ + var ob={"card_list":[],"name_map":''}; + func(ob); + return false; + } - } + var plusCard = res.data.data; + var arr = [1219, 2089, 3031]; + var new_arr = new Array(); + var card_name_map=new Map(); + var user = getApp().globalData.userInfo; + for (var i = 0; i < plusCard.length; i++) { + if ((!user || user.card_field==null || user.card_field=="") && (plusCard[i].IsStopBuy==true)) { + continue; + } + var name="card"+plusCard[i].CorrPrice.toLowerCase(); + card_name_map.set(name,plusCard[i].CardName); + new_arr.push(plusCard[i]); + } + + var ob={"card_list":new_arr,"name_map":card_name_map}; + func(ob); + }) + }, + + + //---图片失败,默认图片--- + bind_bnerr2: function (e) { + var _errImg = e.target.dataset.errorimg; + var _errObj = {}; + _errObj[_errImg] ="/miniapp/images/default_g_img.gif"; + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; + }, + //-- ---更多加载---- + refresh:function(){ + this.requestGoodsList(); + }, + + //--定义的保存图片方法,分享团--- + saveImageToPhotosAlbum: function() { + //--先判断会员状态-- + var user_info = getApp().globalData.userInfo; + if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { + //getApp().my_warnning("请先登录",0,this); + wx.navigateTo({ url: '/pages/togoin/togoin', }) + return false; + } + //类型 0普通商品 1秒杀商品 2商家和会员团 3阶梯团 + var type = 0; + wx.showLoading({ + title: '生成中...', + }) + var that = this, th = that; + //设置画板显示,才能开始绘图 + that.setData({ + canvasHidden: false,share_hidden:1 + }) + + //点击分享 + this.insert_goods_share(); + + var app = getApp(); + var unit = that.data.screenWidth / 750 * 1.35; //基础单位, + var scene = th.data.share_good.goods_id+""; + var user_id=getApp().globalData.user_id?getApp().globalData.user_id:0; + if(user_id>0){ + scene+="_"+user_id; + } + + ///二微码 + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/goods/goodsInfo/goodsInfo"; + + //读取文件成功则OK-- + wx.getImageInfo({ + src: path3, + success: function(res) { + //回调写法 + th.get_head_temp(th.get_goods_temp, function() { + var vpath = res.path; + var context = wx.createCanvasContext('share'); + //先画背景 + var pg_path = "../../../images/share/share_bg.png"; + // var pg_path = "../../../images/share/share_bg.png"; + + //-- 如果有自定义海报的时候,判断背景的图片 -- + if(th.data.share_b_img){ + pg_path=th.data.share_b_img; + } + context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); + + //-- 是自定义海报的情况下 -- + if(th.data.poster && parseInt(th.data.poster.style)==2){ + //在线上分享人的情况下 + if(parseInt(th.data.poster.show_headpic)){ + //获取坐标 + var x=parseFloat(th.data.poster.head_x)*2; + var y=parseFloat(th.data.poster.head_y)*2; + var x1=(x+90) *unit; + var y1=(y+50) *unit; + //--昵称--- + context.setFontSize(24 * unit) + context.setFillStyle("black") + context.fillText(app.globalData.userInfo.nickname, x1, y1); + var width = 24 * app.globalData.userInfo.nickname.length * unit + 4 * unit; + //强烈推荐 改许程 + var tj_path = "../../../images/share/q_tj.png"; + context.drawImage(tj_path, x1 + width, y1-22*unit, 85 * unit, 30 * unit); + context.setFontSize(16 * unit) + context.setLineJoin('round'); //交点设置成圆角 + context.setFillStyle("white") + context.fillText('强烈推荐', x1 + width+8*unit, y1-1*unit); + } + }else{ + //--昵称--- + context.setFontSize(24 * unit) + context.setFillStyle("black") + context.fillText(app.globalData.userInfo.nickname, 152 * unit, 76 * unit); + var width = 24 * app.globalData.userInfo.nickname.length * unit + 2 * unit; + //强烈推荐 改许程 + var tj_path = "../../../images/share/q_tj.png"; + context.drawImage(tj_path, 152 * unit + width, 54 * unit, 85 * unit, 30 * unit); + context.setFontSize(16 * unit) + context.setLineJoin('round'); //交点设置成圆角 + context.setFillStyle("white") + context.fillText('强烈推荐', 149 * unit + width + 15 * unit, 76 * unit); + } + + + //---产品名称--- + //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 + context.setFillStyle("black"); + context.setFontSize(21.3 * unit) + // th.draw_Text(context, th.data.share_good.goods_name, + th.draw_Text(context, th.data.share_good.serviceName, + 38 * unit, 180 * unit, 200 * unit, 279 * unit, unit); + //------产品的价格------- + context.setFontSize(23 * unit) + context.setFillStyle("red") + context.fillText("¥", 416 * unit, 185 * unit); + context.setFontSize(31 * unit) + var pri0 = th.data.share_good.money; + // var pri0 = th.data.share_good.shop_price; + if (th.data.prom_act) + pri0 = th.data.prom_act.price; + + pri0 = parseFloat(pri0).toFixed(2); + context.fillText(pri0, 438 * unit, 185 * unit); + //---市场价划掉--- + // sty:这里不需要 + // context.setFillStyle("gray") + // context.setFontSize(22 * unit) + // context.fillText("¥" + th.data.share_good.market_price, 426 * unit, 213 * unit); + // context.setStrokeStyle('gray') + // context.setLineWidth(1 * unit) + // context.moveTo(426 * unit, 206 * unit) + // context.lineTo(510 * unit, 206 * unit) + // context.stroke(); + + //---中间大图--- + context.drawImage(th.data.share_goods_img, 68 * unit, 242 * unit, 410 * unit, 410 * unit); + //-------大图后面就不一样了----------- + switch (type) { + case 0: //普通商品的展示 + //中间的几个字 + if(th.data.poster && parseInt(th.data.poster.style)==2 ){ + if(parseInt(th.data.poster.show_quality)){ + var g_path = "../../../images/share/s_gou.png"; + context.drawImage(g_path, 56 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("正品保证", 84 * unit, 690 * unit); + + context.drawImage(g_path, 218 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("纯实体店", 246 * unit, 690 * unit); + + context.drawImage(g_path, 388 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("官方验证", 420 * unit, 690 * unit); + } + + }else{ + var g_path = "../../../images/share/s_gou.png"; + context.drawImage(g_path, 56 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("正品保证", 84 * unit, 690 * unit); + + context.drawImage(g_path, 218 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("纯实体店", 246 * unit, 690 * unit); + + context.drawImage(g_path, 388 * unit, 670 * unit, 22 * unit, 22 * unit); + context.setFillStyle("red") + context.setFontSize(18 * unit) + context.fillText("官方验证", 420 * unit, 690 * unit); + } + + //---画线--- + context.setLineWidth(1 * unit) + context.moveTo(32 * unit, 710 * unit) + context.lineTo(520 * unit, 710 * unit) + context.stroke(); + //---文字--- + context.setFillStyle("black") + context.setFontSize(22 * unit) + // 原来start ---> + context.fillText("优惠乐翻天,精彩就在你身边", 40 * unit, 776 * unit); + context.fillText("长按识别二维码,立即开始抢购", 40 * unit, 826 * unit); + + //---二维吗图--- + //-- 自定义海报 -- + if(th.data.poster){ + var erm_x= parseFloat(th.data.poster.ewm_x)*2; + var erm_y= parseFloat(th.data.poster.ewm_y)*2; + context.drawImage(vpath, erm_x * unit, erm_y * unit, 120 * unit, 120 * unit); + }else{ + //---二维吗图--- + context.drawImage(vpath, 420 * unit, 726 * unit, 120 * unit, 120 * unit); + } + + break; + case 1: //秒杀商品的展示 + //---画线--- + context.setLineWidth(1 * unit) + context.moveTo(32 * unit, 670 * unit) + context.lineTo(520 * unit, 670 * unit) + context.stroke(); + + //画秒杀的图片 + var miaos_path = '../../../images/share/miao_share.png'; + context.drawImage(miaos_path, 43 * unit, 700 * unit, 222 * unit, 40 * unit); + + //---文字--- + context.setFontSize(22 * unit) + context.setFillStyle("black") + context.fillText("特惠好物,限时秒杀", 40 * unit, 806 * unit); + context.fillText("长按识别二维码,立即开始抢购", 40 * unit, 846 * unit); + //---二维吗图--- + //-- 自定义海报 -- + if(th.data.poster){ + var erm_x= parseFloat(th.data.poster.ewm_x)*2; + var erm_y= parseFloat(th.data.poster.ewm_y)*2; + context.drawImage(vpath, erm_x * unit, erm_y * unit, 120 * unit, 120 * unit); + }else{ + //---二维吗图--- + context.drawImage(vpath, 420 * unit, 726 * unit, 120 * unit, 120 * unit); + } + + + break; + + case 2: //会员团和商家团的展示 + //---画线--- + context.setLineWidth(1 * unit) + context.moveTo(32 * unit, 670 * unit) + context.lineTo(520 * unit, 670 * unit) + context.stroke(); + //---文字--- + context.setFontSize(22 * unit) + context.font = 'normal bold'; + context.setFillStyle("black") + context.fillText("好物拼起来,拼拼更划算", 40 * unit, 726 * unit); + + //绘制成团图片 + var ct_img = "../../../images/share/ct_num.png"; + context.drawImage(ct_img, 40 * unit, 740 * unit, 120 * unit, 30 * unit); + var ct_num = th.data.prom_act.ct_num; + context.setFontSize(14 * unit) + context.font = 'normal'; + context.setFillStyle("red") + if (ct_num < 10) { + context.fillText(ct_num + "人拼团", 92 * unit, 760 * unit); + } else { + context.fillText(ct_num + "人拼团", 86 * unit, 760 * unit); + } + context.setFontSize(22 * unit) + context.fillText("已拼" + th.data.prom_act.buy_num + "份", 166 * unit, 763 * unit); + context.setFillStyle("gray") + context.fillText("快来和我一起拼团吧!", 40 * unit, 826 * unit); + context.setFillStyle("black") + context.font = 'normal bold 18px sans-serif'; + context.setFontSize(21.3 * unit) + context.fillText("长按识别二维码,立即参团", 40 * unit, 856 * unit); + //---二维吗图--- + //-- 自定义海报 -- + if(th.data.poster){ + var erm_x= parseFloat(th.data.poster.ewm_x)*2; + var erm_y= parseFloat(th.data.poster.ewm_y)*2; + context.drawImage(vpath, erm_x * unit, erm_y * unit, 120 * unit, 120 * unit); + }else{ + //---二维吗图--- + context.drawImage(vpath, 420 * unit, 726 * unit, 120 * unit, 120 * unit); + } + break + case 3: //阶梯团的展示 + //---画线--- + context.setLineWidth(1 * unit) + context.moveTo(32 * unit, 670 * unit) + context.lineTo(520 * unit, 670 * unit) + context.stroke(); + //---文字--- + context.setFontSize(22 * unit) + context.font = 'normal bold'; + context.setFillStyle("black") + context.fillText("好物拼起来,拼拼更划算", 40 * unit, 726 * unit); + //---绘制中间阶梯的价格--- + var list = th.data.prom_act.ct_rylist; + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var wi = i * 90 * unit; + context.font = 'normal'; + context.setFontSize(16 * unit) + context.setFillStyle("red") + context.fillText("¥", 40 * unit + wi, 756 * unit); + context.setFontSize(22 * unit) + var pri = parseFloat(item.price).toFixed(2); + context.fillText(pri, 56 * unit + wi, 756 * unit); + context.setFillStyle("gray") + context.fillText("满" + item.rynum + "人", 40 * unit + wi, 786 * unit); + } + //----------------下面部分---------------- + context.setFillStyle("gray") + context.fillText("快来和我一起拼团吧!", 40 * unit, 830 * unit); + context.setFillStyle("black") + context.font = 'normal bold 18px sans-serif'; + context.setFontSize(22 * unit) + context.fillText("长按识别二维码,立即参团", 40 * unit, 860 * unit); + + //-- 自定义海报 -- + if(th.data.poster){ + var erm_x= parseFloat(th.data.poster.ewm_x)*2; + var erm_y= parseFloat(th.data.poster.ewm_y)*2; + context.drawImage(vpath, erm_x * unit, erm_y * unit, 120 * unit, 120 * unit); + }else{ + //---二维吗图--- + context.drawImage(vpath, 420 * unit, 726 * unit, 120 * unit, 120 * unit); + } + break + } + + + //--- 如果是自定义海报的时候 --- + if(th.data.poster && parseInt(th.data.poster.style)==2){ + //如果显示会员信息的话 + if(parseInt(th.data.poster.show_headpic)){ + //获取坐标 + var x= parseFloat(th.data.poster.head_x)*2; + var y=parseFloat(th.data.poster.head_y)*2; + //---绘制圆形要放在最后---- + context.save(); + context.beginPath(); + var h_x = x* unit; + var h_y = y * unit; + var h_r = 40 * unit; + var cx = h_x + h_r; + var cy = h_y + h_r; + context.arc(cx, cy, h_r, 0, Math.PI * 2, false); + context.closePath(); + context.fill(); + context.clip(); + context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); + context.restore(); + } + + }else{ + //---绘制圆形要放在最后---- + context.save(); + context.beginPath(); + var h_x = 60 * unit; + var h_y = 24 * unit; + var h_r = 40 * unit; + var cx = h_x + h_r; + var cy = h_y + h_r; + context.arc(cx, cy, h_r, 0, Math.PI * 2, false); + context.closePath(); + context.fill(); + context.clip(); + context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); + context.restore(); + } + + + //把画板内容绘制成图片,并回调 画板图片路径 + context.draw(false, function() { + setTimeout(function() { + wx.canvasToTempFilePath({ + x: 0, + y: 0, + width: 750, + height: 1217, + destWidth: 1.2 * 750 * 750 / that.data.screenWidth, + destHeight: 1.2 * 1217 * 750 / that.data.screenWidth, + canvasId: 'share', + success: function(res) { + that.setData({ + shareImgPath: res.tempFilePath, + canvasHidden: true + }) + if (!res.tempFilePath) { + wx.showModal({ + title: '提示', + content: '图片绘制中,请稍后重试', + showCancel: false + }) + return false; + } + wx.previewImage({ + //将图片预览出来 + urls: [that.data.shareImgPath] + }); + wx.hideLoading(); + } + }) + }, 500) + + }); + }); + } + }); + + }, + + //点击分享商品 + share_good:function(e){ + //--先判断会员状态-- + var user_info = getApp().globalData.userInfo; + if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { + //getApp().my_warnning("请先登录",0,this); + wx.navigateTo({ url: '/pages/togoin/togoin', }) + return false; + } + + var index=e.currentTarget.dataset.index; + var item=this.data.list[index]; + this.setData({share_hidden:0,share_good:item}); + }, + + cancel:function(){ + this.setData({share_hidden:1}); + }, + + //--获取头像的本地缓存,回调写法-- + get_head_temp: function(tt, func) { + var ee = this; + if (ee.data.share_head) { + tt(func); + return false; + } + //---获取分享图片的本地地址,头像和商品图片---- + var path2 = getApp().globalData.userInfo.head_pic; + if (path2 == "") { + ee.data.share_head = "../../../images/share/hui_hear_pic.png"; + tt(func); + } else { + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); + path2 = path2.replace("https://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); + wx.getImageInfo({ + src: path2, + success: function(res) { + //res.path是网络图片的本地地址 + ee.data.share_head = res.path; + tt(func); + }, + fail: function(res) { + ee.data.share_head = "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 + tt(func); + } + }); + } + }, + //--获取商品图片的本地缓存,回调写法-- + get_goods_temp: function(tt) { + var ee = this; + //获取商品是分享图信息 + wx.getImageInfo({ + src: ee.data.url+ee.data.share_good.original_img, + success: function(res) { + //res.path是网络图片的本地地址 + ee.data.share_goods_img = res.path; + tt(); + }, + fail: function(res) { + ee.data.share_goods_img = "../../../images/share/default_g_img.gif"; //分享的图片不能用网络的 + tt(); + } + }); + }, + + //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 + draw_Text: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, unit) { + var lineWidth = 0; + var lastSubStrIndex = 0; //每次开始截取的字符串的索引 + var han = 0; + for (let i = 0; i < str.length; i++) { + if (han == 2) return; + //lineWidth += ctx.measureText(str[i]).width; + lineWidth += ut.measureText(str[i], 21.3 * unit); + if (lineWidth > canvasWidth) { + han++; + + if (han == 2) + ctx.fillText(str.substring(lastSubStrIndex, i) + '...', leftWidth, initHeight); //绘制截取部分 + else + ctx.fillText(str.substring(lastSubStrIndex, i), leftWidth, initHeight); + + initHeight += 22; //22为字体的高度 + lineWidth = 0; + lastSubStrIndex = i; + titleHeight += 20; + } + if (i == str.length - 1) { //绘制剩余部分 + ctx.fillText(str.substring(lastSubStrIndex, i + 1), leftWidth, initHeight); + } + } + }, + + //-------搜索的相关功能------ + set_search_value:function(e){ + var key_str=e.detail.value; + if(key_str) key_str=key_str.trim(); + this.setData({key_str:key_str}); + + }, + search_data:function(){ + this.setData({ + is_no_data:0,is_no_more:0,list:[], + }); + this.data.is_load=0; + this.data.currentPage=1; + this.requestGoodsList(); + }, + + go_goods:function(e){ + var index=e.currentTarget.dataset.index; + var item=this.data.list[index]; + var url="/pages/goods/goodsInfo/goodsInfo?goods_id=" + item.goods_id; + getApp().goto(url); + }, + + insert_goods_share:function(){ + var th = this; + var item=this.data.share_good; + var url="/api/weshop/sharetypeList/save"; + var req_data={ + shareActId:item.goods_id, + shareActName:item.goods_name, + shareType:2, + shareUserId:th.data.first_leader, + shareStaffId:th.data.StaffId, + shareStorageId:th.data.StorageId, + shareTime:ut.gettimestamp(), + storeId:os.stoid + } + //插入数据 + getApp().request.post(url,{ + data:req_data, + success:function(){ + + } + }); + + //收入线下数据 + req_data.userId=th.data.first_leader; + delete req_data.shareUserId; + //插入数据 + getApp().request.post('/api/weshop/MdShareType/saveShare',{ + data:req_data, + success:function(){} + }) + + } + + }) \ No newline at end of file diff --git a/packageA/pages/service_share/service_share.json b/packageA/pages/service_share/service_share.json index 8835af0..9368c19 100644 --- a/packageA/pages/service_share/service_share.json +++ b/packageA/pages/service_share/service_share.json @@ -1,3 +1,8 @@ { - "usingComponents": {} + "navigationBarTitleText": "服务卡项分享", + "usingComponents": { + "nodata": "/components/nodata/nodata", + "share_button": "/components/share/share" + }, + "enablePullDownRefresh": false } \ No newline at end of file diff --git a/packageA/pages/service_share/service_share.wxml b/packageA/pages/service_share/service_share.wxml index 9775d45..26b456f 100644 --- a/packageA/pages/service_share/service_share.wxml +++ b/packageA/pages/service_share/service_share.wxml @@ -1,2 +1,102 @@ - -packageA//pages/service_share/service_share.wxml + + + + + + + 搜索 + + + + + + 销量 + + + 价格 + + + 价格 + + + + + 最新 + + + + + + + + + + {{item.serviceName}} + 有效天数:{{item.validDays}} + + ¥{{item.money}} + 已售:{{item.sales_sum}} + + + + + + + + + + + + + + + + 分享 + + + + + + 暂无数据 + - 已全部加载 - + + + + + + + + diff --git a/packageA/pages/service_share/service_share.wxss b/packageA/pages/service_share/service_share.wxss index 2deaaef..969bd02 100644 --- a/packageA/pages/service_share/service_share.wxss +++ b/packageA/pages/service_share/service_share.wxss @@ -1 +1,143 @@ -/* packageA//pages/service_share/service_share.wxss */ \ No newline at end of file +/* packageA//pages/goods_share/goods_share.wxss */ +.red { + color: #FE6867; +} +.gray { + color: #7b7b7b; +} +page { + background-color: #f2f2f2; + height: 100%; +} +.container { + background-color: white; + height: 100%; +} +.search-container { + display: flex; + padding: 26rpx 20rpx; + border-bottom: 2rpx solid #f8f8f8; +} +.input-container { + flex: 1; + border-radius: 6rpx 0 0 6rpx; + overflow: hidden; +} +.search { + background-color: #f0f0f0; + padding: 10rpx 20rpx; + font-size: 28rpx; +} +.btn-search { + background-color: #FE6867; + color: white; + padding: 0 30rpx; + display: flex; + align-items: center; + border-radius: 0 6rpx 6rpx 0; +} +.title { + display: flex; + font-size: 30rpx; + border-bottom: 2rpx solid #f8f8f8; +} +.title .iconfont { + color: #ccc; + font-size: 16rpx; + margin-left: 8rpx; +} +.title-item { + width: 25%; + box-sizing: border-box; + text-align: center; + padding: 20rpx; +} +.list-container { + height: calc(100% - 118rpx); +} +.list { + height: calc(100% - 82rpx); + background-color: #f2f2f2; +} +.list-item { + display: flex; + padding: 20rpx; + border-bottom: 2rpx solid #f8f8f8; + background-color: white; +} +.img-container { + background-color: #f0f0f0; + width: 280rpx; + height: 248rpx; + display: flex; + align-items: center; + justify-content: center; +} +.img-container:after { + /* font-family: iconfont; + content: '\e8c1'; + color: #bbb; + font-size: 80rpx; */ +} +.details { + flex: 1; + padding-left: 20rpx; +} +.btn-share { + display: inline-block; + background-color: #FE6867; + color: white; + padding: 8rpx 30rpx; + border-radius: 6rpx; +} +.pdt14 { + padding-top: 14rpx; +} + +.no-more { + line-height: 3; + color: #ccc; + background-color: #f2f2f2; +} +.nodata { + text-align: center; + background-color: #f2f2f2; +} + +.name { + height: 76rpx; +} + +.plus_show{ + background-color: #FE6867; + color: #fff; + padding: 3rpx 5rpx; + border-radius:8rpx ; + margin-left: 10rpx; + margin-right: 5rpx; +} + +.card_bg { + box-sizing: border-box; + padding: 2rpx 10rpx; + height: 28rpx; + border-radius: 26rpx; + font-size: 18rpx; + line-height: 28rpx; + max-width: 210rpx; + background: #333; + color: #fff; + margin-left: 8rpx; +} + +.card_bg image { + width: 19rpx; + height: 19rpx; + margin-right: 8rpx; +} + +.txt_line{ + text-decoration: line-through; position: relative; + top: 23rpx;color: #adadad; + font-size: 24rpx; margin-left: 10rpx; + } -- libgit2 0.21.4