feat:更新core 和首页代码

This commit is contained in:
R524809
2026-03-27 17:31:52 +08:00
parent dc5e057cb3
commit 1b45ba7d11
44 changed files with 2891 additions and 1087 deletions
+81 -93
View File
@@ -1,105 +1,93 @@
<wxs module="fmt">
function ageLabel(arr) {
if (!arr || arr.length < 2) {
return '';
}
return arr[0] + '-' + arr[1] + '岁';
}
module.exports.ageLabel = ageLabel;
</wxs>
<view class="home-page">
<view class="home-header">
<view class="home-brand">
<text class="home-brand__duck">🦆</text>
<text class="home-brand__name">涂鸦丫</text>
</view>
<view class="home-search">
<text class="home-search__placeholder">搜索练习单(即将上线)</text>
<view class="home-nav" style="padding-top: {{statusBarHeight}}px;">
<view class="home-nav__inner">
<image
src="/assets/imgs/doodle-logo.png"
mode="aspectFill"
class="home-nav__logo" />
<text class="home-nav__name">涂鸦丫</text>
</view>
</view>
<category-tabs tabs="{{tabs}}" active-tab="{{activeTab}}" bind:change="onTabChange" />
<view class="home-search-wrap">
<view class="home-search">
<van-icon
name="search"
size="36rpx"
color="rgba(50, 46, 37, 0.45)"
class="home-search__icon" />
<text class="home-search__placeholder">搜索你喜欢的练习册...</text>
</view>
</view>
<view class="home-body">
<block wx:if="{{activeTab != 'all'}}">
<view class="home-grid">
<view class="home-tabs-wrap">
<category-tabs
tabs="{{tabs}}"
active-tab="{{activeTab}}"
bind:change="onTabChange" />
</view>
<view
class="home-hero-placeholder"
aria-role="img"
aria-label="推荐位占位" />
<view class="home-section-panel">
<view class="home-section-head">
<text class="home-section-head__title">按年龄挑选</text>
<text class="home-section-head__more" bindtap="onTapAgeMore"
>查看全部</text
>
</view>
<scroll-view class="home-age-scroll" scroll-x enable-flex>
<view class="home-age-row">
<view
wx:for="{{filteredItems}}"
wx:key="id"
class="home-grid__cell"
bindtap="onCardTap"
data-id="{{item.id}}"
>
<worksheet-card
title="{{item.title}}"
preview-bg="{{item.previewBg}}"
preview-text="{{item.previewText}}"
img="{{item.img}}"
age-range="{{fmt.ageLabel(item.ageRange)}}"
difficulty="{{item.difficulty}}"
/>
</view>
</view>
</block>
<block wx:else>
<view class="home-section home-section--hot">
<view class="home-section__title-row">
<text class="home-section__title">🔥 热门下载</text>
</view>
<scroll-view class="home-hot__scroll" scroll-x enable-flex>
<view class="home-hot__row">
<view
wx:for="{{hotItems}}"
wx:key="id"
class="home-hot__item"
bindtap="onHotCardTap"
data-id="{{item.id}}"
>
<view class="home-hot__card-wrap">
<worksheet-card
title="{{item.title}}"
preview-bg="{{item.previewBg}}"
preview-text="{{item.previewText}}"
img="{{item.img}}"
age-range="{{fmt.ageLabel(item.ageRange)}}"
difficulty="{{item.difficulty}}"
/>
</view>
</view>
</view>
</scroll-view>
</view>
<view wx:for="{{sections}}" wx:key="category" class="home-section">
<view class="home-section__head">
<view class="home-section__head-left">
<text class="home-section__icon">{{item.icon}}</text>
<text class="home-section__name">{{item.title}}</text>
</view>
<text class="home-section__more" bindtap="onSeeMore" data-category="{{item.category}}">更多</text>
</view>
<view class="home-grid">
wx:for="{{ageBands}}"
wx:key="key"
class="home-age-item"
data-key="{{item.key}}"
bindtap="onTapAgeBand">
<view
wx:for="{{item.items}}"
wx:for-item="w"
wx:key="id"
class="home-grid__cell"
bindtap="onCardTap"
data-id="{{w.id}}"
>
<worksheet-card
title="{{w.title}}"
preview-bg="{{w.previewBg}}"
preview-text="{{w.previewText}}"
img="{{w.img}}"
age-range="{{fmt.ageLabel(w.ageRange)}}"
difficulty="{{w.difficulty}}"
/>
class="home-age-item__icon-wrap {{activeAgeBand === item.key ? 'home-age-item__icon-wrap--active' : ''}}">
<text class="home-age-item__icon">{{item.icon}}</text>
</view>
<text class="home-age-item__label">{{item.label}}</text>
</view>
</view>
</block>
</scroll-view>
</view>
<view class="home-section-panel home-section-panel--hot">
<view class="home-section-head">
<text class="home-section-head__title">热门推荐</text>
<text class="home-section-head__more" bindtap="onTapHotMore"
>查看全部</text
>
</view>
<view class="home-hot-list">
<view
wx:for="{{hotRecommends}}"
wx:key="id"
class="home-hot-card"
data-title="{{item.title}}"
bindtap="onTapHotRecommend">
<view class="home-hot-card__thumb">
<text class="home-hot-card__thumb-emoji"
>{{item.emoji}}</text
>
</view>
<view class="home-hot-card__content">
<text class="home-hot-card__title">{{item.title}}</text>
<text class="home-hot-card__desc">{{item.desc}}</text>
<view class="home-hot-card__meta">
<text class="home-hot-card__tag">{{item.tag}}</text>
<text class="home-hot-card__score"
>{{item.score}} ★</text
>
</view>
</view>
<view class="home-hot-card__action">+</view>
</view>
</view>
</view>
</view>