hookehuyr

feat(订单): 添加订单发货和收货功能

- 在订单列表中添加待发货/待收货状态展示
- 实现卖家发货和买家收货功能
- 添加相关API接口和状态处理
- 更新订单状态显示和样式
- 处理微信小程序确认收货组件回调
/*
* @Date: 2025-07-03 17:21:45
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-07-14 14:43:05
* @LastEditTime: 2025-07-28 11:51:11
* @FilePath: /jgdl/src/api/orders.js
* @Description: 文件描述
*/
......@@ -14,6 +14,8 @@ const Api = {
REVIEW_ORDER: '/srv/?a=order&t=review',
DELETE_ORDER: '/srv/?a=order&t=del',
CANCEL_ORDER: '/srv/?a=order&t=cancel',
SHIP_ORDER: '/srv/?a=order&t=ship',
RECEIPT_ORDER_STATUS: '/srv/?a=order&t=receipt_status',
}
/**
......@@ -21,7 +23,7 @@ const Api = {
* @param page 页码,从0开始
* @param page_size 每页数量
* @param type 列表类型。buy=我买的,sell=我卖的
* @param status 订单状态(3=待支付, 5=已完成, 7=已取消
* @param status 订单状态(3=待支付, 5=已支付待发货, 7=已取消, 9=已发货/待收货, 11=已收货
* @returns data{ list[{ id, title, total_amount, status, create_time, payment_time, details{ id, vehicle_id, quantity, vehicle{} } }] }
*/
export const getOrderListAPI = (params) => fn(fetch.get(Api.GET_ORDER_LIST, params));
......@@ -63,3 +65,17 @@ export const deleteOrderAPI = (params) => fn(fetch.post(Api.DELETE_ORDER, params
* @returns data{}
*/
export const cancelOrderAPI = (params) => fn(fetch.post(Api.CANCEL_ORDER, params));
/**
* @description: 发货订单
* @param order_id 订单ID
* @returns data{}
*/
export const shipOrderAPI = (params) => fn(fetch.post(Api.SHIP_ORDER, params));
/**
* @description: 确认收货订单状态
* @param order_id 订单ID
* @returns data{ status 3=待支付, 5=已支付待发货, 7=已取消, 9=已发货/待收货, 11=已收货 }
*/
export const receiptOrderStatusAPI = (params) => fn(fetch.get(Api.RECEIPT_ORDER_STATUS, params));
......
/*
* @Date: 2025-06-28 10:33:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-07-14 16:45:23
* @LastEditTime: 2025-07-25 15:53:11
* @FilePath: /jgdl/src/app.js
* @Description: 文件描述
*/
......@@ -17,14 +17,14 @@ const App = createApp({
// 未授权状态跳转授权页面,首页不需要权限
const path = options.path;
const query = options.query;
// 缓存没有权限的地址
const router = routerStore();
router.add(path);
// 检查是否有sessionid
const sessionid = wx.getStorageSync("sessionid");
// 如果没有sessionid且不是auth页面本身,才跳转到授权页面
if (!sessionid && path !== 'pages/auth/index') {
// 添加延迟避免与页面初始化冲突
......@@ -42,6 +42,32 @@ const App = createApp({
}
},
onShow(options) {
// 处理确认收货组件回调
if (options && options.referrerInfo && options.referrerInfo.extraData) {
const { status, errormsg, req_extradata } = options.referrerInfo.extraData
if (status === 'success') {
// 确认收货成功,通过事件总线通知订单页面
Taro.eventCenter.trigger('confirmReceiveSuccess', {
merchantId: req_extradata.merchant_id,
transactionId: req_extradata.transaction_id,
merchantTradeNo: req_extradata.merchant_trade_no,
})
Taro.showToast({
title: '确认收货成功',
icon: 'success',
duration: 2000
})
} else if (status === 'fail') {
Taro.showToast({
title: errormsg || '确认收货失败',
icon: 'error',
duration: 2000
})
}
// status === 'cancel' 时用户取消操作,不需要特殊处理
}
},
// 入口组件不需要实现 render 方法,即使实现了也会被 taro 所覆盖
});
......
<!--
* @Date: 2025-06-28 10:33:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-07-24 14:21:19
* @LastEditTime: 2025-07-28 09:32:03
* @FilePath: /jgdl/src/pages/index/index.vue
* @Description: 捡个电驴首页
-->
......@@ -153,8 +153,8 @@ useDidShow(() => {
useReady(async () => {
// 版本更新检查
if (!wx.canIUse("getUpdateManager")) {
wx.showModal({
if (!Taro.canIUse("getUpdateManager")) {
Taro.showModal({
title: "提示",
content: "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试",
showCancel: false,
......@@ -163,7 +163,7 @@ useReady(async () => {
}
// https://developers.weixin.qq.com/miniprogram/dev/api/base/update/UpdateManager.html
const updateManager = wx.getUpdateManager();
const updateManager = Taro.getUpdateManager();
updateManager.onCheckForUpdate((res) => {
// 请求完新版本信息的回调
......
......@@ -224,6 +224,10 @@
color: #f97316;
}
&.status-shipping {
color: #f97316;
}
&.status-completed {
color: #10b981;
}
......
This diff is collapsed. Click to expand it.