拆分宣传页视图并扩充 Mock 数据,合作订单支持获客员备注名并修复线索图片网格尺寸。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -0,0 +1,69 @@
|
||||
//
|
||||
// ScenicPromotionSettingsMaterialRowView.swift
|
||||
// suixinkan
|
||||
//
|
||||
// Created by Codex on 2026/7/2.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
/// 设置页已上传素材行,支持预览与删除。
|
||||
struct ScenicPromotionSettingsMaterialRowView: View {
|
||||
let material: ScenicPromotionManagedMaterial
|
||||
let onPreview: () -> Void
|
||||
let onDelete: () -> Void
|
||||
|
||||
var body: some View {
|
||||
HStack(spacing: 10) {
|
||||
Button(action: onPreview) {
|
||||
HStack(spacing: 12) {
|
||||
ScenicPromotionSettingsMaterialThumbnail(material: material)
|
||||
|
||||
VStack(alignment: .leading, spacing: 5) {
|
||||
Text(material.title)
|
||||
.font(.system(size: 15, weight: .bold))
|
||||
.foregroundStyle(AppDesign.textPrimary)
|
||||
.lineLimit(1)
|
||||
Text(material.subtitle)
|
||||
.font(.system(size: 12, weight: .medium))
|
||||
.foregroundStyle(AppDesign.textSecondary)
|
||||
.lineLimit(1)
|
||||
Text(material.createdAt)
|
||||
.font(.system(size: 11, weight: .medium))
|
||||
.foregroundStyle(Color(hex: 0x8A95A6))
|
||||
}
|
||||
|
||||
Spacer(minLength: 0)
|
||||
|
||||
Image(systemName: "chevron.right")
|
||||
.font(.system(size: 13, weight: .bold))
|
||||
.foregroundStyle(Color(hex: 0x9AA5B5))
|
||||
}
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
|
||||
Button(action: onDelete) {
|
||||
Image(systemName: "trash")
|
||||
.font(.system(size: 16, weight: .semibold))
|
||||
.foregroundStyle(AppDesign.danger)
|
||||
.frame(width: 36, height: 36)
|
||||
.background(Color(hex: 0xFFF1F1), in: Circle())
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
}
|
||||
.padding(10)
|
||||
.background(Color(hex: 0xF8FAFD), in: RoundedRectangle(cornerRadius: 14))
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
#Preview("素材行") {
|
||||
ScenicPromotionSettingsMaterialRowView(
|
||||
material: ScenicPromotionPreviewSupport.sampleManagedMaterial,
|
||||
onPreview: {},
|
||||
onDelete: {}
|
||||
)
|
||||
.padding()
|
||||
.background(AppDesign.background)
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user