EP-WachatApp/eaterplanet_ecommerce/utils/index.js

418 lines
11 KiB
JavaScript
Raw Permalink 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();
var util = require('./util.js');
var wcache = require('./wcache.js');
function loadStatus() {
return new Promise(function (resolve) {
util.check_login_new().then((res) => {
let appLoadStatus = 1;
if (res) {
if (!app.globalData.hasDefaultCommunity) {
appLoadStatus = 2;
}
} else {
appLoadStatus = 0;
}
app.globalData.appLoadStatus = appLoadStatus;
resolve();
})
});
};
function changeCommunity(community, city) {
let token = wx.getStorageSync('token') || '';
if (community.communityId && community.communityId !== app.globalData.community.communityId) {
app.globalData.timer.del();
app.globalData.changedCommunity = true;
app.globalData.community = community;
app.globalData.refresh = true;
app.globalData.hasDefaultCommunity = true;
wx.setStorage({
key: "community",
data: community
});
app.globalData.city = city;
wx.setStorage({
key: "city",
data: city
});
var data = {
community: community,
city: city
};
var historyCommunity = app.globalData.historyCommunity || [];
if (0 === historyCommunity.length || historyCommunity[0] && historyCommunity[0].communityId !== community.communityId) {
historyCommunity.length > 1 && historyCommunity.shift();
historyCommunity.push(data);
app.globalData.historyCommunity = historyCommunity;
wx.setStorage({
key: "historyCommunity",
data: historyCommunity
})
}
app.globalData.changedCommunity = true;
app.globalData.goodsListCarCount = [];
if (token) {
console.log('changeCommunity step2')
// 请求提交社区id
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.switch_history_community',
token: token,
head_id: community.communityId
},
dataType: 'json',
success: function (res) {
swithNavBack(community)
}
})
} else {
swithNavBack(community)
}
} else {
if (!app.globalData.community.disUserHeadImg) {
app.globalData.community = community;
wx.setStorage({
key: "community",
data: community
})
}
app.globalData.changedCommunity = true;
app.globalData.goodsListCarCount = [];
wx.switchTab({
url: "/eaterplanet_ecommerce/pages/index/index"
});
}
}
// 切换社区跳转
function swithNavBack(community) {
app.globalData.community_id = community.communityId;
let navBackUrl = app.globalData.navBackUrl;
if (navBackUrl) {
let tabUrls = ['/eaterplanet_ecommerce/pages/index/index', '/eaterplanet_ecommerce/pages/order/shopCart', '/eaterplanet_ecommerce/pages/user/me', '/eaterplanet_ecommerce/pages/type/index'];
if (tabUrls.indexOf(navBackUrl) != -1) {
wx.switchTab({
url: navBackUrl,
success: () => {
app.globalData.navBackUrl = '';
}
})
} else {
wx.redirectTo({
url: navBackUrl,
success: () => {
app.globalData.navBackUrl = '';
}
})
}
} else {
wx.switchTab({
url: "/eaterplanet_ecommerce/pages/index/index"
});
}
}
function isIdCard(t) {
return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(t);
};
/**
* 购物车数量
*/
function cartNum() {
function getTab(cb) {
let token = wx.getStorageSync('token') || '';
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'car.count',
token: token,
community_id: app.globalData.community.communityId
},
dataType: 'json',
success: function (res) {
if (res.data.code == 0) {
app.globalData.cartNum = res.data.data;
wx.setStorageSync("cartNum", res.data.data);
setTab(res.data.data);
cb(res.data);
}
}
})
}
function setTab(t) {
if ("number" == typeof t && t) {
// wx.setTabBarBadge({
// index: 1,
// text: t + "",
// fail: function (error) {
// console.log(error);
// }
// })
} else {
// wx.removeTabBarBadge({
// index: 1,
// fail: function (error) {
// console.log(error);
// }
// });
}
}
var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
return new Promise(function (resolve) {
if (i) {
getTab(resolve);
} else {
var nowTime = new Date().getTime();
if (app.globalData.cartNumStamp < nowTime) {
getTab(resolve);
} else {
("number" == typeof n && (app.globalData.cartNum = n), setTab(app.globalData.cartNum), resolve(n))
}
app.globalData.cartNumStamp = new Date().getTime() + 60000;
}
});
}
function getRect(t, e, r) {
return new Promise(function (n) {
wx.createSelectorQuery().in(t)[r ? "selectAll" : "select"](e).boundingClientRect(function (t) {
r && Array.isArray(t) && t.length && n(t), !r && t && n(t);
}).exec();
});
}
/**
* 设置缓存过期时间
*/
function getInNum() {
return new Promise((resolve, reject) => {
let timestamp = Date.parse(new Date());
let inNum = parseInt(wx.getStorageSync('inNum')) || 0;
let inNumExp = parseInt(wx.getStorageSync('inNumExp')) || 0;
let today = new Date(new Date().toLocaleDateString()).getTime();
if ((timestamp - inNumExp) > 86400000 || inNumExp == 0) {
console.log('过期了');
inNum = 1;
wx.setStorage({
key: 'inNumExp',
data: today
})
} else {
inNum += 1;
}
wx.setStorage({
key: 'inNum',
data: inNum
})
let isThree = inNum > 3 ? false : true;
resolve(isThree);
})
}
/**
* 设置导航颜色
*/
function setNavBgColor() {
let navBgColor = wcache.get('navBgColor', 1);
let navFontColor = wcache.get('navFontColor', 1);
if (navBgColor == 1 || navFontColor == 1) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_nav_bg_color'
},
dataType: 'json',
success: function (res) {
if (res.data.code == 0) {
let nav_bg_color = res.data.data || '#4d9ee9';
let nav_font_color = res.data.nav_font_color || '#ffffff';
wx.setNavigationBarColor({
frontColor: nav_font_color,
backgroundColor: nav_bg_color
})
wcache.put('navBgColor', nav_bg_color, 100);
wcache.put('navFontColor', nav_font_color, 100);
}
}
})
} else {
wx.setNavigationBarColor({
frontColor: navFontColor,
backgroundColor: navBgColor
})
}
}
/**
* 获取配置名字 团长快递等
*/
function setGroupInfo() {
return new Promise(function (resolve, reject) {
// let groupInfo = wcache.get('groupInfo', 1);
// if (groupInfo == 1) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_group_info'
},
dataType: 'json',
success: function (res) {
if (res.data.code == 0) {
let obj = res.data.data;
console.log(obj);
obj.commiss_diy_name = obj.commiss_diy_name || '分销';
obj.group_name = obj.group_name || '社区';
obj.owner_name = obj.owner_name || '团长';
obj.delivery_ziti_name = obj.delivery_ziti_name || '社区自提';
obj.delivery_tuanzshipping_name = obj.delivery_tuanzshipping_name || '团长配送';
obj.delivery_express_name = obj.delivery_express_name || '快递配送';
obj.placeorder_tuan_name = obj.placeorder_tuan_name;
obj.placeorder_trans_name = obj.placeorder_trans_name;
obj.localtown_modifypickingname = obj.localtown_modifypickingname
// wcache.put('groupInfo', obj, 60);
resolve(obj);
}
}
})
// } else {
// resolve(groupInfo);
// }
})
}
/**
* 获取首页、购物车图标
*/
function setIcon() {
let tabList = wcache.get('tabList', 1);
return new Promise(function (resolve, reject) {
if (tabList == 1) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_tabbar'
},
dataType: 'json',
success: function (res) {
if (res.data.code == 0) {
let list = res.data.data;
let iconArr = {
home: '',
car: '',
user: ''
};
iconArr.home = list['i1'] || '/eaterplanet_ecommerce/images/icon-tab-index1.png';
iconArr.car = list['i2'] || '/eaterplanet_ecommerce/images/icon-tab-shop1.png';
iconArr.user = list['i3'] || '/eaterplanet_ecommerce/images/icon-tab-me.png';
resolve(iconArr);
}
}
})
} else {
let iconArr = {
home: '',
car: ''
};
iconArr.home = tabList.list[0].iconPath;
iconArr.car = tabList.list[2].iconPath;
iconArr.user = tabList.list[3].iconPath;
resolve(iconArr);
}
})
}
function getPx(t) {
return Math.round(app.globalData.systemInfo.windowWidth / 375 * t);
}
/**
* canvas画文字
*/
function drawText(context, obj, o, a, n, i) {
var r = o.split(""),
l = "",
u = [];
context.setFillStyle(obj.color);
// context.fillStyle = obj.color;
context.textAlign = obj.textAlign;
context.setFontSize(obj.size);
// context.font = obj.size +'px Arial';
for (var s = 0; s < r.length; s++) {
context.measureText(l).width < i || (u.push(l), l = ""), l += r[s];
}
u.push(l);
for (var m = 0; m < u.length; m++) {
context.fillText(u[m], a, n + 12 * m);
}
}
/**
* 下载图片至本地
*/
function download(t) {
return new Promise(function (e) {
wx.downloadFile({
url: t,
success: function (t) {
200 === t.statusCode && e(t);
},
fail: function (t) {
console.log(t), wx.hideLoading();
}
});
});
}
/**
* 更新首页列表购物车数量
* actId: 商品id
* num数量
*/
function indexListCarCount(actId, num = 0) {
let obj = {
actId,
num
};
if (!actId) return;
let goodsListCarCount = app.globalData.goodsListCarCount || [];
if(Object.prototype.toString.call(goodsListCarCount) !== '[object Array]') {
goodsListCarCount = [];
}
if (goodsListCarCount.length == 0) {
goodsListCarCount.push(obj);
} else {
let k = goodsListCarCount.findIndex((n) => n.actId == obj.actId);
if (k == -1) {
goodsListCarCount.push(obj);
} else {
goodsListCarCount[k].num = obj.num;
}
}
app.globalData.goodsListCarCount = goodsListCarCount;
}
module.exports = {
changeCommunity,
loadStatus,
isIdCard,
cartNum,
getRect,
getInNum,
setNavBgColor,
setGroupInfo,
setIcon,
getPx,
drawText,
download,
indexListCarCount
}