feat(font): 新增字体设置并统一医护端与患者端文书字体
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import { request } from '@/utils/request'
|
||||
import { unwrapApiResponse, unwrapNullableApiResponse, isSuccessCode } from '@/utils/api-response'
|
||||
import type { ApiResponse } from '@/types/common'
|
||||
import type { DocumentFont } from '../../../../packages/document-fonts'
|
||||
export type { DocumentFont } from '../../../../packages/document-fonts'
|
||||
export interface FontRecord extends DocumentFont {
|
||||
enabled: boolean
|
||||
createdAt: string
|
||||
}
|
||||
export interface FontNodeCheck {
|
||||
fontId: string
|
||||
node: string
|
||||
available: boolean
|
||||
message: string
|
||||
checkedAt: string
|
||||
}
|
||||
export interface FontSettings {
|
||||
nodes: FontNodeCheck[]
|
||||
defaultFontId: string | null
|
||||
fonts: FontRecord[]
|
||||
legacyFileReadable: boolean
|
||||
}
|
||||
export interface FontFaceInfo {
|
||||
index: number
|
||||
name: string
|
||||
style: string
|
||||
}
|
||||
export interface FontCheck {
|
||||
available: boolean
|
||||
message: string
|
||||
node: string
|
||||
checkedAt: string
|
||||
}
|
||||
const base = '/v1/document-fonts'
|
||||
const longRequest = { timeout: 90000 }
|
||||
export const getDocumentFontSettings = () =>
|
||||
request.get<ApiResponse<FontSettings>>(base).then(unwrapApiResponse)
|
||||
export const getDefaultDocumentFont = () =>
|
||||
request.get<ApiResponse<DocumentFont | null>>(`${base}/current`).then(unwrapNullableApiResponse)
|
||||
export const inspectDocumentFont = (file: File) => {
|
||||
const form = new FormData()
|
||||
form.append('file', file)
|
||||
return request
|
||||
.post<ApiResponse<FontFaceInfo[]>>(`${base}/inspect`, form, longRequest)
|
||||
.then(unwrapApiResponse)
|
||||
}
|
||||
export const uploadDocumentFont = (form: FormData) =>
|
||||
request.post<ApiResponse<FontRecord>>(base, form, longRequest).then(unwrapApiResponse)
|
||||
export const checkDocumentFont = (id: string) =>
|
||||
request
|
||||
.post<ApiResponse<FontCheck>>(`${base}/${id}/check`, undefined, longRequest)
|
||||
.then(unwrapApiResponse)
|
||||
export const previewDocumentFont = (id: string) =>
|
||||
request.get<Blob>(`${base}/${id}/preview`, { ...longRequest, responseType: 'blob' })
|
||||
function requireSuccess(response: ApiResponse<unknown>) {
|
||||
if (!isSuccessCode(response.code)) throw new Error(response.message || '设置失败')
|
||||
}
|
||||
export const activateDocumentFont = (id: string) =>
|
||||
request
|
||||
.put<ApiResponse<unknown>>(`${base}/${id}/default`, undefined, longRequest)
|
||||
.then(requireSuccess)
|
||||
export const setDocumentFontEnabled = (id: string, enabled: boolean) =>
|
||||
request.put<ApiResponse<unknown>>(`${base}/${id}/status`, { enabled }).then(requireSuccess)
|
||||
Reference in New Issue
Block a user