优化
This commit is contained in:
@@ -251,6 +251,63 @@ export function getEvidence(inboundId, tenantId) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getEvidencePreviewUrl(inboundId, evidenceId, tenantId) {
|
||||
if (!inboundId || !evidenceId) return ''
|
||||
return `/api/platform/v1/inbounds/${encodeURIComponent(inboundId)}/loading/evidence/${encodeURIComponent(evidenceId)}/content/pda?tenantId=${encodeURIComponent(tenantQuery(tenantId))}`
|
||||
}
|
||||
|
||||
export function downloadEvidencePreview(previewUrl) {
|
||||
requireOnline('当前网络不可用,无法查看装柜照片')
|
||||
if (!previewUrl) throw new Error('装柜照片地址尚未同步')
|
||||
const baseUrl = session.apiBase || '/api/platform/v1'
|
||||
let url = String(previewUrl)
|
||||
if (!/^https?:\/\//i.test(url) && /^https?:\/\//i.test(baseUrl)) {
|
||||
const origin = baseUrl.match(/^(https?:\/\/[^/]+)/i)?.[1] || ''
|
||||
url = `${origin}${url.startsWith('/') ? '' : '/'}${url}`
|
||||
}
|
||||
const headers = {}
|
||||
if (session.token) headers.Authorization = `Bearer ${session.token}`
|
||||
if (session.requestId) headers['X-Request-Id'] = session.requestId
|
||||
debugLog('evidence.preview.start', { previewPath: String(previewUrl), resolvedUrl: url })
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.downloadFile({
|
||||
url,
|
||||
header: headers,
|
||||
success(response) {
|
||||
const responseHeaders = response.header || {}
|
||||
const contentType = responseHeaders['Content-Type'] || responseHeaders['content-type'] || ''
|
||||
const requestId = responseHeaders['X-Request-Id'] || responseHeaders['x-request-id'] || ''
|
||||
const traceId = responseHeaders['X-Trace-Id'] || responseHeaders['x-trace-id'] || ''
|
||||
debugLog('evidence.preview.response', { previewPath: String(previewUrl), statusCode: response.statusCode, contentType, hasTempFilePath: Boolean(response.tempFilePath), requestId, traceId })
|
||||
if (response.statusCode < 200 || response.statusCode >= 300 || !response.tempFilePath) {
|
||||
const error = new Error('装柜照片下载失败')
|
||||
error.statusCode = response.statusCode
|
||||
error.requestId = requestId
|
||||
error.traceId = traceId
|
||||
reject(error)
|
||||
return
|
||||
}
|
||||
if (contentType && !/^image\//i.test(contentType) && !/^application\/octet-stream/i.test(contentType)) {
|
||||
const error = new Error('服务端未返回有效照片')
|
||||
error.statusCode = response.statusCode
|
||||
error.contentType = contentType
|
||||
error.requestId = requestId
|
||||
error.traceId = traceId
|
||||
reject(error)
|
||||
return
|
||||
}
|
||||
resolve(response.tempFilePath)
|
||||
},
|
||||
fail(error) {
|
||||
debugLog('evidence.preview.error', { previewPath: String(previewUrl), message: error.errMsg || '' })
|
||||
const next = new Error(error.errMsg || '装柜照片下载失败')
|
||||
next.network = true
|
||||
reject(next)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function upsertEvidence(inboundId, payload, tenantId) {
|
||||
if (!EVIDENCE_TYPES.includes(payload.evidenceType)) throw new Error('不支持的装柜证据类型')
|
||||
return request({
|
||||
|
||||
Reference in New Issue
Block a user