会员模块
This commit is contained in:
54
api/err.js
Normal file
54
api/err.js
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
/**
|
||||
* 处理错误信息
|
||||
* @property {Object} errInfo
|
||||
*/
|
||||
|
||||
const errInfo = (obj) =>{
|
||||
if(obj.status_code == 401){
|
||||
wx.showModal({
|
||||
title : "登录提示",
|
||||
content : "长时间未操作,登录已过期,请重新登录",
|
||||
showCancel : false,
|
||||
confirmColor: "#0b0041",
|
||||
confirmText : "确定",
|
||||
success : ()=>{
|
||||
// 清理客户端登录缓存
|
||||
wx.removeStorageSync("token")
|
||||
// 返回首页
|
||||
wx.redirectTo({
|
||||
url: "/pages/login/index",
|
||||
})
|
||||
}
|
||||
})
|
||||
}else if(obj.status_code == 422){
|
||||
wx.showToast({
|
||||
title: obj.message,
|
||||
icon : "none"
|
||||
})
|
||||
}else if(obj.status_code == 400 || obj.status_code == 0){
|
||||
wx.showToast({
|
||||
title: obj.message,
|
||||
icon : "none"
|
||||
})
|
||||
}else if(obj.status_code == 404){
|
||||
wx.showToast({
|
||||
title: "接口地址不存在,请联系系统管理员",
|
||||
icon : "none"
|
||||
})
|
||||
}else if(obj.status_code == 500){
|
||||
wx.showToast({
|
||||
title: "服务端:" + obj.message,
|
||||
icon : "none"
|
||||
})
|
||||
}else {
|
||||
wx.showToast({
|
||||
title: "code:" + obj.status_code + ", msg:" + obj.message,
|
||||
icon : "none"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
errInfo
|
||||
}
|
||||
43
api/index.js
Normal file
43
api/index.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
// 授权登录
|
||||
import auth from "./interfaces/auth"
|
||||
|
||||
// 图片上传
|
||||
import file from "./interfaces/file"
|
||||
|
||||
// 首页
|
||||
import index from "./interfaces/index"
|
||||
|
||||
// 商城
|
||||
import mall from "./interfaces/mall"
|
||||
|
||||
// 会员
|
||||
import member from "./interfaces/member"
|
||||
|
||||
// 库存
|
||||
import stock from "./interfaces/stock"
|
||||
|
||||
// 我的
|
||||
import user from "./interfaces/user"
|
||||
|
||||
// 饮水打卡
|
||||
import water from "./interfaces/water"
|
||||
|
||||
// 健康答案
|
||||
import record from "./interfaces/record"
|
||||
|
||||
export default {
|
||||
auth,
|
||||
file,
|
||||
index,
|
||||
mall,
|
||||
member,
|
||||
stock,
|
||||
user,
|
||||
water,
|
||||
record
|
||||
}
|
||||
31
api/interfaces/auth.js
Normal file
31
api/interfaces/auth.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
//验证码登录
|
||||
const smsAuth = data => req({
|
||||
url: "user/auth/sms",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
|
||||
//获取验证码
|
||||
const getSms = data => req({
|
||||
url: "user/auth/verify",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
|
||||
//隐私+协议
|
||||
const registeragree = (website) => req({
|
||||
url: "cms/pages/" + website
|
||||
})
|
||||
|
||||
export default ({
|
||||
smsAuth,
|
||||
getSms,
|
||||
registeragree
|
||||
})
|
||||
17
api/interfaces/file.js
Normal file
17
api/interfaces/file.js
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* 图图片上传公用接口
|
||||
*/
|
||||
import { upload } from "../request"
|
||||
|
||||
//图上传
|
||||
const uploadImg = (imgPaht, data) => upload({
|
||||
url: "storage/upload",
|
||||
method: "POST",
|
||||
key: "upload",
|
||||
path: imgPaht,
|
||||
data: data
|
||||
})
|
||||
|
||||
export default ({
|
||||
uploadImg
|
||||
})
|
||||
46
api/interfaces/index.js
Normal file
46
api/interfaces/index.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
// 商城首页
|
||||
const home = () => req({
|
||||
url: "mall"
|
||||
})
|
||||
|
||||
// 文章-列表
|
||||
const articlesList = (data) => req({
|
||||
url: "cms/articles",
|
||||
data: data
|
||||
})
|
||||
|
||||
// 文章-详情
|
||||
const articlesSee = (article_id) => req({
|
||||
url: "cms/articles/" + article_id
|
||||
})
|
||||
|
||||
// 文章-分类
|
||||
const articlesClass = () => req({
|
||||
url: "cms/categories"
|
||||
})
|
||||
|
||||
// 文章-收藏
|
||||
const articlesFavorite = (article_id) => req({
|
||||
url: "cms/articles/favorite/" + article_id
|
||||
})
|
||||
|
||||
// 文章-点赞
|
||||
const articlesSubscribe = (article_id) => req({
|
||||
url: "cms/articles/subscribe/" + article_id
|
||||
})
|
||||
|
||||
export default ({
|
||||
home,
|
||||
articlesList,
|
||||
articlesSee,
|
||||
articlesClass,
|
||||
articlesFavorite,
|
||||
articlesSubscribe
|
||||
})
|
||||
49
api/interfaces/mall.js
Normal file
49
api/interfaces/mall.js
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import {req} from "../request"
|
||||
|
||||
//商城首页
|
||||
const index = () => req({url: "mall"})
|
||||
|
||||
//商品详情
|
||||
const goodsShow = (goods) => req({url: "mall/goods/" + goods})
|
||||
|
||||
//创建订单
|
||||
const foundOrder = (data) => req({url: "mall/buy/goods", data: data})
|
||||
|
||||
//确认订单
|
||||
const affirmOrder = (data) => req({url: "mall/buy/goods", method: 'POST', data: data})
|
||||
|
||||
//水滴支付
|
||||
const affirmPay = (order_no, data) => req({url: "mall/pay/" + order_no + "/score", method: 'POST', data: data})
|
||||
|
||||
//文章详情
|
||||
const articlesSee = (article_id) => req({url: "cms/articles/" + article_id})
|
||||
|
||||
// //文章列表
|
||||
const articlesList = (data) => req({url: "cms/articles", data: data})
|
||||
//收藏
|
||||
const favorite = (article_id) => req({url: "cms/articles/favorite/" + article_id})
|
||||
//点赞
|
||||
const subscribe = (article_id) => req({url: "cms/articles/subscribe/" + article_id})
|
||||
//文章列表-全部分类
|
||||
const classifysAll = () => req({url: "cms/categories"})
|
||||
//文章列表-全部
|
||||
const favorites = (data) => req({url: "cms/articles", data: data})
|
||||
|
||||
export default({
|
||||
index,
|
||||
goodsShow,
|
||||
foundOrder,
|
||||
affirmOrder,
|
||||
affirmPay,
|
||||
articlesSee,
|
||||
articlesList,
|
||||
favorite,
|
||||
subscribe,
|
||||
classifysAll,
|
||||
favorites
|
||||
})
|
||||
67
api/interfaces/member.js
Normal file
67
api/interfaces/member.js
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
// 会员开通-前置
|
||||
const openSee = (identity) => req({
|
||||
url: "user/identities/" + identity
|
||||
})
|
||||
|
||||
// 会员开通-取可开通身份内容
|
||||
const identitieSee = (identity_id) => req({
|
||||
url: "user/identities/create/" + identity_id
|
||||
})
|
||||
|
||||
// 会员开通-提交
|
||||
const openIndex = (identity_id, data) => req({
|
||||
url: "user/identities/create/" + identity_id,
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
|
||||
// 会员开通-展示
|
||||
const openModel = () => req({
|
||||
url: "user/identities"
|
||||
})
|
||||
|
||||
// 会员开通-获取升级单信息
|
||||
const orderSee = (order_id) => req({
|
||||
url: "user/identities/order/" + order_id
|
||||
})
|
||||
|
||||
// 会员开通-编辑凭证
|
||||
const orderSubmit = (order_id, data) => req({
|
||||
url: "user/identities/order/" + order_id,
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
|
||||
// 获取小程序openid
|
||||
const openid = (data) => req({
|
||||
url: "user/auth/mini_openid",
|
||||
data: data
|
||||
})
|
||||
|
||||
// 微信支付-商品
|
||||
const wechatPay = (order_no, data) => req({
|
||||
url: "mall/pay/" + order_no + "/wechat",
|
||||
data: data
|
||||
})
|
||||
|
||||
// 确认开通身份
|
||||
const identityPay = (order_id, data) => req({url: "user/identities/pay/" + order_id + "/wechat", data: data})
|
||||
|
||||
export default ({
|
||||
openSee,
|
||||
identitieSee,
|
||||
openIndex,
|
||||
openModel,
|
||||
orderSee,
|
||||
orderSubmit,
|
||||
openid,
|
||||
wechatPay,
|
||||
identityPay
|
||||
})
|
||||
37
api/interfaces/record.js
Normal file
37
api/interfaces/record.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import {req} from "../request"
|
||||
|
||||
//舌诊检测
|
||||
const tongue = data => req({
|
||||
url: "ais/tongue",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
|
||||
//舌象类型详情
|
||||
const aiSee = (tongue_id) => req({
|
||||
url: "ais/tongue/" + tongue_id
|
||||
})
|
||||
|
||||
//舌象类型结果
|
||||
const types = (tongue_id, data) => req({
|
||||
url: "ais/tongue/" + tongue_id + "/types",
|
||||
data: data
|
||||
})
|
||||
|
||||
//舌诊检测列表
|
||||
const aiList = data => req({
|
||||
url: "ais/tongue",
|
||||
data: data
|
||||
})
|
||||
|
||||
export default({
|
||||
tongue,
|
||||
aiSee,
|
||||
types,
|
||||
aiList
|
||||
})
|
||||
65
api/interfaces/stock.js
Normal file
65
api/interfaces/stock.js
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
// 提货-前置
|
||||
const pick = () => req({
|
||||
url: "user/stock/pick"
|
||||
})
|
||||
|
||||
// 提货-列表记录
|
||||
const list = (data) => req({
|
||||
url: "user/stock",
|
||||
data: data
|
||||
})
|
||||
|
||||
// 提货-账变记录
|
||||
const logs = (data) => req({
|
||||
url: "user/stock/logs",
|
||||
data: data
|
||||
})
|
||||
|
||||
// 提货-提交
|
||||
const pickTake = (data) => req({
|
||||
url: "user/stock/pick",
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
|
||||
// 地址-列表
|
||||
const siteList = () => req({
|
||||
url: "mall/addresses"
|
||||
})
|
||||
|
||||
// 地址-新增
|
||||
const siteAdd = (data) => req({
|
||||
url: "mall/addresses",
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
|
||||
// 地址-删除
|
||||
const siteDel = (address) => req({
|
||||
url: "mall/addresses/" + address,
|
||||
method: 'DELETE'
|
||||
})
|
||||
|
||||
// 地址-省市区获取
|
||||
const create = (data) => req({
|
||||
url: "mall/addresses/create",
|
||||
data: data
|
||||
})
|
||||
|
||||
export default ({
|
||||
pick,
|
||||
list,
|
||||
logs,
|
||||
pickTake,
|
||||
siteList,
|
||||
siteAdd,
|
||||
siteDel,
|
||||
create
|
||||
})
|
||||
108
api/interfaces/user.js
Normal file
108
api/interfaces/user.js
Normal file
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
//首页
|
||||
const home = () => req({
|
||||
url: "user"
|
||||
})
|
||||
|
||||
// 我的推广码
|
||||
const invite = () => req({
|
||||
url: "user/invite"
|
||||
})
|
||||
|
||||
//任务列表
|
||||
const taskList = (data) => req({
|
||||
url: "tasks",
|
||||
data: data
|
||||
})
|
||||
|
||||
//任务分类
|
||||
const taskIndex = () => req({
|
||||
url: "tasks/categories"
|
||||
})
|
||||
|
||||
//上传头像
|
||||
const setting = (key,data) => req({
|
||||
url: "user/setting/" + key,
|
||||
method: 'PUT',
|
||||
data: data
|
||||
})
|
||||
|
||||
//小程序码
|
||||
const miniShare = (data) => req({
|
||||
url: "user/mini_share",
|
||||
data: data
|
||||
})
|
||||
|
||||
//我的收藏
|
||||
const favorites = (data) => req({
|
||||
url: "user/favorites",
|
||||
data: data
|
||||
})
|
||||
|
||||
//产品中心-分类
|
||||
const mallCategories = (data) => req({
|
||||
url: "mall/categories",
|
||||
data: data
|
||||
})
|
||||
|
||||
//产品中心-列表
|
||||
const mallGoods = (data) => req({
|
||||
url: "mall/goods",
|
||||
data: data
|
||||
})
|
||||
|
||||
//订单
|
||||
const orders = (data) => req({
|
||||
url: "mall/orders",
|
||||
data: data
|
||||
})
|
||||
|
||||
//订单详情
|
||||
const goodsDet = (order_no) => req({
|
||||
url: "mall/orders/" + order_no
|
||||
})
|
||||
|
||||
//订单签收
|
||||
const goodsSign = (order_no) => req({
|
||||
url: "mall/orders/" + order_no + "/sign",
|
||||
method: 'PUT'
|
||||
})
|
||||
|
||||
// 邀请码背景
|
||||
const poster = (data) => req({
|
||||
url: "poster",
|
||||
data: data
|
||||
})
|
||||
|
||||
//水滴账户
|
||||
const score = (data) => req({url: "user/account/score", data: data})
|
||||
|
||||
//水滴商城-列表
|
||||
const scoresGoods = (data) => req({
|
||||
url: "mall/goods/scores",
|
||||
data: data
|
||||
})
|
||||
|
||||
export default ({
|
||||
home,
|
||||
invite,
|
||||
taskList,
|
||||
taskIndex,
|
||||
setting,
|
||||
miniShare,
|
||||
favorites,
|
||||
mallCategories,
|
||||
mallGoods,
|
||||
orders,
|
||||
goodsDet,
|
||||
goodsSign,
|
||||
poster,
|
||||
score,
|
||||
scoresGoods
|
||||
})
|
||||
37
api/interfaces/water.js
Normal file
37
api/interfaces/water.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import { req } from "../request"
|
||||
|
||||
//初始化接口
|
||||
const Init = () => req({
|
||||
url: "drink/init"
|
||||
})
|
||||
|
||||
// 基本资料初始化
|
||||
const Base = () => req({
|
||||
url: "drink/base/init"
|
||||
})
|
||||
|
||||
//提交基本资料
|
||||
const Store = data => req({
|
||||
url: "drink/base/store",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
|
||||
//添加饮用水
|
||||
const Drink = data => req({
|
||||
url: "drink/drink",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
|
||||
export default ({
|
||||
Init,
|
||||
Base,
|
||||
Store,
|
||||
Drink
|
||||
})
|
||||
139
api/request.js
Normal file
139
api/request.js
Normal file
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
import {errInfo} from './err'
|
||||
import {updToken} from './updateToken'
|
||||
|
||||
// 请求方式配置
|
||||
// https://apitest.siyuankunlun.com //测试地址
|
||||
// https://api.siyuankunlun.com //正式地址
|
||||
|
||||
// wxecf8786d25af47b3 正式appid
|
||||
const api = "https://apitest.siyuankunlun.com/api/"
|
||||
// const api = "https://api.siyuankunlun.com/api/"
|
||||
|
||||
const header = {
|
||||
"Accept" : "application/json"
|
||||
}
|
||||
let isToken = true
|
||||
|
||||
/**
|
||||
* 请求
|
||||
* @property {Object} req
|
||||
*/
|
||||
|
||||
const req = (obj, noToken) => {
|
||||
// 检查是否无需要token
|
||||
if(noToken != undefined){
|
||||
isToken = noToken
|
||||
}
|
||||
|
||||
// header
|
||||
if(obj.token){
|
||||
header.Authorization = obj.token || ''
|
||||
} else {
|
||||
header.Authorization = wx.getStorageSync("token") || ""
|
||||
}
|
||||
|
||||
// 处理请求信息
|
||||
return new Promise((resolve, reject) => {
|
||||
// 组合header
|
||||
obj.header = {
|
||||
"Accept" : "application/json",
|
||||
"Authorization" : wx.getStorageSync("token") || ""
|
||||
}
|
||||
if(!isToken){
|
||||
obj.header.Authorization = ''
|
||||
}
|
||||
wx.request({
|
||||
url : api + obj.url,
|
||||
header : obj.header || {},
|
||||
method : obj.method || 'GET',
|
||||
data : obj.data || {},
|
||||
success : res => {
|
||||
// 更新token
|
||||
if (res.header.Authorization) updToken(res.header.Authorization)
|
||||
// 处理信息
|
||||
if (res.data.status_code == 200) {
|
||||
resolve(res.data)
|
||||
} else {
|
||||
if (res.data.status_code == 401 || res.data.status_code == 400) {
|
||||
reject({
|
||||
login : false,
|
||||
codeBeen: false
|
||||
})
|
||||
}
|
||||
errInfo(res.data)
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
console.log(err)
|
||||
wx.showToast({
|
||||
title : err.errMsg,
|
||||
icon : "none"
|
||||
})
|
||||
reject(err)
|
||||
},
|
||||
complete(){
|
||||
if(!isToken) isToken = true
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传
|
||||
* @property {Object} upload
|
||||
*/
|
||||
|
||||
const upload = (obj) => {
|
||||
// header
|
||||
header.Authorization = wx.getStorageSync("token") || ""
|
||||
// 处理上传信息
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.showLoading({
|
||||
title: "上传中..",
|
||||
mask: true
|
||||
})
|
||||
wx.uploadFile({
|
||||
url : api + obj.url,
|
||||
header : header,
|
||||
name : obj.key || "",
|
||||
filePath: obj.path || "",
|
||||
formData: obj.data || {},
|
||||
success : res=>{
|
||||
wx.hideLoading();
|
||||
// 处理返回值
|
||||
let jsonData = JSON.parse(res.data)
|
||||
// 更新token
|
||||
if (res.header.Authorization) updToken(res.header.Authorization)
|
||||
// 处理信息
|
||||
if (jsonData.status_code == 200) {
|
||||
resolve(jsonData.data)
|
||||
} else {
|
||||
if (jsonData.status_code == 401) {
|
||||
reject({
|
||||
login: false
|
||||
})
|
||||
}
|
||||
errInfo(jsonData)
|
||||
}
|
||||
},
|
||||
fail : err=>{
|
||||
wx.showToast({
|
||||
title : err.errMsg,
|
||||
icon : "none"
|
||||
})
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
req,
|
||||
upload
|
||||
}
|
||||
21
api/updateToken.js
Normal file
21
api/updateToken.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* 手太欠
|
||||
* 愿这世界都如故事里一样 美好而动人~
|
||||
*/
|
||||
|
||||
/**
|
||||
* 更新token
|
||||
* @property {String} updToken
|
||||
*/
|
||||
|
||||
const updToken = (token) =>{
|
||||
// 更新全局存储器
|
||||
getApp().globalData.token = token
|
||||
// 更新客户端登录缓存
|
||||
wx.setStorageSync('token', token)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
updToken
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user