var api = require('./api'); function formatTime(date) { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.getDate() var hour = date.getHours() var minute = date.getMinutes() var second = date.getSeconds() return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':') } function formatTime_1(fmt, date) { date = new Date(date) let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString(), // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace( ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0") ); } } return fmt; } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } function formatTimeNum(number, format) { var formateArr = ['Y', 'M', 'D', 'h', 'm', 's']; var returnArr = []; var date = new Date(number * 1000); returnArr.push(date.getFullYear()); returnArr.push(formatNumber(date.getMonth() + 1)); returnArr.push(formatNumber(date.getDate())); returnArr.push(formatNumber(date.getHours())); returnArr.push(formatNumber(date.getMinutes())); returnArr.push(formatNumber(date.getSeconds())); for (var i in returnArr) { format = format.replace(formateArr[i], returnArr[i]); } return format; } function testMobile(num) { console.log var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(16[0-9]{1})|(19[0-9]{1}))+\d{8})$/; if (num.length == 0) { wx.showToast({ title: '手机号为空', image: '/images/icon/icon_error.png', }) return false; } else if (num.length < 11) { wx.showToast({ title: '手机号长度有误!', image: '/images/icon/icon_error.png', }) return false; } else if (!myreg.test(num)) { wx.showToast({ title: '手机号有误!', image: '/images/icon/icon_error.png', }) return false; } else { return true; } } /** * 封封微信的的request */ function request(url, data = {}, method = "GET") { return new Promise(function (resolve, reject) { wx.request({ url: url, data: data, method: method, header: { 'Content-Type': 'application/json', 'X-Nideshop-Token': wx.getStorageSync('token') }, success: function (res) { if (res.statusCode == 200) { if (res.data.errno == 401) { //需要登录后才可以操作 let code = null; return login().then((res) => { code = res.code; return getUserInfo(); }).then((userInfo) => { //登录远程服务器 request(api.AuthLoginByWeixin, { code: code, userInfo: userInfo }, 'POST').then(res => { if (res.errno === 0) { //存储用户信息 wx.setStorageSync('userInfo', res.data.userInfo); wx.setStorageSync('token', res.data.token); resolve(res); } else { reject(res); } }).catch((err) => { reject(err); }); }).catch((err) => { reject(err); }) } else { resolve(res.data); } } else { reject(res.errMsg); } }, fail: function (err) { reject(err) } }) }); } /** * 检查微信会话是否过期 */ function checkSession() { return new Promise(function (resolve, reject) { wx.checkSession({ success: function () { resolve(true); }, fail: function () { reject(false); } }) }); } /** * 调用微信登录 */ function login() { return new Promise(function (resolve, reject) { wx.login({ success: function (res) { if (res.code) { //登录远程服务器 resolve(res); } else { reject(res); } }, fail: function (err) { reject(err); } }); }); } function getUserInfo() { return new Promise(function (resolve, reject) { wx.getUserInfo({ withCredentials: true, success: function (res) { resolve(res); }, fail: function (err) { reject(err); } }) }); } function redirect(url) { //判断页面是否需要登录 if (false) { } else { wx.redirectTo({ url: url }); } } function showErrorToast(msg) { wx.showToast({ title: msg, icon: 'none', }) } function showSuccessToast(msg) { wx.showToast({ title: msg, icon: 'success', }) } function sentRes(url, data, method, fn) { data = data || null; if (data == null) { var content = require('querystring').stringify(data); } else { var content = JSON.stringify(data); //json format } var parse_u = require('url').parse(url, true); var isHttp = parse_u.protocol == 'http:'; var options = { host: parse_u.hostname, port: parse_u.port || (isHttp ? 80 : 443), path: parse_u.path, method: method, headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(content, "utf8"), 'Trackingmore-Api-Key': '1b70c67e-d191-4301-9c05-a50436a2526d' } }; var req = require(isHttp ? 'http' : 'https').request(options, function (res) { var _data = ''; res.on('data', function (chunk) { _data += chunk; }); res.on('end', function () { fn != undefined && fn(_data); }); }); req.write(content); req.end(); } function loginNow() { var company = getApp().globalData.company let userInfo = wx.getStorageSync('userLogin'); if (userInfo == '') { switch (company) { // 未来出行港 case "nTFkj1GpWQ": wx.navigateTo({ url: '/nova-travel/app-auth/index', }); break; // 推理社 case "mwgEpKKsGg": wx.navigateTo({ url: '/nova-drama/app-auth/index', }); break; //VR旅游 case "5G6p8gMdOH": wx.navigateTo({ url: "/nova-vrtrip/app-auth/index", }) break; case "668rM7MPii": wx.navigateTo({ url: "/nova-workers/app-auth/index", }) break; case "i3cwsEHS4U": wx.navigateTo({ url: "/nova-page/diypage/app-auth/index" }) break; case "Aoh1ZFpBSa": wx.navigateTo({ url: "/nova-qingServiceCenter/app-auth/index" }) break; // 学位通 case "tBm19Q58Zm": wx.navigateTo({ url: "/nova-degree/app-auth/index" }) break; // 成长口袋 case "WpgR8iSgGM": wx.navigateTo({ url: "/nova-pocket/app-auth/index" }) break; } return false; } else { return true; } } function getTextLength(str, full) { let len = 0; for (let i = 0; i < str.length; i++) { let c = str.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) { len++; } else { len += (full ? 2 : 1); } } return len; } /** * rgba(255, 255, 255, 1) => #ffffff * @param {String} color */ function transferColor(color = '') { let res = '#'; color = color.replace(/^rgba?\(/, '').replace(/\)$/, ''); color = color.split(', '); color.length > 3 ? color.length = 3 : ''; for (let item of color) { item = parseInt(item || 0); if (item < 10) { res += ('0' + item) } else { res += (item.toString(16)) } } return res; } function transferBorder(border = '') { let res = border.match(/(\w+)px\s(\w+)\s(.*)/); let obj = {}; if (res) { obj = { width: +res[1], style: res[2], color: res[3] } } return res ? obj : null; } /** * 内边距,依次为上右下左 * @param {*} padding */ function transferPadding(padding = '0 0 0 0') { padding = padding.split(' '); for (let i = 0, len = padding.length; i < len; i++) { padding[i] = +padding[i].replace('px', ''); } return padding; } /** * type1: 0, 25, 17, rgba(0, 0, 0, 0.3) * type2: rgba(0, 0, 0, 0.3) 0px 25px 17px 0px => (0, 25, 17, rgba(0, 0, 0, 0.3)) * @param {*} shadow */ function transferBoxShadow(shadow = '', type) { if (!shadow || shadow === 'none') return; let color; let split; split = shadow.match(/(\w+)\s(\w+)\s(\w+)\s(rgb.*)/); if (split) { split.shift(); shadow = split; color = split[3] || '#ffffff'; } else { split = shadow.split(') '); color = split[0] + ')' shadow = split[1].split('px '); } return { offsetX: +shadow[0] || 0, offsetY: +shadow[1] || 0, blur: +shadow[2] || 0, color } } function getUid(prefix) { prefix = prefix || ''; return ( prefix + 'xxyxxyxx'.replace(/[xy]/g, c => { let r = (Math.random() * 16) | 0; let v = c === 'x' ? r : (r & 0x3) | 0x8; return v.toString(16); }) ); } function initProfile() { var company = getApp().globalData.company let userVetify = wx.getStorageSync('userVetify'); if (userVetify == '') { switch (company) { case "668rM7MPii": wx.redirectTo({ url: "/nova-workers/app-auth/Vetify/Vetify", }) break; } return false; } else { return true; } } module.exports = { formatTime_1: formatTime_1, formatTime: formatTime, formatTimeNum: formatTimeNum, request, redirect, showErrorToast, showSuccessToast, checkSession, login, getUserInfo, testMobile, sentRes, loginNow, getTextLength, transferBorder, transferColor, transferPadding, transferBoxShadow, getUid, initProfile }