var e = getApp(), a = e.globalData.setting, os = a, t = e.request, d = e.globalData; var ut = require("../../../../utils/util.js"); var com = require("../../../../pages/giftpack/public/buy_com.js"); Page({ data: { url: a.url, //接口网址 iurl: a.imghost, //图片前缀网址 isBuy: 0, getGiftID: '', //礼包id giftImage: '', giftTitle: '', giftDate: '', giftPrice: '', giftIntegral: '', giftPosPrice: '', giftQty: '', giftRemark: '', giftType: '', actTitle: '', getUrl: '', wareCard: [], orderSn: "", //订单编号 lbId: "", code: "", //核销码 c_state: "0", //判断是否已经使用, 0正常 1已使用 2已过期 is_lb: 0, //是否有礼包 default_color: null, first_leader: e.globalData.first_leader || 0, // 推荐人ID //门店相关 ismend: 0, is_sec_mend: 0, sto_sele_name: "", //选中的门店名称 sto_sele_id: "", //选中的门店id sto_sele_distr: "", //选择的门店的配送方式 is_show_sto_cat: 1, //是否显示门店分类 only_pk: null, all_sto: null, sec_sto: null, //选择了的门店分类 pickpu_list: null, //读出的所有门店list def_pickpu_list: null, //一开始5个门店list sec_pick_index: 0, //第二级门店选择ID fir_pick_index: 0, //第一级门店选择ID all_pick_list: null,//所有的门店先记录起来 select_store: 0, //选择更多 index: 1, more_store: 0, //选择门店 sort_store: 0, //门店分类 choice_sort_store: 0, //选择分类门店 new_user: 0, //新用户 def_pick_store: null, // 默认的门店 fir_def_store: null, //客户默认的门店的 lat: null, //维度 lon: null, //经度 is_get_local_ok: 0, //获取坐标是否完成 region_name: "门店分类", //区域的名字 is_gps: 1, open_ind_store: 0, //哪里打开的门店列表的控制属性 default_store: {}, //创建添加默认门店地址的对象 store: 0, openSpecModal: 0, sto_sele_name_1: '', share_goods_img:'', //礼包的分享图 giftImageCover:null, canvasHidden:true, screenWidth: 0 }, onLoad: function (options) { var th = this; options.isBuy=0 this.setData({ params: options, }) // getApp().getConfig(function (e) { // th.setData({sto_sele_name_1: e.store_name}) // }) // getApp().getConfig2(function (e) { // var json_d = JSON.parse(e.switch_list); // th.setData({ // bconfig: e, // sys_switch: json_d, // is_retail_price: json_d.is_retail_price || 0 // }); // }) //获取用户设备信息,屏幕宽度 wx.getSystemInfo({ success: res => { th.setData({ screenWidth: res.screenWidth }) } }); }, init() { let options = this.data?.params; // this.data == null ? undefined:this.data.params var th = this; this.setData({ getUserID: d.user_id, getStorageID: a.stoid, }) if(!options.lbId && options.scene){ var gid_str = decodeURIComponent(options.scene); gid_str = gid_str.split("_"); options.lbId=gid_str[0]; options.first_leader=gid_str[1]; options.isBuy=1; } this.setData({ isBuy: options.isBuy, getGiftID: options.lbId, orderSn: options.orderSn, flag: options.flag, // 如果从商品详情页的促销处点击专享礼包跳转到此页,则flag为1 }) if (options.lbId) th.data.lbId = options.lbId; //-- 获取分享人的ID -- var first_leader = options.first_leader || getApp().globalData.first_leader; if (first_leader) { this.setData({ first_leader, }) //-- user_id代过来免登录 -- getApp().globalData.first_leader = first_leader; //调用接口判断是不是会员 getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_id = res.data.data.id; } }) } // th.close(); if (this.data.flag == 1) { this.getZxlbDetails(); } else { this.GetMyGiftList(); // if (this.data.isBuy == 0) { // this.GetMyGiftList(); // } else if (this.data.isBuy == 1) { // this.GetBuyGiftList(); // } } }, onShow: function () { getApp().check_can_share(this); getApp().is_Single_page(this, function () { //--先判断会员状态-- var user_info = getApp().globalData.userInfo; // if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { // getApp().goto('/packageE/pages/togoin/togoin'); // return false; // } this.init(); }) }, GetBuyPrice: function (e) { var that = this.data; var th = this; //如果还没有开始的话 if (th.data.isStart != 1) { getApp().my_warnning("活动还没有开始", 0, th); return false; } this.data.payMoney = th.data.sele_g.payMoney; th.setData({buyType: 2}) if (th.data.sele_g.is_pickup) { th.setData({ openSpecModal: 1 }) } else { var my_confirm = th.selectComponent("#my_confirm"); //组件的id my_confirm.open( "是否确定购买该礼包", "取消", "确定", function () { my_confirm.open_cancel(0); }, function () { my_confirm.open_cancel(0); com.buy_libao(th) } ) } }, GetBuyIntegral: function (e) { var that = this.data; var th = this; //如果还没有开始的话 if (th.data.isStart != 1) { getApp().my_warnning("活动还没有开始", 0, th); return false; } th.setData({buyType: 1}); if (th.data.sele_g.is_pickup) { th.setData({ openSpecModal: 1 }) } else { var my_confirm = th.selectComponent("#my_confirm"); //组件的id my_confirm.open( "是否确定兑换该礼包", "取消", "确定", function () { my_confirm.open_cancel(0); }, function () { my_confirm.open_cancel(0); com.buy_libao(th) }) } }, GetMyGiftList: function () { var _this = this; var th = this; getApp().request.get('/api/weshop/marketing/my/giftbag/detail/get', { isShowLoading: true, data: { "storeId": a.stoid, //商家ID "userId": th.data.params.userId, //用户ID "orderSn": th.data.orderSn // "userId": d.user_id, //用户ID // "orderSn": th.data.orderSn // "giftBagId":th.data.params.lbId }, success: function (res) { if (res.data.code == 0) { console.log('商品------++') console.log(res) th.setData({ giftImage: th.data.iurl + res.data.data.lbUrl, giftImageCover: th.data.iurl + (th.data.params.cover_img ? th.data.params.cover_img: res.data.data.lbUrl), giftTitle: res.data.data.giftTitle, default_color: res.data.data.bgcolor }) if (res.data.data.iswarelbtype == 1) { th.setData({iswarelbtype: 1}) } if (!res.data.data.giftRemark || res.data.data.giftRemark == '') { th.setData({ giftRemark: '暂无详情......' }) } else { th.setData({ giftRemark: res.data.data.giftRemark.replace(/\ t_now) th.setData({ c_state: -1 }) th.setData({ giftDate: res.data.data.endTime, giftPosPrice: res.data.data.giftPosPrice, giftQty: res.data.data.giftQty, giftIntegral: res.data.data.payIntegral, giftPrice: res.data.data.payMoney, giftType: res.data.data.actType, actTitle: res.data.data.actTitle, wareCard: res.data.data.wareCard, lbId: res.data.data.lbId }) //判断是否有礼包 for (var i = 0; i < res.data.data.wareCard.length; i++) { if (res.data.data.wareCard[i].lbType == 1) { th.setData({ is_lb: 1 }) break; } } if (res.data.data.pickup_id) { getApp().request.get("/api/weshop/pickup/get/" + os.stoid + "/" + res.data.data.pickup_id, { success: function (res) { if (res.data.code == 0) { th.setData({pick_up: res.data.data}); } } }); } } else { getApp().my_warnning(res.data.msg, 0, th); return false; } } }); }, GetBuyGiftList: function () { var _this2 = this; var th = this.data; getApp().request.get('/api/weshop/marketing/giftbag/detail/get', { isShowLoading: true, data: { "storeId": a.stoid, //商家ID "userId": d.user_id, //用户ID "giftBagId": th.getGiftID, isnNewUserLb:1 }, success: function success(res) { if (res.data.code == 0) { _this2.setData({ giftImage: th.iurl + res.data.data.lbUrl, giftImageCover: th.iurl + (_this2.data.params.cover_img ? _this2.data.params.cover_img: res.data.data.lbUrl), giftTitle: res.data.data.giftTitle, default_color: res.data.data.bgcolor }) if (res.data.data.giftRemark == '') { _this2.setData({ giftRemark: '暂无详情......' }) } else { _this2.setData({ giftRemark: res.data.data.giftRemark.replace(/\{ getApp().goto('/pages/index/index/index') },2000) return false; } } }); }, getZxlbDetails: function () { var th = this; getApp().request.get('/api/weshop/marketing/giftbag/detail/getNew', { isShowLoading: true, data: { "storeId": a.stoid, //商家ID //"userId": d.user_id, //用户ID "giftBagId": th.data.lbId }, success: function (res) { if (res.data.code == 0) { th.setData({ giftImage: th.data.iurl + res.data.data.lbUrl, giftImageCover: th.data.iurl + (th.data.params.cover_img ? th.data.params.cover_img: res.data.data.lbUrl), giftTitle: res.data.data.lbTitle, default_color: res.data.data.bgcolor }) if (res.data.data.lbIntro == '') { th.setData({ giftRemark: '暂无详情......' }) } else { th.setData({ giftRemark: res.data.data.lbIntro.replace(/\ 0) { scene += "_" + user_id; } ///二微码 var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/giftpack/giftpacklist/giftpacklist"; // 读取文件成功则OK-- wx.getImageInfo({ src: path3, success: function (res) { th.get_goods_temp(function () { var vpath = res.path; var context = wx.createCanvasContext('share'); // let share_goods_img = th.params.cover_img th.drawPoster(context, unit, th.data.share_goods_img, vpath, 0); //把画板内容绘制成图片,并回调 画板图片路径 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; } that.setData({ showPoster: true, }); wx.hideLoading(); } }) }, 800) }); }) }, fail: function (res) { console.log(res); wx.hideLoading(); } }); }, //-- 小程序绘制海报 -- drawPoster(context, unit, img, vpath, type) { // 1.灰色背景 context.setFillStyle('#f2f1f6'); context.rect(0, 0, 554 * unit, 899 * unit); context.fill(); // 2.商城名称 let shopName = this.data.sto_sele_name_1; context.setTextAlign('center'); context.setFontSize(26 * unit); context.setFillStyle('black'); context.fillText(shopName, 277 * unit, 60 * unit); // 3.推荐来源 let fromText = `来自${getApp().globalData.userInfo.nickname}的推荐`; context.setTextAlign('center'); context.setFontSize(22 * unit); context.setFillStyle('#96959a'); context.fillText(fromText, 277 * unit, 105 * unit); // 4.海报背景 context.setFillStyle('white'); context.fillRect(37 * unit, 157 * unit, 480 * unit, 673 * unit); // 5.商品图片 // 图片的x坐标 let bg_x = 37 * unit // 图片的y坐标 let bg_y = 157 * unit // 图片宽度 let bg_w = 480 * unit // 图片高度 let bg_h = 474 * unit // 图片圆角 let bg_r = 4 // 绘制海报背景图片圆角 context.save() context.beginPath() context.arc(bg_x + bg_r, bg_y + bg_r, bg_r, Math.PI, Math.PI * 1.5) context.arc(bg_x + bg_w - bg_r, bg_y + bg_r, bg_r, Math.PI * 1.5, Math.PI * 2) context.arc(bg_x + bg_w, bg_y + bg_h, bg_r, 0, Math.PI * 0.5) context.arc(bg_x, bg_y + bg_h, 0, Math.PI * 0.5, Math.PI) context.clip() context.drawImage(img, bg_x, bg_y, bg_w, bg_h); context.restore(); // 6.强烈推荐 let src = ''; context.beginPath(); if (type == 0) { // 普通 src = '../../../images/share/q_tj.png'; context.drawImage(src, 54 * unit, 648 * unit, 85 * unit, 30 * unit); context.setFontSize(16 * unit) context.setFillStyle("white") context.setTextAlign('left'); context.fillText('强烈推荐', 64 * unit, 668 * unit); } let price = this.data.giftPrice; let giftIntegral = this.data.giftIntegral; context.setFontSize(32 * unit); context.setFillStyle('#DE1117'); var price_txt=""; if(price || giftIntegral){ if(price){ price_txt='¥' + price; if(giftIntegral) price_txt+='+'; } if(giftIntegral) price_txt+=giftIntegral+'积分'; }else{ price_txt="¥0"; } context.fillText(price_txt, 54 * unit, 735 * unit); var wp= 62 * unit; var hp=765 * unit this.draw_pos_price(context,wp,hp,this.giftPosPrice,unit); // 8.商品标题 context.setFontSize(20 * unit); context.setFillStyle('#898989'); getApp().draw_Text(context, this.data.giftTitle, 54 * unit, 800 * unit, 240 * unit, 280 * unit, unit, 1); // 9.小程序码 context.drawImage(vpath, 375 * unit, 660 * unit, 120 * unit, 120 * unit); context.setFontSize(16 * unit); context.setFillStyle('#777'); context.fillText('长按识别二维码', 378 * unit, 810 * unit); // 10.竖线 context.beginPath(); context.setFillStyle('#eee'); context.rect(354 * unit, 670 * unit, 1 * unit, 130 * unit); context.fill(); }, //---市场价划掉--- draw_pos_price(context,w,h,market_price,unit){ if(!this.is_retail_price) return false; context.setFillStyle("gray") context.setFontSize(22 * unit) var pri0 = "¥" + market_price.toFixed(2); context.fillText(pri0, w, h); var c_h=h-6; context.setStrokeStyle('gray'); context.setLineWidth(1 * unit); context.moveTo(w - 5, c_h); context.lineTo(w + ut.measureText(pri0, 22 * unit) + 5, c_h); context.stroke(); }, //--获取商品图片的本地缓存,回调写法-- get_goods_temp: function (tt) { var ee = this; if (ee.data.share_goods_img) { tt(); return false; } var img_url = ee.data.giftImageCover ? ee.data.giftImageCover : ee.data.giftImage; //获取商品是分享图信息 wx.getImageInfo({ src: img_url, success: function (res) { //res.path是网络图片的本地地址 ee.data.share_goods_img = res.path; tt(); }, fail: function (res) { //获取默认空白图 wx.getImageInfo({ src: ee.data.iurl+'/miniapp/images/default_g_img.gif', success: function(res) { ee.data.share_goods_img = res.path; //分享的图片不能用网络的 tt(); } }) } }); }, closePoster() { this.setData({ showPoster: false, }); }, // 保存图片到手机 savePic() { getApp().savePic(this); }, // 预览海报 previewPoster() { getApp().globalData.no_clear=1; wx.previewImage({ current: this.data.shareImgPath, // 当前显示图片的http链接 urls: [this.data.shareImgPath] ,// 需要预览的图片http链接列表 }); }, });