Browse Source

🐛 fix(orders): 修复订单筛选功能异常问题

- 将订单状态和支付状态的默认筛选值从空字符串改为"all"
- 修复筛选条件选择"全部"时无法正确显示所有订单的问题
- 优化筛选逻辑,支持同时应用订单状态和支付状态组合筛选
- 更新选择器选项值,确保与筛选逻辑匹配
yourname 4 months ago
parent
commit
62e4439e22
1 changed files with 15 additions and 6 deletions
  1. 15 6
      src/client/admin-shadcn/pages/Orders.tsx

+ 15 - 6
src/client/admin-shadcn/pages/Orders.tsx

@@ -53,8 +53,8 @@ export const OrdersPage = () => {
     page: 1,
     limit: 10,
     search: '',
-    status: '',
-    payStatus: '',
+    status: 'all',
+    payStatus: 'all',
   });
   const [isModalOpen, setIsModalOpen] = useState(false);
   const [editingOrder, setEditingOrder] = useState<OrderResponse | null>(null);
@@ -71,13 +71,22 @@ export const OrdersPage = () => {
   const { data, isLoading, refetch } = useQuery({
     queryKey: ['orders', searchParams],
     queryFn: async () => {
+      const filters: any = {};
+      
+      if (searchParams.status !== 'all') {
+        filters.state = parseInt(searchParams.status);
+      }
+      
+      if (searchParams.payStatus !== 'all') {
+        filters.payState = parseInt(searchParams.payStatus);
+      }
+      
       const res = await orderClient.$get({
         query: {
           page: searchParams.page,
           pageSize: searchParams.limit,
           keyword: searchParams.search,
-          ...(searchParams.status && { filters: JSON.stringify({ state: parseInt(searchParams.status) }) }),
-          ...(searchParams.payStatus && { filters: JSON.stringify({ payState: parseInt(searchParams.payStatus) }) }),
+          ...(Object.keys(filters).length > 0 && { filters: JSON.stringify(filters) }),
         }
       });
       if (res.status !== 200) throw new Error('获取订单列表失败');
@@ -211,7 +220,7 @@ export const OrdersPage = () => {
                 <SelectValue placeholder="订单状态" />
               </SelectTrigger>
               <SelectContent>
-                <SelectItem value="">全部</SelectItem>
+                <SelectItem value="all">全部</SelectItem>
                 <SelectItem value="0">未发货</SelectItem>
                 <SelectItem value="1">已发货</SelectItem>
                 <SelectItem value="2">收货成功</SelectItem>
@@ -226,7 +235,7 @@ export const OrdersPage = () => {
                 <SelectValue placeholder="支付状态" />
               </SelectTrigger>
               <SelectContent>
-                <SelectItem value="">全部</SelectItem>
+                <SelectItem value="all">全部</SelectItem>
                 <SelectItem value="0">未支付</SelectItem>
                 <SelectItem value="1">支付中</SelectItem>
                 <SelectItem value="2">支付成功</SelectItem>