144 lines
5.2 KiB
Plaintext
144 lines
5.2 KiB
Plaintext
<!-- 首页 - 功能入口 -->
|
||
<view class="container home">
|
||
<!-- 用户栏:左下拉切换 + 右添加/管理 -->
|
||
<view class="person-bar">
|
||
<picker wx:if="{{persons.length > 0}}" mode="selector" range="{{personNames}}" bindchange="onSwitchPerson" value="{{currentPersonIndex}}">
|
||
<view class="person-selector">
|
||
<text class="person-icon">👤</text>
|
||
<text class="person-name">{{currentPersonName}}</text>
|
||
<text class="person-arrow">▼</text>
|
||
</view>
|
||
</picker>
|
||
<view class="person-bar-right" wx:if="{{persons.length > 0}}">
|
||
<view class="person-bar-btn" bindtap="onShowAddInput">+</view>
|
||
<view class="person-bar-btn person-bar-btn--manage" bindtap="onTogglePersonModal">⚙</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 行内新增用户输入 -->
|
||
<view wx:if="{{showAddInput}}" class="add-person-row">
|
||
<input
|
||
class="add-person-input"
|
||
placeholder="请输入用户名称"
|
||
value="{{newPersonName}}"
|
||
bindinput="onAddNameInput"
|
||
bindconfirm="onConfirmAddPerson"
|
||
confirm-type="done"
|
||
maxlength="10"
|
||
focus="{{true}}"
|
||
/>
|
||
<text class="add-person-btn add-person-btn--confirm" bindtap="onConfirmAddPerson">确认</text>
|
||
<text class="add-person-btn add-person-btn--cancel" bindtap="onCancelAddPerson">取消</text>
|
||
</view>
|
||
|
||
<view class="home-header">
|
||
<text class="home-title">健康数据追踪</text>
|
||
<text class="home-desc">选择您需要的功能</text>
|
||
</view>
|
||
|
||
<view class="home-grid">
|
||
<view class="home-card" bindtap="goEntry">
|
||
<view class="home-card-icon home-card-icon--entry">
|
||
<text class="home-card-emoji">📝</text>
|
||
</view>
|
||
<text class="home-card-title">录入检查数据</text>
|
||
<text class="home-card-desc">记录每日健康指标</text>
|
||
</view>
|
||
|
||
<view class="home-card" bindtap="goItems">
|
||
<view class="home-card-icon home-card-icon--items">
|
||
<text class="home-card-emoji">⚙️</text>
|
||
</view>
|
||
<text class="home-card-title">管理检查项目</text>
|
||
<text class="home-card-desc">自定义追踪指标</text>
|
||
</view>
|
||
|
||
<view class="home-card" bindtap="goTrend">
|
||
<view class="home-card-icon home-card-icon--trend">
|
||
<text class="home-card-emoji">📈</text>
|
||
</view>
|
||
<text class="home-card-title">数据趋势</text>
|
||
<text class="home-card-desc">查看变化趋势图</text>
|
||
</view>
|
||
|
||
<view class="home-card" bindtap="goDetails">
|
||
<view class="home-card-icon home-card-icon--details">
|
||
<text class="home-card-emoji">📋</text>
|
||
</view>
|
||
<text class="home-card-title">数据详细信息</text>
|
||
<text class="home-card-desc">浏览与管理数据</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="clear-section" wx:if="{{persons.length > 0}}">
|
||
<view class="clear-btn" bindtap="onClearAll">
|
||
<text class="clear-icon">🗑️</text>
|
||
<text class="clear-text">清除{{currentPersonName}}的历史数据</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- ===== 无用户弹窗(强制创建) ===== -->
|
||
<view wx:if="{{showForceModal && persons.length === 0}}" class="modal-wrap">
|
||
<view class="modal-box" catchtap="noop">
|
||
<view class="modal-title">欢迎使用健康数据追踪</view>
|
||
<view class="modal-desc">请先创建您的第一位用户</view>
|
||
<view class="force-input-row">
|
||
<input
|
||
class="force-input"
|
||
placeholder="请输入用户名称"
|
||
value="{{forceName}}"
|
||
bindinput="onForceNameInput"
|
||
bindconfirm="onConfirmForceCreate"
|
||
confirm-type="done"
|
||
maxlength="10"
|
||
focus="{{true}}"
|
||
/>
|
||
</view>
|
||
<view class="btn-row">
|
||
<button class="btn-primary" style="flex:1;" bindtap="onConfirmForceCreate">确认创建</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- ===== 用户管理弹窗 ===== -->
|
||
<view wx:if="{{showPersonModal && persons.length > 0}}" class="modal-wrap" catchtap="onTogglePersonModal">
|
||
<view class="modal-box" catchtap="noop">
|
||
<view class="modal-title">用户管理</view>
|
||
|
||
<view class="person-list">
|
||
<view
|
||
class="person-list-item {{app.globalData.currentPersonId === item.id ? 'person-list-item--active' : ''}}"
|
||
wx:for="{{persons}}"
|
||
wx:key="id"
|
||
>
|
||
<view class="person-list-left">
|
||
<text class="person-list-name">{{item.name}}</text>
|
||
</view>
|
||
<view class="person-list-right">
|
||
<text class="person-list-action" bindtap="onStartRename" data-id="{{item.id}}">✏️</text>
|
||
<text class="person-list-action" bindtap="onDeletePerson" data-id="{{item.id}}">🗑️</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 重命名输入行 -->
|
||
<view wx:if="{{editingPersonId}}" class="person-edit-row">
|
||
<input
|
||
class="person-edit-input"
|
||
placeholder="修改用户名"
|
||
value="{{editingPersonName}}"
|
||
bindinput="onEditNameInput"
|
||
bindconfirm="onConfirmRename"
|
||
confirm-type="done"
|
||
maxlength="10"
|
||
/>
|
||
<button class="btn-primary person-edit-btn" bindtap="onConfirmRename">保存</button>
|
||
</view>
|
||
|
||
<view class="btn-row">
|
||
<button class="btn-cancel" bindtap="onTogglePersonModal">关闭</button>
|
||
</view>
|
||
</view>
|
||
</view>
|