Bladeren bron

修复商城订单显示

zbb 3 maanden geleden
bovenliggende
commit
efcd13ef1c
4 gewijzigde bestanden met toevoegingen van 31 en 14 verwijderingen
  1. 2 2
      app/(tabs)/mine.tsx
  2. 22 3
      app/orders/index.tsx
  3. 1 0
      constants/images.ts
  4. 6 9
      services/mall.ts

+ 2 - 2
app/(tabs)/mine.tsx

@@ -337,10 +337,10 @@ export default function MineScreen() {
             resizeMode="stretch"
           >
             <View style={styles.orderList}>
-              <TouchableOpacity style={styles.orderItem} onPress={() => handleMenuPress('/orders?tab=1')}>
+              <TouchableOpacity style={styles.orderItem} onPress={() => handleMenuPress('/orders/shop?active=1')}>
                 <Image source={{ uri: Images.mine.order1 }} style={styles.orderImage} contentFit="contain" />
               </TouchableOpacity>
-              <TouchableOpacity style={styles.orderItem} onPress={() => handleMenuPress('/orders?tab=4')}>
+              <TouchableOpacity style={styles.orderItem} onPress={() => handleMenuPress('/orders/shop?active=4')}>
                 <Image source={{ uri: Images.mine.order2 }} style={styles.orderImage} contentFit="contain" />
               </TouchableOpacity>
             </View>

+ 22 - 3
app/orders/index.tsx

@@ -56,9 +56,14 @@ export default function OrdersScreen() {
 
   const [loading, setLoading] = useState(true);
   const [refreshing, setRefreshing] = useState(false);
-  const [activeTab, setActiveTab] = useState(params.tab === '4' ? 1 : 0);
+  const [activeTab, setActiveTab] = useState(() => {
+    if (params.active) return parseInt(params.active as string, 10);
+    if (params.tab === '4') return 1;
+    return 0;
+  });
   const [orders, setOrders] = useState<AwardOrderItem[]>([]);
   const [page, setPage] = useState(1);
+  const [hasMore, setHasMore] = useState(true);
 
   const loadData = useCallback(async (tabValue?: string, refresh = false) => {
     if (refresh) {
@@ -69,8 +74,22 @@ export default function OrdersScreen() {
     }
     try {
       const data = await getAwardOrders(refresh ? 1 : page, 10, tabValue);
-      if (data?.records) {
-        setOrders(refresh ? data.records : [...orders, ...data.records]);
+      console.log('奖池订单数据:', tabValue, data);
+      
+      let records: AwardOrderItem[] = [];
+      if (Array.isArray(data)) {
+        records = data;
+      } else if (data?.records) {
+        records = data.records;
+      }
+
+      if (records.length > 0) {
+        setOrders(refresh ? records : [...orders, ...records]);
+        setPage((prev) => (refresh ? 2 : prev + 1));
+        setHasMore(records.length === 10);
+      } else {
+        if (refresh) setOrders([]);
+        setHasMore(false);
       }
     } catch (error) {
       console.error('加载订单失败:', error);

+ 1 - 0
constants/images.ts

@@ -228,6 +228,7 @@ export const Images = {
     stoneBg: `${CDN_BASE}/mine/stoneBg.png`,
     avatarBorderBg: `${CDN_BASE}/common/noavatar.png`,  // 头像边框背景
     shopOrder: `${CDN_BASE}/mine/shopOrder.png`,  // 商城订单入口图标
+    boxOrder: `${CDN_BASE}/mine/boxOrder.png`,  // 奖池订单入口图标
   },
   // 地址相关
   address: {

+ 6 - 9
services/mall.ts

@@ -94,17 +94,14 @@ export interface OrderItem {
   quantity: number;
   paymentAmount: number;
   createTime: string;
+  type?: number;
+  paidAmount?: number;
+  totalAmount?: number;
+  couponAmount?: number;
+  paymentTimeoutTime?: string;
 }
 
-export interface OrderDetail {
-  tradeNo: string;
-  status: number;
-  statusText: string;
-  goodsName: string;
-  goodsCover: string;
-  quantity: number;
-  paymentAmount: number;
-  createTime: string;
+export interface OrderDetail extends OrderItem {
   address?: {
     contactName: string;
     contactNo: string;