Files
LinHelp/miniapp/miniprogram/utils/request.js

92 lines
2.2 KiB
JavaScript
Raw Normal View History

2026-07-07 16:38:13 +08:00
function ensureToken() {
2026-07-07 15:06:33 +08:00
const app = getApp()
2026-07-07 16:38:13 +08:00
if (app.globalData.token) {
return Promise.resolve(app.globalData.token)
}
2026-07-07 15:06:33 +08:00
return new Promise((resolve, reject) => {
wx.request({
2026-07-07 16:38:13 +08:00
url: app.globalData.apiBaseUrl + '/api/auth/dev-miniapp-login',
method: 'POST',
data: {
username: 'resident',
password: 'dev'
2026-07-07 16:38:13 +08:00
},
2026-07-07 15:06:33 +08:00
success(res) {
if (res.statusCode >= 200 && res.statusCode < 300 && res.data && res.data.code === 0) {
2026-07-07 16:38:13 +08:00
app.globalData.token = res.data.data.token
app.globalData.user = res.data.data
resolve(app.globalData.token)
2026-07-07 15:06:33 +08:00
return
}
2026-07-07 16:38:13 +08:00
reject(new Error((res.data && res.data.message) || '登录失败'))
2026-07-07 15:06:33 +08:00
},
fail: reject
})
})
}
2026-07-07 16:38:13 +08:00
function request(options) {
const app = getApp()
return new Promise((resolve, reject) => {
ensureToken().then((token) => {
wx.request({
url: app.globalData.apiBaseUrl + options.url,
method: options.method || 'GET',
data: options.data || {},
header: Object.assign({
Authorization: token,
satoken: token
}, options.header || {}),
success(res) {
if (res.statusCode >= 200 && res.statusCode < 300 && res.data && res.data.code === 0) {
resolve(res.data.data)
return
}
reject(new Error((res.data && res.data.message) || '请求失败'))
},
fail: reject
})
}).catch(reject)
})
}
function yuan(cent) {
return ((cent || 0) / 100).toFixed(2)
}
function statusText(status) {
const map = {
PENDING_CONFIRM: '待确认',
PREPARING: '备货中',
PENDING_DELIVERY: '待配送',
PENDING_PICKUP: '待自提',
DELIVERING: '配送中',
DELIVERED: '已送达',
COMPLETED: '已完成',
CANCELED: '已取消',
PENDING_REVIEW: '待审核',
PUBLISHED: '已发布',
REJECTED: '已驳回',
OFF_SHELF: '已下架',
SOLD: '已售出'
}
return map[status] || status || '-'
}
function setField(page, event) {
const field = event.currentTarget.dataset.field
if (!field) {
return
}
page.setData({
['form.' + field]: event.detail.value
})
}
2026-07-07 15:06:33 +08:00
module.exports = {
2026-07-07 16:38:13 +08:00
request,
yuan,
statusText,
setField
2026-07-07 15:06:33 +08:00
}