function ensureToken() { const app = getApp() if (app.globalData.token) { return Promise.resolve(app.globalData.token) } return new Promise((resolve, reject) => { wx.request({ url: app.globalData.apiBaseUrl + '/api/auth/dev-miniapp-login', method: 'POST', data: { username: 'resident', password: 'dev' }, success(res) { if (res.statusCode >= 200 && res.statusCode < 300 && res.data && res.data.code === 0) { app.globalData.token = res.data.data.token app.globalData.user = res.data.data resolve(app.globalData.token) return } reject(new Error((res.data && res.data.message) || '登录失败')) }, fail: reject }) }) } 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 }) } module.exports = { request, yuan, statusText, setField }