Browse Source

订单分类修改

main
Mac 2 weeks ago
parent
commit
9e4ef7d5a8
  1. 8
      app/constants/productStatus.ts
  2. 66
      app/screens/productStatus/OrderDatails.tsx
  3. 9
      app/services/api/orders.ts
  4. 146
      app/store/orderList.ts

8
app/constants/productStatus.ts

@ -13,8 +13,8 @@ export const productStatus: ProductStatus[] = [
// { icon: DocumentClockIcon, text: '付运费', textKey: 'order.status.pay_shipping', status: 6 }, // { icon: DocumentClockIcon, text: '付运费', textKey: 'order.status.pay_shipping', status: 6 },
{ icon: DocumentClockIcon, text: '待发货', textKey: 'order.status.waiting_shipment', status: 1 }, { icon: DocumentClockIcon, text: '待发货', textKey: 'order.status.waiting_shipment', status: 1 },
{ icon: DocumentApprovedIcon, text: '运输中', textKey: 'order.status.in_transit', status: 2 }, { icon: DocumentApprovedIcon, text: '运输中', textKey: 'order.status.in_transit', status: 2 },
{ icon: DocumentApprovedIcon, text: '代收货', textKey: 'order.status.waiting_receipt', status: 3 }, // { icon: DocumentApprovedIcon, text: '代收货', textKey: 'order.status.waiting_receipt', status: 3 },
{ icon: PdfDocumentIcon, text: '已完成', textKey: 'order.status.completed', status: 4 }, { icon: PdfDocumentIcon, text: '已完成', textKey: 'order.status.completed', status: 3 },
{ icon: DocumentClockIcon, text: '已取消', textKey: 'order.status.cancelled', status: 5 }, { icon: DocumentClockIcon, text: '已过期', textKey: 'order.status.cancelled', status: 4 },
{ icon: DocumentClockIcon, text: '已退款', textKey: 'order.status.refunded', status: 6 } // { icon: DocumentClockIcon, text: '已退款', textKey: 'order.status.refunded', status: 6 }
] ]

66
app/screens/productStatus/OrderDatails.tsx

@ -75,7 +75,7 @@ export const OrderDetails = () => {
>(); >();
const [orderDetails, setOrderDetails] = useState<OrderDetailsType>(); const [orderDetails, setOrderDetails] = useState<OrderDetailsType>();
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
const { deleteOrder, changeOrder, updateOrderShippingInfo } = const { deleteOrder, changeOrder, updateOrderShippingInfo,cancelOrder,confirmOrder } =
useOrderListStore(); useOrderListStore();
const [showPaymentModal, setShowPaymentModal] = useState(false); const [showPaymentModal, setShowPaymentModal] = useState(false);
@ -717,6 +717,7 @@ export const OrderDetails = () => {
</View> </View>
</View> </View>
</View> </View>
{/* {route.params.status} */}
{/* 价格信息 */} {/* 价格信息 */}
<View style={styles.orderStatus}> <View style={styles.orderStatus}>
<View style={styles.orderStatusContent}> <View style={styles.orderStatusContent}>
@ -767,12 +768,13 @@ export const OrderDetails = () => {
</View> </View>
</ScrollView> </ScrollView>
{/* 代付款 */} {/* 代付款 */}
{orderDetails.order_status === 0 && ( {route.params.status === 0 && (
<View style={styles.bottomButtons}> <View style={styles.bottomButtons}>
<TouchableOpacity <TouchableOpacity
style={styles.bottomButton1} style={styles.bottomButton1}
onPress={() => { onPress={() => {
deleteOrder(route.params.orderId); cancelOrder(route.params.orderId);
navigation.goBack();
}} }}
> >
<Text style={styles.bottomButtonText1}> <Text style={styles.bottomButtonText1}>
@ -790,7 +792,7 @@ export const OrderDetails = () => {
</View> </View>
)} )}
{/* 待发货 */} {/* 待发货 */}
{orderDetails.order_status === 1 && ( {route.params.status === 1 && (
<View style={styles.bottomButtons}> <View style={styles.bottomButtons}>
<TouchableOpacity <TouchableOpacity
style={styles.bottomButton1} style={styles.bottomButton1}
@ -816,7 +818,7 @@ export const OrderDetails = () => {
</View> </View>
)} )}
{/* 代收货 */} {/* 代收货 */}
{orderDetails.order_status === 2 && ( {route.params.status === 2 && (
<View style={styles.bottomButtons}> <View style={styles.bottomButtons}>
<TouchableOpacity <TouchableOpacity
style={styles.bottomButton1} style={styles.bottomButton1}
@ -829,14 +831,8 @@ export const OrderDetails = () => {
<TouchableOpacity <TouchableOpacity
style={styles.bottomButton} style={styles.bottomButton}
onPress={() => { onPress={() => {
updateOrderShippingInfo(route.params.orderId, { confirmOrder(route.params.orderId);
shipping_status: 0,
shipping_info: {
shipping_company: "string",
shipping_no: "string",
shipping_info: {},
},
});
navigation.goBack(); navigation.goBack();
}} }}
> >
@ -847,32 +843,36 @@ export const OrderDetails = () => {
</View> </View>
)} )}
{/* 已完成 */} {/* 已完成 */}
{orderDetails.order_status === 3 && ( {route.params.status === 3 && (
<View style={styles.bottomButtons}> <View>
<TouchableOpacity
style={styles.bottomButton1}
onPress={() => {
deleteOrder(route.params.orderId);
navigation.goBack();
}}
>
<Text style={styles.bottomButtonText1}>
{t("order.cancel")}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.bottomButton}>
<Text style={styles.bottomButtonText}>
{t("order.pay_now")}
</Text>
</TouchableOpacity>
</View> </View>
// <View style={styles.bottomButtons}>
// <TouchableOpacity
// style={styles.bottomButton1}
// onPress={() => {
// addToCart(orderDetails.items);
// // navigation.goBack();
// }}
// >
// <Text style={styles.bottomButtonText1}>
// {t("order.add_to_cart")}
// </Text>
// </TouchableOpacity>
// <TouchableOpacity style={styles.bottomButton}>
// <Text style={styles.bottomButtonText}>
// {t("order.reorder")}
// </Text>
// </TouchableOpacity>
// </View>
)} )}
{/* 已取消 */} {/* 已取消 */}
{orderDetails.order_status === 4 && ( {route.params.status === 4 && (
<View style={styles.bottomButtons}> <View style={styles.bottomButtons}>
<TouchableOpacity <TouchableOpacity
style={styles.bottomButton1} style={styles.bottomButton1}
onPress={() => {}} onPress={() => {
addToCart(orderDetails.items);
}}
> >
<Text style={styles.bottomButtonText1}> <Text style={styles.bottomButtonText1}>
{t("order.add_to_cart")} {t("order.add_to_cart")}

9
app/services/api/orders.ts

@ -402,4 +402,13 @@ export const ordersApi = {
// 修改支付方式 // 修改支付方式
updateOrderPaymentMethod: (data: UpdateOrderPaymentMethod) => updateOrderPaymentMethod: (data: UpdateOrderPaymentMethod) =>
apiService.put<void>(`/api/orders/edit/`, data), apiService.put<void>(`/api/orders/edit/`, data),
// 取消订单
cancelOrder: (order_id: string) =>
apiService.post<OrderDetailsType>(`/api/orders/${order_id}/cancel/`),
// 确定收货
confirmOrder: (order_id: string) =>
apiService.patch<OrderDetailsType>(`/api/orders/${order_id}/shipping/`,{
}),
}; };

146
app/store/orderList.ts

@ -1,65 +1,101 @@
import { create } from 'zustand'; import { create } from "zustand";
import { ordersApi, PaginatedOrderResponse, PaginatedOrderRequest,UpdateOrderShippingInfo} from '../services/api/orders'; import {
ordersApi,
PaginatedOrderResponse,
PaginatedOrderRequest,
UpdateOrderShippingInfo,
} from "../services/api/orders";
interface OrderListState { interface OrderListState {
orders: PaginatedOrderResponse, orders: PaginatedOrderResponse;
getAllOrders: (data: PaginatedOrderRequest,page:number) => Promise<void>, getAllOrders: (data: PaginatedOrderRequest, page: number) => Promise<void>;
deleteOrder: (orderId: string) => Promise<void>, deleteOrder: (orderId: string) => Promise<void>;
changeOrder: (orderId: string,status:number) => Promise<void>, changeOrder: (orderId: string, status: number) => Promise<void>;
updateOrderShippingInfo: (orderId: string,data:UpdateOrderShippingInfo) => 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) => ({ export const useOrderListStore = create<OrderListState>((set, get) => ({
orders: { orders: {
items: [], items: [],
total: 0, total: 0,
page: 1, page: 1,
page_size: 10, page_size: 10,
}, },
getAllOrders: async (data: PaginatedOrderRequest,page:number) => { getAllOrders: async (data: PaginatedOrderRequest, page: number) => {
const response = await ordersApi.getAllOrders(data); const response = await ordersApi.getAllOrders(data);
set((state) => ({ set((state) => ({
orders: { orders: {
...response, ...response,
items: page === 1 items:
? response.items page === 1
: [...state.orders.items, ...response.items], ? response.items
} : [...state.orders.items, ...response.items],
})); },
}, }));
},
deleteOrder: async (orderId: string) => { deleteOrder: async (orderId: string) => {
await ordersApi.deleteOrder(orderId); await ordersApi.deleteOrder(orderId);
set((state) => ({ set((state) => ({
orders: { orders: {
...state.orders, ...state.orders,
items: state.orders.items.filter(item => item.order_id !== orderId), items: state.orders.items.filter((item) => item.order_id !== orderId),
total: state.orders.total - 1 total: state.orders.total - 1,
} },
})); }));
}, },
changeOrder: async (orderId: string,status:number) => { changeOrder: async (orderId: string, status: number) => {
await ordersApi.changeOrder(orderId,status); await ordersApi.changeOrder(orderId, status);
set((state) => ({ set((state) => ({
orders: { orders: {
...state.orders, ...state.orders,
items: state.orders.items.filter(item => item.order_id !== orderId), items: state.orders.items.filter((item) => item.order_id !== orderId),
total: state.orders.total - 1 total: state.orders.total - 1,
} },
})); }));
}, },
updateOrderShippingInfo: async (orderId: string,data:UpdateOrderShippingInfo) => { updateOrderShippingInfo: async (
await ordersApi.updateOrderShippingInfo(orderId,data); orderId: string,
set((state) => ({ data: UpdateOrderShippingInfo
orders: { ) => {
...state.orders, await ordersApi.updateOrderShippingInfo(orderId, data);
items: state.orders.items.filter(item => item.order_id !== orderId), set((state) => ({
total: state.orders.total - 1 orders: {
} ...state.orders,
})); 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);
},
}));

Loading…
Cancel
Save