拆分宣传页视图并扩充 Mock 数据,合作订单支持获客员备注名并修复线索图片网格尺寸。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user