Преглед изворни кода

fix: 订单页infiniteScroller.list初始undefined导致运行时报错

- setCheckData/cancelInvoice/nextInvoice/checkPage 加 list 判空保护
- infinite-scroll refresh失败时设置list=[]避免后续访问报错

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline пре 1 дан
родитељ
комит
71563c181b

+ 4 - 1
charge-front/src/pages-charge/orders/orders.vue

@@ -157,6 +157,7 @@ const infiniteScroller = useInfiniteScroll(20, (page) => {
 });
 
 const setCheckData = () => {
+  if (!infiniteScroller.list) return;
   let count = 0;
   let price = 0;
   infiniteScroller.list.forEach((item: any) => {
@@ -198,7 +199,7 @@ const openInvoice = () => {
 
 const cancelInvoice = () => {
   isInvoice.value = false;
-  // 重置所有选中状态
+  if (!infiniteScroller.list) return;
   infiniteScroller.list.forEach((item: any) => {
     item.checked = false;
   });
@@ -222,6 +223,7 @@ const openInvoiceHistory = () => {
   });
 };
 const nextInvoice = () => {
+  if (!infiniteScroller.list) return;
   const checkedSeqs = infiniteScroller.list
     .filter((item: any) => item.checked)
     .map((item: any) => item.startChargeSeq);
@@ -235,6 +237,7 @@ const nextInvoice = () => {
   to(`/pages-common/invoice/invoice-form?startChargeSeqs=${checkedSeqs.join(",")}`);
 };
 const checkPage = () => {
+  if (!infiniteScroller.list) return;
   infiniteScroller.list = infiniteScroller.list.map((item: any) => {
     if (item.invoiceStatus === 0 && !item.hidden) {
       return {

+ 1 - 0
charge-front/src/utils/infinite-scroll.ts

@@ -30,6 +30,7 @@ export function useInfiniteScroll<T = any>(
         uni.hideLoading();
         uni.stopPullDownRefresh();
         loading.value = false;
+        list.value = [];
       });
   };