418 lines
11 KiB
JavaScript
418 lines
11 KiB
JavaScript
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
|
||
}
|