b8b3ba99b4
## 那条 banner 为什么丑 我给它加了不透明底色 + 分隔线,而页面本身是渐变背景——等于在渐变上 贴了块补丁,屏幕上出现三条颜色不搭的横带。 但它根本不需要背景:它在文档流里而不是浮层,内容永远不会滚到它下面。 去掉 background / backdrop-filter / border 之后自然融进页面渐变。 顺手把 .pet-bar 改名 .top-bar,因为社区也要用它。 ## 社区 - 分类标签移出滚动区吸顶。原来一滚就没了,想换分类还得先滚回顶部 - 「发布图文」那个大黑按钮独占 124rpx,而发帖是低频操作,不该在每屏 都占着首屏。压成右侧的小胶囊,收进同一条,始终可点 - 切分类回到顶部:不然从「推荐」滚到一半切到「关注」,看到的是新列表 的中间,会以为内容错乱了 回顶用 scroll-into-view + 锚点,并在 bindscroll 里清掉锚点值—— 不清的话下次再设同一个值不会触发,第二次切分类就不动了。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
63 lines
3.0 KiB
Plaintext
63 lines
3.0 KiB
Plaintext
<wxs module="im">
|
|
module.exports.isUrl = function (s) { return s && s.indexOf('http') === 0; }
|
|
</wxs>
|
|
<nav-bar title="宠友圈"></nav-bar>
|
|
|
|
<view class="top-bar feed-bar">
|
|
<seg-tabs items="{{feedTabs}}" current="{{feedIdx}}" bind:change="switchFeedTab"></seg-tabs>
|
|
<view class="feed-post" bindtap="openSheet" data-type="createPost">
|
|
<pt-icon name="plus" size="{{28}}"></pt-icon>发布
|
|
</view>
|
|
</view>
|
|
|
|
<scroll-view class="page-scroll" scroll-y="{{true}}" scroll-into-view="{{intoView}}" bindscroll="onFeedScroll" enhanced="{{true}}" show-scrollbar="{{false}}">
|
|
<view class="page-body">
|
|
<view id="feed-top"></view>
|
|
<view wx:for="{{posts}}" wx:key="id" class="post-card" bindlongpress="onLongPressPost" data-index="{{index}}">
|
|
<view class="post-head">
|
|
<view class="post-avatar">{{item.author_emoji}}</view>
|
|
<view class="post-user">
|
|
<view class="pu-b">{{item.author_name}}<text wx:if="{{item.is_ai}}" class="ai-tag">AI</text></view>
|
|
<view class="pu-s">{{item.timeText}}</view>
|
|
</view>
|
|
<view wx:if="{{!item.is_self && item.user_id}}" class="follow-btn {{item.followed ? 'on' : ''}}"
|
|
catchtap="toggleFollow" data-index="{{index}}">{{item.followed ? '已关注' : '+ 关注'}}</view>
|
|
<view wx:if="{{item.tag}}" class="tag {{item.tagClass}}">{{item.tag}}</view>
|
|
</view>
|
|
<view class="post-content">{{item.content}}</view>
|
|
<view wx:if="{{item.images.length}}" class="photo-grid">
|
|
<block wx:for="{{item.images}}" wx:for-item="img" wx:key="*this">
|
|
<image wx:if="{{im.isUrl(img)}}" class="photo-tile" src="{{img}}" mode="aspectFill"></image>
|
|
<view wx:else class="photo-tile">{{img}}</view>
|
|
</block>
|
|
</view>
|
|
<view class="post-actions">
|
|
<view class="pa-btn {{item.liked ? 'liked' : ''}}" data-index="{{index}}" bindtap="likePost">
|
|
<pt-icon name="{{item.liked ? 'like-on' : 'like'}}" size="{{32}}"></pt-icon>
|
|
<text class="pa-n">{{item.like_count || '点赞'}}</text>
|
|
</view>
|
|
<view class="pa-btn" data-id="{{item.id}}" bindtap="openComments">
|
|
<pt-icon name="comment" size="{{32}}"></pt-icon>
|
|
<text class="pa-n">{{item.comment_count || '评论'}}</text>
|
|
</view>
|
|
<button class="pa-btn pa-share" open-type="share" data-content="{{item.content}}">
|
|
<pt-icon name="share" size="{{32}}"></pt-icon>
|
|
<text class="pa-n">分享</text>
|
|
</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view wx:if="{{loadErr}}" class="empty lg">
|
|
{{loadErr}}
|
|
<view class="retry-btn" bindtap="loadPosts">点击重试</view>
|
|
</view>
|
|
<view wx:elif="{{loaded && posts.length === 0}}" class="empty lg">
|
|
{{feedTabs[feedIdx] === '关注' ? '还没有关注的人,去「推荐」里关注几个宠友吧 🐾' : '还没有帖子,来发第一条吧 🐾'}}
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
|
|
<fab bind:tap="onFab"></fab>
|
|
<bottom-sheet show="{{sheetShow}}" type="{{sheetType}}" post-id="{{sheetPostId}}"
|
|
bind:close="closeSheet" bind:posted="onPosted" bind:commented="onCommented"></bottom-sheet>
|