fix(mobile): unify empty/loading states on question board and points pages

This commit is contained in:
2026-07-21 01:45:14 +08:00
parent 6d2b5ec8b9
commit 53b15e506c
2 changed files with 5 additions and 6 deletions
+2 -1
View File
@@ -33,7 +33,7 @@
</text> </text>
</view> </view>
</view> </view>
<text v-else class="muted empty">暂无积分明细</text> <StateBlock v-else type="empty" :card="false" title="暂无积分明细" />
</view> </view>
</view> </view>
</template> </template>
@@ -43,6 +43,7 @@ import { ref } from 'vue';
import { onShow } from '@dcloudio/uni-app'; import { onShow } from '@dcloudio/uni-app';
import type { IncentiveBalance, IncentiveLedgerItem } from '@/types/api'; import type { IncentiveBalance, IncentiveLedgerItem } from '@/types/api';
import { getMyIncentiveBalances, getMyIncentiveLedger } from '@/services/questions'; import { getMyIncentiveBalances, getMyIncentiveLedger } from '@/services/questions';
import StateBlock from '@/components/StateBlock.vue';
const balances = ref<IncentiveBalance[]>([]); const balances = ref<IncentiveBalance[]>([]);
const ledger = ref<IncentiveLedgerItem[]>([]); const ledger = ref<IncentiveLedgerItem[]>([]);
@@ -37,11 +37,8 @@
</view> </view>
<view v-if="message" class="status-message">{{ message }}</view> <view v-if="message" class="status-message">{{ message }}</view>
<view v-if="loading" class="panel employee-card empty">问题加载中…</view> <StateBlock v-if="loading" type="loading" title="问题加载中…" />
<view v-else-if="!questions.length" class="panel employee-card empty"> <StateBlock v-else-if="!questions.length" type="empty" title="当前暂无问题" desc="你可以发起第一条真实工作求助。" />
<text class="empty-title">当前暂无问题</text>
<text class="muted">你可以发起第一条真实工作求助。</text>
</view>
<view v-else class="question-list"> <view v-else class="question-list">
<button v-for="item in questions" :key="item.id" class="question-card employee-card" @click="openQuestion(item.id)"> <button v-for="item in questions" :key="item.id" class="question-card employee-card" @click="openQuestion(item.id)">
<view class="question-meta"> <view class="question-meta">
@@ -66,6 +63,7 @@ import type { QuestionBoardItem, QuestionBoardTab } from '@/types/api';
import { isLoggedIn, rememberLoginRedirect } from '@/services/auth'; import { isLoggedIn, rememberLoginRedirect } from '@/services/auth';
import { listQuestions } from '@/services/questions'; import { listQuestions } from '@/services/questions';
import { resetPageScroll } from '@/services/navigation'; import { resetPageScroll } from '@/services/navigation';
import StateBlock from '@/components/StateBlock.vue';
const path = '/pages/user/questions/index'; const path = '/pages/user/questions/index';
const tabs: { key: QuestionBoardTab; label: string }[] = [ const tabs: { key: QuestionBoardTab; label: string }[] = [