1) 新增 pages/plan-select(加入我的计划选择器,替换详情页 actionSheet) - 默认展示我全部计划(浏览,不再强制搜索),支持 最近创建/动作最多 排序 + 名称搜索 - 点选即把动作加入该计划并返回;无计划时引导新建 - 入口接在 detail 页「加入计划」(无 planId 时 navigate 至此) 2) 增强 pages/collection(官方训练计划) - 默认展示全部分级,新增 等级筛选 chips + 名称搜索(均用现有字段,不改后端) - 筛选/搜索纯前端,viewGroups 驱动渲染 3) 修复 plan-detail 从「添加动作」返回后列表不刷新(上轮已单独提交 7ff55a6) 4) app.json 注册 plan-select 页面
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
<view class="page">
|
|
<navbar title="官方训练计划" show-back />
|
|
|
|
<view class="section" style="padding-top: 8rpx;">
|
|
<view class="intro">
|
|
<view class="intro__eyebrow">OFFICIAL PROGRAMS</view>
|
|
<view class="intro__title">选择你的训练阶段</view>
|
|
<view class="intro__sub">从新手入门到高级挑战,分级规划你的每一次进阶</view>
|
|
</view>
|
|
|
|
<view class="filterbar">
|
|
<scroll-view scroll-x class="filterbar__scroll">
|
|
<chip
|
|
wx:for="{{levels}}"
|
|
wx:key="value"
|
|
label="{{item.label}}"
|
|
value="{{item.value}}"
|
|
active="{{filterLevel === item.value}}"
|
|
bind:select="onFilter" />
|
|
</scroll-view>
|
|
</view>
|
|
|
|
<view class="searchbar">
|
|
<view class="searchbar__box">
|
|
<fc-icon name="search" size="28" color="var(--text-2)" />
|
|
<input
|
|
class="searchbar__input"
|
|
placeholder="搜索计划名称"
|
|
placeholder-class="ph"
|
|
value="{{keyword}}"
|
|
confirm-type="search"
|
|
bindinput="onSearch" />
|
|
</view>
|
|
</view>
|
|
|
|
<block wx:if="{{viewGroups.length}}">
|
|
<view class="group" wx:for="{{viewGroups}}" wx:for-item="g" wx:key="level">
|
|
<section-header eyebrow="LEVEL" title="{{g.label}}" />
|
|
<view class="grid">
|
|
<view class="grid__item" wx:for="{{g.plans}}" wx:for-item="p" wx:key="slug">
|
|
<plan-card
|
|
plan="{{p}}"
|
|
target="/pages/collection-detail/collection-detail?slug={{p.slug}}" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
|
|
<view wx:elif="{{!loading}}" class="empty">没有匹配的计划</view>
|
|
<view wx:else class="empty">加载中…</view>
|
|
</view>
|
|
|
|
<view style="height: 60rpx;"></view>
|
|
</view>
|