Update BarcodeType enum in HistoryEnums.swift to include additional barcode formats; enhance ScannerView logic to differentiate between QR codes and barcodes, improving data handling and user feedback during scanning.

main
v504 2 months ago
parent 1fdc94e103
commit f23fb833f9

@ -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"
}

@ -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

Loading…
Cancel
Save