feat(shopOrder): 按当前标签筛选状态导出订单

- 搜索组件增加 statusFilter 属性以支持导出时传入筛选状态
- 在 shopOrder 页面通过计算属性传递当前标签的筛选状态给搜索组件
- 导出时订单列表请求中带入当前标签对应的筛选状态,避免混入其它状态订单
- 优化导出功能的状态一致性,提升使用体验
This commit is contained in:
2026-07-23 07:51:50 +08:00
parent c9a4e4c229
commit a4107e212a
2 changed files with 14 additions and 6 deletions

View File

@@ -104,6 +104,8 @@ const props = withDefaults(
defineProps<{
// 选中的订单
selection?: ShopOrder[];
// 当前列表标签对应的筛选状态(如待发货=1导出时一并带入
statusFilter?: number;
}>(),
{}
);
@@ -253,7 +255,7 @@ const handleExport = async () => {
]
];
await listShopOrder(where)
await listShopOrder({ ...where, statusFilter: props.statusFilter })
.then((list) => {
orders.value = list;
list?.forEach((d: ShopOrder) => {

View File

@@ -1,10 +1,11 @@
<template>
<a-page-header :title="getPageTitle()" @back="() => $router.go(-1)">
<a-card style="margin-bottom: 20px">
<search
@search="reload"
:selection="selection"
@add="openEdit"
<search
@search="reload"
:selection="selection"
:status-filter="statusFilterForExport"
@add="openEdit"
@remove="removeBatch"
@batchMove="openMove"
/>
@@ -390,7 +391,7 @@
</template>
<script lang="ts" setup>
import { createVNode, ref, onMounted, onActivated } from 'vue';
import { createVNode, ref, onMounted, onActivated, computed } from 'vue';
import { useRoute } from 'vue-router';
import type { EleProTable } from 'ele-admin-pro';
import type {
@@ -487,6 +488,11 @@
return filterMap[key];
};
// 导出时跟随当前标签的筛选状态(如「待发货」=1避免导出混入其它状态的订单
const statusFilterForExport = computed(() =>
getStatusFilterByTab(activeKey.value)
);
// 表格数据源
const datasource: DatasourceFunction = ({
page,