mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-14 20:41:15 +08:00
Merge pull request #203 from APIParkLab/feature/1.5-cx
feat: feature/1.5-Data Integration
This commit is contained in:
@@ -136,6 +136,7 @@ type EoRequest = RequestInit & {
|
||||
eoBody?: { [k: string]: unknown } | Array<unknown> | string
|
||||
isStream?: boolean
|
||||
handleStream?: (line: any) => void
|
||||
callback?: (cancel: () => void) => void
|
||||
}
|
||||
|
||||
type EoHeaders = Headers | { [k: string]: string }
|
||||
@@ -145,6 +146,14 @@ export function useFetch() {
|
||||
const pluginEventHub = usePluginEventHub()
|
||||
|
||||
function fetchData<T>(url: string, options: EoRequest) {
|
||||
const controller = new AbortController()
|
||||
const signal = controller.signal
|
||||
|
||||
// 如果提供了callback,则传递取消请求的函数
|
||||
if (options.callback) {
|
||||
options.callback(() => controller.abort())
|
||||
}
|
||||
|
||||
// 合并传入的headers与默认headers
|
||||
const headers = { ...(options.body ? {} : DEFAULT_HEADERS), ...options.headers }
|
||||
|
||||
@@ -163,7 +172,8 @@ export function useFetch() {
|
||||
headers: {
|
||||
...headers
|
||||
// Authorization: 'Bearer your-token', // 示例:添加统一的Token认证
|
||||
}
|
||||
},
|
||||
signal // 将signal传递给fetch请求
|
||||
}
|
||||
|
||||
return fetch(`${options?.eoApiPrefix === undefined ? '/api/v1/' : options.eoApiPrefix}${url}`, finalOptions)
|
||||
|
||||
@@ -277,12 +277,19 @@ const LocalModelList: React.FC = () => {
|
||||
record.state = 'error'
|
||||
modalInstance.update({})
|
||||
}
|
||||
let cancelCb: () => void = () => {}
|
||||
const cancel = (cancel: () => void) => {
|
||||
cancelCb = cancel
|
||||
}
|
||||
const modalInstance = modal.confirm({
|
||||
title: $t('部署过程'),
|
||||
content: <ServiceDeployment record={record} closeModal={closeModal} updateFooter={updateFooter} />,
|
||||
content: <ServiceDeployment record={record} closeModal={closeModal} updateFooter={updateFooter} cancelCb={cancel} />,
|
||||
footer: () => {
|
||||
return <LogsFooter record={record} closeModal={closeModal} />
|
||||
},
|
||||
afterClose: () => {
|
||||
cancelCb()
|
||||
},
|
||||
width: 600,
|
||||
okText: $t('确认'),
|
||||
cancelText: $t('取消'),
|
||||
|
||||
@@ -145,12 +145,19 @@ const SystemList: FC = () => {
|
||||
record.state = 'error'
|
||||
modalInstance.update({})
|
||||
}
|
||||
let cancelCb: () => void = () => {}
|
||||
const cancel = (cancel: () => void) => {
|
||||
cancelCb = cancel
|
||||
}
|
||||
const modalInstance = modal.confirm({
|
||||
title: $t('部署过程'),
|
||||
content: <ServiceDeployment record={record} closeModal={closeModal} updateFooter={updateFooter} />,
|
||||
content: <ServiceDeployment record={record} closeModal={closeModal} updateFooter={updateFooter} cancelCb={cancel} />,
|
||||
footer: () => {
|
||||
return <LogsFooter record={record} closeModal={closeModal} />
|
||||
},
|
||||
afterClose: () => {
|
||||
cancelCb()
|
||||
},
|
||||
width: 600,
|
||||
okText: $t('确认'),
|
||||
cancelText: $t('取消'),
|
||||
|
||||
@@ -8,8 +8,8 @@ import { $t } from '@common/locales/index.ts'
|
||||
import { useFetch } from '@common/hooks/http'
|
||||
import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const'
|
||||
|
||||
export const ServiceDeployment = (props: { record: SystemTableListItem, closeModal?: () => void, updateFooter?: () => void }) => {
|
||||
const { record, closeModal, updateFooter } = props
|
||||
export const ServiceDeployment = (props: { record: SystemTableListItem, closeModal?: () => void, updateFooter?: () => void, cancelCb?: (cancel: () => void) => void }) => {
|
||||
const { record, closeModal, updateFooter, cancelCb } = props
|
||||
const { message } = App.useApp()
|
||||
const getIcon = (status: string) => {
|
||||
switch (status) {
|
||||
@@ -126,6 +126,9 @@ export const ServiceDeployment = (props: { record: SystemTableListItem, closeMod
|
||||
method: 'POST',
|
||||
eoBody: { model: record.id, team: record.team?.id },
|
||||
isStream: true,
|
||||
callback: (cancel: () => void) => {
|
||||
cancelCb?.(cancel)
|
||||
},
|
||||
handleStream: (chunk) => {
|
||||
const parsedChunk = JSON.parse(chunk)
|
||||
// 下载中
|
||||
|
||||
Reference in New Issue
Block a user