yuminge-app/yun-min-program-plugin-master/packageG/independent_store/index/index.js

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}`,
});
}
},
});