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, submit:0, is_detail:1, //是详情页面的购买 keyword:'', //门店搜索 sec_i:-1,//选中分类门店 下标 }, onLoad: function (options) { if(options.transfer){ let obj=getApp().globalData.ts_trans_data; options= JSON.parse(JSON.stringify(obj)); getApp().globalData.ts_trans_data=null; } //定义第一次进入 this.data.fir_in=1; var th = this; 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; getApp().globalData.guide_pick_id= res.data.data.pickup_id } }) } th.close(); if (this.data.flag == 1) { this.getZxlbDetails(); } else { if (this.data.isBuy == 0) { this.GetMyGiftList(); } else if (this.data.isBuy == 1) { this.GetBuyGiftList(); } } }, onShow: function () { this.setData({submit:0}) var th=this; //判断是不是第一次进入 if(this.data.fir_in){ this.data.fir_in=0; }else{ //富友支付插件的判断 ut.fy_back('',0); com.set_py_fir(); if(th.data.ok_order_sn){ //-- 通联的第三方支付的返回优化 -- var money=th.data.payMoney; var back_url = "/packageF/pages/giftpack/payment/payment?money=" + money + "&order_sn=" + th.data.ok_order_sn; ut.is_pay_ok(th.data.ok_order_sn,back_url,'none',function (){ if(!th.data.ok_order_sn) return false; getApp().request.promiseGet("/api/weshop/marketing/my/giftbag/detail/get", {data:{storeId:os.stoid,orderSn:th.data.ok_order_sn,userId:getApp().globalData.user_id}}).then(res=>{ th.data.ok_order_sn=null; if(res.data.code==0 && res.data.data){ var item=res.data.data; if(item.payState==1){ //支付支付,返回首页 ut.m_toast('支付成功'); setTimeout(()=>{ getApp().goto(back_url); },1000) }else{ //支付支付,返回首页 ut.m_toast('支付失败'); } } }) },null,null,1); th.data.ok_order_sn=null; } } 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(); }) this.setData({ submit:0}) }, //获取搜索门店输入的值 input_store: function(e) { this.setData({ keyword: e.detail.value }) }, //搜索门店 searchfn(){ let choice_sort_store = this.data.choice_sort_store if (choice_sort_store==0) { //全局搜索 let all_pick_list = this.data.all_pick_list let def_pickpu_list = this.data.def_pickpu_list let keyword = this.data.keyword if (keyword) { let arr=all_pick_list.filter( item =>{ let i = item.pickup_name.indexOf(keyword) if (i > -1) { return true }else{ return false } }) if (arr && arr.length>0) { if(this.data.is_show_sto_cat==1){ this.setData({ def_pickpu_list:arr }) }else{ this.setData({ only_pk:arr }) } }else{ wx.showToast({ title: '没有搜索到门店', icon: 'none', duration: 2000 }) } }else{ if (this.data.is_show_sto_cat==1) { this.setData({ def_pickpu_list:all_pick_list.slice(0,10) }) }else{ this.setData({ only_pk:all_pick_list }) } } }else{ //分类下搜索 let sec_i=this.data.sec_i let all_sto = this.data.all_sto let old_all_sto = this.data.old_all_sto if (!old_all_sto) { this.setData({ old_all_sto:JSON.parse(JSON.stringify(all_sto)) }) } let sec_sto= this.data.sec_sto let sec_arr = this.data.old_all_sto[sec_i].s_arr let keyword = this.data.keyword let text='sec_sto.s_arr' if (keyword) { let arr=sec_arr.filter( item =>{ let i = item.pickup_name.indexOf(keyword) if (i > -1) { return true }else{ return false } }) if (arr && arr.length>0) { this.setData({ [text]:arr }) }else{ wx.showToast({ title: '没有搜索到门店', icon: 'none', duration: 2000 }) } }else{ if(this.data.old_all_sto){ this.setData({ [text]: this.data.old_all_sto[sec_i].s_arr }) }else{ this.setData({ [text]: all_sto[sec_i].s_arr }) } } } }, 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": d.user_id, //用户ID "orderSn": th.data.orderSn }, 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; } } }); }, check_guide(func){ var first_leader=this.data.first_leader; if(!first_leader){ func(); return false; } if(this.data.is_geted_guide_pick){ func(); return false; } if(getApp().globalData.guide_pick_id){ func(); return false; } var th=this; getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_pick_id= res.data.data.pickup_id; } th.data.is_geted_guide_pick=1; func(); }) }, 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(/\ { setTimeout(()=>{ wx.setClipboardData({ data: '暂不支持分享', success (res) { } }) },500) return { query: 'a=1&b=2' } }) } var isStart = 0; var now = ut.gettimestamp(); var str = res.data.data.starTime.replace(/-/g, '/'); var start = Date.parse(new Date(str)); start = start / 1000; if (start < now) isStart = 1; _this2.setData({ giftDate: res.data.data.endTime, giftStart: res.data.data.starTime, 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, isStart: isStart, sele_g: res.data.data, is_share:res.data.data.is_share }) var sele_g = res.data.data; //需不需要门店,不需要门店返回 if (!sele_g.is_pickup) return false; //-- 检测一下有没有门店 -- _this2.check_guide(function (){ com.wait_for_store_config(_this2); com.set_user_mo_store(_this2, os, function () { if (sele_g.pickup_list && _this2.data.def_pick_store) { com.check_def_pk(_this2); } }); com.get_sto(_this2, os); }) } else { getApp().my_warnning(res.data.msg, 0, _this2); setTimeout(()=>{ 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=packageF/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链接列表 }); }, });