store/mycomponent/foot/foot.js

833 lines
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var app = getApp();
const pageName = 'packageG/independent_store/index/index';
Component({
properties: {
datas: {
type: null
},
isDiy: {
type: null
},
foot_type: {
type: null
}
},
// 私有数据,可用于模板渲染
data: {
// 默认数据
defaultData: {
"group_title": {
"title": "底部导航名称",
"type": "text",
"value": "默认"
},
"button_item": {
"title": "",
"type": "bottomItem",
"choose": "2",
"menu_button": [{
"id": 0,
"text": "首页",
"image": "",
"icon": "icon-fontclass-shouye",
"isIcon": "1",
"link": "/packageG/index/index",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 1,
"text": "分类",
"image": "",
"icon": "icon-fontclass-fenlei",
"isIcon": "1",
"link": "/packageG/pages/category_v2/category_v2",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 2,
"text": "推广",
"image": "",
"icon": "icon-fontclass-tuiguang1",
"isIcon": "1",
"link": "/packageG/pages/member/extension/extension",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 3,
"text": "购物车",
"image": "",
"icon": "icon-fontclass-gouwuche1",
"isIcon": "1",
"link": "/packageG/pages/buy/cart_v2/cart_v2",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 4,
"text": "会员",
"image": "",
"icon": "icon-fontclass-huiyuanzhongxin",
"isIcon": "1",
"link": "/packageG/member_v2/member_v2",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}],
"value": {}
},
"tab_style": {
"title": "",
"type": "tab",
"value": {
"text_set": {
"text_show": true,
"text_color": "#333333",
"text_choose_color": "#ff4949"
},
"icon_set": {
"icon_show": true,
"icon_position": "top",
"icon_color": "#333333",
"icon_choose_color": "#ff4949"
},
"border_set": {
"border_show": false,
"border_color": "#e7e7eb",
"border_choose_color": "#29ba9c"
},
"bg_set": {
"bg_color": "#ffffff",
"bg_choose_color": "#ffffff"
},
"children_set": {
"children_color": "#333333",
"children_choose_color": "#29ba9c",
"children_bg_color": "#ffffff"
}
}
}
},
// 门店独立模块数据
storeData: {
"group_title": {
"title": "底部导航名称",
"type": "text",
"value": "默认"
},
"button_item": {
"title": "",
"type": "bottomItem",
"choose": "2",
"menu_button": [{
"id": 0,
"text": "首页",
"image": "",
"icon": "icon-ht_basis_shops",
"isIcon": "1",
"link": "/packageG/independent_store/index/index",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 1,
"text": "商品",
"size": "23",
"image": "",
"icon": "icon-ht_basis_goodgroup",
"isIcon": "1",
"link": "/packageC/o2o/o2oStore/o2oStore",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 2,
"text": "买单",
"size": "26",
"image": "",
"icon": "icon-shouyintai",
"isIcon": "1",
"link": "/packageC/cashier/cashier_pay/cashier_pay",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}, {
"id": 3,
"text": "会员",
"image": "",
"icon": "icon-fontclass-huiyuanzhongxin",
"isIcon": "1",
"link": "/packageG/member_v2/member_v2",
"isMinApp": "1",
"gh_id": "",
"minApp_link": "",
"sub_button": [],
"isDefault": true,
}],
"value": {}
},
"tab_style": {
"title": "",
"type": "tab",
"value": {
"text_set": {
"text_show": true,
"text_color": "#333333",
"text_choose_color": "#ff4949"
},
"icon_set": {
"icon_show": true,
"icon_position": "top",
"icon_color": "#333333",
"icon_choose_color": "#ff4949"
},
"border_set": {
"border_show": false,
"border_color": "#e7e7eb",
"border_choose_color": "#29ba9c"
},
"bg_set": {
"bg_color": "#ffffff",
"bg_choose_color": "#ffffff"
},
"children_set": {
"children_color": "#333333",
"children_choose_color": "#29ba9c",
"children_bg_color": "#ffffff"
}
}
}
},
iPnoneBottomBol: false,
emptyImage: '',
menu_button: [],
tab_style: {},
seletedId: '', //当前选中菜单id
selectedMenuIndex: "", //当前选中菜单索引
selectedSubMenuIndex: "", //当前选中子菜单索引
clientWidth: '375',
routeData: '',
temp: {},
routeDataShow: true,
},
lifetimes: {
// 生命周期函数可以为函数或一个在methods段中定义的方法名
attached() {
this.getiPnoneBottom();
},
moved() {},
detached() {},
},
// 生命周期函数可以为函数或一个在methods段中定义的方法名
attached() {},
// 此处attached的声明会被lifetimes字段中的声明覆盖
ready() {
this.setData({
// height: wx.getSystemInfoSync().windowHeight,
clientWidth: wx.getSystemInfoSync().windowWidth,
});
let pages = getCurrentPages(); //获取加载的页面
let currentPage = pages[pages.length - 1]; //获取当前页面的对象
// 页面路由 pageName独立门店路由
let pathName = currentPage.__route__;
this.setData({
routeData: currentPage.route,
selectedMenuIndex: ''
});
let that = this;
// console.log(this.data.datas,this.data.foot_type,"this.data.foot_type")
// console.log(pathName , pageName, "pageName")
if (this.data.isDiy && this.data.datas) {
// 首页或者装修页
if (this.data.foot_type == -1) {
// 不显示
this.setData({
routeDataShow: false,
});
} else if (!this.data.foot_type || this.data.foot_type == 1) {
if (this.data.datas.group_title) {
// 显示列表默认
this.setData({
menu_button: this.data.datas.button_item.menu_button,
tab_style: this.data.datas.tab_style.value
});
} else {
// 显示系统默认
this.setData({
menu_button: this.data.defaultData.button_item.menu_button,
tab_style: this.data.defaultData.tab_style.value
});
}
if (this.data.menu_button) {
let menus = this.data.menu_button;
for (let i = 0; i < menus.length; i++) {
let url = menus[i].link;
if (url.indexOf(that.data.routeData) >= 0 && menus[i].sub_button.length <= 0) {
if (that.data.routeData == 'packageG/newDiy/newDiy') {
//diy页面加判断个id来判断是否当前diy页面
if (currentPage.options && url.indexOf(Number(currentPage.options.page_id)) >= 0) {
that.setData({
selectedMenuIndex: i,
});
break;
}
} else {
that.setData({
selectedMenuIndex: i,
});
break;
}
}
}
// 二级用seletedId显示
for (let k = 0; k < menus.length; k++) {
for (let j = 0; j < menus[k].sub_button.length; j++) {
let url_1 = menus[k].sub_button[j].link;
if (url_1.indexOf(that.data.routeData) >= 0) {
that.setData({
selectedSubMenuIndex: k,
seletedId: menus[k].sub_button[j].id,
});
break;
}
}
}
}
} else if (this.data.foot_type == 2) {
// 显示自定义的底部导航
if (!this.data.datas.group_title) {
this.setData({
routeDataShow: false,
});
return;
}
this.setData({
menu_button: this.data.datas.button_item.menu_button,
tab_style: this.data.datas.tab_style.value
});
if (this.data.datas.button_item && this.data.datas.button_item.menu_button) {
let menus = this.data.datas.button_item.menu_button;
for (let i = 0; i < menus.length; i++) {
let url = menus[i].link;
if (url.indexOf(that.data.routeData) >= 0 && menus[i].sub_button.length <= 0) {
if (that.data.routeData == 'packageG/newDiy/newDiy') {
//diy页面加判断个id来判断是否当前diy页面
if (currentPage.options && url.indexOf(Number(currentPage.options.page_id)) >= 0) {
that.setData({
selectedMenuIndex: i,
});
break;
}
} else {
that.setData({
selectedMenuIndex: i,
});
break;
}
}
}
// 二级用seletedId显示
for (let k = 0; k < menus.length; k++) {
for (let j = 0; j < menus[k].sub_button.length; j++) {
let url_1 = menus[k].sub_button[j].link;
if (url_1.indexOf(that.data.routeData) >= 0) {
that.setData({
selectedSubMenuIndex: k,
seletedId: menus[k].sub_button[j].id,
});
break;
}
}
}
}
}
}
else if (app.globalData.store_alone_temp == 1 || pathName == pageName) {
// 门店独立模块
that.setData({
menu_button: that.data.storeData.button_item.menu_button,
tab_style: that.data.storeData.tab_style.value
});
// 显示storeData的底部导航
if (that.data.menu_button) {
let menus = that.data.menu_button;
for (let i = 0; i < menus.length; i++) {
let url = menus[i].link;
if (url.indexOf(that.data.routeData) >= 0 && menus[i].sub_button.length <= 0) {
that.setData({
routeDataShow: true,
selectedMenuIndex: i,
});
break;
}
}
}
}
else {
// 其他页面
wx.getStorage({
key: 'yz_basic_info',
success(res) {
if (res.data) {
that.setData({
temp: res.data.home
});
// let url = that.data.routeData;
if (that.data.routeData.indexOf('o2oHome') >= 0 ||
that.data.routeData.indexOf('VideoList') >= 0 || that.data.routeData.indexOf('easyRefuel') >= 0 ||
that.data.routeData.indexOf('VideoDetail') >= 0 || that.data.routeData.indexOf('groupCode') >= 0 || that.data.routeData.indexOf('questionnaireIndex') >= 0 ||
that.data.routeData.indexOf('groupCodeRanking') >= 0 || that.data.routeData.indexOf('groupCodeShow') >= 0 ||
that.data.routeData.indexOf('groupCodeRecord') >= 0 || that.data.routeData.indexOf('groupCodeData') >= 0) {
that.setData({
routeDataShow: true
});
}
if (that.data.iPnoneBottomBol) {
that.triggerEvent("showcarrfoot_ipx", true);
} else {
that.triggerEvent("showcarrfoot", true);
}
if (that.data.temp.item.menus && that.data.temp.item.menus.page_info) {
// 显示列表默认
let menu = JSON.parse(that.data.temp.item.menus.page_info);
that.setData({
menu_button: menu.button_item.menu_button,
tab_style: menu.tab_style.value
});
} else {
// 显示系统默认
that.setData({
menu_button: that.data.defaultData.button_item.menu_button,
tab_style: that.data.defaultData.tab_style.value
});
}
// 显示自定义的底部导航
if (that.data.menu_button) {
let menus = that.data.menu_button;
for (let i = 0; i < menus.length; i++) {
let url = menus[i].link;
if (url.indexOf(that.data.routeData) >= 0 && menus[i].sub_button.length <= 0) {
if (that.data.routeData == 'packageG/newDiy/newDiy') {
//diy页面加判断个id来判断是否当前diy页面
if (currentPage.options && url.indexOf(Number(currentPage.options.page_id)) >= 0) {
that.setData({
routeDataShow: true,
selectedMenuIndex: i,
});
break;
}
} else {
that.setData({
routeDataShow: true,
selectedMenuIndex: i,
});
break;
}
}
}
// 二级用seletedId显示
for (let k = 0; k < menus.length; k++) {
for (let j = 0; j < menus[k].sub_button.length; j++) {
let url_1 = menus[k].sub_button[j].link;
if (url_1.indexOf(that.data.routeData) >= 0) {
that.setData({
routeDataShow: true,
selectedSubMenuIndex: k,
seletedId: menus[k].sub_button[j].id,
});
break;
}
}
}
}
}
},
fail() {
that.getTemp();
}
});
}
},
pageLifetimes: {
// 组件所在页面的生命周期函数
show() {},
hide() {},
resize() {},
},
methods: {
getTemp() {
// 缓存获取不到请求接口
var that = this;
var urlStr = app.getNetAddresss("home-page.wxapp");
app._getNetWork({
showToastIn: false,
url: urlStr,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
that.setData({
temp: res.data
});
// let url = that.data.routeData;
if (that.data.routeData.indexOf('o2oHome') >= 0 ||
that.data.routeData.indexOf('VideoList') >= 0 || that.data.routeData.indexOf('easyRefuel') >= 0 ||
that.data.routeData.indexOf('VideoDetail') >= 0 || that.data.routeData.indexOf('groupCode') >= 0 || that.data.routeData.indexOf('questionnaireIndex') >= 0 ||
that.data.routeData.indexOf('groupCodeRanking') >= 0 || that.data.routeData.indexOf('groupCodeShow') >= 0 ||
that.data.routeData.indexOf('groupCodeRecord') >= 0 || that.data.routeData.indexOf('groupCodeData') >= 0) {
that.setData({
routeDataShow: true
});
}
if (that.data.iPnoneBottomBol) {
that.triggerEvent("showcarrfoot_ipx", true);
} else {
that.triggerEvent("showcarrfoot", true);
}
if (that.data.temp.item.foot && that.data.temp.item.foot.page_info) {
// 显示列表默认
let menu = JSON.parse(that.data.temp.item.foot.page_info);
that.setData({
menu_button: menu.button_item.menu_button,
tab_style: menu.tab_style.value
});
} else {
// 显示系统默认
that.setData({
menu_button: that.data.defaultData.button_item.menu_button,
tab_style: that.data.defaultData.tab_style.value
});
}
// 显示自定义的底部导航
if (that.data.menu_button) {
let menus = that.data.menu_button;
for (let i = 0; i < menus.length; i++) {
let url = menus[i].link;
if (url.indexOf(that.data.routeData) >= 0 && menus[i].sub_button.length <= 0) {
if (that.data.routeData == 'packageG/newDiy/newDiy') {
//diy页面加判断个id来判断是否当前diy页面
if (currentPage.options && url.indexOf(Number(currentPage.options.page_id)) >= 0) {
that.setData({
routeDataShow: true,
selectedMenuIndex: i,
});
break;
}
} else {
that.setData({
routeDataShow: true,
selectedMenuIndex: i,
});
break;
}
}
}
// 二级用seletedId显示
for (let k = 0; k < menus.length; k++) {
for (let j = 0; j < menus[k].sub_button.length; j++) {
let url_1 = menus[k].sub_button[j].link;
if (url_1.indexOf(that.data.routeData) >= 0) {
that.setData({
routeDataShow: true,
selectedSubMenuIndex: k,
seletedId: menus[k].sub_button[j].id,
});
break;
}
}
}
}
}
},
fail: function (res) {
}
});
},
/**
* 处理数据
* @param {String} datas
* **/
handle_data(datas) {
let handleDatas = {};
Object.keys(datas).map(key => {
handleDatas[key] = datas[key].value;
});
return handleDatas;
},
//选中主菜单
selectedMenu(e) {
let item = e.currentTarget.dataset.item;
let index = e.currentTarget.dataset.index;
if (this.data.selectedMenuIndex !== index) {
this.setData({
selectedSubMenuIndex: "",
selectedMenuIndex: index,
});
} else {
this.setData({
selectedSubMenuIndex: "",
selectedMenuIndex: "",
});
return;
}
if (item.sub_button.length == 0) {
if (item.isMinApp == 2) {
if (item.gh_id) {
if (item.minApp_link) {
try {
wx.navigateToMiniProgram({
appId: item.gh_id,
path: item.minApp_link,
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 {
if (item.link === this.data.routeData) {
return;
}
let url = item.link;
if (app.globalData.store_alone_temp == 1) {
// 门店独立模块底部导航
url += `?store_id=${app.globalData.STORE_ID}`;
}
if (url) {
try {
if (app.globalData.store_alone_temp == 1 && (item.id == 1 || item.id == 2)) {
wx.navigateTo({
url: url
});
} else {
wx.redirectTo({
url: url,
fail: () => {
app.tips('链接设置错误:' + url);
}
});
}
} catch (e) {
app.tips('链接设置错误:' + url);
}
} else {
app.tips('请设置跳转链接');
}
}
}
},
//选中子菜单
selectedSubMenu(e) {
let index = e.currentTarget.dataset.index;
let item = e.currentTarget.dataset.item;
if (item.isMinApp == 2) {
if (item.gh_id) {
if (item.minApp_link) {
try {
wx.navigateToMiniProgram({
appId: item.gh_id,
path: item.minApp_link,
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 {
if (item.link === this.data.routeData) {
return;
}
let url = item.link;
this.setData({
selectedSubMenuIndex: index,
});
let selectedSubMenu = this.data.menu_button[this.data.selectedMenuIndex].sub_button[this.data.selectedSubMenuIndex];
this.setData({
seletedId: selectedSubMenu.id,
});
if (url) {
try {
wx.redirectTo({
url: url,
fail: () => {
app.tips('链接设置错误:' + url);
}
});
} catch (e) {
wx.showToast({
title: '链接设置错误:' + url,
icon: 'none',
duration: 2000
});
}
} else {
wx.showToast({
title: '请设置跳转链接',
icon: 'none',
duration: 2000
});
}
}
},
getiPnoneBottom() {
let that = this;
try {
var value = wx.getStorageSync('iPhoneBottom');
if (value) {
that.setData({
iPnoneBottomBol: true
});
// Do something with return value
}
} catch (e) {
// Do something when catch error
}
},
goindex() {
wx.redirectTo({
url: '/packageG/index/index'
});
},
gocategory() {
wx.redirectTo({
url: '/packageG/pages/category_v2/category_v2'
});
},
goextension() {
wx.redirectTo({
url: '/packageG/pages/member/extension/extension'
});
},
gocart() {
wx.redirectTo({
url: '/packageG/pages/buy/cart_v2/cart_v2'
});
},
gomember() {
wx.redirectTo({
url: '/packageG/member_v2/member_v2'
});
},
}
});