zhb 4 месяцев назад
Родитель
Сommit
bf182dccd6

+ 19 - 0
hooks/useLoading.ts

@@ -0,0 +1,19 @@
+let loadingCount = 0;
+
+export function showLoading(title = '加载中...') {
+  if (loadingCount === 0) {
+    uni.showLoading({
+      title,
+      mask: true
+    });
+  }
+  loadingCount++;
+}
+
+export function hideLoading() {
+  loadingCount--;
+  if (loadingCount <= 0) {
+    loadingCount = 0;
+    uni.hideLoading();
+  }
+}

+ 1 - 1
pages/card/components/VirtualCard.vue

@@ -121,7 +121,7 @@
       <cwg-tabs :list="tabList" @click="handleTabClick" />
       <view class="transaction-list">
         <!-- Recharge Records -->
-        <view v-if="jiluIndex === 0">
+        <view v-if="jiluIndex === 0" :a="currentCard.cardNumber">
           <RechargeList :pageSize="4" ref="rechargeListRef" :cardNumber="currentCard.cardNumber" />
         </view>
         <!-- Transfer Records -->

+ 5 - 0
pages/recharge-record/components/RechargeList.vue

@@ -283,6 +283,11 @@ watch([() => props.statusIndex], () => {
   finished.value = false;
   fetchRecords();
 }, { immediate: false });
+watch([() => props.cardNumber], () => {
+  page.value = 1;
+  finished.value = false;
+  fetchRecords();
+}, { immediate: false });
 
 const loadMoreWrapperRef = ref<any>(null);
 

+ 5 - 0
pages/recharge-record/components/TransactionList.vue

@@ -301,6 +301,11 @@ watch([() => props.statusIndex], () => {
   finished.value = false;
   fetchRecords();
 }, { immediate: false });
+watch([() => props.cardNumber], () => {
+  page.value = 1;
+  finished.value = false;
+  fetchRecords();
+}, { immediate: false });
 const loadMoreWrapperRef = ref<any>(null);
 
 const refresh = async () => {

BIN
static/images/currency/TWD.png


+ 14 - 1
utils/request.js

@@ -1,5 +1,5 @@
 // 基础配置
-import { removeUserInfo, removeToken } from "./auth.js";
+import { showLoading, hideLoading } from '@/hooks/useLoading'
 import config from "@/config";
 const { Host85, Host00 } = config;
 // const baseUrl = "https://ucard.cwgrd.com";
@@ -7,6 +7,8 @@ const { Host85, Host00 } = config;
 // const baseUrl = "http://192.168.0.18:8700";
 const baseUrl = Host85;
 const timeout = 10000;
+// 不加loading
+const urlLoading = ['/list', '/page', '/field/params', '/dropdown', '/single', '/detail']
 import { CLIENT, lang, userToken } from "@/composables/config";
 const LOGIN_PAGE_PATH = "/pages/login/index";
 import useGlobalStore from "@/stores/use-global-store";
@@ -131,6 +133,10 @@ export const request = (options) => {
   const processedConfig = requestInterceptor(config);
 
   return new Promise((resolve, reject) => {
+    const needLoading = urlLoading.some(item => config.url.includes(item));
+    if (!needLoading) {
+      showLoading();
+    }
     uni.request({
       ...processedConfig,
       success: (response) => {
@@ -139,11 +145,18 @@ export const request = (options) => {
           resolve(result);
         } catch (err) {
           reject(err);
+        } finally {
+          if (!needLoading) {
+            hideLoading();
+          }
         }
       },
       fail: (error) => {
         const handledError = errorHandler(error);
         reject(handledError);
+        if (!needLoading) {
+          hideLoading();
+        }
       },
     });
   });