610 lines
16 KiB
JavaScript
610 lines
16 KiB
JavaScript
// packageE/newDiy/newDiy.js
|
|
var app = getApp();
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
page_id: "",
|
|
is_store: false, // 门店装修
|
|
store_id: "", // 门店装修
|
|
clientWidth: "375",
|
|
page_name: "",
|
|
showPage: true,
|
|
|
|
btnFlag: false,
|
|
fullShow: false,
|
|
popShow: false,
|
|
advertising: {},
|
|
full_screen: {},
|
|
top_info: {},
|
|
bottom_info: {},
|
|
components: [],
|
|
mailInfo: {}, // 商城信息
|
|
foot_type: "",
|
|
|
|
current_page: 1,
|
|
total_page: 0,
|
|
decorate_isLoadMore: true,
|
|
|
|
isWatch: true, //会员浏览权限
|
|
bottomShowBol: false,
|
|
bottomShowBolIndex: 0,
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
if (options.page_id) {
|
|
this.setData({
|
|
page_id: options.page_id,
|
|
});
|
|
}
|
|
if (options.store_id) {
|
|
this.setData({
|
|
is_store: true,
|
|
store_id: options.store_id,
|
|
});
|
|
}
|
|
if (options.scene) {
|
|
let scene = decodeURIComponent(options.scene);
|
|
if (scene) {
|
|
var info_arr = [];
|
|
info_arr = scene.split(",");
|
|
for (let i = 0; i < info_arr.length; i++) {
|
|
let chil_arr = [];
|
|
chil_arr = info_arr[i].split("=");
|
|
if (chil_arr[0] == "mid") {
|
|
app._setMid(chil_arr[1]);
|
|
}
|
|
if (chil_arr[0] == "page_id") {
|
|
this.setData({
|
|
page_id: chil_arr[1],
|
|
});
|
|
}
|
|
if (chil_arr[0] == "store_id") {
|
|
this.setData({
|
|
store_id: chil_arr[1],
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (options.mid) {
|
|
app._setMid(options.mid);
|
|
}
|
|
this.getNewDesinger();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
this.setData({
|
|
clientWidth: wx.getSystemInfoSync().windowWidth,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {},
|
|
|
|
getNewDesinger() {
|
|
const that = this;
|
|
this.setData({
|
|
showPage: false,
|
|
});
|
|
|
|
let jsons = {
|
|
page_id: this.data.page_id,
|
|
};
|
|
|
|
let urlStr = app.getNetAddresss("home-page.index");
|
|
|
|
if(this.data.store_id) {
|
|
urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.get-store-info.get-the-provider");
|
|
jsons = { page_id: this.data.page_id, store_id: this.data.store_id };
|
|
}
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: jsons,
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
if(this.data.is_store) {
|
|
this.setData({
|
|
showPage: true,
|
|
components: res.data.store_decorate.datas,
|
|
page_name: res.data.store_decorate?.page_info?.page_title || '商家',
|
|
foot_type: res.data.store_decorate.foot_type
|
|
});
|
|
|
|
// 装修的底部有三种情况
|
|
if (res.data.store_decorate.foot_type == -1) {
|
|
// 不显示
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else if (res.data.store_decorate.foot_type == 1) {
|
|
// 显示默认
|
|
if (!res.data.store_decorate.foot_id || !res.data.store_decorate.foot_id.page_info) {
|
|
// 显示系统默认
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
// 显示列表设置的默认
|
|
this.setData({
|
|
bottom_info: JSON.parse(res.data.store_decorate.foot_id.page_info),
|
|
});
|
|
}
|
|
} else if (res.data.store_decorate.foot_type == 2) {
|
|
// 显示自定义的底部导航
|
|
if (!res.data.store_decorate.foot_id || res.data.store_decorate.foot_id instanceof Array) {
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
this.setData({
|
|
bottom_info: JSON.parse(res.data.store_decorate.foot_id.page_info),
|
|
});
|
|
}
|
|
}
|
|
|
|
if (this.data.page_name) {
|
|
wx.setNavigationBarTitle({
|
|
title: this.data.page_name,
|
|
});
|
|
}
|
|
return;
|
|
}
|
|
if (res.data.item) {
|
|
this.setData({
|
|
showPage: true,
|
|
});
|
|
let mailInfo = wx.getStorageSync('yz_basic_info');
|
|
if(mailInfo){
|
|
mailInfo = mailInfo.home.mailInfo;
|
|
}
|
|
this.setData({
|
|
components: res.data.item.datas,
|
|
page_name: res.data.item.page_info?.page_title,
|
|
mailInfo: mailInfo?mailInfo:'',
|
|
foot_type: res.data.item.foot_type,
|
|
decorate_isLoadMore: true,
|
|
});
|
|
|
|
if (res.data.item.page) {
|
|
this.setData({
|
|
total_page: res.data.item.page.total_page,
|
|
current_page: res.data.item.page.current_page,
|
|
bottomShowBolIndex: res.data.item.page.count - 1,
|
|
});
|
|
}
|
|
|
|
if (res.data.item.page_info) {
|
|
that.setData({
|
|
advertising: res.data.item.page_info.advertising_id,
|
|
full_screen: res.data.item.page_info.full_screen_id,
|
|
});
|
|
|
|
if (that.data.advertising.id && that.data.advertising.datas) {
|
|
that.data.advertising.datas = JSON.parse(
|
|
that.data.advertising.datas
|
|
);
|
|
that.setData({
|
|
advertising: that.data.advertising,
|
|
});
|
|
}
|
|
}
|
|
|
|
if (res.data.item.top && res.data.item.top.id) {
|
|
this.setData({
|
|
top_info: JSON.parse(res.data.item.top.page_info),
|
|
});
|
|
}
|
|
|
|
// 装修的底部有三种情况
|
|
if (res.data.item.foot_type == -1) {
|
|
// 不显示
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else if (res.data.item.foot_type == 1) {
|
|
// 显示默认
|
|
if (!res.data.item.foot || !res.data.item.foot.page_info) {
|
|
// 显示系统默认
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
// 显示列表设置的默认
|
|
this.setData({
|
|
bottom_info: JSON.parse(res.data.item.foot.page_info),
|
|
});
|
|
}
|
|
} else if (res.data.item.foot_type == 2) {
|
|
// 显示自定义的底部导航
|
|
if (!res.data.item.foot || res.data.item.foot instanceof Array) {
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
this.setData({
|
|
bottom_info: JSON.parse(res.data.item.foot.page_info),
|
|
});
|
|
}
|
|
}
|
|
|
|
if (this.data.full_screen && this.data.full_screen.id) {
|
|
let value = wx.getStorageSync("page_idFull_screens");
|
|
if (!value) {
|
|
value = [];
|
|
}
|
|
|
|
if (!value.includes(this.data.page_id)) {
|
|
value.push(this.data.page_id);
|
|
wx.setStorageSync("page_idFull_screens", value);
|
|
this.setData({
|
|
fullShow: true,
|
|
});
|
|
this.countDown(this.data.full_screen.show_time);
|
|
}
|
|
}
|
|
|
|
if (this.data.advertising && this.data.advertising.id) {
|
|
let value = wx.getStorageSync("page_idAdvertisings");
|
|
if (!value) {
|
|
value = [];
|
|
}
|
|
|
|
if (!value.includes(this.data.page_id)) {
|
|
value.push(this.data.page_id);
|
|
wx.setStorageSync("page_idAdvertisings", value);
|
|
this.setData({
|
|
popShow: true,
|
|
});
|
|
}
|
|
}
|
|
|
|
// 小程序标题栏
|
|
if (res.data.item.page_info && res.data.item.page_info.preview_color) {
|
|
wx.setNavigationBarColor({
|
|
backgroundColor: res.data.item.page_info.preview_color,
|
|
frontColor:
|
|
res.data.item.page_info.font_color == 1
|
|
? "#ffffff"
|
|
: "#000000",
|
|
animation: {
|
|
duration: 400,
|
|
timingFunc: "easeIn",
|
|
},
|
|
});
|
|
}
|
|
|
|
that.setData({
|
|
isWatch:
|
|
res.data.item.pageinfo.params.allowauth == 0 ? false : true,
|
|
});
|
|
if(!that.data.isWatch && res.data.item.page_info &&res.data.item.page_info.member_level_url && res.data.item.page_info.member_level_url.link) {
|
|
that.timer = setTimeout(() => {
|
|
wx.redirectTo({
|
|
url: res.data.item.page_info.member_level_url.link,
|
|
});
|
|
}, 3000);
|
|
|
|
}
|
|
console.log("会员是否可浏览装修页", that.data.isWatch);
|
|
|
|
if (this.data.page_name) {
|
|
wx.setNavigationBarTitle({
|
|
title: this.data.page_name,
|
|
});
|
|
} else {
|
|
wx.setNavigationBarTitle({
|
|
title: "默认标题",
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: res.msg,
|
|
icon: "none",
|
|
});
|
|
console.log(res.msg);
|
|
}
|
|
},
|
|
});
|
|
},
|
|
|
|
getMoreDecorate() {
|
|
let that = this;
|
|
that.setData({
|
|
decorate_isLoadMore: false,
|
|
});
|
|
|
|
if (that.data.current_page < that.data.total_page) {
|
|
that.setData({
|
|
current_page: that.data.current_page + 1,
|
|
});
|
|
let urlStr = app.getNetAddresss(
|
|
"plugin.decorate.frotend.decorate-api.get-page"
|
|
);
|
|
app._postNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
decorate_page: this.data.current_page,
|
|
decorate_id: this.data.page_id,
|
|
},
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
that.setData({
|
|
decorate_isLoadMore: true,
|
|
components: that.data.components.concat(res.data.datas),
|
|
});
|
|
} else {
|
|
that.setData({
|
|
decorate_isLoadMore: false,
|
|
current_page: that.data.current_page - 1,
|
|
});
|
|
console.log(res.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
},
|
|
|
|
turnFullTo() {
|
|
let url = this.data.full_screen.minapp_link;
|
|
try {
|
|
wx.navigateTo({
|
|
url: url,
|
|
});
|
|
} catch (e) {
|
|
wx.showToast({
|
|
title: "链接设置错误",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
}
|
|
},
|
|
turnTo() {
|
|
let item = this.data.advertising;
|
|
if (item.is_minapp == 2) {
|
|
if (item.minapp_sid) {
|
|
if (item.minapp_link2) {
|
|
try {
|
|
wx.navigateToMiniProgram({
|
|
appId: item.minapp_sid,
|
|
path: item.minapp_link2,
|
|
extraData: {},
|
|
envVersion: "release",
|
|
success(res) {
|
|
// 打开成功
|
|
},
|
|
fail(res) {
|
|
wx.showToast({
|
|
title: "小程序跳转失败",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
},
|
|
});
|
|
} catch (e) {
|
|
wx.showToast({
|
|
title: "小程序跳转失败",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: "请设置跳转小程序后的跳转链接",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: "请设置小程序所需跳转appId",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
}
|
|
} else {
|
|
let url = item.minapp_link;
|
|
try {
|
|
wx.navigateTo({
|
|
url: url,
|
|
});
|
|
} catch (e) {
|
|
wx.showToast({
|
|
title: "链接设置错误",
|
|
icon: "none",
|
|
duration: 2000,
|
|
});
|
|
}
|
|
}
|
|
},
|
|
closePop() {
|
|
this.setData({
|
|
popShow: false,
|
|
});
|
|
},
|
|
closeFull() {
|
|
this.setData({
|
|
fullShow: false,
|
|
});
|
|
},
|
|
countDown(num) {
|
|
let numberNum = num;
|
|
this.setData({
|
|
"full_screen.show_time": numberNum,
|
|
});
|
|
numberNum--;
|
|
|
|
let cleartime = setTimeout(() => {
|
|
if (numberNum <= 0) {
|
|
this.setData({
|
|
fullShow: false,
|
|
});
|
|
clearInterval(cleartime);
|
|
return;
|
|
} else {
|
|
this.countDown(numberNum);
|
|
}
|
|
}, 1000);
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
clearTimeout(this.timer);
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {},
|
|
|
|
// 获取滚动条当前位置
|
|
onPageScroll: function (e) {
|
|
// 节流
|
|
if (e.scrollTop > 80) {
|
|
if (!this.data.btnFlag) {
|
|
this.setData({
|
|
btnFlag: true,
|
|
});
|
|
}
|
|
} else {
|
|
if (this.data.btnFlag) {
|
|
this.setData({
|
|
btnFlag: false,
|
|
});
|
|
}
|
|
}
|
|
|
|
if (this.data.bottomShowBol) {
|
|
this.setData({
|
|
bottomShowBol: false,
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
this.setData({
|
|
bottomShowBol: true,
|
|
});
|
|
|
|
if (this.data.decorate_isLoadMore) {
|
|
this.getMoreDecorate();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareTimeline:function(){
|
|
var value = wx.getStorageSync('yz_uid');
|
|
let mid = '';
|
|
let path = `/packageG/newDiy/newDiy?page_id=${this.data.page_id}`;
|
|
if(this.data.is_store) {
|
|
path = path + '&store_id' + this.data.store_id;
|
|
}
|
|
if (value) {
|
|
mid = value;
|
|
path = path + '&mid' + mid;
|
|
}
|
|
this.data.components.forEach(element => {
|
|
if(element.component_key == 'U_lottery'){
|
|
if(e.from == "menu"){
|
|
this.getShare(element.remote_data.lottery.id);
|
|
return {
|
|
title: this.data.page_name ? this.data.page_name : "",
|
|
path: path,
|
|
};
|
|
}
|
|
}
|
|
});
|
|
return {
|
|
title: this.data.page_name ? this.data.page_name : "",
|
|
path: path,
|
|
};
|
|
},
|
|
onShareAppMessage: function (e) {
|
|
var value = wx.getStorageSync('yz_uid');
|
|
let mid = '';
|
|
if (value) {
|
|
mid = value;
|
|
}
|
|
this.data.components.forEach(element => {
|
|
if(element.component_key == 'U_lottery'){
|
|
if(e && e.from == "menu"){
|
|
this.getShare(element.remote_data.lottery.id);
|
|
return {
|
|
title: this.data.page_name ? this.data.page_name : "",
|
|
path: `/packageG/newDiy/newDiy?page_id=${this.data.page_id}&mid=${mid}`,
|
|
};
|
|
}
|
|
}
|
|
});
|
|
|
|
if(e && e.from == 'button' && e.target.dataset.tag == "shareTag"){
|
|
// 拼团活动二开#73727 弹窗邀请朋友
|
|
if(e.target.dataset.item == '1'){
|
|
let _path = '/packageB/member/group/GroupDetail/GroupDetail?id=' + e.target.dataset.info.id + '&mid=' + mid;
|
|
let _title = e.target.dataset.title;
|
|
if(e.target.dataset.store){
|
|
_path = '/packageB/member/group/GroupDetail/GroupDetail?id=' + e.target.dataset.info.id +'store='+ e.target.dataset.store + '&mid=' + mid;
|
|
}
|
|
if(app.globalData.store_alone_temp == 1 && that.globalData.STORE_ID){
|
|
_path = `${_path}&store_alone_id=${app.globalData.STORE_ID}`;
|
|
}
|
|
return{
|
|
path:_path,
|
|
title:_title
|
|
};
|
|
}
|
|
}
|
|
if(this.data.store_id){
|
|
// 门店装修
|
|
return {
|
|
title: this.data.page_name ? this.data.page_name : "",
|
|
path: `/packageG/newDiy/newDiy?page_id=${this.data.page_id}&mid=${mid}&store_id=${this.data.store_id}`,
|
|
};
|
|
}
|
|
return {
|
|
title: this.data.page_name ? this.data.page_name : "",
|
|
path: `/packageG/newDiy/newDiy?page_id=${this.data.page_id}&mid=${mid}`,
|
|
};
|
|
},
|
|
getShare(id){
|
|
let urlStr = app.getNetAddresss("plugin.lucky-draw.frontend.draw.getShare");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
lotteryId: id
|
|
},
|
|
success: resdata => {
|
|
// var res = resdata.data;
|
|
this.getNewDesinger();
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
},
|
|
});
|