// // OrderListHeaderView.swift // suixinkan // // Created by Codex on 2026/6/29. // import SwiftUI /// 订单列表筛选头部,展示状态与时间筛选;手机号搜索由页面级 `.searchable` 提供。 struct OrderListHeaderView: View { let filterTitle: String let timeFilterTitle: String let statusFilters: [OrderStatusFilter] let selectedStatus: Int let onStatusSelected: (Int) -> Void let onTimeFilterTap: () -> Void var body: some View { HStack(spacing: 8) { Menu { ForEach(statusFilters) { filter in Button(filter.title) { onStatusSelected(filter.id) } } } label: { OrderListFilterPill(title: filterTitle, showsChevron: true) } Button(action: onTimeFilterTap) { OrderListFilterPill(title: timeFilterTitle, showsCalendar: true) } .buttonStyle(.plain) } .padding(16) .background(.white) } } /// 订单列表筛选 pill 按钮样式。 private struct OrderListFilterPill: View { let title: String var showsChevron = false var showsCalendar = false var body: some View { HStack(spacing: 4) { Text(title) .font(.system(size: 14)) .foregroundStyle(AppDesign.orderLabelColor) .lineLimit(1) .minimumScaleFactor(0.75) Spacer(minLength: 4) if showsChevron { Image(systemName: "chevron.down") .font(.system(size: 12, weight: .semibold)) .foregroundStyle(AppDesign.orderLabelColor) } if showsCalendar { Image(systemName: "calendar") .font(.system(size: 15)) .foregroundStyle(AppDesign.orderLabelColor) } } .padding(.horizontal, 12) .frame(maxWidth: .infinity) .frame(height: 35) .background(AppDesign.orderInputBackground, in: RoundedRectangle(cornerRadius: 4)) } }