fix(daka): separate pull-refresh and list loading states
van-pull-refresh and van-list shared the same state.loading, causing the loading spinner to never disappear when API calls completed. Split into state.refreshing (pull-refresh) and state.loading (list). Add try/finally to guarantee both states always reset. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -70,7 +70,7 @@ export default defineComponent({
|
||||
const badge_props: Partial<BadgeProps> = { showZero: false, max: 99 }
|
||||
|
||||
onMounted(() => {
|
||||
console.debug('[App.vue] deploy_ver=20260503.002');
|
||||
console.debug('[App.vue] deploy_ver=20260503.003');
|
||||
let vconsole = document.getElementById("__vconsole");
|
||||
if (vconsole) {
|
||||
vconsole.hidden = true;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<van-search shape="round" v-model.trim="state.keyword" />
|
||||
</div>
|
||||
<div class="list">
|
||||
<van-pull-refresh v-model="state.loading" @refresh="onRefresh">
|
||||
<van-pull-refresh v-model="state.refreshing" @refresh="onRefresh">
|
||||
<van-list v-model:loading="state.loading"
|
||||
:finished="state.finished" finished-text="没有更多数据了"
|
||||
@load="onPage">
|
||||
@@ -102,7 +102,9 @@ export default defineComponent({
|
||||
|
||||
const state = reactive({
|
||||
keyword: '',
|
||||
loading: false, finished: true,
|
||||
refreshing: false,
|
||||
loading: false,
|
||||
finished: true,
|
||||
start_date: '',
|
||||
page: 1,
|
||||
page_size: 10,
|
||||
@@ -123,14 +125,19 @@ export default defineComponent({
|
||||
if (start_date) {
|
||||
params.start_date = start_date + " 00:00:00";
|
||||
}
|
||||
await query(params);
|
||||
if (store.pages <= state.page) {
|
||||
state.finished = true;
|
||||
try {
|
||||
await query(params);
|
||||
if (store.pages <= state.page) {
|
||||
state.finished = true;
|
||||
}
|
||||
} finally {
|
||||
state.loading = false;
|
||||
state.refreshing = false;
|
||||
}
|
||||
state.loading = false;
|
||||
}
|
||||
|
||||
const onRefresh = async () => {
|
||||
state.refreshing = true;
|
||||
await search({page: 1, page_size: state.page_size});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user