Files
suixinkan_ios_new/suixinkan/Features/ScenicPromotion/Views/ScenicPromotionSettingsMaterialPointCard.swift

53 lines
1.7 KiB
Swift

//
// ScenicPromotionSettingsMaterialPointCard.swift
// suixinkan
//
// Created by Codex on 2026/7/2.
//
import SwiftUI
///
struct ScenicPromotionSettingsMaterialPointCard: View {
@ObservedObject var viewModel: ScenicPromotionSettingsViewModel
var body: some View {
ScenicPromotionSettingsCard(
title: "素材所属打卡点",
subtitle: "视频和图片上传前必须先选择,和上方排队绑定点分开管理",
icon: "mappin.and.ellipse",
tint: Color(hex: 0x22A06B)
) {
Menu {
ForEach(viewModel.materialPoints) { point in
Button {
viewModel.selectMaterialPoint(point)
} label: {
Label(
"\(point.name) · \(point.areaName)",
systemImage: viewModel.selectedMaterialPointID == point.id ? "checkmark.circle.fill" : "circle"
)
}
}
} label: {
ScenicPromotionSettingsSelectionField(
title: viewModel.selectedMaterialPointName,
subtitle: viewModel.selectedMaterialPoint == nil ? "未选择" : "已展示当前点位素材",
icon: "chevron.down"
)
}
.buttonStyle(.plain)
}
}
}
#if DEBUG
#Preview("素材点卡片") {
ScenicPromotionSettingsMaterialPointCard(
viewModel: ScenicPromotionPreviewSupport.settingsViewModel()
)
.padding()
.background(AppDesign.background)
}
#endif