|
|
|
@ -1,12 +1,22 @@
|
|
|
|
|
import { create } from 'zustand'; |
|
|
|
|
import { ordersApi, PaginatedOrderResponse, PaginatedOrderRequest,UpdateOrderShippingInfo} from '../services/api/orders'; |
|
|
|
|
import { create } from "zustand"; |
|
|
|
|
import { |
|
|
|
|
ordersApi, |
|
|
|
|
PaginatedOrderResponse, |
|
|
|
|
PaginatedOrderRequest, |
|
|
|
|
UpdateOrderShippingInfo, |
|
|
|
|
} from "../services/api/orders"; |
|
|
|
|
|
|
|
|
|
interface OrderListState { |
|
|
|
|
orders: PaginatedOrderResponse, |
|
|
|
|
getAllOrders: (data: PaginatedOrderRequest,page:number) => Promise<void>, |
|
|
|
|
deleteOrder: (orderId: string) => Promise<void>, |
|
|
|
|
changeOrder: (orderId: string,status:number) => Promise<void>, |
|
|
|
|
updateOrderShippingInfo: (orderId: string,data:UpdateOrderShippingInfo) => Promise<void>, |
|
|
|
|
orders: PaginatedOrderResponse; |
|
|
|
|
getAllOrders: (data: PaginatedOrderRequest, page: number) => Promise<void>; |
|
|
|
|
deleteOrder: (orderId: string) => Promise<void>; |
|
|
|
|
changeOrder: (orderId: string, status: number) => Promise<void>; |
|
|
|
|
updateOrderShippingInfo: ( |
|
|
|
|
orderId: string, |
|
|
|
|
data: UpdateOrderShippingInfo |
|
|
|
|
) => Promise<void>; |
|
|
|
|
cancelOrder: (orderId: string) => Promise<void>; |
|
|
|
|
confirmOrder: (orderId: string) => Promise<void>; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export const useOrderListStore = create<OrderListState>((set, get) => ({ |
|
|
|
@ -17,15 +27,16 @@ export const useOrderListStore = create<OrderListState>((set, get) => ({
|
|
|
|
|
page_size: 10, |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
getAllOrders: async (data: PaginatedOrderRequest,page:number) => { |
|
|
|
|
getAllOrders: async (data: PaginatedOrderRequest, page: number) => { |
|
|
|
|
const response = await ordersApi.getAllOrders(data); |
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...response, |
|
|
|
|
items: page === 1 |
|
|
|
|
items: |
|
|
|
|
page === 1 |
|
|
|
|
? response.items |
|
|
|
|
: [...state.orders.items, ...response.items], |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -34,32 +45,57 @@ export const useOrderListStore = create<OrderListState>((set, get) => ({
|
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...state.orders, |
|
|
|
|
items: state.orders.items.filter(item => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1 |
|
|
|
|
} |
|
|
|
|
items: state.orders.items.filter((item) => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
changeOrder: async (orderId: string,status:number) => { |
|
|
|
|
await ordersApi.changeOrder(orderId,status); |
|
|
|
|
changeOrder: async (orderId: string, status: number) => { |
|
|
|
|
await ordersApi.changeOrder(orderId, status); |
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...state.orders, |
|
|
|
|
items: state.orders.items.filter(item => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1 |
|
|
|
|
} |
|
|
|
|
items: state.orders.items.filter((item) => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
updateOrderShippingInfo: async (orderId: string,data:UpdateOrderShippingInfo) => { |
|
|
|
|
await ordersApi.updateOrderShippingInfo(orderId,data); |
|
|
|
|
updateOrderShippingInfo: async ( |
|
|
|
|
orderId: string, |
|
|
|
|
data: UpdateOrderShippingInfo |
|
|
|
|
) => { |
|
|
|
|
await ordersApi.updateOrderShippingInfo(orderId, data); |
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...state.orders, |
|
|
|
|
items: state.orders.items.filter(item => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1 |
|
|
|
|
} |
|
|
|
|
items: state.orders.items.filter((item) => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
// 取消订单
|
|
|
|
|
cancelOrder: async (orderId: string) => { |
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...state.orders, |
|
|
|
|
items: state.orders.items.filter((item) => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
await ordersApi.cancelOrder(orderId); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 确定收货
|
|
|
|
|
confirmOrder: async (orderId: string) => { |
|
|
|
|
set((state) => ({ |
|
|
|
|
orders: { |
|
|
|
|
...state.orders, |
|
|
|
|
items: state.orders.items.filter((item) => item.order_id !== orderId), |
|
|
|
|
total: state.orders.total - 1, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
await ordersApi.confirmOrder(orderId); |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|