Files
2025-10-19 23:38:54 +08:00

143 lines
6.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 管理员主界面 -->
<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>