feat(order): 添加订单退款功能并优化用户票券页面显示

- 新增 refundShopOrder API 接口用于处理订单退款申请
- 在 shopOrder 页面添加退款相关操作按钮和逻辑
- 修改用户票券页面表格列配置,添加订单号和数量字段
- 更新订单详情页面商品数量字段映射关系
- 启用开发环境 API 地址配置
This commit is contained in:
2026-02-04 17:38:51 +08:00
parent 2e81564b92
commit e015eaef9e
5 changed files with 41 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
VITE_APP_NAME=后台管理(开发环境) VITE_APP_NAME=后台管理(开发环境)
#VITE_API_URL=http://127.0.0.1:9200/api VITE_API_URL=http://127.0.0.1:9200/api
#VITE_SERVER_API_URL=http://127.0.0.1:8000/api #VITE_SERVER_API_URL=http://127.0.0.1:8000/api

View File

@@ -135,3 +135,18 @@ export async function shopOrderTotal(params?: ShopOrderParam) {
} }
return Promise.reject(new Error(res.data.message)); return Promise.reject(new Error(res.data.message));
} }
/**
* 申请|同意退款
*/
export async function refundShopOrder(data: ShopOrder) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-order/refund',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -31,6 +31,9 @@
</div> </div>
</a-space> </a-space>
</template> </template>
<template v-if="column.key === 'buyQty'">
{{ record.availableQty }}
</template>
<template v-if="column.key === 'image'"> <template v-if="column.key === 'image'">
<a-image :src="record.image" :width="50" /> <a-image :src="record.image" :width="50" />
</template> </template>
@@ -128,6 +131,12 @@
key: 'templateName', key: 'templateName',
align: 'center' align: 'center'
}, },
{
title: '订单号',
dataIndex: 'orderNo',
key: 'orderNo',
align: 'center'
},
{ {
title: '金额', title: '金额',
dataIndex: 'payPrice', dataIndex: 'payPrice',
@@ -135,38 +144,38 @@
align: 'center', align: 'center',
customRender: ({ text }) => `${text.toFixed(2)}` customRender: ({ text }) => `${text.toFixed(2)}`
}, },
// {
// title: '商品ID',
// dataIndex: 'goodsId',
// key: 'goodsId',
// align: 'center'
// },
{ {
title: '赠送数量(桶)', title: '购买数量',
dataIndex: 'buyQty',
key: 'buyQty',
align: 'center'
},
{
title: '总数量',
dataIndex: 'totalQty', dataIndex: 'totalQty',
key: 'totalQty', key: 'totalQty',
align: 'center' align: 'center'
}, },
{ {
title: '可用(桶)', title: '可配送',
dataIndex: 'availableQty', dataIndex: 'availableQty',
key: 'availableQty', key: 'availableQty',
align: 'center' align: 'center'
}, },
{ {
title: '冻结(桶)', title: '待赠送',
dataIndex: 'frozenQty', dataIndex: 'frozenQty',
key: 'frozenQty', key: 'frozenQty',
align: 'center' align: 'center'
}, },
{ {
title: '已使用(桶)', title: '已使用',
dataIndex: 'usedQty', dataIndex: 'usedQty',
key: 'usedQty', key: 'usedQty',
align: 'center' align: 'center'
}, },
{ {
title: '已释放(桶)', title: '已释放',
dataIndex: 'releasedQty', dataIndex: 'releasedQty',
key: 'releasedQty', key: 'releasedQty',
align: 'center' align: 'center'

View File

@@ -736,10 +736,10 @@
}, },
{ {
title: '数量', title: '数量',
dataIndex: 'quantity', dataIndex: 'totalNum',
align: 'center' as const, align: 'center' as const,
customRender: ({ record }: { record: any }) => { customRender: ({ record }: { record: any }) => {
return record.quantity || 1; return record.totalNum || 1;
} }
}, },
{ {

View File

@@ -275,7 +275,7 @@
repairOrder, repairOrder,
removeShopOrder, removeShopOrder,
removeBatchShopOrder, removeBatchShopOrder,
updateShopOrder updateShopOrder, refundShopOrder
} from '@/api/shop/shopOrder'; } from '@/api/shop/shopOrder';
import { updateUser } from '@/api/system/user'; import { updateUser } from '@/api/system/user';
import { getPayType } from '@/utils/shop'; import { getPayType } from '@/utils/shop';
@@ -579,7 +579,7 @@
const now = new Date(); const now = new Date();
const refundTime = toDateString(now, 'yyyy-MM-dd HH:mm:ss'); const refundTime = toDateString(now, 'yyyy-MM-dd HH:mm:ss');
await updateShopOrder({ await refundShopOrder({
...record, ...record,
orderStatus: 6, // 退款成功 orderStatus: 6, // 退款成功
refundTime: refundTime refundTime: refundTime
@@ -643,7 +643,7 @@
const now = new Date(); const now = new Date();
const refundApplyTime = toDateString(now, 'yyyy-MM-dd HH:mm:ss'); const refundApplyTime = toDateString(now, 'yyyy-MM-dd HH:mm:ss');
await updateShopOrder({ await refundShopOrder({
...record, ...record,
orderStatus: 4, // 退款申请中 orderStatus: 4, // 退款申请中
refundApplyTime: refundApplyTime refundApplyTime: refundApplyTime