fix: 新增接口入参
This commit is contained in:
@@ -32,6 +32,7 @@ export interface InstitutionPayload {
|
||||
level?: string
|
||||
province?: string
|
||||
city?: string
|
||||
banner_url?: string
|
||||
}
|
||||
|
||||
export interface CreateInstitutionPayload extends InstitutionPayload {
|
||||
@@ -53,6 +54,18 @@ export interface DisableInstitutionParams {
|
||||
id: number
|
||||
}
|
||||
|
||||
export interface UploadInstitutionBannerParams {
|
||||
token: string
|
||||
id: number
|
||||
file: File
|
||||
}
|
||||
|
||||
export interface UploadInstitutionBannerResult {
|
||||
message: string
|
||||
bannerUrl: string
|
||||
raw: unknown
|
||||
}
|
||||
|
||||
export interface ImportInstitutionsParams {
|
||||
token: string
|
||||
file: File
|
||||
@@ -102,6 +115,25 @@ function getString(record: Record<string, unknown>, key: string): string {
|
||||
return ''
|
||||
}
|
||||
|
||||
function getBannerUrlFromResponse(data: unknown): string {
|
||||
if (!data || typeof data !== 'object') {
|
||||
return ''
|
||||
}
|
||||
|
||||
const record = data as Record<string, unknown>
|
||||
const bannerUrl = record.banner_url || record.bannerUrl
|
||||
if (typeof bannerUrl === 'string') {
|
||||
return bannerUrl
|
||||
}
|
||||
|
||||
const nested = record.data || record.result || record.payload
|
||||
if (nested && typeof nested === 'object') {
|
||||
return getBannerUrlFromResponse(nested)
|
||||
}
|
||||
|
||||
return ''
|
||||
}
|
||||
|
||||
function normalizeInstitution(item: unknown): InstitutionListItem {
|
||||
const record = item && typeof item === 'object' ? (item as Record<string, unknown>) : {}
|
||||
const id = record.id
|
||||
@@ -291,6 +323,27 @@ export async function disableInstitution(params: DisableInstitutionParams): Prom
|
||||
return parseMutationResponse(response, '停用机构失败')
|
||||
}
|
||||
|
||||
export async function uploadInstitutionBanner(params: UploadInstitutionBannerParams): Promise<UploadInstitutionBannerResult> {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file)
|
||||
|
||||
const response = await fetch(`/server/api/cms/institutions/${params.id}/banner/`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
Authorization: createAuthorization(params.token)
|
||||
},
|
||||
body: formData
|
||||
})
|
||||
const data = await parseMutationResponse(response, '上传机构背景图失败')
|
||||
|
||||
return {
|
||||
message: getMessageFromResponse(data),
|
||||
bannerUrl: getBannerUrlFromResponse(data),
|
||||
raw: data
|
||||
}
|
||||
}
|
||||
|
||||
export async function importInstitutions(params: ImportInstitutionsParams): Promise<unknown> {
|
||||
const formData = new FormData()
|
||||
formData.append('file', params.file)
|
||||
|
||||
Reference in New Issue
Block a user