import { $fetch } from 'ofetch' import { createError, defineEventHandler, getRouterParam } from 'h3' import { useRuntimeConfig } from '#imports' import { getTenantFromContext } from '../../utils/tenant' /** * 标书项目详情 * GET /api/tender/detail?id=1 (或 /api/tender/{id}) * 代理到 mp-api(mp-java) hjc 标书项目详情,返回扁平化项目对象;不存在则 404。 */ export default defineEventHandler(async (event) => { const config = useRuntimeConfig() const ctx = getTenantFromContext(event, config) const id = getRouterParam(event, 'id') || (getQuery(event) as any)?.id const modulesApiBase = config.public.modulesApiBase as string if (!id) { throw createError({ statusCode: 400, statusMessage: '缺少 id' }) } try { const res = await $fetch(`/hjc/bid-project/${id}`, { baseURL: modulesApiBase, headers: { TenantId: ctx.tenantId } }) as any const data = res && res.data !== undefined ? res.data : res if (!data) { throw createError({ statusCode: 404, statusMessage: '标书项目不存在' }) } return data } catch (error: any) { if (error?.statusCode === 404) { throw error } throw createError({ statusCode: error?.statusCode || error?.response?.status || 502, statusMessage: error?.statusMessage || 'Failed to fetch tender detail' }) } })