diff --git a/MyQrCode/Models/HistoryEnums.swift b/MyQrCode/Models/HistoryEnums.swift index 17dc19a..6ca7c07 100644 --- a/MyQrCode/Models/HistoryEnums.swift +++ b/MyQrCode/Models/HistoryEnums.swift @@ -7,7 +7,13 @@ public enum BarcodeType: String, CaseIterable { case ean8 = "EAN-8" case upce = "UPC-E" case code39 = "Code 39" + case code39Checksum = "Code 39 (Checksum)" + case code39FullASCII = "Code 39 (Full ASCII)" + case code39FullASCIIChecksum = "Code 39 (Full ASCII + Checksum)" + case code93 = "Code 93" + case code93i = "Code 93i" case code128 = "Code 128" + case itf14 = "ITF-14" case pdf417 = "PDF417" var displayName: String { @@ -18,8 +24,12 @@ public enum BarcodeType: String, CaseIterable { switch self { case .ean13, .ean8, .upce: return "barcode" - case .code39, .code128: + case .code39, .code39Checksum, .code39FullASCII, .code39FullASCIIChecksum: return "barcode.viewfinder" + case .code93, .code93i, .code128: + return "barcode.viewfinder" + case .itf14: + return "barcode" case .pdf417: return "qrcode.viewfinder" } diff --git a/MyQrCode/ScannerView/ScannerView.swift b/MyQrCode/ScannerView/ScannerView.swift index 2997980..9a085c5 100644 --- a/MyQrCode/ScannerView/ScannerView.swift +++ b/MyQrCode/ScannerView/ScannerView.swift @@ -237,19 +237,30 @@ struct ScannerView: View { historyItem.id = UUID() historyItem.content = detectedCode.content - historyItem.dataType = DataType.qrcode.rawValue historyItem.dataSource = DataSource.scanned.rawValue historyItem.createdAt = Date() historyItem.isFavorite = false // 根据条码类型设置相应的类型字段 - if detectedCode.type.lowercased().contains("qr") || detectedCode.type.lowercased().contains("二维码") { + let isQRCode = detectedCode.type.lowercased().contains("qr") || + detectedCode.type.lowercased().contains("二维码") || + detectedCode.type.lowercased().contains("data matrix") || + detectedCode.type.lowercased().contains("aztec") + + if isQRCode { + // 二维码类型 + historyItem.dataType = DataType.qrcode.rawValue // 尝试解析二维码类型 let parsedData = QRCodeParser.parseQRCode(detectedCode.content) historyItem.qrCodeType = parsedData.type.rawValue + historyItem.barcodeType = nil // 清空条形码类型 + logInfo("📱 创建二维码历史记录,类型: \(detectedCode.type)", className: "ScannerView") } else { // 条形码类型 + historyItem.dataType = DataType.barcode.rawValue historyItem.barcodeType = detectedCode.type + historyItem.qrCodeType = nil // 清空二维码类型 + logInfo("📊 创建条形码历史记录,类型: \(detectedCode.type)", className: "ScannerView") } // 保存到 Core Data