Files
sundynix-plant-mp/pages/profile/index.wxml
T
2026-02-12 09:26:39 +08:00

237 lines
9.6 KiB
Plaintext

<view class="profile-page">
<!-- ======== FAVORITES VIEW ======== -->
<view wx:if="{{view === 'favorites'}}" class="sub-view info-view-anim">
<view class="sub-nav" bindtap="goBack">
<t-icon name="chevron-left" size="40rpx" />
<text class="sub-nav-title">我的收藏</text>
</view>
<view class="category-filter">
<view class="filter-chip {{favTab === 'all' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="all">全部</view>
<view class="filter-chip {{favTab === 'plant' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="plant">植物</view>
<view class="filter-chip {{favTab === 'article' ? 'active' : ''}}" bindtap="onFavTabChange" data-value="article">文章</view>
</view>
<scroll-view scroll-y class="sub-scroll">
<view wx:if="{{filteredFavorites.length > 0}}" class="fav-grid">
<view wx:for="{{filteredFavorites}}" wx:key="id" class="fav-card">
<t-image src="{{item.image}}" mode="aspectFill" width="100%" height="240rpx" class="fav-img" />
<view class="fav-info">
<text class="fav-name">{{item.name}}</text>
<view class="fav-meta-row">
<t-icon name="{{item.type === 'plant' ? 'heart' : 'book'}}" size="28rpx" color="#90A4AE" />
<text class="fav-type">{{item.meta}}</text>
</view>
</view>
</view>
</view>
<view wx:else class="empty-state">
<text class="empty-text">暂无收藏内容</text>
</view>
</scroll-view>
</view>
<!-- ======== POSTS VIEW ======== -->
<view wx:elif="{{view === 'posts'}}" class="sub-view info-view-anim">
<view class="sub-nav" bindtap="goBack">
<t-icon name="chevron-left" size="40rpx" />
<text class="sub-nav-title">我的发布</text>
</view>
<scroll-view scroll-y class="sub-scroll">
<view wx:for="{{myPublishedPosts}}" wx:key="id" class="my-post-card">
<view class="my-post-time">{{item.time}}</view>
<view class="my-post-content-wrap">
<text class="post-text">{{item.content}}</text>
<view wx:if="{{item.images.length > 0}}" class="my-post-images">
<t-image wx:for="{{item.images}}" wx:for-item="img" wx:key="*this"
src="{{img}}" mode="aspectFill" width="140rpx" height="140rpx"
shape="round" />
</view>
<view class="my-post-footer">
<view class="footer-item"><t-icon name="heart" size="28rpx" /> <text>{{item.likes.length}}</text></view>
<view class="footer-item"><t-icon name="chat" size="28rpx" /> <text>{{item.comments.length}}</text></view>
<view class="footer-item" catchtap="deletePost" data-id="{{item.id}}" style="margin-left:auto; color: #EF5350;">
<t-icon name="delete" size="28rpx" />
</view>
</view>
</view>
</view>
</scroll-view>
</view>
<!-- ======== ABOUT VIEW ======== -->
<view wx:elif="{{view === 'about'}}" class="sub-view info-view-anim">
<view class="sub-nav" bindtap="goBack">
<t-icon name="chevron-left" size="40rpx" />
<text class="sub-nav-title">关于我们</text>
</view>
<scroll-view scroll-y class="sub-scroll">
<view class="about-section">
<view class="about-logo-area">
<view class="about-logo">
<t-icon name="flower" size="72rpx" color="#558B2F" />
</view>
<text class="about-app-name">植物护理助手</text>
<text class="about-version">版本 {{appVersion}}</text>
</view>
<view class="about-desc">
<text>一款专注于家庭植物养护的小程序。帮助你记录植物成长、制定养护计划、识别未知植物,与花友们分享养花心得。</text>
</view>
<view class="about-footer">
<text class="about-copyright">© 2026 Sundynix · All Rights Reserved</text>
</view>
</view>
</scroll-view>
</view>
<!-- ======== MAIN PROFILE VIEW ======== -->
<view wx:else class="main-profile-view">
<!-- Header -->
<view class="profile-header">
<view class="user-main">
<view class="user-avatar" bindtap="openProfileEditor">
<t-avatar wx:if="{{userAvatar}}" image="{{userAvatar}}" size="120rpx" />
<t-avatar wx:else icon="user" size="120rpx" />
</view>
<view class="user-text" bindtap="openProfileEditor">
<view class="user-name">{{userName}}</view>
<view class="level-badge">{{userLevelTag || 'Lv.0 园艺新手'}}</view>
</view>
</view>
<view class="settings-btn" bindtap="goToNotificationSettings">
<t-icon name="setting" size="40rpx" color="#666" />
</view>
</view>
<!-- Stats Card (Fixed) -->
<view class="stats-section">
<view class="stats-card">
<view class="stat-item">
<text class="stat-num">{{plantCount}}</text>
<text class="stat-label">植物</text>
</view>
<view class="stat-divider"></view>
<view class="stat-item">
<text class="stat-num">{{taskDoneCount}}</text>
<text class="stat-label">养护</text>
</view>
<view class="stat-divider"></view>
<view class="stat-item">
<text class="stat-num">{{postCount}}</text>
<text class="stat-label">动态</text>
</view>
</view>
</view>
<scroll-view scroll-y class="profile-content" enhanced show-scrollbar="{{false}}">
<!-- Menu -->
<view class="profile-menu">
<view class="menu-group-title">常用功能</view>
<view class="menu-item" bindtap="setView" data-view="favorites">
<view class="menu-left">
<view class="menu-icon-bg" style="background: #FFF3E0">
<t-icon name="star" size="36rpx" color="#FF9800" />
</view>
<text class="menu-text">我的收藏</text>
</view>
<t-icon name="chevron-right" size="36rpx" color="#ccc" />
</view>
<view class="menu-item" bindtap="setView" data-view="posts">
<view class="menu-left">
<view class="menu-icon-bg" style="background: #E3F2FD">
<t-icon name="file-copy" size="36rpx" color="#2196F3" />
</view>
<text class="menu-text">我的发布</text>
</view>
<t-icon name="chevron-right" size="36rpx" color="#ccc" />
</view>
<view class="menu-item" bindtap="goToIdentifyHistory">
<view class="menu-left">
<view class="menu-icon-bg" style="background: #E8F5E9">
<t-icon name="scan" size="36rpx" color="#4CAF50" />
</view>
<text class="menu-text">识别记录</text>
</view>
<t-icon name="chevron-right" size="36rpx" color="#ccc" />
</view>
<view class="menu-item" bindtap="goToBadges">
<view class="menu-left">
<view class="menu-icon-bg" style="background: #F3E5F5">
<t-icon name="award" size="36rpx" color="#9C27B0" />
</view>
<text class="menu-text">成就徽章</text>
</view>
<view class="menu-right-info">
<!-- <text class="menu-badge-text">已获 3 个</text> -->
<t-icon name="chevron-right" size="36rpx" color="#ccc" />
</view>
</view>
<view class="menu-group-title" style="margin-top: 32rpx;">更多服务</view>
<view class="menu-item" bindtap="goToAbout">
<view class="menu-left">
<view class="menu-icon-bg" style="background: #F5F5F5">
<t-icon name="help-circle" size="36rpx" color="#616161" />
</view>
<text class="menu-text">帮助与关于</text>
</view>
<t-icon name="chevron-right" size="36rpx" color="#ccc" />
</view>
</view>
<view style="height: 100rpx;"></view>
</scroll-view>
</view>
<!-- Profile Edit Popup -->
<t-popup visible="{{showProfileEditor}}" placement="bottom" bind:visible-change="onProfilePopupChange">
<view class="profile-edit-popup">
<view class="popup-header">
<text class="popup-title">编辑资料</text>
<view class="popup-close" bindtap="closeProfileEditor">
<t-icon name="close" size="40rpx" color="#999" />
</view>
</view>
<button class="edit-row avatar-btn" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
<text class="edit-row-label">头像</text>
<view class="edit-row-right">
<t-avatar
wx:if="{{tempAvatar || userAvatar}}"
image="{{tempAvatar || userAvatar}}"
size="96rpx"
/>
<t-avatar wx:else icon="user" size="96rpx" />
<t-icon name="chevron-right" size="32rpx" color="#C5C5C5" />
</view>
</button>
<view class="edit-row">
<text class="edit-row-label">昵称</text>
<input
class="nickname-input"
type="text"
placeholder="请输入昵称"
placeholder-style="color: #C5C5C5;"
value="{{tempNickname}}"
bindinput="onNicknameInput"
/>
</view>
<view class="edit-actions">
<t-button theme="primary" block shape="round" bind:tap="saveProfile">保存</t-button>
</view>
</view>
</t-popup>
</view>