完善任务流程、键盘适配与页面交互
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user