From 7a50d501e6a0d8427515ebff197127deff210c53 Mon Sep 17 00:00:00 2001 From: chenshuanglong Date: Wed, 30 Oct 2024 23:07:59 +0800 Subject: [PATCH] feat: Add loading state to demo2 --- src/components/demo2/demo2.vue | 336 +++++++++++++++++++-------------- 1 file changed, 196 insertions(+), 140 deletions(-) diff --git a/src/components/demo2/demo2.vue b/src/components/demo2/demo2.vue index 4202c0d..815e7dc 100644 --- a/src/components/demo2/demo2.vue +++ b/src/components/demo2/demo2.vue @@ -49,20 +49,28 @@ const list = computed(() => { return newList; }); +const loading = ref(false); + +// 修改fetchTreeData函数 const fetchTreeData = async (folder) => { - const promises = []; - promises.push( - fetch( - `https://public-frontend-1300249583.cos.ap-nanjing.myqcloud.com/sela/notebooks/${folder}/tree.json` - ).then((res) => res.json()) - ); - for (let i = 1; i < 11; i++) { - const url = `https://public-frontend-1300249583.cos.ap-nanjing.myqcloud.com/sela/notebooks/${folder}/tree_${i - .toString() - .padStart(2, '0')}.json`; - promises.push(fetch(url).then((res) => res.json())); + loading.value = true; + try { + const promises = []; + promises.push( + fetch( + `https://public-frontend-1300249583.cos.ap-nanjing.myqcloud.com/sela/notebooks/${folder}/tree.json` + ).then((res) => res.json()) + ); + for (let i = 1; i < 11; i++) { + const url = `https://public-frontend-1300249583.cos.ap-nanjing.myqcloud.com/sela/notebooks/${folder}/tree_${i + .toString() + .padStart(2, '0')}.json`; + promises.push(fetch(url).then((res) => res.json())); + } + return await Promise.all(promises); + } finally { + loading.value = false; } - return await Promise.all(promises); }; // 处理树形数据 @@ -363,114 +371,150 @@ watch( );