完善任务流程、键盘适配与页面交互

This commit is contained in:
2026-07-10 15:56:15 +08:00
parent f88a85a807
commit ab5220e460
189 changed files with 16779 additions and 1038 deletions

View File

@ -1168,9 +1168,27 @@ final class WildReportRiskMapViewModel {
)
}
/// 线
func shareSelectedClue() {
_ = selectedClue
/// 线
func shareSelectedClue(api: any WildPhotographerReportServing) async -> WeChatMiniProgramSharePayload? {
guard let marker = selectedMarker,
marker.kind == .wildPhotographer || marker.kind == .processingClue,
let reportID = reportID(fromMarkerID: marker.id)
else {
errorMessage = "请选择可分享的举报线索"
notifyStateChange()
return nil
}
do {
let shareData = try await api.reportShare(id: String(reportID))
return shareData.payload
} catch is CancellationError {
return nil
} catch {
errorMessage = error.localizedDescription
notifyStateChange()
return nil
}
}
///
@ -1371,6 +1389,12 @@ final class WildReportRiskMapViewModel {
)
}
private func reportID(fromMarkerID markerID: String) -> Int? {
let parts = markerID.split(separator: "-", maxSplits: 1).map(String.init)
guard parts.count == 2, let id = Int(parts[1]), id >= 1 else { return nil }
return id
}
private func mergeDetail(_ detail: WildReportMarkerDetailResponse, intoMarkerID markerID: String) {
guard let index = markers.firstIndex(where: { $0.id == markerID }),
case .activeClue(let oldClue) = markers[index].detail