Add immediate startup login and loading states for mini program home
ci-cd / verify (push) Successful in 5s
ci-cd / deploy (push) Skipped

This commit is contained in:
2026-10-05 11:03:33 +08:00
parent 4916c31edd
commit 42aea10101
15 changed files with 623 additions and 44 deletions
+21 -2
View File
@@ -1,5 +1,16 @@
<page-layout id="page-layout" title="{{locationName}}" subtitle="{{headerSubtitle}}" location="{{true}}" bind:locationtap="refreshEnvironment">
<startup-state wx:if="{{phase==='auth' || phase==='auth-error'}}" error="{{error}}" bind:retry="load" />
<page-layout wx:else id="page-layout" title="{{locationName}}" subtitle="{{headerSubtitle}}" location="{{true}}" bind:locationtap="refreshEnvironment">
<view class="screen">
<home-skeleton wx:if="{{loading && !ready}}" />
<view wx:elif="{{!ready && error}}" class="card home-error">
<app-icon kind="paw" size="54" />
<view class="error-title">暂时没能准备好首页</view>
<view class="muted">{{error}}</view>
<button class="primary" bindtap="load">重新加载</button>
</view>
<block wx:else>
<view wx:if="{{error}}" class="refresh-error"><text>更新失败,保留上次的日常记录</text><text class="link" bindtap="load">重试</text></view>
<view wx:elif="{{loading}}" class="refresh-hint">正在更新今天的小日常…</view>
<view class="hero">
<view class="hero-copy">
<text class="hero-small">今日的主角</text>
@@ -21,9 +32,16 @@
<view class="muted">选择同行的狗狗,一起出门转转。</view>
</view>
</view>
<view wx:if="{{!pets.length}}" class="first-pet">
<view class="first-pet-title">认识你的第一位毛孩子</view>
<view class="muted">先建立档案,再一起出门收集小快乐。</view>
<button class="primary start" bindtap="addPet">添加毛孩子</button>
</view>
<block wx:else>
<view class="picker-label">这次带谁?可以多选</view>
<pet-picker pets="{{pets}}" selected="{{selected}}" bind:change="pick" />
<button class="primary start" bindtap="start">开始遛狗 →</button>
</block>
</view>
<view class="stats">
<view>
@@ -75,6 +93,7 @@
今天还没有任务,给狗狗安排一件小事吧
</view>
</view>
</block>
</view>
</page-layout>
<tab-bar current="/pages/home/home" />
<tab-bar wx:if="{{ready}}" current="/pages/home/home" />