143 lines
6.4 KiB
Plaintext
143 lines
6.4 KiB
Plaintext
<!-- 管理员主界面 -->
|
||
<view class="admin-container">
|
||
<!-- 顶部导航栏 -->
|
||
<view class="top-nav">
|
||
<view class="header-left">
|
||
<view class="back-icon" bindtap="goBack">
|
||
<text class="back-arrow">‹</text>
|
||
</view>
|
||
<text class="nav-title">配送管理系统</text>
|
||
</view>
|
||
<view class="user-info" wx:if="{{userInfo}}">
|
||
<image class="user-avatar" src="/images/user-avatar.png" mode="aspectFill"></image>
|
||
<text class="user-name">{{userInfo.name || '管理员'}}</text>
|
||
<text class="admin-badge" wx:if="{{userInfo.role === 'ADMIN'}}">管理员</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 主内容区域 -->
|
||
<view class="main-content">
|
||
<!-- 左侧地图区域 -->
|
||
<view class="map-section">
|
||
<map class="map" id="map" longitude="{{mapCenter.longitude}}" latitude="{{mapCenter.latitude}}" scale="14"
|
||
markers="{{markers}}" polyline="{{polyline}}" show-location="true" bindtap="onMapTap">
|
||
</map>
|
||
</view>
|
||
|
||
<!-- 中间订单管理区域 -->
|
||
<view class="order-section">
|
||
<view class="section-header">
|
||
<text class="section-title">订单管理</text>
|
||
<button class="add-btn" bindtap="showAddOrderModal">新增订单</button>
|
||
</view>
|
||
|
||
<view class="order-tabs">
|
||
<text class="tab {{activeTab === 'all' ? 'active' : ''}}" bindtap="switchTab" data-tab="all">全部</text>
|
||
<text class="tab {{activeTab === 'pending' ? 'active' : ''}}" bindtap="switchTab" data-tab="pending">未分配</text>
|
||
<text class="tab {{activeTab === 'assigned' ? 'active' : ''}}" bindtap="switchTab" data-tab="assigned">已分配</text>
|
||
<text class="tab {{activeTab === 'delivered' ? 'active' : ''}}" bindtap="switchTab" data-tab="delivered">已完成</text>
|
||
</view>
|
||
|
||
<scroll-view class="order-list" scroll-y>
|
||
<view wx:for="{{filteredOrders}}" wx:key="id" class="order-item" bindtap="handleOrderTap" data-id="{{item.id}}">
|
||
<view class="order-header">
|
||
<text class="order-id">订单#{{item.id}}</text>
|
||
<text class="order-status">{{getStatusText(item.status)}}</text>
|
||
</view>
|
||
<view class="order-info">
|
||
<text class="order-location">{{item.startPoint.name}} → {{item.endPoint.name}}</text>
|
||
<text class="order-goods">{{item.goodsType}} {{item.goodsWeight}}kg</text>
|
||
<text class="order-time">{{formatTime(item.createTime)}}</text>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
|
||
<!-- 右侧员工管理区域 -->
|
||
<view class="staff-section">
|
||
<view class="section-header">
|
||
<text class="section-title">员工管理</text>
|
||
<button class="manage-btn" bindtap="goToEmployeeManagement">管理员工</button>
|
||
</view>
|
||
|
||
<scroll-view class="staff-list" scroll-y>
|
||
<view wx:for="{{deliveryPersons}}" wx:key="id" class="staff-item" bindtap="handleStaffTap" data-id="{{item.id}}">
|
||
<image class="staff-avatar" src="{{item.avatarUrl}}" mode="aspectFill"></image>
|
||
<view class="staff-info">
|
||
<text class="staff-name">{{item.name}}</text>
|
||
<text class="staff-phone">{{item.phone}}</text>
|
||
<text class="staff-status">{{getStatusText(item.status)}}</text>
|
||
<text class="order-count">当前订单: {{item.currentOrders.length}}</text>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 底部页签 -->
|
||
<view class="bottom-tabs">
|
||
<view class="tab-item {{currentTab === 'main' ? 'active' : ''}}" bindtap="switchMainTab" data-tab="main">
|
||
<text class="tab-icon">📍</text>
|
||
<text class="tab-text">管理中心</text>
|
||
</view>
|
||
<view class="tab-item {{currentTab === 'orders' ? 'active' : ''}}" bindtap="switchMainTab" data-tab="orders">
|
||
<text class="tab-icon">📋</text>
|
||
<text class="tab-text">订单详情</text>
|
||
</view>
|
||
<view class="tab-item {{currentTab === 'staff' ? 'active' : ''}}" bindtap="switchMainTab" data-tab="staff">
|
||
<text class="tab-icon">👥</text>
|
||
<text class="tab-text">员工管理</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 分配订单弹窗 -->
|
||
<view class="modal-mask" wx:if="{{showAssignModal}}" bindtap="hideAssignModal"></view>
|
||
<view class="modal-content" wx:if="{{showAssignModal}}">
|
||
<view class="modal-header">
|
||
<text class="modal-title">分配订单</text>
|
||
<text class="modal-close" bindtap="hideAssignModal">✕</text>
|
||
</view>
|
||
<view class="modal-body">
|
||
<text class="modal-text">请选择配送人员:</text>
|
||
<view class="staff-select-list">
|
||
<view wx:for="{{availableStaff}}" wx:key="id" class="staff-select-item" bindtap="assignOrder" data-id="{{item.id}}">
|
||
<image class="staff-select-avatar" src="{{item.avatarUrl}}" mode="aspectFill"></image>
|
||
<text class="staff-select-name">{{item.name}}</text>
|
||
<text class="staff-select-status">{{getStatusText(item.status)}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 新增订单弹窗 -->
|
||
<view class="modal-mask" wx:if="{{showAddModal}}" bindtap="hideAddModal"></view>
|
||
<view class="modal-content large" wx:if="{{showAddModal}}">
|
||
<view class="modal-header">
|
||
<text class="modal-title">新增订单</text>
|
||
<text class="modal-close" bindtap="hideAddModal">✕</text>
|
||
</view>
|
||
<view class="modal-body">
|
||
<view class="form-item">
|
||
<text class="form-label">选择仓库:</text>
|
||
<picker bindchange="onWarehouseChange" value="{{warehouseIndex}}" range="{{warehouses}}" range-key="name">
|
||
<view class="form-picker">
|
||
{{warehouses[warehouseIndex] ? warehouses[warehouseIndex].name : '请选择仓库'}}
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
<view class="form-item">
|
||
<text class="form-label">终点名称:</text>
|
||
<input class="form-input" bindinput="onEndNameInput" placeholder="请输入终点名称"/>
|
||
</view>
|
||
<view class="form-item">
|
||
<text class="form-label">货物类型:</text>
|
||
<input class="form-input" bindinput="onGoodsTypeInput" placeholder="请输入货物类型"/>
|
||
</view>
|
||
<view class="form-item">
|
||
<text class="form-label">货物重量(kg):</text>
|
||
<input class="form-input" bindinput="onGoodsWeightInput" type="number" placeholder="请输入货物重量"/>
|
||
</view>
|
||
<button class="submit-btn" bindtap="createOrder">创建订单</button>
|
||
</view>
|
||
</view>
|
||
</view> |