拆分宣传页视图并扩充 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

@ -16,6 +16,9 @@ struct CooperationAcquirerView: View {
@Environment(\.openURL) private var openURL
@StateObject private var viewModel = CooperationAcquirerViewModel()
@State private var showScanner = false
@State private var showRemarkAlert = false
@State private var remarkEditingAcquirer: CooperativeSaler?
@State private var remarkDraft = ""
let onBind: (Int) -> Void
var body: some View {
@ -31,6 +34,10 @@ struct CooperationAcquirerView: View {
ForEach(viewModel.acquirers, id: \.displayId) { acquirer in
CooperativeSalerCard(acquirer: acquirer) { phone in
dialPhone(phone)
} onEditRemark: {
remarkEditingAcquirer = acquirer
remarkDraft = acquirer.photogRemarkName
showRemarkAlert = true
}
}
}
@ -73,6 +80,44 @@ struct CooperationAcquirerView: View {
.task {
await reload(showLoading: true)
}
.alert("修改备注", isPresented: $showRemarkAlert) {
TextField("备注名", text: $remarkDraft)
Button("取消", role: .cancel) {
remarkEditingAcquirer = nil
}
Button("保存") {
// alert dismiss state
guard let acquirer = remarkEditingAcquirer else { return }
let saleUserId = acquirer.saleUserId
let draft = remarkDraft
showRemarkAlert = false
remarkEditingAcquirer = nil
Task {
await saveRemark(saleUserId: saleUserId, draft: draft)
}
}
} message: {
if let acquirer = remarkEditingAcquirer {
Text("\(acquirer.salerName.cooperationNonEmptyOrDefault(acquirer.name)) 设置备注名")
}
}
}
///
private func saveRemark(saleUserId: Int, draft: String) async {
guard saleUserId > 0 else { return }
await globalLoading.withOptionalLoading(true) {
do {
try await viewModel.updateRemark(
saleUserId: saleUserId,
remark: draft,
api: cooperationOrderAPI
)
toastCenter.show("备注已保存")
} catch {
toastCenter.show(error.localizedDescription)
}
}
}
private func reload(showLoading: Bool) async {