修复:订单详情、及发货功能

This commit is contained in:
2025-08-05 21:09:42 +08:00
parent 669f10c15a
commit 032db01193
3 changed files with 379 additions and 107 deletions

View File

@@ -124,20 +124,24 @@
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import {createVNode, ref} from 'vue';
import type {EleProTable} from 'ele-admin-pro';
import type {
DatasourceFunction,
ColumnItem
} from 'ele-admin-pro/es/ele-pro-table/types';
import {
ExclamationCircleOutlined
} from '@ant-design/icons-vue';
import Search from './components/search.vue';
import {getPageTitle} from "@/utils/common";
import {toDateString} from 'ele-admin-pro';
import OrderInfo from './components/orderInfo.vue';
import {ShopOrder, ShopOrderParam} from "@/api/shop/shopOrder/model";
import {pageShopOrder, repairOrder} from "@/api/shop/shopOrder";
import {pageShopOrder, repairOrder, removeShopOrder, removeBatchShopOrder} from "@/api/shop/shopOrder";
import {updateUser} from "@/api/system/user";
import {getPayType} from '@/utils/shop';
import {message, Modal} from 'ant-design-vue';
// 表格实例
const tableRef = ref<InstanceType<typeof EleProTable> | null>(null);
@@ -179,7 +183,8 @@ const columns = ref<ColumnItem[]>([
title: '订单编号',
dataIndex: 'orderNo',
key: 'orderNo',
align: 'center'
align: 'center',
width: 200,
},
{
title: '商品信息',
@@ -243,14 +248,14 @@ const columns = ref<ColumnItem[]>([
ellipsis: true,
customRender: ({text}) => toDateString(text)
},
// {
// title: '操作',
// key: 'action',
// width: 180,
// fixed: 'right',
// align: 'center',
// hideInSetting: true
// }
{
title: '操作',
key: 'action',
width: 180,
fixed: 'right',
align: 'center',
hideInSetting: true
}
]);
/* 搜索 */
@@ -260,21 +265,51 @@ const reload = (where?: ShopOrderParam) => {
};
const onTabs = () => {
// 将语义化的key转换为后端需要的statusFilter值
const statusFilterMap: Record<string, number | undefined> = {
'all': undefined, // 全部不传statusFilter
'unpaid': 0, // 待支付对应原来的key="0"
'undelivered': 1, // 待发货对应原来的key="1"
'unverified': 2, // 待核销对应原来的key="2"
'unreceived': 3, // 待收货对应原来的key="3"
'unevaluated': 4, // 待评价对应原来的key="4"
'completed': 5, // 已完成对应原来的key="5"
'refunded': 6, // 已退款对应原来的key="6"
'deleted': 7 // 已删除对应原来的key="7"
};
// 根据tabs的key设置筛选条件
const filterParams: Record<string, any> = {};
const statusFilter = statusFilterMap[activeKey.value as string];
reload({statusFilter});
switch (activeKey.value) {
case 'all':
// 全部订单,不设置任何筛选条件
break;
case 'unpaid':
// 待支付支付状态为0未付款
filterParams.payStatus = 0;
break;
case 'undelivered':
// 待发货:已付款但未发货
filterParams.payStatus = 1;
filterParams.deliveryStatus = 10; // 未核销
break;
case 'unverified':
// 待核销:已付款但未核销
filterParams.payStatus = 1;
filterParams.deliveryStatus = 10;
break;
case 'unreceived':
// 待收货:已发货但未收货
filterParams.payStatus = 1;
filterParams.deliveryStatus = 30; // 部分核销
break;
case 'unevaluated':
// 待评价:已完成但未评价
filterParams.orderStatus = 1; // 已完成
break;
case 'completed':
// 已完成
filterParams.orderStatus = 1;
break;
case 'refunded':
// 已退款
filterParams.orderStatus = 6;
break;
case 'deleted':
// 已删除
filterParams.orderStatus = 2; // 已取消
break;
}
reload(filterParams);
}
const onSearch = (item: ShopOrder) => {
@@ -317,6 +352,43 @@ const query = () => {
loading.value = true;
};
/* 删除单个订单 */
const remove = (row: ShopOrder) => {
removeShopOrder(row.orderId)
.then(() => {
message.success('删除成功');
reload();
})
.catch((e) => {
message.error(e.message);
});
};
/* 批量删除订单 */
const removeBatch = () => {
if (!selection.value.length) {
message.error('请至少选择一条数据');
return;
}
Modal.confirm({
title: '提示',
content: '确定要删除选中的记录吗?',
icon: createVNode(ExclamationCircleOutlined),
maskClosable: true,
onOk: () => {
const ids = selection.value.map((d) => d.orderId);
removeBatchShopOrder(ids)
.then(() => {
message.success('删除成功');
reload();
})
.catch((e) => {
message.error(e.message);
});
}
});
};
/* 自定义行属性 */
const customRow = (record: ShopOrder) => {
return {