79 lines
2.2 KiB
TypeScript
79 lines
2.2 KiB
TypeScript
import { getTaskidResult } from '@/api/flow-canvas'
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
// interface NodeOptions {
|
|
// }
|
|
export class GenerateManager {
|
|
stateManager: any
|
|
taskIds: string[] = []
|
|
getTaskIdsImgTime: any
|
|
constructor(options) {
|
|
this.stateManager = options.stateManager;
|
|
}
|
|
|
|
/** 删除taskId */
|
|
deleteTaskId(taskId: string) {
|
|
|
|
}
|
|
/** 添加taskId */
|
|
addTaskId(generateData: any,nodeId: string) {
|
|
this.taskIds.push({
|
|
...generateData,
|
|
nodeId,
|
|
})
|
|
this.getTasksIdImg()
|
|
}
|
|
/** 添加taskId */
|
|
async getTasksIdImg() {
|
|
clearInterval(this.getTaskIdsImgTime)
|
|
this.getTaskIdsImgTime = setInterval(()=>{
|
|
let taskIds = this.taskIds.map((item)=>item.taskId)
|
|
getTaskidResult({taskIds}).then((rv:any)=>{
|
|
//找出成功和失败的任务
|
|
let returnedTasks = rv.filter((item)=>item.status == 'RETURNED' || item.status == 'FAILED')
|
|
if(returnedTasks.length == 0)return
|
|
//剔除调成功的
|
|
let taskIds_ = JSON.parse(JSON.stringify(this.taskIds))
|
|
this.taskIds = taskIds_.filter(itemA =>
|
|
!returnedTasks.some(itemB => itemB.taskId === itemA.taskId)
|
|
)
|
|
//把成功的提取出来并且更新到node中
|
|
const result = returnedTasks.filter(itemA =>
|
|
taskIds_.some(itemB => {
|
|
itemA.nodeId = itemB.nodeId
|
|
return itemB.taskId === itemA.taskId
|
|
})
|
|
)
|
|
result.forEach(item => {
|
|
this.stateManager.getNodeById(item.nodeId).data.data.imageProcessTasks.forEach((nodeDataItem:any)=>{
|
|
if(item.taskId == nodeDataItem.taskId){
|
|
if(item.status == 'FAILED'){
|
|
this.stateManager.deleteNode(item.nodeId)
|
|
ElMessage.error(item.errorMessage)
|
|
}else if(item.status == 'RETURNED'){
|
|
nodeDataItem.url = item.url
|
|
nodeDataItem.createTime = item.createTime
|
|
nodeDataItem.status = item.status
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
if(this.taskIds.length == 0)clearInterval(this.getTaskIdsImgTime)
|
|
}).catch(()=>{
|
|
clearInterval(this.getTaskIdsImgTime)
|
|
console.warn('获取taskId图片失败')
|
|
})
|
|
}, 3000)
|
|
}
|
|
/** 更新taskId */
|
|
updateTaskId(taskId: string) {
|
|
this.stateManager.getNodeById()
|
|
}
|
|
|
|
dispose() {
|
|
this.taskIds = []
|
|
clearInterval(this.getTaskIdsImgTime)
|
|
}
|
|
}
|