Files
qipai/miniapp/pages/manager/people.wxml
T
2026-08-10 10:35:44 +08:00

73 lines
4.0 KiB
Plaintext

<scroll-view class="scrollarea" scroll-y type="list">
<view class="container people-page">
<view class="title">会员与员工</view>
<view class="subtitle">仅展示当前账号数据范围内的人员,手机号与最近 IP 保持脱敏。</view>
<view class="people-tabs">
<button class="{{tab === 'members' ? 'active' : ''}}" data-tab="members" bindtap="selectTab">会员</button>
<button class="{{tab === 'staff' ? 'active' : ''}}" data-tab="staff" bindtap="selectTab">员工</button>
</view>
<view class="search-row">
<input value="{{query}}" placeholder="昵称、手机号或 ID" bindinput="inputQuery" confirm-type="search" bindconfirm="search" />
<button size="mini" loading="{{loading}}" bindtap="search">检索</button>
</view>
<view wx:if="{{errorMessage}}" class="error">{{errorMessage}}</view>
<view wx:if="{{loading}}" class="loading">正在加载...</view>
<view wx:if="{{selectedMember}}" class="detail-card">
<view class="card-heading">
<view>
<view class="card-title">{{selectedMember.displayName}}</view>
<view class="card-meta">{{selectedMember.maskedPhone}} · ID {{selectedMember.memberId}}</view>
</view>
<button size="mini" bindtap="closeMember">关闭</button>
</view>
<view class="metric-grid">
<view><strong>{{selectedMember.balanceText}}</strong><text>总余额</text></view>
<view><strong>{{selectedMember.orders.orderCount}}</strong><text>订单</text></view>
<view><strong>{{selectedMember.benefits.availableCoupons}}</strong><text>可用券</text></view>
<view><strong>{{selectedMember.benefits.activePackages}}</strong><text>有效套餐</text></view>
</view>
<view class="detail-line">累计支付:{{selectedMember.paidText}}</view>
<view class="detail-line">注册时间:{{selectedMember.registeredText}}</view>
<view class="subheading">最近余额流水</view>
<view wx:if="{{!selectedMember.recentLedger.length}}" class="empty">暂无余额流水</view>
<view wx:for="{{selectedMember.recentLedger}}" wx:key="ledgerId" class="ledger-line">
<view><strong>{{item.businessType}}</strong><text>{{item.createdText}}</text></view>
<strong>{{item.deltaText}}</strong>
</view>
</view>
<block wx:if="{{tab === 'members'}}">
<view wx:if="{{!loading && !members.length}}" class="empty">授权范围内暂无会员</view>
<view wx:for="{{members}}" wx:key="memberId" class="person-card" data-member-id="{{item.memberId}}" bindtap="openMember">
<view class="card-heading">
<view>
<view class="card-title">{{item.displayName}}</view>
<view class="card-meta">{{item.maskedPhone}} · ID {{item.memberId}}</view>
</view>
<view class="status-tag">{{item.status === 'ACTIVE' ? '有效' : '停用'}}</view>
</view>
<view class="person-summary"><text>余额 {{item.balanceText}}</text><text>订单 {{item.orders.orderCount}}</text><text>消费 {{item.paidText}}</text></view>
</view>
</block>
<block wx:if="{{tab === 'staff'}}">
<view wx:if="{{!loading && !staff.length}}" class="empty">授权范围内暂无员工</view>
<view wx:for="{{staff}}" wx:key="id" class="person-card">
<view class="card-heading">
<view>
<view class="card-title">{{item.displayName}}</view>
<view class="card-meta">{{item.maskedPhone}} · ID {{item.id}}</view>
</view>
<view class="status-tag {{item.status === 'ACTIVE' ? '' : 'disabled'}}">{{item.statusText}}</view>
</view>
<view class="detail-line">{{item.rolesText}}</view>
<view class="detail-line">{{item.storesText}}</view>
<view class="detail-line">最近登录:{{item.lastLoginText}} · {{item.maskedLastIp || '无 IP'}}</view>
<view wx:if="{{item.note}}" class="staff-note">备注:{{item.note}}</view>
</view>
</block>
</view>
</scroll-view>