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链接列表
});
},
});