!(function () { function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _defineProperty(e, t, n) { return ( t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0, }) : (e[t] = n), e ); } function getQuery(e) { var t = []; if (-1 != e.indexOf("?")) for (var n = e.split("?")[1].split("&"), a = 0; a < n.length; a++) n[a].split("=")[0] && unescape(n[a].split("=")[1]) && (t[a] = { name: n[a].split("=")[0], value: unescape(n[a].split("=")[1]), }); return t; } function getUrlParam(e, t) { var n = new RegExp("(^|&)" + t + "=([^&]*)(&|$)"), a = e.split("?")[1].match(n); return null != a ? unescape(a[2]) : null; } function getSign(e, t, n) { var a = require("underscore.js"), r = require("md5.js"), i = "", o = getUrlParam(e, "sign"); if (o || (t && t.sign)) return !1; if ((e && (i = getQuery(e)), t)) { var s = []; for (var u in t) u && t[u] && (s = s.concat({ name: u, value: t[u] })); i = i.concat(s); } (i = a.sortBy(i, "name")), (i = a.uniq(i, !0, "name")); for (var c = "", f = 0; f < i.length; f++) i[f] && i[f].name && i[f].value && ((c += i[f].name + "=" + i[f].value), f < i.length - 1 && (c += "&")); return r(c + (n = n || wx.getStorageSync("userInfo").sessionid)); } var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, _base = require("base64"), _md = require("md5"), _md2 = _interopRequireDefault(_md), util = { base64Encode: function (e) { return (0, _base.base64_encode)(e); }, base64Decode: function (e) { return (0, _base.base64_decode)(e); }, md5: function (e) { return (0, _md2.default)(e); }, url: function (e, t) { var n = getApp(), a = n.siteInfo.siteroot + "?"; if ( (e && ((e = e.split("/"))[0] && (a += "c=" + e[0] + "&"), e[1] && (a += "a=" + e[1] + "&"), e[2] && (a += "do=" + e[2] + "&")), t && "object" === (void 0 === t ? "undefined" : _typeof(t))) ) for (var r in t) r && t.hasOwnProperty(r) && t[r] && (a += r + "=" + t[r] + "&"); return a; }, getSign: function (e, t, n) { return getSign(e, t, n); }, generateSecureSessionId: function (length) { var result = ''; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; }, request: function (e) { require("underscore.js"); var t, n = require("md5.js"), a = getApp(); ((e = e || {}).cachetime = e.cachetime ? e.cachetime : 0), (e.showLoading = void 0 === e.showLoading || e.showLoading); var i = e.url; if ((-1 == i.indexOf("http://") && -1 == i.indexOf("https://") && (i = util.url(i)), !e.data || !e.data.m)) { } var s = getSign(i, e.data); if ((s && (i = i + "&sign=" + s), !i)) return !1; if ((wx.showNavigationBarLoading(), e.showLoading && util.showLoading(), e.cachetime)) { var u = n(i), c = wx.getStorageSync(u), f = Date.parse(new Date()); if (c && c.data) { if (c.expire > f) return ( e.complete && "function" == typeof e.complete && e.complete(c), e.success && "function" == typeof e.success && e.success(c), console.log("cache:" + i), wx.hideLoading(), wx.hideNavigationBarLoading(), !0 ); wx.removeStorageSync(u); } } var userInfo = wx.getStorageSync("userInfo") || {}; if (!userInfo.sessionid) { userInfo.sessionid = util.generateSecureSessionId(32); wx.setStorageSync("userInfo", userInfo); } wx.request( (_defineProperty((t = { url: i, data: e.data ? e.data : {}, header: e.header ? e.header : {}, method: e.method ? e.method : "GET", }), "header", { "content-type": "application/json", "token": userInfo.sessionid } ), _defineProperty(t, "success", function (t) { if ((wx.hideNavigationBarLoading(), wx.hideLoading(), t.data.code !== 200)) { if (401 == t.data.code) return (wx.setStorageSync("userInfo", ""), void util.getUserInfo(function () { util.request(e); }) ); if (e.fail && "function" == typeof e.fail) e.fail(t); else if (t.data.message) { if (null != t.data.data && t.data.data.redirect) n = t.data.data.redirect; else var n = ""; a.util.message(t.data.message, n, "error"); } } else if ((e.success && "function" == typeof e.success && e.success(t), e.cachetime)) { var r = { data: t.data, expire: f + 1e3 * e.cachetime }; wx.setStorageSync(u, r); } }), _defineProperty(t, "fail", function (t) { wx.hideNavigationBarLoading(), wx.hideLoading(); var n = require("md5.js")(i), a = wx.getStorageSync(n); if (a && a.data) return ( e.success && "function" == typeof e.success && e.success(a), console.log("failreadcache:" + i), !0 ); e.fail && "function" == typeof e.fail && e.fail(t); }), _defineProperty(t, "complete", function (t) { e.complete && "function" == typeof e.complete && e.complete(t); }), t) ); }, getXphpUser: function (e, t) { var n = wx.getStorageSync("userInfo") || {}; util.request({ url: "auth/session/openid", data: { code: t || "" }, cachetime: 0, showLoading: !1, success: function (t) { t.data.code == 200 && ((n.sessionid = t.data.data.sessionid), (n.memberInfo = t.data.data.userinfo), wx.setStorageSync("userInfo", n)), "function" == typeof e && e(n); }, }); }, upadteUser: function (e, t) { var n = wx.getStorageSync("userInfo"); if (!e) return "function" == typeof t && t(n); (n.wxInfo = e.userInfo), util.request({ url: "auth/session/userinfo", data: { signature: e.signature, rawData: e.rawData, iv: e.iv, encryptedData: e.encryptedData, }, method: "POST", cachetime: 0, success: function (e) { e.data.code == 200 || ((n.memberInfo = e.data.data), wx.setStorageSync("userInfo", n)), "function" == typeof t && t(n); }, }); }, checkSession: function (e) { util.request({ url: "auth/session/check", method: "POST", cachetime: 0, showLoading: !1, success: function (t) { t.data.code == 201 ? "function" == typeof e.fail && e.fail() : "function" == typeof e.success && e.success(); }, fail: function () { "function" == typeof e.fail && e.fail(); }, }); }, getUserInfo: function (e, t) { var n = function () { console.log("start login"), wx.login({ success: function (n) { util.getXphpUser(function (n) { t ? util.upadteUser(t, function (t) { "function" == typeof e && e(t); }) : wx.canIUse("getUserInfo") ? wx.getUserInfo({ withCredentials: !0, success: function (t) { util.upadteUser(t, function (t) { "function" == typeof e && e(t); }); }, fail: function () { }, }) : "function" == typeof e && e(n); }, n.code); }, fail: function () { }, }); }, a = wx.getStorageSync("userInfo") || {}; a.sessionid ? util.checkSession({ success: function () { t ? util.upadteUser(t, function (t) { "function" == typeof e && e(t); }) : "function" == typeof e && e(a); }, fail: function () { (a.sessionid = ""), console.log("relogin"), wx.removeStorageSync("userInfo"), n(); }, }) : n(); }, navigateBack: function (e) { var t = e.delta ? e.delta : 1; if (e.data) { var n = getCurrentPages(), a = n[n.length - (t + 1)]; a.pageForResult ? a.pageForResult(e.data) : a.setData(e.data); } wx.navigateBack({ delta: t, success: function (t) { "function" == typeof e.success && e.success(t); }, fail: function (t) { "function" == typeof e.fail && e.fail(t); }, complete: function () { "function" == typeof e.complete && e.complete(); }, }); }, footer: function (e) { var t = e, n = getApp().tabBar; for (var a in n.list) n.list[a].pageUrl = n.list[a].pagePath.replace(/(\?|#)[^"]*/g, ""); t.setData({ tabBar: n, "tabBar.thisurl": t.__route__ }); }, message: function (e, t, n) { if (!e) return !0; if ( ("object" == (void 0 === e ? "undefined" : _typeof(e)) && ((t = e.redirect), (n = e.type), (e = e.title)), t) ) { var a = t.substring(0, 9), r = "", i = ""; "navigate:" == a ? ((i = "navigateTo"), (r = t.substring(9))) : "redirect:" == a ? ((i = "redirectTo"), (r = t.substring(9))) : ((r = t), (i = "redirectTo")); } console.log(r), n || (n = "success"), "success" == n ? wx.showToast({ title: e, icon: "success", duration: 2e3, mask: !!r, complete: function () { r && setTimeout(function () { wx[i]({ url: r }); }, 1800); }, }) : "error" == n && wx.showModal({ title: "温馨提醒", content: e, showCancel: !1, complete: function () { r && wx[i]({ url: r }); }, }); }, }; (util.user = util.getUserInfo), (util.showLoading = function () { wx.getStorageSync("isShowLoading") && (wx.hideLoading(), wx.setStorageSync("isShowLoading", !1)), wx.showLoading({ title: "加载中", complete: function () { wx.setStorageSync("isShowLoading", !0); }, fail: function () { wx.setStorageSync("isShowLoading", !1); }, }); }), (util.showImage = function (e) { var t = e ? e.currentTarget.dataset.preview : ""; if (!t) return !1; wx.previewImage({ urls: [t] }); }), (util.parseContent = function (e) { if (!e) return e; var t = e.match( new RegExp( [ "\ud83c[\udf00-\udfff]", "\ud83d[\udc00-\ude4f]", "\ud83d[\ude80-\udeff]", ].join("|"), "g" ) ); if (t) for (var n in t) e = e.replace( t[n], "[U+" + t[n].codePointAt(0).toString(16).toUpperCase() + "]" ); return e; }), (util.date = function () { (this.isLeapYear = function (e) { return ( 0 == e.getYear() % 4 && (e.getYear() % 100 != 0 || e.getYear() % 400 == 0) ); }), (this.dateToStr = function (e, t) { (e = arguments[0] || "yyyy-MM-dd HH:mm:ss"), (t = arguments[1] || new Date()); var n = e, a = ["日", "一", "二", "三", "四", "五", "六"]; return (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = n.replace(/yyyy|YYYY/, t.getFullYear())).replace( /yy|YY/, t.getYear() % 100 > 9 ? (t.getYear() % 100).toString() : "0" + (t.getYear() % 100) )).replace( /MM/, t.getMonth() > 9 ? t.getMonth() + 1 : "0" + (t.getMonth() + 1) )).replace(/M/g, t.getMonth())).replace( /w|W/g, a[t.getDay()] )).replace( /dd|DD/, t.getDate() > 9 ? t.getDate().toString() : "0" + t.getDate() )).replace(/d|D/g, t.getDate())).replace( /hh|HH/, t.getHours() > 9 ? t.getHours().toString() : "0" + t.getHours() )).replace(/h|H/g, t.getHours())).replace( /mm/, t.getMinutes() > 9 ? t.getMinutes().toString() : "0" + t.getMinutes() )).replace(/m/g, t.getMinutes())).replace( /ss|SS/, t.getSeconds() > 9 ? t.getSeconds().toString() : "0" + t.getSeconds() )).replace(/s|S/g, t.getSeconds()); }), (this.dateAdd = function (e, t, n) { switch (((n = arguments[2] || new Date()), e)) { case "s": return new Date(n.getTime() + 1e3 * t); case "n": return new Date(n.getTime() + 6e4 * t); case "h": return new Date(n.getTime() + 36e5 * t); case "d": return new Date(n.getTime() + 864e5 * t); case "w": return new Date(n.getTime() + 6048e5 * t); case "m": return new Date( n.getFullYear(), n.getMonth() + t, n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds() ); case "y": return new Date( n.getFullYear() + t, n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds() ); } }), (this.dateDiff = function (e, t, n) { switch (e) { case "s": return parseInt((n - t) / 1e3); case "n": return parseInt((n - t) / 6e4); case "h": return parseInt((n - t) / 36e5); case "d": return parseInt((n - t) / 864e5); case "w": return parseInt((n - t) / 6048e5); case "m": return ( n.getMonth() + 1 + 12 * (n.getFullYear() - t.getFullYear()) - (t.getMonth() + 1) ); case "y": return n.getFullYear() - t.getFullYear(); } }), (this.strToDate = function (dateStr) { var data = dateStr, reCat = /(\d{1,4})/gm, t = data.match(reCat); return ( (t[1] = t[1] - 1), eval("var d = new Date(" + t.join(",") + ");"), d ); }), (this.strFormatToDate = function (e, t) { var n = 0, a = -1, r = t.length; (a = e.indexOf("yyyy")) > -1 && a < r && (n = t.substr(a, 4)); var i = 0; (a = e.indexOf("MM")) > -1 && a < r && (i = parseInt(t.substr(a, 2)) - 1); var o = 0; (a = e.indexOf("dd")) > -1 && a < r && (o = parseInt(t.substr(a, 2))); var s = 0; ((a = e.indexOf("HH")) > -1 || (a = e.indexOf("hh")) > 1) && a < r && (s = parseInt(t.substr(a, 2))); var u = 0; (a = e.indexOf("mm")) > -1 && a < r && (u = t.substr(a, 2)); var c = 0; return ( (a = e.indexOf("ss")) > -1 && a < r && (c = t.substr(a, 2)), new Date(n, i, o, s, u, c) ); }), (this.dateToLong = function (e) { return e.getTime(); }), (this.longToDate = function (e) { return new Date(e); }), (this.isDate = function (e, t) { null == t && (t = "yyyyMMdd"); var n = t.indexOf("yyyy"); if (-1 == n) return !1; var a = e.substring(n, n + 4), r = t.indexOf("MM"); if (-1 == r) return !1; var i = e.substring(r, r + 2), o = t.indexOf("dd"); if (-1 == o) return !1; var s = e.substring(o, o + 2); return !( !isNumber(a) || a > "2100" || a < "1900" || !isNumber(i) || i > "12" || i < "01" || s > getMaxDay(a, i) || s < "01" ); }), (this.getMaxDay = function (e, t) { return 4 == t || 6 == t || 9 == t || 11 == t ? "30" : 2 == t ? (e % 4 == 0 && e % 100 != 0) || e % 400 == 0 ? "29" : "28" : "31"; }), (this.isNumber = function (e) { return /^\d+$/g.test(e); }), (this.toArray = function (e) { e = arguments[0] || new Date(); var t = Array(); return ( (t[0] = e.getFullYear()), (t[1] = e.getMonth()), (t[2] = e.getDate()), (t[3] = e.getHours()), (t[4] = e.getMinutes()), (t[5] = e.getSeconds()), t ); }), (this.datePart = function (e, t) { t = arguments[1] || new Date(); var n = "", a = ["日", "一", "二", "三", "四", "五", "六"]; switch (e) { case "y": n = t.getFullYear(); break; case "M": n = t.getMonth() + 1; break; case "d": n = t.getDate(); break; case "w": n = a[t.getDay()]; break; case "ww": n = t.WeekNumOfYear(); break; case "h": n = t.getHours(); break; case "m": n = t.getMinutes(); break; case "s": n = t.getSeconds(); } return n; }), (this.maxDayOfDate = function (e) { (e = arguments[0] || new Date()).setDate(1), e.setMonth(e.getMonth() + 1); var t = e.getTime() - 864e5; return new Date(t).getDate(); }); }), (module.exports = util); })();