init
This commit is contained in:
161
miniprogram/pages/order/delivery-detail/api.js
Normal file
161
miniprogram/pages/order/delivery-detail/api.js
Normal file
@@ -0,0 +1,161 @@
|
||||
import { config } from '../../../config/index';
|
||||
import { mockIp, mockReqId } from '../../../utils/mock';
|
||||
|
||||
/**
|
||||
* Mock获取物流信息
|
||||
*/
|
||||
function mockGetLogisticsInfo(params) {
|
||||
console.log('[物流API] 使用Mock数据获取物流信息', { params });
|
||||
|
||||
const mockData = {
|
||||
data: {
|
||||
logisticsNo: params.logisticsNo || '1234567890123',
|
||||
company: '顺丰快递',
|
||||
phoneNumber: '95338',
|
||||
nodes: [
|
||||
{
|
||||
title: '已签收',
|
||||
desc: '您的快件已签收,感谢使用顺丰,期待再次为您服务',
|
||||
date: '2024-01-15 14:30:25',
|
||||
icon: 'check-circle'
|
||||
},
|
||||
{
|
||||
title: '派送中',
|
||||
desc: '快件正在派送途中,请您准备签收',
|
||||
date: '2024-01-15 09:15:10',
|
||||
icon: 'location'
|
||||
},
|
||||
{
|
||||
title: '到达目的地',
|
||||
desc: '快件已到达【北京朝阳区】',
|
||||
date: '2024-01-15 06:20:45',
|
||||
icon: 'location'
|
||||
},
|
||||
{
|
||||
title: '运输中',
|
||||
desc: '快件在【北京转运中心】,正发往下一站',
|
||||
date: '2024-01-14 22:10:30',
|
||||
icon: 'swap'
|
||||
},
|
||||
{
|
||||
title: '已发货',
|
||||
desc: '商家已发货,快件已交给顺丰快递',
|
||||
date: '2024-01-14 16:45:20',
|
||||
icon: 'check-circle'
|
||||
}
|
||||
]
|
||||
},
|
||||
code: 200,
|
||||
message: 'success',
|
||||
requestId: mockReqId(),
|
||||
clientIp: mockIp(),
|
||||
success: true
|
||||
};
|
||||
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
console.log('[物流API] Mock物流信息获取完成', mockData.data);
|
||||
resolve(mockData);
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流信息
|
||||
* @param {Object} params - 参数对象
|
||||
* @param {string} params.logisticsNo - 物流单号
|
||||
* @param {string} params.logisticsCompanyCode - 物流公司代码
|
||||
* @param {string} params.orderNo - 订单号(可选)
|
||||
* @param {string} params.rightsNo - 售后单号(可选)
|
||||
*/
|
||||
export function getLogisticsInfo(params) {
|
||||
console.log('[物流API] 开始获取物流信息', {
|
||||
params,
|
||||
useMock: config.useMock,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
|
||||
if (config.useMock) {
|
||||
return mockGetLogisticsInfo(params);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const token = wx.getStorageSync('token');
|
||||
if (!token) {
|
||||
console.error('[物流API] 用户未登录');
|
||||
reject(new Error('未登录'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!params.logisticsNo) {
|
||||
console.error('[物流API] 缺少物流单号');
|
||||
reject(new Error('缺少物流单号'));
|
||||
return;
|
||||
}
|
||||
|
||||
const requestUrl = `${config.apiBase}/logistics/track`;
|
||||
console.log('[物流API] 发送物流查询API请求', {
|
||||
url: requestUrl,
|
||||
logisticsNo: params.logisticsNo,
|
||||
companyCode: params.logisticsCompanyCode
|
||||
});
|
||||
|
||||
wx.request({
|
||||
url: requestUrl,
|
||||
method: 'GET',
|
||||
data: {
|
||||
logisticsNo: params.logisticsNo,
|
||||
logisticsCompanyCode: params.logisticsCompanyCode,
|
||||
orderNo: params.orderNo,
|
||||
rightsNo: params.rightsNo
|
||||
},
|
||||
header: {
|
||||
'Authorization': `Bearer ${token}`,
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
success: (res) => {
|
||||
console.log('[物流API] 物流查询API响应', {
|
||||
statusCode: res.statusCode,
|
||||
dataCode: res.data?.code,
|
||||
message: res.data?.message,
|
||||
logisticsNo: params.logisticsNo
|
||||
});
|
||||
|
||||
if (res.statusCode === 200 && res.data.code === 200) {
|
||||
console.log('[物流API] 物流信息获取成功', {
|
||||
logisticsNo: params.logisticsNo,
|
||||
nodesCount: res.data.data?.nodes?.length || 0
|
||||
});
|
||||
resolve(res.data);
|
||||
} else {
|
||||
const errorMsg = res.data?.message || '获取物流信息失败';
|
||||
console.error('[物流API] 物流信息获取失败', {
|
||||
statusCode: res.statusCode,
|
||||
dataCode: res.data?.code,
|
||||
message: errorMsg,
|
||||
logisticsNo: params.logisticsNo
|
||||
});
|
||||
reject(new Error(errorMsg));
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('[物流API] 物流查询请求失败', {
|
||||
error: err,
|
||||
logisticsNo: params.logisticsNo,
|
||||
url: requestUrl,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
reject(new Error('网络请求失败'));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新物流信息
|
||||
* @param {Object} params - 参数对象
|
||||
*/
|
||||
export function refreshLogisticsInfo(params) {
|
||||
console.log('[物流API] 刷新物流信息', { params });
|
||||
return getLogisticsInfo(params);
|
||||
}
|
||||
Reference in New Issue
Block a user