let api = require('../config/api.js');
// 时间戳格式化yyyy-MM-dd HH:mm:ss
function fmtDate(obj) {
let date = new Date(obj);
let y = date.getFullYear();
let m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
let d = date.getDate();
d = d < 10 ? ('0' + d) : d;
let h = date.getHours();
h = h < 10 ? ('0' + h) : h;
let minute = date.getMinutes();
let second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}
// 时间戳格式化yyyy-MM-dd
function fmtDateStr(obj) {
let date = new Date(obj);
let y = date.getFullYear();
let m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
let d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}
function diffDate(startTime, endTime) {
let start_date = new Date(startTime.replace(/-/g, "/"));
let end_date = new Date(endTime.replace(/-/g, "/"));
let days = end_date.getTime() - start_date.getTime();
let day = parseInt(days / (1000 * 60 * 60 * 24));
return day;
}
// ArrayBuffer转16进度字符串示例
function ab2hex(buffer) {
let hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function (bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('');
}
function formatTime(date) {
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let hour = date.getHours()
let minute = date.getMinutes()
let second = date.getSeconds()
return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
function hideLoadingMsg() {
wx.hideLoading()
}
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
// 封装微信的的request
function request(url, data = {}, method = "GET") {
return new Promise( (resolve, reject)=> {
wx.request({
url: url,
data: data,
method: method,
header: {
'Content-Type': 'application/json',
'X-Nideshop-Token': wx.getStorageSync('token')
},
success: res=>{
if (res.statusCode == 200) {
if (res.data.errno == 401) {
// showWarnToast1("请先登录")
resolve(res);
}
// console.log(res.data)
resolve(res.data);
}
},
fail: err => {
reject(err)
}
})
});
}
// 调用微信登录
function loginByWeixin() {
let code = null;
return new Promise( (resolve, reject)=> {
return login().then(res => {
code = res.code;
return getUserInfo();
}).then(userInfo => {
// console.log(userInfo);
//登录远程服务器
request(api.AuthLoginByWeixin, { code: code, userInfo: userInfo }, 'POST')
.then(res => {
if (res.errno === 0) {
//存储用户信息
wx.setStorageSync('userInfo', userInfo);
wx.setStorageSync('token', res.data.token);
wx.setStorageSync('userId', res.data.userId);
resolve(res);
} else {
reject(res);
}
}).catch(err => {
reject(err);
});
}).catch(err => {
reject(err);
})
});
}
/**
* 检查微信会话是否过期
*/
function checkSession() {
return new Promise( (resolve, reject)=> {
wx.checkSession({
success: ()=> {
resolve(true);
},
fail: ()=> {
reject(false);
}
})
});
}
/**
* 调用微信登录
*/
function login() {
return new Promise((resolve, reject) => {
wx.login({
success: res =>{
if (res.code) {
//登录远程服务器
console.log(res)
resolve(res);
} else {
reject(res);
}
},
fail: err=> {
reject(err);
}
});
});
}
function getUserInfo() {
return new Promise( (resolve, reject)=> {
wx.getUserInfo({
withCredentials: true,
success: (res)=> {
// console.log("4");
resolve(res);
},
fail: (err)=> {
// console.log("5");
reject(err);
// wx.navigateTo({
// url: '/pages/auth/auth/authSet',
// })
}
/*fail: function () {
//获取用户信息失败后。请跳转授权页面
wx.showModal({
title: '警告',
content: '尚未进行授权,请点击确定跳转到授权页面进行授权。',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
wx.navigateTo({
url: '../tologin/tologin',
})
}
}
})
}*/
})
});
}
function redirect(url) {
//判断页面是否需要登录
if (false) { //??????这里有问题??
wx.redirectTo({
url: '/pages/auth/login/login'
});
return false;
} else {
wx.redirectTo({
url: url
});
}
}
function toast(msg){
wx.showToast({
title: msg,
icon: 'none',
});
}
function showToasMsg(msg) {
wx.showLoading({
title: msg,
})
}
//失败提示
function showErrorToast(msg) {
wx.showToast({
title: msg,
image: '/images/icon_fail.png'
})
}
//警告提示
function showWarnToast(msg) {
wx.showToast({
title: msg,
image: '/images/icon_warn.png'
})
}
// 页面跳转提示
function showWarnToast1(msg) {
wx.showToast({
title: msg,
image: '/images/icon_warn.png',
success: ()=> {
setTimeout( ()=> {
wx.navigateTo({
url: '/pages/login/login',
})
}, 2000);
}
})
return false;
}
module.exports = {
formatTime,
request,
redirect,
showErrorToast,
showWarnToast,
checkSession,
login,
getUserInfo,
toast,
showToasMsg,
hideLoadingMsg,
fmtDate,
loginByWeixin,
ab2hex,
diffDate,
fmtDateStr,
showWarnToast1
}
微信小程序的api的一些封装
最新推荐文章于 2025-02-18 15:53:12 发布