65 lines
3.3 KiB
Plaintext
65 lines
3.3 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 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-title">近期订单</view>
|
|
<view wx:if="{{!loading && visibleOrders.length === 0}}" class="empty">当前门店暂无订单</view>
|
|
<view wx:for="{{visibleOrders}}" wx:key="id" class="order-card" data-order-id="{{item.id}}" bindtap="openOrder">
|
|
<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>
|
|
</view>
|
|
</scroll-view>
|