475 lines
12 KiB
JavaScript
475 lines
12 KiB
JavaScript
// packageG/independent_store/index/index.js
|
|
const app = getApp();
|
|
Page({
|
|
externalClasses: ['tabs'],
|
|
data: {
|
|
mainInfo: {},
|
|
page_id: "",
|
|
clientWidth: "375",
|
|
btnFlag: false,
|
|
store_components: [],
|
|
store_pageInfo: {},
|
|
bottom_info: {},
|
|
foot_type: "",
|
|
bottomShowBol: false,
|
|
bottomShowBolIndex: 0,
|
|
|
|
store_id: '',
|
|
albumList: [], // 相册列表
|
|
tabList: [], // tab导航列表
|
|
storeInfo: '',
|
|
coupons: [],
|
|
swiperIndex: 0,
|
|
showMoreAlbum: false,
|
|
active: 'store_info',
|
|
showServicePopup: false, // 客服弹框
|
|
contactPerson: {}, // 联系人
|
|
|
|
U_tabcontrol: true,
|
|
isLoadMore: true,
|
|
goodsData: {
|
|
"preview_color": "#f5f5f5",
|
|
"sort_style": {
|
|
"choose_icon": "2"
|
|
},
|
|
"padding_top": 0,
|
|
"padding_bottom": 0,
|
|
"padding_left": 10,
|
|
"padding_right": 10,
|
|
"item_radius": 5,
|
|
"show_shadow": false,
|
|
"show_border": false,
|
|
"border_color": "#BFB7B7",
|
|
"good_tag": {
|
|
"choose_icon": "0",
|
|
"image": ""
|
|
},
|
|
"button_type": "3",
|
|
"button_title": "立即购买",
|
|
"button_bg_color": "#ff2c29",
|
|
"button_color": "#ffffff",
|
|
"content_list": [
|
|
"1",
|
|
"3",
|
|
"4",
|
|
"7"
|
|
],
|
|
"show_price_text": false,
|
|
"disable_good": "0",
|
|
"goods_type": "list"
|
|
},
|
|
navigationBarTitle:'',
|
|
},
|
|
|
|
onLoad: function (options) {
|
|
if (options.scene) {
|
|
let {
|
|
store_id
|
|
} = this.sceneDecode(options.scene);
|
|
app.globalData.STORE_ID = store_id;
|
|
this.setData({
|
|
store_id
|
|
});
|
|
}
|
|
if (options.store_id) {
|
|
app.globalData.STORE_ID = options.store_id;
|
|
this.setData({
|
|
store_id: options.store_id
|
|
});
|
|
}
|
|
if (!this.data.store_id) {
|
|
wx.redirectTo({
|
|
url: '/packageG/independent_store/access_tip/access_tip',
|
|
});
|
|
return;
|
|
}
|
|
this.getData();
|
|
},
|
|
|
|
onShow: function () {
|
|
|
|
},
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
this.setData({
|
|
bottomShowBol: true,
|
|
});
|
|
|
|
if (this.data.decorate_isLoadMore) {
|
|
this.getMorePluginData();
|
|
}
|
|
},
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
return {
|
|
title:this.data.navigationBarTitle
|
|
};
|
|
},
|
|
// 获取滚动条当前位置
|
|
onPageScroll: function (e) {
|
|
if (this.data.store_components && this.data.store_components.length > 0) {
|
|
// 节流
|
|
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,
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
// 解析二维码
|
|
sceneDecode(scene) {
|
|
scene = decodeURIComponent(scene);
|
|
let paramArr = scene.split(",");
|
|
const senceValues = {};
|
|
|
|
paramArr.forEach((item, index) => {
|
|
let key = item.split("=")[0];
|
|
let value = item.split("=")[1];
|
|
senceValues[key] = value;
|
|
});
|
|
return senceValues;
|
|
},
|
|
getData() {
|
|
wx.showLoading({
|
|
title: "加载中",
|
|
});
|
|
let strUlr = app.getNetAddresss("plugin.store-alone-temp.frontend.home.home-page");
|
|
app._getNetWork({
|
|
url: strUlr,
|
|
data: {
|
|
store_id: this.data.store_id
|
|
},
|
|
success: (respone) => {
|
|
wx.hideLoading();
|
|
if (respone.data.result !== 1) {
|
|
app.tips(respone.data.msg);
|
|
wx.redirectTo({
|
|
url: '/packageG/independent_store/access_tip/access_tip',
|
|
});
|
|
return;
|
|
}
|
|
|
|
// 开启门店装修
|
|
let resData = respone.data;
|
|
if (resData.data.store_decorate && resData.data.store_decorate.datas) {
|
|
this.setData({
|
|
mainInfo: resData.data.store_info,
|
|
page_id: resData.data.store_decorate.id,
|
|
store_components: resData.data.store_decorate.datas,
|
|
store_pageInfo: resData.data.store_decorate.page_info,
|
|
foot_type: resData.data.store_decorate.foot_type,
|
|
});
|
|
|
|
// 装修的底部有三种情况
|
|
if (resData.data.store_decorate.foot_type == -1) {
|
|
// 不显示
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else if (resData.data.store_decorate.foot_type == 1) {
|
|
// 显示默认
|
|
if (!resData.data.store_decorate.foot_id || !resData.data.store_decorate.foot_id.page_info) {
|
|
// 显示系统默认
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
// 显示列表设置的默认
|
|
this.setData({
|
|
bottom_info: JSON.parse(resData.data.store_decorate.foot_id.page_info),
|
|
});
|
|
}
|
|
} else if (resData.data.store_decorate.foot_type == 2) {
|
|
// 显示自定义的底部导航
|
|
if (!resData.data.store_decorate.foot_id || resData.data.store_decorate.foot_id instanceof Array) {
|
|
this.setData({
|
|
bottom_info: {},
|
|
});
|
|
} else {
|
|
this.setData({
|
|
bottom_info: JSON.parse(resData.data.store_decorate.foot_id.page_info),
|
|
});
|
|
}
|
|
}
|
|
this.data.navigationBarTitle = ( this.data.store_pageInfo.page_title || respone.data.data.store_info.store_name || "商家");
|
|
wx.setNavigationBarTitle({
|
|
title: this.data.navigationBarTitle,
|
|
});
|
|
wx.setNavigationBarColor({
|
|
backgroundColor: this.data.store_pageInfo.preview_color,
|
|
frontColor: this.data.store_pageInfo.font_color == 1 ? "#ffffff" : "#000000",
|
|
animation: {
|
|
duration: 400,
|
|
timingFunc: "easeIn",
|
|
},
|
|
});
|
|
return;
|
|
}
|
|
|
|
// 没有装修走默认
|
|
let res = respone.data.data;
|
|
res.nav.nav.unshift({
|
|
code: "store_info",
|
|
name: "商家信息"
|
|
});
|
|
if (res.photo && res.photo.length == 6) {
|
|
res.photo.push({});
|
|
}
|
|
this.setData({
|
|
albumList: res.photo || [],
|
|
storeInfo: res.store_info,
|
|
tabList: res.nav.nav,
|
|
coupons: res.store_info.coupon,
|
|
});
|
|
if (this.data.tabList.length > 1) {
|
|
if (this.data.tabList[1].code === 'recommend_goods') {
|
|
this.setData({
|
|
["goodsData.list"]: res.nav.data
|
|
});
|
|
}
|
|
}
|
|
this.data.navigationBarTitle = this.data.storeInfo.store_name;
|
|
wx.setNavigationBarTitle({
|
|
title: this.data.navigationBarTitle
|
|
});
|
|
},
|
|
fail(err) {
|
|
wx.hideLoading();
|
|
}
|
|
});
|
|
},
|
|
|
|
changeTab(e) {
|
|
this.setData({
|
|
active: e.detail.name
|
|
});
|
|
this.data.isLoadMore = true;
|
|
|
|
// this.getPlugins("plugin.store-alone-temp.frontend.home.nav-data", {
|
|
// page: 1, code: this.data.active, store_id: app.globalData.STORE_ID
|
|
// }, this.data.active);
|
|
},
|
|
getPlugins(url, json, plugin_active) {
|
|
let urlStr = app.getNetAddresss(url);
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: json,
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if (res.result == 1) {
|
|
if (plugin_active === 'recommend_goods') {
|
|
this.setData({
|
|
["goodsData.list"]: res.data.data
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
getMorePluginData() {
|
|
this.data.isLoadMore = false;
|
|
let plugin_active = this.data.active;
|
|
if (plugin_active === 'recommend_goods') {
|
|
let recommendGoods = this.selectComponent("#recommend_goods");
|
|
recommendGoods.loadMoreMemberData();
|
|
}
|
|
},
|
|
|
|
setLoadMore(event) {
|
|
this.setData({
|
|
isLoadMore: event.detail.isLoadMore
|
|
});
|
|
},
|
|
|
|
goToAdress() {
|
|
let latitude = this.data.storeInfo.latitude;
|
|
let longitude = this.data.storeInfo.longitude;
|
|
let store_name = this.data.storeInfo.store_name;
|
|
let point = app.BMapTransqqMap(parseFloat(longitude), parseFloat(latitude));
|
|
wx.openLocation({
|
|
latitude: point.lat,
|
|
longitude: point.lng,
|
|
scale: 18,
|
|
name: store_name,
|
|
});
|
|
},
|
|
|
|
// 轮播图
|
|
swiperChange(e) {
|
|
this.setData({
|
|
swiperIndex: e.detail.current
|
|
});
|
|
if (this.data.albumList[0].label_data_count > 6 && e.detail.current === 5) {
|
|
this.setData({
|
|
showMoreAlbum: true
|
|
});
|
|
} else if (this.data.albumList[0].label_data_count > 6 && e.detail.current === 6) {
|
|
// 最后多一个直接跳转
|
|
this.setData({
|
|
swiperIndex: 5
|
|
});
|
|
this.goStoreAlbums();
|
|
} else {
|
|
this.setData({
|
|
showMoreAlbum: false
|
|
});
|
|
}
|
|
},
|
|
|
|
collectCoupons(e) {
|
|
let coupon = e.currentTarget.dataset.item;
|
|
if (coupon.api_availability == 3) {
|
|
return;
|
|
}
|
|
let strUlr = app.getNetAddresss("coupon.member-coupon.get-coupon");
|
|
wx.showLoading({
|
|
title: "loading"
|
|
});
|
|
app._postNetWork({
|
|
url: strUlr,
|
|
data: {
|
|
coupon_id: coupon.id
|
|
},
|
|
success: (resdata) => {
|
|
wx.hideLoading();
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
wx.showToast({
|
|
title: '领取成功',
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: res.msg,
|
|
duration: 2000
|
|
});
|
|
}
|
|
},
|
|
fail() {
|
|
wx.hideLoading();
|
|
}
|
|
});
|
|
},
|
|
|
|
// 客服弹框
|
|
showServicePopup() {
|
|
this.setData({
|
|
showServicePopup: true
|
|
});
|
|
},
|
|
|
|
closeServicePopup() {
|
|
this.setData({
|
|
showServicePopup: false
|
|
});
|
|
},
|
|
|
|
// 通讯录
|
|
showContactPopup(e) {
|
|
this.setData({
|
|
'contactPerson.mobile': e.currentTarget.dataset.mobile,
|
|
'contactPerson.name': e.currentTarget.dataset.name,
|
|
showContactPopup: true,
|
|
});
|
|
},
|
|
contactStaff(e) {
|
|
this.setData({
|
|
'contactPerson.mobile': e.detail.mobile,
|
|
'contactPerson.name': e.detail.name,
|
|
showContactPopup: true,
|
|
});
|
|
},
|
|
callPhone() {
|
|
wx.makePhoneCall({
|
|
phoneNumber: this.data.contactPerson.mobile,
|
|
});
|
|
},
|
|
copyPhone() {
|
|
wx.setClipboardData({
|
|
data: this.data.contactPerson.mobile,
|
|
success(res) {},
|
|
fail(err) {
|
|
wx.showToast({
|
|
title: '复制失败',
|
|
icon: 'none'
|
|
});
|
|
}
|
|
});
|
|
},
|
|
addPhone() {
|
|
wx.addPhoneContact({
|
|
firstName: this.data.contactPerson.name,
|
|
mobilePhoneNumber: this.data.contactPerson.mobile,
|
|
});
|
|
},
|
|
closeContactPopup(e) {
|
|
this.setData({
|
|
showContactPopup: false
|
|
});
|
|
},
|
|
|
|
// 拨打电话
|
|
phoneCall(e) {
|
|
let {
|
|
mobile
|
|
} = e.currentTarget.dataset;
|
|
mobile && wx.makePhoneCall({
|
|
phoneNumber: mobile,
|
|
});
|
|
},
|
|
gotoChat(evt) {
|
|
let url = evt.currentTarget.dataset.cservice + "&store_id=" + this.data.store_id;
|
|
wx.navigateTo({
|
|
url: url,
|
|
fail: (err) => {
|
|
app.tips("客服路由出错");
|
|
}
|
|
});
|
|
},
|
|
goStoreAlbums() {
|
|
wx.navigateTo({
|
|
url: '/packageG/independent_store/store_album/store_album?store_id=' + this.data.store_id,
|
|
});
|
|
},
|
|
goCouponStore() {
|
|
wx.navigateTo({
|
|
url: '/packageD/coupon/coupon_store',
|
|
});
|
|
},
|
|
goO2oStore(event) {
|
|
let type = event.currentTarget.dataset.type;
|
|
if (type === 'comment') {
|
|
wx.navigateTo({
|
|
url: `/packageC/o2o/o2oStore/o2oStore?store_id=${this.data.store_id}&activeType=comment`,
|
|
});
|
|
} else {
|
|
wx.navigateTo({
|
|
url: `/packageC/o2o/o2oStore/o2oStore?store_id=${this.data.store_id}`,
|
|
});
|
|
}
|
|
|
|
},
|
|
|
|
}); |