Files
qipai/miniapp/pages/manager/dashboard.wxml
T
2026-08-10 10:52:06 +08:00

100 lines
4.8 KiB
Plaintext

<scroll-view class="scrollarea" scroll-y type="list">
<view class="container manager-dashboard">
<view class="manager-header">
<view>
<view class="title">门店运营</view>
<view class="subtitle">{{selectedStoreName || '请选择授权门店'}}</view>
</view>
<view class="permission-tag">{{canWrite ? '可操作' : '只读'}}</view>
</view>
<view wx:if="{{errorMessage}}" class="error">{{errorMessage}}</view>
<view wx:if="{{loading}}" class="loading">正在加载运营数据...</view>
<scroll-view wx:if="{{stores.length}}" class="store-tabs" scroll-x enhanced show-scrollbar="false">
<view class="store-tabs-inner">
<button
wx:for="{{stores}}"
wx:key="id"
size="mini"
class="{{item.id === selectedStoreId ? 'store-tab active' : 'store-tab'}}"
data-store-id="{{item.id}}"
bindtap="selectStore"
>{{item.name}}</button>
</view>
</scroll-view>
<view wx:if="{{canReadUsers}}" class="management-tools">
<view>
<view class="card-title">会员与员工</view>
<view class="card-meta">检索会员资产概况与授权范围内员工</view>
</view>
<button size="mini" bindtap="openPeople">进入</button>
</view>
<view wx:if="{{canReadOperations && selectedStoreId}}" class="management-tools">
<view>
<view class="card-title">保洁与设备</view>
<view class="card-meta">任务验收、设备状态与临时开门/电控</view>
</view>
<button size="mini" bindtap="openOperations">进入</button>
</view>
<view class="summary-grid">
<view class="summary-card"><strong>{{summary.roomTotal}}</strong><text>房间</text></view>
<view class="summary-card success"><strong>{{summary.available}}</strong><text>空闲</text></view>
<view class="summary-card primary"><strong>{{summary.inUse}}</strong><text>占用</text></view>
<view class="summary-card warning"><strong>{{summary.attention}}</strong><text>待处理</text></view>
<view class="summary-card"><strong>{{summary.activeOrders}}</strong><text>活跃订单</text></view>
</view>
<view class="section-title">实时房态</view>
<view wx:if="{{!loading && rooms.length === 0}}" class="empty">当前门店暂无房间</view>
<view wx:for="{{rooms}}" wx:key="id" class="room-card {{item.configurationStatus === 'DISABLED' ? 'disabled' : ''}}">
<view class="card-main">
<view>
<view class="card-title">{{item.name}} · {{item.roomNo}}</view>
<view class="card-meta">{{item.categoryName}} / {{item.capacity}} 人 / {{item.priceText}} 起</view>
</view>
<view class="status-pill status-{{item.operationalStatus}}">{{item.configurationStatus === 'DISABLED' ? '已停用' : item.statusText}}</view>
</view>
<view wx:if="{{canWrite}}" class="card-actions">
<button size="mini" loading="{{busyRoomId === item.id}}" data-room-id="{{item.id}}" bindtap="changeRoomStatus">调整房态</button>
<button size="mini" data-room-id="{{item.id}}" data-status="{{item.configurationStatus}}" bindtap="toggleRoomConfiguration">{{item.configurationStatus === 'ENABLED' ? '停用' : '启用'}}</button>
</view>
</view>
<view class="section-heading">
<view class="section-title">近期订单</view>
<button wx:if="{{canWrite}}" size="mini" type="primary" bindtap="createOrder">代下单</button>
</view>
<scroll-view class="order-filters" scroll-x enhanced show-scrollbar="false">
<view class="order-filters-inner">
<button
wx:for="{{orderFilters}}"
wx:key="value"
size="mini"
class="{{item.value === selectedOrderStatus ? 'order-filter active' : 'order-filter'}}"
data-status="{{item.value}}"
bindtap="selectOrderFilter"
>{{item.label}}</button>
</view>
</scroll-view>
<view wx:if="{{!loading && visibleOrders.length === 0}}" class="empty">当前门店暂无订单</view>
<view wx:for="{{visibleOrders}}" wx:key="id" class="order-card">
<view class="card-main">
<view>
<view class="card-title">{{item.roomName}} · {{item.roomNo}}</view>
<view class="card-meta">{{item.orderNo}}</view>
</view>
<view class="status-pill">{{item.statusText}}</view>
</view>
<view class="order-line"><text>{{item.timeText}}</text><strong>{{item.amountText}}</strong></view>
<view wx:if="{{canWrite}}" class="card-actions">
<button size="mini" loading="{{busyOrderId === item.id}}" data-order-id="{{item.id}}" data-status="{{item.status}}" bindtap="manageOrder">订单处置</button>
<button size="mini" data-order-id="{{item.id}}" bindtap="addOrderNote">添加备注</button>
</view>
</view>
</view>
</scroll-view>