Преглед на файлове

用户列表请求数据新增loadding

wangzhiqiang преди 2 месеца
родител
ревизия
e504711e89
променени са 1 файла, в които са добавени 38 реда и са изтрити 10 реда
  1. 38 10
      src/views/main/userModule/userList.vue

+ 38 - 10
src/views/main/userModule/userList.vue

@@ -172,7 +172,7 @@
   import From from "@/components/from/index.vue";
   import Table from "@/components/table/index.vue";
   import Layer from '@/components/layer/index.vue'
-  import { ElMessage } from 'element-plus'
+  import { ElMessage, ElLoading } from 'element-plus'
   import { getUserList, riskBannedUser, riskLockUser, appUserEcpm, getRevenueByTime, batchAudit } from '@/api/userModule.js'
   import { ditchList } from '@/api/outBagModule.js'
   import { appList } from "@/api/formworkErection.js";
@@ -313,17 +313,30 @@
 
   // 分页数据
   const getList = async () => {
-    let res = await getUserList({ ...formSearch.value });
-    tableData.value = res.data;
-    page.total = res.pageMeta.total;
+    try{
+      openFullScreen('数据请求中,请勿重复点击!!!')
 
-    // 根据时间获取收益
-    const param = {...formSearch.value}
-    delete param.page
-    delete param.limit
+      // 处理根据时间获取收益参数
+      const param = {...formSearch.value}
+      delete param.page
+      delete param.limit
 
-    let revenue = await getRevenueByTime({...param})
-    totalRevenue.value = roundPrice(revenue.data, 2, true)
+      // 并发获取数据
+      const [listRes, revenueRes] = await Promise.all([
+        getUserList({ ...formSearch.value }),
+        getRevenueByTime({ ...param })
+      ])
+
+      tableData.value = listRes.data;
+      page.total = listRes.pageMeta.total;
+      totalRevenue.value = roundPrice(revenueRes.data, 2, true)
+      
+    }catch(e){
+      //TODO handle the exception
+      console.log('数据请求超时或报错',e)
+    } finally {
+      closeFullScreen()
+    }
   };
 
   const changeTableData = (type) => {
@@ -416,6 +429,21 @@
     }
   }
 
+  const loading = ref(null)
+
+  // 加载信息
+  const openFullScreen = (loadText) => {
+      loading.value = ElLoading.service({
+          lock: true,
+          text: loadText,
+          background: 'rgba(0, 0, 0, 0.7)',
+      })
+  }
+
+  const closeFullScreen = () => {
+      loading.value.close()
+  }
+
   // 弹窗
   const layer = ref({
     show: false,