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. 74
      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.waiting_shipment', status: 1 },
{ icon: DocumentApprovedIcon, text: '运输中', textKey: 'order.status.in_transit', status: 2 },
{ icon: DocumentApprovedIcon, text: '代收货', textKey: 'order.status.waiting_receipt', status: 3 },
{ icon: PdfDocumentIcon, text: '已完成', textKey: 'order.status.completed', status: 4 },
{ icon: DocumentClockIcon, text: '已取消', textKey: 'order.status.cancelled', status: 5 },
{ icon: DocumentClockIcon, text: '已退款', textKey: 'order.status.refunded', status: 6 }
// { icon: DocumentApprovedIcon, text: '代收货', textKey: 'order.status.waiting_receipt', status: 3 },
{ icon: PdfDocumentIcon, text: '已完成', textKey: 'order.status.completed', status: 3 },
{ icon: DocumentClockIcon, text: '已过期', textKey: 'order.status.cancelled', status: 4 },
// { 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 [isLoading, setIsLoading] = useState(true);
const { deleteOrder, changeOrder, updateOrderShippingInfo } =
const { deleteOrder, changeOrder, updateOrderShippingInfo,cancelOrder,confirmOrder } =
useOrderListStore();
const [showPaymentModal, setShowPaymentModal] = useState(false);
@ -717,6 +717,7 @@ export const OrderDetails = () => {
</View>
</View>
</View>
{/* {route.params.status} */}
{/* 价格信息 */}
<View style={styles.orderStatus}>
<View style={styles.orderStatusContent}>
@ -767,12 +768,13 @@ export const OrderDetails = () => {
</View>
</ScrollView>
{/* 代付款 */}
{orderDetails.order_status === 0 && (
{route.params.status === 0 && (
<View style={styles.bottomButtons}>
<TouchableOpacity
style={styles.bottomButton1}
onPress={() => {
deleteOrder(route.params.orderId);
cancelOrder(route.params.orderId);
navigation.goBack();
}}
>
<Text style={styles.bottomButtonText1}>
@ -790,7 +792,7 @@ export const OrderDetails = () => {
</View>
)}
{/* 待发货 */}
{orderDetails.order_status === 1 && (
{route.params.status === 1 && (
<View style={styles.bottomButtons}>
<TouchableOpacity
style={styles.bottomButton1}
@ -816,7 +818,7 @@ export const OrderDetails = () => {
</View>
)}
{/* 代收货 */}
{orderDetails.order_status === 2 && (
{route.params.status === 2 && (
<View style={styles.bottomButtons}>
<TouchableOpacity
style={styles.bottomButton1}
@ -829,14 +831,8 @@ export const OrderDetails = () => {
<TouchableOpacity
style={styles.bottomButton}
onPress={() => {
updateOrderShippingInfo(route.params.orderId, {
shipping_status: 0,
shipping_info: {
shipping_company: "string",
shipping_no: "string",
shipping_info: {},
},
});
confirmOrder(route.params.orderId);
navigation.goBack();
}}
>
@ -847,32 +843,36 @@ export const OrderDetails = () => {
</View>
)}
{/* 已完成 */}
{orderDetails.order_status === 3 && (
<View style={styles.bottomButtons}>
<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>
{route.params.status === 3 && (
<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}>
<TouchableOpacity
style={styles.bottomButton1}
onPress={() => {}}
onPress={() => {
addToCart(orderDetails.items);
}}
>
<Text style={styles.bottomButtonText1}>
{t("order.add_to_cart")}

9
app/services/api/orders.ts

@ -402,4 +402,13 @@ export const ordersApi = {
// 修改支付方式
updateOrderPaymentMethod: (data: UpdateOrderPaymentMethod) =>
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/`,{
}),
};

74
app/store/orderList.ts

@ -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) => ({
@ -22,10 +32,11 @@ export const useOrderListStore = create<OrderListState>((set, get) => ({
set((state) => ({
orders: {
...response,
items: page === 1
items:
page === 1
? response.items
: [...state.orders.items, ...response.items],
}
},
}));
},
@ -34,9 +45,9 @@ 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,
},
}));
},
@ -45,21 +56,46 @@ 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,
},
}));
},
updateOrderShippingInfo: async (orderId: string,data:UpdateOrderShippingInfo) => {
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);
},
}));

Loading…
Cancel
Save