增加气站合同附件受控上传与预览

This commit is contained in:
czl231
2026-08-18 21:52:00 +08:00
parent 06b6f0ee62
commit 61a61f916b
9 changed files with 262 additions and 9 deletions

View File

@@ -4,9 +4,9 @@
*/
import { getToken } from '@/utils/auth';
const platformApiBaseURL =
const gasApiBaseURL =
import.meta.env.VITE_API_BASE_URL ||
'http://localhost:12426/heqi/platform/v1';
'http://localhost:12426/heqi/gas/v1';
export type ContractAttachmentMetadata = {
has_file: boolean;
@@ -36,7 +36,7 @@ async function upload(file: File): Promise<ContractAttachmentUploadReply> {
const form = new FormData();
form.append('file', file);
const response = await fetch(
`${platformApiBaseURL}/gasorder_contract/attachment/upload`,
`${gasApiBaseURL}/gasorder_contract/attachment/upload`,
{ method: 'POST', headers: authorizationHeaders(), body: form },
);
const payload = (await response.json()) as ApiEnvelope<ContractAttachmentUploadReply>;
@@ -49,7 +49,7 @@ async function upload(file: File): Promise<ContractAttachmentUploadReply> {
/** 使用受签名保护的清理凭证删除尚未绑定的临时文件。 */
async function cleanup(cleanupToken: string): Promise<void> {
const response = await fetch(
`${platformApiBaseURL}/gasorder_contract/attachment/cleanup`,
`${gasApiBaseURL}/gasorder_contract/attachment/cleanup`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json', ...authorizationHeaders() },
@@ -64,7 +64,7 @@ async function cleanup(cleanupToken: string): Promise<void> {
/** 获取鉴权 PDF Blob内部存储 URI 始终不会暴露给浏览器。 */
async function load(identity: string): Promise<Blob> {
const response = await fetch(
`${platformApiBaseURL}/gasorder_contract/${encodeURIComponent(identity)}/attachment`,
`${gasApiBaseURL}/gasorder_contract/${encodeURIComponent(identity)}/attachment`,
{ headers: authorizationHeaders() },
);
if (!response.ok) throw new Error('合同附件不可用,请重新上传');