拆分宣传页视图并扩充 Mock 数据,合作订单支持获客员备注名并修复线索图片网格尺寸。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -89,8 +89,14 @@ struct OrderEntity: Decodable, Identifiable, Equatable, Hashable {
|
||||
let showOrderSource: Int
|
||||
let referralOrderNo: String
|
||||
let referralSalerName: String
|
||||
let referralSalerPhotogRemarkName: String
|
||||
let referralOrder: BoundReferralOrder?
|
||||
|
||||
/// 订单卡片展示的获客员名称,优先备注名。
|
||||
var displayReferralSalerName: String {
|
||||
referralSalerPhotogRemarkName.saleUserDisplayName(primaryName: referralSalerName)
|
||||
}
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case photogUid = "photog_uid"
|
||||
case orderNumber = "order_number"
|
||||
@ -123,6 +129,7 @@ struct OrderEntity: Decodable, Identifiable, Equatable, Hashable {
|
||||
case showOrderSource = "show_order_source"
|
||||
case referralOrderNo = "referral_order_no"
|
||||
case referralSalerName = "referral_saler_name"
|
||||
case referralSalerPhotogRemarkName = "photog_remark_name"
|
||||
case referralOrder = "referral_order"
|
||||
}
|
||||
|
||||
@ -160,6 +167,7 @@ struct OrderEntity: Decodable, Identifiable, Equatable, Hashable {
|
||||
showOrderSource = try container.decodeLossyInt(forKey: .showOrderSource) ?? 0
|
||||
referralOrderNo = try container.decodeLossyString(forKey: .referralOrderNo)
|
||||
referralSalerName = try container.decodeLossyString(forKey: .referralSalerName)
|
||||
referralSalerPhotogRemarkName = try container.decodeLossyString(forKey: .referralSalerPhotogRemarkName)
|
||||
referralOrder = try container.decodeIfPresent(BoundReferralOrder.self, forKey: .referralOrder)
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,12 +52,13 @@ extension ReferralOrder {
|
||||
}
|
||||
|
||||
extension BoundReferralOrder {
|
||||
func toOrderSourceSelection(fallbackSalerName: String = "") -> OrderSourceSelection? {
|
||||
func toOrderSourceSelection(fallbackSalerName: String = "", fallbackPhotogRemarkName: String = "") -> OrderSourceSelection? {
|
||||
let referralNo = orderNo.trimmingCharacters(in: .whitespacesAndNewlines)
|
||||
guard !referralNo.isEmpty else { return nil }
|
||||
let personName = salerName.isEmpty
|
||||
? (fallbackSalerName.isEmpty ? "—" : fallbackSalerName)
|
||||
: salerName
|
||||
let fallbackDisplayName = fallbackPhotogRemarkName.saleUserDisplayName(primaryName: fallbackSalerName)
|
||||
let personName = displaySalerName.isEmpty
|
||||
? (fallbackDisplayName.isEmpty ? "—" : fallbackDisplayName)
|
||||
: displaySalerName
|
||||
let remarkText: String
|
||||
if !remark.isEmpty {
|
||||
remarkText = remark
|
||||
@ -85,14 +86,18 @@ extension BoundReferralOrder {
|
||||
extension OrderEntity {
|
||||
func toBoundOrderSourceSelection() -> OrderSourceSelection? {
|
||||
if let referralOrder,
|
||||
let selection = referralOrder.toOrderSourceSelection(fallbackSalerName: referralSalerName) {
|
||||
let selection = referralOrder.toOrderSourceSelection(
|
||||
fallbackSalerName: referralSalerName,
|
||||
fallbackPhotogRemarkName: referralSalerPhotogRemarkName
|
||||
) {
|
||||
return selection
|
||||
}
|
||||
guard !referralOrderNo.isEmpty else { return nil }
|
||||
let personName = displayReferralSalerName.isEmpty ? "—" : displayReferralSalerName
|
||||
return OrderSourceSelection(
|
||||
person: OrderSourcePerson(
|
||||
key: "",
|
||||
name: referralSalerName.isEmpty ? "—" : referralSalerName,
|
||||
name: personName,
|
||||
phone: ""
|
||||
),
|
||||
lead: OrderSourceLead(
|
||||
|
||||
Reference in New Issue
Block a user