拆分宣传页视图并扩充 Mock 数据,合作订单支持获客员备注名并修复线索图片网格尺寸。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-02 17:43:04 +08:00
parent 1b1e93b9ca
commit 328c4321f4
41 changed files with 2529 additions and 1436 deletions

View File

@ -0,0 +1,65 @@
//
// ScenicPromotionFullStateView.swift
// suixinkan
//
// Created by Codex on 2026/7/2.
//
import SwiftUI
/// Empty / Error
struct ScenicPromotionFullStateView: View {
let icon: String
let title: String
let message: String
let buttonTitle: String
let action: () -> Void
var body: some View {
VStack(spacing: 18) {
Spacer()
Image(systemName: icon)
.font(.system(size: 48, weight: .semibold))
.foregroundStyle(Color(hex: 0x0B79FF))
.frame(width: 92, height: 92)
.background(.white.opacity(0.75), in: RoundedRectangle(cornerRadius: 24))
VStack(spacing: 8) {
Text(title)
.font(.system(size: 22, weight: .bold))
.foregroundStyle(Color(hex: 0x143D78))
Text(message)
.font(.system(size: 14, weight: .medium))
.foregroundStyle(Color(hex: 0x5F789E))
.multilineTextAlignment(.center)
}
Button(action: action) {
Text(buttonTitle)
.font(.system(size: 16, weight: .bold))
.foregroundStyle(.white)
.frame(width: 150, height: 46)
.background(Color(hex: 0x0B79FF), in: Capsule())
}
.buttonStyle(.plain)
Spacer()
}
.padding(28)
}
}
#if DEBUG
#Preview("空数据") {
ZStack {
ScenicPromotionSkyBackground().ignoresSafeArea()
ScenicPromotionFullStateView(
icon: "doc.text.image",
title: "暂无宣传页数据",
message: "当前景区还没有配置排队导览宣传内容",
buttonTitle: "重新加载"
) {}
}
}
#endif