v1.0
This commit is contained in:
26
api/address.js
Normal file
26
api/address.js
Normal file
@ -0,0 +1,26 @@
|
||||
import api from './api'
|
||||
|
||||
// 删除用户地址
|
||||
export function getAddressDel(data) {
|
||||
return api.post(`/address/del/${data.id}`, undefined, { login: true })
|
||||
}
|
||||
|
||||
// 设置默认地址
|
||||
export function getAddressDefault(data) {
|
||||
return api.post(`/address/default/set/{id}`, data, { login: true })
|
||||
}
|
||||
|
||||
// 添加或修改地址
|
||||
export function getAddressAddAndEdit(data) {
|
||||
return api.post(`/address/addAndEdit`, data, { login: true })
|
||||
}
|
||||
|
||||
// 用户地址列表
|
||||
export function getAddressList(data) {
|
||||
return api.get(`/address/list`, data, { login: true })
|
||||
}
|
||||
|
||||
// 城市列表
|
||||
export function getAddressCityList(data) {
|
||||
return api.get(`/address/city_list`, data, { login: true })
|
||||
}
|
151
api/api.js
Normal file
151
api/api.js
Normal file
@ -0,0 +1,151 @@
|
||||
// #ifdef H5
|
||||
// h5端
|
||||
import Fly from 'flyio/dist/npm/fly'
|
||||
// #endif
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
// app端
|
||||
import Fly from 'flyio/dist/npm/wx'
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
import Fly from 'flyio/dist/npm/wx'
|
||||
// #endif
|
||||
|
||||
import { handleLoginFailure } from '@/utils'
|
||||
import { VUE_APP_API_URL } from '@/config'
|
||||
import cookie from '@/utils/cookie'
|
||||
import { replace } from '@/utils/router'
|
||||
|
||||
const fly = new Fly()
|
||||
fly.config.baseURL = VUE_APP_API_URL
|
||||
|
||||
fly.interceptors.response.use(
|
||||
response => {
|
||||
// console.log(response)
|
||||
// 定时刷新access-token
|
||||
return response
|
||||
},
|
||||
error => {
|
||||
if (error.toString() == 'Error: Network Error') {
|
||||
handleLoginFailure()
|
||||
return Promise.reject({ msg: '未登录', toLogin: true })
|
||||
}
|
||||
if (error.status == 401) {
|
||||
handleLoginFailure()
|
||||
return Promise.reject({ msg: '未登录', toLogin: true })
|
||||
}
|
||||
if (error.response.data.status == 5109) {
|
||||
uni.showToast({
|
||||
title: error.response.data.msg,
|
||||
icon: 'none',
|
||||
duration: 2000,
|
||||
})
|
||||
}
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
const defaultOpt = { login: true }
|
||||
|
||||
function baseRequest(options) {
|
||||
const token = cookie.get('accessToken')
|
||||
|
||||
options.headers = {
|
||||
...options.headers,
|
||||
}
|
||||
|
||||
// if (options.login === true) {
|
||||
options.headers = {
|
||||
...options.headers,
|
||||
Authorization: 'Bearer ' + token.accessToken,
|
||||
}
|
||||
// }
|
||||
|
||||
// 结构请求需要的参数
|
||||
const { url, params, data, login, ...option } = options
|
||||
|
||||
// 发起请求
|
||||
return fly
|
||||
.request(url, params || data, {
|
||||
...option,
|
||||
})
|
||||
.then(res => {
|
||||
console.log('--> % baseRequest % res:\n', res)
|
||||
const data = res.data || {}
|
||||
|
||||
if (res.status !== 200) {
|
||||
return Promise.reject({ msg: '请求失败', res, data })
|
||||
}
|
||||
|
||||
console.log('gxs --> % baseRequest % data.code:\n', data.code)
|
||||
if (data.code == 401) {
|
||||
uni.hideLoading()
|
||||
handleLoginFailure()
|
||||
uni.showToast({
|
||||
title: data.msg,
|
||||
icon: 'none',
|
||||
duration: 2000,
|
||||
})
|
||||
return Promise.reject({ msg: data.msg, res, data })
|
||||
}
|
||||
|
||||
if (data.code != 0) {
|
||||
uni.showToast({
|
||||
title: data.msg,
|
||||
icon: 'none',
|
||||
duration: 2000,
|
||||
})
|
||||
return Promise.reject({ data, res })
|
||||
}
|
||||
|
||||
console.log('gxs --> % baseRequest resolve % data:\n', data.data)
|
||||
return Promise.resolve(data.data, res)
|
||||
|
||||
// if ([401, 403].indexOf(data.status) !== -1) {
|
||||
// handleLoginFailure()
|
||||
// return Promise.reject({ msg: res.data.msg, res, data, toLogin: true })
|
||||
// } else if (data.status === 200) {
|
||||
// return Promise.resolve(data, res)
|
||||
// } else if (data.status == 5101) {
|
||||
// return Promise.reject({ msg: res.data.msg, res, data })
|
||||
// } else {
|
||||
// return Promise.reject({ msg: res.data.msg, res, data })
|
||||
// }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* http 请求基础类
|
||||
* 参考文档 https://www.kancloud.cn/yunye/axios/234845
|
||||
*
|
||||
*/
|
||||
const request = ['post', 'put', 'patch'].reduce((request, method) => {
|
||||
/**
|
||||
*
|
||||
* @param url string 接口地址
|
||||
* @param data object get参数
|
||||
* @param options object axios 配置项
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
request[method] = (url, data = {}, options = {}) => {
|
||||
console.log(url, data)
|
||||
return baseRequest(Object.assign({ url, data, method }, defaultOpt, options))
|
||||
}
|
||||
return request
|
||||
}, {})
|
||||
|
||||
;['get', 'delete', 'head'].forEach(method => {
|
||||
/**
|
||||
*
|
||||
* @param url string 接口地址
|
||||
* @param params object get参数
|
||||
* @param options object axios 配置项
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
request[method] = (url, params = {}, options = {}) => {
|
||||
return baseRequest(Object.assign({ url, params, method }, defaultOpt, options))
|
||||
}
|
||||
})
|
||||
|
||||
export default request
|
23
api/auth.js
Normal file
23
api/auth.js
Normal file
@ -0,0 +1,23 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 使用手机 + 验证码登录
|
||||
*/
|
||||
export function smsLogin(data) {
|
||||
console.log('--> % smsLogin % data:\n', data)
|
||||
return api.post('/member/auth/sms-login', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用手机 + 验证码登录
|
||||
*/
|
||||
export function sendSmsCode(data) {
|
||||
return api.post('/member/auth/send-sms-code', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 小程序
|
||||
*/
|
||||
export function weixinLogin(data) {
|
||||
return api.post('/member/auth/weixin-mini-app-login', data, { login: false })
|
||||
}
|
36
api/cart.js
Normal file
36
api/cart.js
Normal file
@ -0,0 +1,36 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 添加购物车
|
||||
*/
|
||||
export function getCartAdd(data) {
|
||||
return api.post('/cart/add', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除购物车
|
||||
*/
|
||||
export function getCartDel(data) {
|
||||
return api.post('/cart/cart/del', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车列表
|
||||
*/
|
||||
export function getCartList(data) {
|
||||
return api.get('/cart/cart/list', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车列表
|
||||
*/
|
||||
export function getCartNum(data) {
|
||||
return api.post('/cart/num', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车数量
|
||||
*/
|
||||
export function getCartCount(data) {
|
||||
return api.get('/cart/count', data, { login: false })
|
||||
}
|
20
api/goods.js
Normal file
20
api/goods.js
Normal file
@ -0,0 +1,20 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 获得banner列表
|
||||
*/
|
||||
export function getBanner(data) {
|
||||
return api.get('/market/banner/list', data, { login: false })
|
||||
}
|
||||
/**
|
||||
* 获取首页信息
|
||||
*/
|
||||
export function getHomeData(data) {
|
||||
return api.get('/product/shop/index', data, { login: false })
|
||||
}
|
||||
/**
|
||||
* 评论列表
|
||||
*/
|
||||
export function replyList(data) {
|
||||
return api.get(`/product/reply/list/${data.id}`, data, { login: false })
|
||||
}
|
16
api/market.js
Normal file
16
api/market.js
Normal file
@ -0,0 +1,16 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 获得banner列表
|
||||
*/
|
||||
export function getBanner(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/market/banner/list', data, { login: false })
|
||||
}
|
||||
/**
|
||||
* 获取首页信息
|
||||
*/
|
||||
export function getHomeData(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/product/shop/index', data, { login: false })
|
||||
}
|
109
api/order.js
Normal file
109
api/order.js
Normal file
@ -0,0 +1,109 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 订单确认
|
||||
*/
|
||||
export function orderConfirm(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.post('/order/confirm', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单创建
|
||||
*/
|
||||
export function orderCreate(data) {
|
||||
console.log('--> % orderCreate % data:\n', data)
|
||||
return api.post(`/order/create/${data.key}`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人中心订单统计
|
||||
*/
|
||||
export function orderUserCount(data) {
|
||||
console.log('--> % orderCreate % data:\n', data)
|
||||
return api.post(`/order/user_count`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单列表
|
||||
*/
|
||||
export function orderList(data) {
|
||||
return api.get(`/order/list`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算订单金额
|
||||
*/
|
||||
export function orderComputed(data) {
|
||||
return api.post(`/order/computed/${data.key}`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算详情
|
||||
*/
|
||||
export function orderInfo(data) {
|
||||
return api.get(`/order/detail/${data.key}`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
*/
|
||||
export function orderCancel(data) {
|
||||
return api.post(`/order/cancel`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单收货
|
||||
*/
|
||||
export function orderTake(data) {
|
||||
return api.post(`/order/take`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单评价
|
||||
*/
|
||||
export function orderComments(data) {
|
||||
return api.post(`/order/comments`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单删除
|
||||
*/
|
||||
export function orderDelete(data) {
|
||||
return api.post(`/order/del`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 申请售后
|
||||
*/
|
||||
export function applyForAfterSales(data) {
|
||||
return api.post(`/after/applyForAfterSales`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 售后订单详情
|
||||
*/
|
||||
export function applyForAfterSalesInfo(data) {
|
||||
return api.get(`/after/applyForAfterSales/${data.key}`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 售后列表
|
||||
*/
|
||||
export function storeAfterSalesList(data) {
|
||||
return api.get(`/after/storeAfterSales/list`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单支付
|
||||
*/
|
||||
export function orderPay(data) {
|
||||
return api.post(`/order/pay`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 物流信息
|
||||
*/
|
||||
export function orderExpress(data) {
|
||||
return api.post(`/order/order/express`, data, { login: false })
|
||||
}
|
39
api/product.js
Normal file
39
api/product.js
Normal file
@ -0,0 +1,39 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 获得商品分类列表
|
||||
*/
|
||||
export function getCategoryList(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/product/category/list', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品列表
|
||||
*/
|
||||
export function getProductList(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/product/products', data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品详情
|
||||
*/
|
||||
export function getProductDetail(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get(`/product/detail/${data}`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加收藏
|
||||
*/
|
||||
export function getProductAddCollect(data) {
|
||||
return api.post(`/relation/collect/add`, data, { login: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消收藏
|
||||
*/
|
||||
export function getProductDelCollect(data) {
|
||||
return api.post(`/relation/collect/del`, data, { login: false })
|
||||
}
|
24
api/user.js
Normal file
24
api/user.js
Normal file
@ -0,0 +1,24 @@
|
||||
import api from './api'
|
||||
|
||||
/**
|
||||
* 基本信息
|
||||
*/
|
||||
export function getUserInfo(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/member/user/get', data, { login: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收藏产品,或足迹
|
||||
*/
|
||||
export function relationCollectUser(data) {
|
||||
console.log('--> % getUserInfo % data:\n', data)
|
||||
return api.get('/relation/collect/user', data, { login: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户头像
|
||||
*/
|
||||
export function updateAvatar(data) {
|
||||
return api.post('/member/user/update-avatar', data, { login: true })
|
||||
}
|
Reference in New Issue
Block a user