修复:订单详情、及发货功能
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user