init project

This commit is contained in:
limqhz
2020-06-21 16:27:58 +08:00
commit e8fe10b5fb
178 changed files with 9964 additions and 0 deletions

435
utils/api.js Normal file
View File

@@ -0,0 +1,435 @@
//testURL
//const BASE_URL = 'http://2t716830p2.zicp.vip';
//prodURL
const BASE_URL = 'https://api.hongyutiyu.top';
// const platformId = 1;
import {
getCurrentPageUrl
} from './util.js'
function isUnLogin() {
wx.setStorageSync('history', getCurrentPageUrl());
wx.removeStorageSync('accessToken');
wx.redirectTo({
url: '/pages/login/index',
})
}
function buildURL(url, needToken) {
let token = wx.getStorageSync('accessToken');
if (!needToken) {
return token ? url + (url.indexOf('?') >= 0 ? '&' : '?') + "access_token=" + token : url
}
if (!token) {
// wx.redirectTo({
// url: '/pages/login/index',
// })
isUnLogin();
return;
}
return url + (url.indexOf('?') >= 0 ? '&' : '?') + "access_token=" + token;
}
export function fetchPost(url, params, needToken, multiple) {
url = buildURL(url, needToken);
// params.platformId = platformId;
// 如果url不存在返回错误
if (!url) {
return new Promise((resolve, reject) => {
reject();
})
}
console.log("网络请求", url, params);
// 如果上传图片
if (multiple) {
return new Promise((resolve, reject) => {
wx.uploadFile({
url: BASE_URL + url,
filePath: params.filePath,
name: 'image',
formData: {},
success: function(response) {
console.log(response.data);
let res = JSON.parse(response.data);
console.log(res);
if (response.statusCode == 200) {
if (res.err_code == 0) {
// wx.hideLoading();
resolve(res);
} else {
if (res.err_code == 10003 || res.err_code == 10006 || res.err_code == 20006) {
// wx.removeStorageSync('accessToken');
// wx.redirectTo({
// url: '/pages/login/index',
// })
isUnLogin();
reject(res);
return;
} else if (res.err_code == 20005) {
wx.removeStorageSync('accessToken');
wx.removeStorageSync('history');
wx.hideLoading();
wx.showToast({
title: res.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
} else {
wx.hideLoading();
wx.showToast({
title: res.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
}
}
} else {
wx.hideLoading();
wx.showToast({
title: '网络错误',
icon: 'none',
})
reject(response);
}
},
fail: function(err) {
console.log(err);
wx.hideLoading();
wx.showToast({
title: '网络错误',
icon: 'none',
})
reject(response);
},
})
})
}
// 获取POST数据
return new Promise((resolve, reject) => {
wx.request({
url: BASE_URL + url,
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'POST',
success: function(res) {
console.log("POST返回数据", url,res);
if (res.data.err_code == 0) {
wx.hideLoading();
resolve(res.data);
} else {
if (res.data.err_code == 10003 || res.data.err_code == 10006 || res.data.err_code == 20006) {
// wx.removeStorageSync('accessToken');
// wx.redirectTo({
// url: '/pages/login/index',
// })
isUnLogin();
reject(res);
return;
} else if (res.data.err_code == 30022) {
reject(res);
} else if (res.data.err_code == 20005) {
wx.removeStorageSync('accessToken');
wx.removeStorageSync('history');
wx.hideLoading();
wx.showToast({
title: res.data.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
} else {
wx.hideLoading();
wx.showToast({
title: res.data.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
}
}
},
fail: function(res) {
wx.hideLoading();
wx.showToast({
title: '网络错误',
icon: 'none',
duration: 2000
})
reject(res);
},
})
})
}
// get请求
export function fetchGet(url, params, needToken) {
url = buildURL(url, needToken);
if (!url) {
return new Promise((resolve, reject) => {
reject();
})
}
// params.platformId = platformId;
return new Promise((resolve, reject) => {
wx.request({
url: BASE_URL + url,
data: params,
method: 'GET',
success: function(res) {
console.log("GET返回数据", url, res);
if (res.statusCode == 200) {
if (res.data.err_code == 0) {
wx.hideLoading();
resolve(res.data);
} else {
if (res.data.err_code == 10003 || res.data.err_code == 10006 || res.data.err_code == 20006) {
isUnLogin();
reject(res);
return;
} else if (res.data.err_code == 20005) {
wx.removeStorageSync('accessToken');
wx.removeStorageSync('history');
wx.hideLoading();
wx.showToast({
title: res.data.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
} else {
wx.hideLoading();
wx.showToast({
title: res.data.err_msg,
icon: 'none',
duration: 2000
})
reject(res);
}
}
} else {
wx.hideLoading();
reject(res)
wx.showToast({
title: '网络错误',
icon: 'none',
duration: 2000
})
}
},
fail: function(res) {
wx.hideLoading();
reject(res)
wx.showToast({
title: '网络错误',
icon: 'none',
duration: 2000
})
},
})
})
}
// 暴露接口
export default {
/**
* 公告
*/
// 首页公告
announcements(params) {
return fetchGet('/announcements', params, false);
},
// 公告详情
announcementDetail(params) {
return fetchGet('/announcement/detail', params, false);
},
/**
* 场馆
*/
// 场馆列表
venues(params) {
return fetchGet('/venues', params, false);
},
// 场馆列表详情
venueDetail(params) {
return fetchPost('/venue/detail', params, false);
},
// 预约课程时间显示
venueLessonShow(params) {
return fetchGet('/venue/lesson/show', params, false);
},
// 健身馆对应时间的课程
venueLessonDate(params) {
return fetchPost('/venue/lesson/date', params, false);
},
// 课程详情
venueLessonDetail(params) {
return fetchPost('/venue/lesson/detail', params, false);
},
// 确认订单页面
venueLessonOrder(params) {
return fetchPost('/venue/lesson/order', params, true);
},
// 预约课程(会员卡)
memberLessonTicketOrderMemberCard(params) {
return fetchPost('/member/lesson/ticket/order/memberCard', params, true);
},
// 预约课程(微信支付)
memberLessonTicketOrderWX(params) {
return fetchPost('/member/lesson/ticket/order/wx', params, true);
},
// 篮球馆我要进场
venueJoin(params) {
return fetchGet('/venue/join', params, true);
},
/**
* 个人中心
*/
// 常见问题
faqs(params) {
return fetchGet('/faqs', params, false);
},
// 个人中心
memberCenter(params) {
return fetchPost('/member/center', params, true);
},
// 关于我们
aboutUs(params) {
return fetchGet('/about/uss', params, false);
},
// 上传图像
uploadAvatar(params) {
return fetchPost('/upload/avatar', params, true, true);
},
// 个人信息
memberInformation(params) {
return fetchPost('/member/information', params, true);
},
// 修改个人信息
memberUpdateInformation(params) {
return fetchPost('/member/update/information', params, true);
},
// 充值界面
recharges(params) {
return fetchGet('/recharges', params, true);
},
// 我的预约
memberLessonTicketsReserve(params) {
return fetchPost('/member/lesson/tickets/reserve', params, true);
},
// 预约详情页
memberLessonTicketsDetail(params) {
return fetchPost('/member/lesson/tickets/detail', params, true);
},
// 取消预约
memberLessonTicketsCancel(params) {
return fetchPost('/member/lesson/tickets/cancel', params, true);
},
// 我的会员卡
memberVenueCard(params) {
return fetchPost('/member/venue/card', params, true)
},
/**
* 登录注册
*/
// 发送登录验证码
smsLogin(params) {
return fetchPost('/member/sms/login', params, false);
},
// 手机验证码登录
memberLogin(params) {
return fetchPost('/member/login', params, false);
},
// 微信快捷登录
memberLoginWX(params) {
return fetchPost('/member/login/wx', params, false);
},
// 发送注册验证码
smsRegister(params) {
return fetchPost('/member/sms/register', params, false);
},
// 手机验证码注册
memberRegister(params) {
return fetchPost('/member/register', params, false);
},
// 微信绑定手机号
memberLoginWXPhone(params) {
return fetchPost('/member/login/wx/phone', params, false);
},
// 发送修改手机验证码
memberSmsUpdate(params) {
return fetchPost('/member/sms/update', params, false);
},
/**
* 支付
*/
// 购买会员卡
memberCardOrderCreate(params) {
return fetchPost('/member/card/order/create', params, true);
},
// 充值
orderRecharge(params) {
return fetchPost('/order/recharge', params, true);
},
// 首页地图查询场馆
venuesMap(params) {
return fetchGet('/venues/map', params, false);
},
// 协议
protocols(params) {
return fetchGet('/protocols', params, false)
},
// 上传人脸识别图片
memberFaceInfo(params) {
return fetchPost('/member/face/info', params, true, true);
},
// 添加银行卡
memberBankBind(params) {
return fetchPost('/member/bank/bind', params, true);
},
// 提现申请
memberWithdrawApply(params) {
return fetchPost('/member/withdraw/apply', params, true);
},
// 我的账单
memberMoneyLogBill(params) {
return fetchPost('/member/money/log/bill', params, true);
},
// 签到
memberLessonTicketsSing(params) {
return fetchPost('/member/lesson/tickets/sing', params, true);
},
// 人脸信息
memberFaceInfoInfos(params) {
return fetchPost('/member/face/info/infos', params, true);
},
// 修改默认会员卡
memberVenueUpdateCard(params) {
return fetchGet('/member/venue/updateCard', params, true);
},
// 已用手机号登录,支付,再跳转微信登录
memberLoginCheckWx(params) {
return fetchPost('/member/login/checkWx', params, true);
}
}

63
utils/pay.js Normal file
View File

@@ -0,0 +1,63 @@
export function pay(body) {
return new Promise((resolve, reject) => {
console.log(body)
wx.requestPayment({
timeStamp: body.time_stamp,
nonceStr: body.nonce_str,
package: 'prepay_id=' + body.prepay_id,
signType: body.sign_type,
paySign: body.pay_sign,
success: function(res) {
wx.showToast({
title: '支付成功',
icon: 'success',
})
resolve(res);
},
fail: function(res) {
console.log(res);
reject(res);
},
})
})
}
export function payWxLoing(body) {
console.log(body)
const app = getApp();
return new Promise((resolve, reject) => {
if (!body.userInfo) {
reject(body);
return;
}
wx.login({
success: function(res) {
wx.showLoading({
title: '加载中...',
mask: true,
})
app.$api.memberLoginCheckWx({
avatar: body.userInfo.avatarUrl,
code: res.code,
nickname: body.userInfo.nickName
}).then(obj => {
wx.setStorageSync('accessToken', obj.authorization.accessToken);
resolve(res);
})
},
fail: function(res) {
reject(res);
},
})
})
}
export default {
wxPay(body) {
return pay(body);
},
payWxLoing(body) {
return payWxLoing(body);
}
}

32
utils/util.js Normal file
View File

@@ -0,0 +1,32 @@
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
// 获取当前页url
const getCurrentPageUrl = () => {
let pages = getCurrentPages();
let currentPage = pages[pages.length - 1];
let url = '/' + currentPage.route;
let options = currentPage.options;
for (let key in options) {
url += (url.indexOf('?') >= 0 ? '&' : '?') + `${key}=${options[key]}`;
}
return url;
}
module.exports = {
formatTime: formatTime,
getCurrentPageUrl: getCurrentPageUrl
}