Files
wxapp_escort_admin/pages/order/index.wxml
2026-06-14 11:46:10 +08:00

154 lines
5.7 KiB
Plaintext

<!--pages/order/index.wxml-->
<view class="page">
<!-- 顶部标题 -->
<view class="header">
<view class="header-content">
<text class="header-title">订单管理</text>
<text class="header-sub">共 {{stats.total}} 个订单</text>
</view>
</view>
<!-- 状态筛选 -->
<view class="filter-bar">
<scroll-view class="filter-scroll" scroll-x enhanced show-scrollbar="{{false}}">
<view class="filter-list">
<view
class="filter-tag {{currentStatus === item.value ? 'active' : ''}}"
wx:for="{{statusFilters}}"
wx:key="value"
data-status="{{item.value}}"
bindtap="onStatusChange"
>
<text>{{item.label}}</text>
<text class="filter-count" wx:if="{{item.count > 0}}">{{item.count}}</text>
</view>
</view>
</scroll-view>
</view>
<!-- 订单列表 -->
<view class="list-area">
<scroll-view
scroll-y
class="list-scroll"
refresher-enabled
refresher-triggered="{{isRefreshing}}"
bindrefresherrefresh="onPullDownRefresh"
bindscrolltolower="onReachBottom"
>
<!-- 加载中 -->
<view class="loading-box" wx:if="{{isLoading && orderList.length === 0}}">
<t-loading theme="spinner" size="40rpx" text="加载中..." t-class-text="loading-text" />
</view>
<!-- 空状态 -->
<view class="empty-box" wx:elif="{{!isLoading && orderList.length === 0}}">
<t-empty icon="file" description="暂无订单" t-class-description="empty-text">
<view slot="action">
<view class="empty-btn" bindtap="loadOrderList">刷新</view>
</view>
</t-empty>
</view>
<!-- 卡片列表 -->
<view class="card-list" wx:else>
<view
class="order-card"
wx:for="{{orderList}}"
wx:key="_id"
data-id="{{item._id}}"
bindtap="onOrderDetail"
>
<!-- 卡片头部 -->
<view class="card-top">
<view class="status-badge status-{{item.status}}">
<text>{{item.statusText}}</text>
</view>
</view>
<!-- 患者信息 -->
<view class="card-main">
<view class="patient-line">
<view class="patient-avatar">
<text class="avatar-char">{{item.patientFirstChar}}</text>
</view>
<view class="patient-meta">
<view class="patient-name-row">
<text class="patient-name">{{item.patient.name || '未知患者'}}</text>
<text class="patient-sex {{item.patient.sex}}">{{item.patient.sex === 'male' ? '男' : item.patient.sex === 'female' ? '女' : ''}}</text>
<text class="patient-age" wx:if="{{item.patient.age}}">{{item.patient.age}}岁</text>
</view>
<text class="patient-phone">{{item.patient.mobile || '暂无电话'}}</text>
</view>
</view>
<view class="divider"></view>
<!-- 就诊信息 -->
<view class="info-line">
<text class="line-label">医院</text>
<text class="line-value">{{item.hospital.name || '未知医院'}}{{item.hospital.department ? ' · ' + item.hospital.department : ''}}</text>
</view>
<view class="info-line" wx:if="{{item.escort.serviceName}}">
<text class="line-label">服务</text>
<text class="line-value">{{item.escort.serviceName}}</text>
</view>
<view class="info-line">
<text class="line-label">时间</text>
<text class="line-value">{{item.schedule.dateText}} {{item.schedule.startTime || ''}}</text>
</view>
<view class="info-line" wx:if="{{item.attendant.name}}">
<text class="line-label">陪诊</text>
<text class="line-value">{{item.attendant.name}}</text>
</view>
</view>
<!-- 卡片底部 -->
<view class="card-bottom">
<view class="fee-area">
<text class="fee-label">费用</text>
<text class="fee-amount">¥{{item.payment.totalFee || 0}}</text>
</view>
<view class="action-area">
<view
class="action-btn btn-ghost"
wx:if="{{item.status === 'pending'}}"
data-id="{{item._id}}"
data-action="cancel"
catchtap="onOrderAction"
>取消</view>
<view
class="action-btn btn-solid"
wx:if="{{item.status === 'pending'}}"
data-id="{{item._id}}"
data-action="confirm"
catchtap="onOrderAction"
>确认</view>
<view
class="action-btn btn-solid"
wx:if="{{item.status === 'confirmed'}}"
data-id="{{item._id}}"
data-action="start"
catchtap="onOrderAction"
>开始服务</view>
<view
class="action-btn btn-solid"
wx:if="{{item.status === 'in_progress'}}"
data-id="{{item._id}}"
data-action="complete"
catchtap="onOrderAction"
>完成</view>
</view>
</view>
</view>
<!-- 加载更多 -->
<view class="load-more">
<t-loading wx:if="{{isLoadingMore}}" theme="spinner" size="32rpx" text="加载中..." t-class-text="loading-text" />
<text class="no-more" wx:elif="{{!hasMore}}">没有更多了</text>
</view>
</view>
</scroll-view>
</view>
</view>