var e = getApp(), a = e.globalData.setting, os = a, t = e.request, d = e.globalData; var ut = require("../../../../../utils/util.js"); var com = require("../public/buy_com.js"); const i = require("../../../../../utils/util.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, is_receive:0, screenWidth: 0, monthgiftbag:{}, scene:"", }, onLoad: function (options) { var th = this; console.log('分享参数---'); console.log(options); 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 }); }) // com.get_sto(th,os) //获取用户设备信息,屏幕宽度 wx.getSystemInfo({ success: res => { th.setData({ screenWidth: res.screenWidth }) } }); let monthgiftbag=wx.getStorageSync('monthgiftbag') let monthgiftba_defpick=wx.getStorageSync('monthgiftba_defpick') var now = ut.gettimestamp(); var isStart=0; // var str = res.data.data.starTime; // if (start < now) isStart = 1; // start = start / 1000; // if (options && options.id) { // this.getList() // } // if (monthgiftbag) { // var start = monthgiftbag.begindate; // let remark=monthgiftbag.remark.replace(/\ { 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(); //-- 检测一下有没有门店 -- th.check_guide(function (){ com.wait_for_store_config(th); com.set_user_mo_store(th, os, function () { if (th.data.sele_g.pickup_list && th.data.def_pick_store) { com.check_def_pk(th); } }); com.get_sto(th, os); }) // this.GetBuyGiftList(); // if (this.data.flag == 1) { // this.getZxlbDetails(); // } else { // if (this.data.isBuy == 0) { // this.GetMyGiftList(); // } else if (this.data.isBuy == 1) { // this.GetBuyGiftList(); // } // } }, getList: function (e) { var th = this; getApp().request.get('/api/weshop/marketing/marketingMonthgiftbagForm/page', { isShowLoading: true, data: { store_id: a.stoid, //商家ID user_id: d.user_id, //用户ID page: 1, pageSize: 10, is_end:0, timetype:1, id:th.data.params.id }, success: function (res) { if (res.data.code == 0) { th.data.curpage++; // var arr1 = th.data.wareCard; var arr2 = res.data.data.pageData; for (let j = 0; j < arr2.length; j++) { // arr2[j].starTime1=Date.parse(new Date(arr2[j].begindate.replace(/-/g, "/")))/1000 arr2[j].starTime1=arr2[j].begindate arr2[j].starTime=i.formatTime(arr2[j].begindate, "yyyy-MM-dd hh:mm:ss"); arr2[j].endTime=i.formatTime(arr2[j].enddate, "yyyy-MM-dd hh:mm:ss"); arr2[j].giftPosPrice=arr2[j].oldPrice arr2[j].payMoney=arr2[j].lbPrice arr2[j].payIntegral=arr2[j].exchangeIntegral arr2[j].giftQty=arr2[j].buynum arr2[j].cover_img=arr2[j].imageurl arr2[j].giftTitle=arr2[j].act_name arr2[j].virtualsales=arr2[j].virtualSales arr2[j].lbnum=arr2[j].lbNum } if(arr2.length>0){ var monthgiftbag =arr2[0]; var ismore = 0; // if (arr3.length == res.data.data.total) ismore = 1 var isStart=0; if (monthgiftbag) { var start = monthgiftbag.begindate; let remark=monthgiftbag.remark.replace(/\0){ var monthgiftbag =arr2[0]; var ismore = 0; // if (arr3.length == res.data.data.total) ismore = 1 var isStart=0; if (monthgiftbag) { var start = monthgiftbag.begindate; let remark=monthgiftbag.remark.replace(/\{ ut.fy_back('',0,function (){ if(getApp().globalData.py_month_bg && th.data.back_ord){ getApp().globalData.fuyou_clear=1; var b_ord=th.data.back_ord; com.reduce(b_ord,os.stoid); //要进行清空粗粒 getApp().globalData.py_month_bg=0; th.data.back_ord=null; } }) },1000) }, GetBuyPrice: function (e) { var that = this.data; var th = this; let scene =this.data.scene; if (scene==1154) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return } if (!d || !d.user_id ) { getApp().my_warnning("请先登录", 0, th); return false; } //如果还没有开始的话 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 { if(this.data.submit) return false; 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; let scene =this.data.scene; if (scene==1154) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return } if (!d || !d.user_id ) { getApp().my_warnning("请先登录", 0, th); return false; } //如果还没有开始的话 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/getNew', { isShowLoading: true, data: { "storeId": a.stoid, //商家ID "userId": d.user_id, //用户ID "giftBagId": th.getGiftID }, 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, giftTitle: res.data.data.lbTitle, default_color: res.data.data.bgcolor }) if (!res.data.data.giftRemark) { _this2.setData({ giftRemark: '暂无详情......' }) } else { _this2.setData({ giftRemark: res.data.data.giftRemark.replace(/\{ wx.navigateBack({ delta: 0, }) },500) } else { that.setData({submit:0}) getApp().my_warnning(res.data.msg, 0, that); } }, function (res) { that.setData({submit:0}) } ) }, //--- 设置一下默认库存的数量 ---- set_def_storage(ee) { var that = this, th = this; that.data.fir_def_store = ee; that.setData({ def_pick_store: ee, sto_sele_name: ee.pickup_name, sto_sele_id: ee.pickup_id, sto_sele_distr: ee.distr_type }) }, // 选择门店 choice_store: function (ee) { //--先判断会员状态-- var user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; } var th = this; var ind = ee.currentTarget.dataset.ind; var bconfig = th.data.bconfig; //如果开启了,则不在选择门店 if (this.data.sys_switch.is_pricing_open_store && getApp().globalData.pk_store) { return false; } // if (!th.data.only_pk && !th.data.def_pickpu_list) { // getApp().confirmBox("门店库存不足", null, 25000, !1); // return false; // } if (th.data.only_pk && !th.data.only_pk.length) { getApp().confirmBox("门店库存不足", null, 25000, !1); return false; } if (th.data.def_pickpu_list && !th.data.def_pickpu_list.length) { getApp().confirmBox("门店库存不足", null, 25000, !1); return false; } if (bconfig && bconfig.is_sort_storage) { wx.getLocation({ type: 'gcj02', success: function (res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; th.setData({ is_gps: 1 }); //th.onShow(); com.get_sto(th, os); }, fail: function (res) { //th.onShow(); th.data.is_get_local_ok = 1; com.get_sto(th, os); if (res.errCode == 2) { th.setData({ is_gps: 0 }); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 25000, !1); } } else { th.setData({ is_gps: "3" }); } } }) } else { th.data.is_get_local_ok = 1; com.get_sto(th, os); } if (ind != undefined && ind != null) { this.setData({ open_ind_store: ind, store: 1, openSpecModal: !1, openSpecModal_pt: !1, openSpecModal_flash_normal: !1, }) } else { this.setData({ store: 1, openSpecModal: !1, openSpecModal_pt: !1, openSpecModal_flash_normal: !1 }) } }, //关闭选择门店 close_popup: function (e) { var th = this; this.setData({ store: 0, choice_sort_store: 0, sort_store: 0, fir_pick_index: 0, sec_pick_index: 0 }) var openindstore = this.data.open_ind_store; if (openindstore == 1) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 2) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 4) { //4就是拼团 th.setData({ openSpecModal_pt: 1, //打开拼团购买界面 store: 0, //关闭门店 choice_sort_store: 0, //关闭门店2级 sort_store: 0, //关闭门店2级 }); } else { th.setData({ store: 0, choice_sort_store: 0, sort_store: 0 }) } }, //选择更多门店 more_store: function () { this.setData({ sort_store: 1 }); }, // 返回按钮 returns: function () { this.setData({ sort_store: 0, choice_sort_store: 0 }); }, //---选择分类门店--- choice_sort_store: function (e) { var index = e.currentTarget.dataset.index; var region_name = e.currentTarget.dataset.region; var item = this.data.all_sto[index]; this.setData({ region_name: region_name, sort_store: 0, choice_sort_store: 1, sec_sto: item, sec_pick_index: 0 }); }, choose_for_store_fir: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ fir_pick_index: index_c }) }, //确定def_pick为选择的门店 sure_pick: function (e) { var th = this; var item = null; var openindstore = th.data.open_ind_store; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; if (!th.data.sele_g) return false; th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0, fir_pick_index: 0, openSpecModal: !0, }); }, //---点击二级之后的选择--- choose_for_store: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ sec_pick_index: index_c, fir_pick_index: index_c }) }, //把选择的门店设置成默认的门店def_pick set_def_pick: function (e) { var th = this; var item = null; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0, openSpecModal: !0, }); var user_id = getApp().globalData.user_id; var def_pickup_id = item.pickup_id; getApp().request.put('/api/weshop/users/update', { data: { user_id: user_id, def_pickup_id: def_pickup_id }, success: function (res) { if (res.data.code == 0) { if (th.data.choice_sort_store == 0) th.setData({ fir_pick_index: 0 }); getApp().globalData.pk_store = item; } else { getApp().my_warnning("设置默认门店地址失败", 0, th) } } }); }, closeSpecModal: function () { this.setData({openSpecModal: 0}); }, buy_libao: function () { com.buy_libao(this) }, clickShare() { if (!getApp().globalData.user_id) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } this.setData({ share_hidden: true, }); }, send() { this.setData({ share_hidden: false, }); }, cancel() { this.setData({ share_hidden: false, }); }, //--定义的保存图片方法,分享团--- 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: '/packageE/pages/togoin/togoin',}) return false; } if (this.data.share_hidden) { this.setData({share_hidden: false,}); } wx.showLoading({title: '生成中...',}) var that = this, th = that; //设置画板显示,才能开始绘图 that.setData({ canvasHidden: false }) var app = getApp(); var unit = that.data.screenWidth / 750 * 1.35; //基础单位, var scene = th.data.lbId + ""; 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/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链接列表 }); }, });