Merge branch 'main' of http://18.167.251.121:10003/aidlab/FiDA_Front
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
import { getTaskidResult } from '@/api/flow-canvas'
|
||||
interface NodeOptions {
|
||||
id?: string
|
||||
position?: { x: number, y: number }
|
||||
positionX?: number
|
||||
positionY?: number
|
||||
component?: any
|
||||
}
|
||||
|
||||
import { ElMessage } from 'element-plus'
|
||||
// interface NodeOptions {
|
||||
// }
|
||||
export class GenerateManager {
|
||||
stateManager: any
|
||||
taskIds: string[] = []
|
||||
getTaskIdsImgTime: any
|
||||
constructor(options) {
|
||||
this.stateManager = options.stateManager;
|
||||
}
|
||||
@@ -19,19 +15,63 @@ export class GenerateManager {
|
||||
|
||||
}
|
||||
/** 添加taskId */
|
||||
addTaskId(TaskId: any) {
|
||||
this.stateManager.addTaskId(TaskId)
|
||||
addTaskId(generateData: any,nodeId: string) {
|
||||
this.taskIds.push({
|
||||
...generateData,
|
||||
nodeId,
|
||||
})
|
||||
this.getTasksIdImg()
|
||||
}
|
||||
/** 添加taskId */
|
||||
async getTasksIdImg(list) {
|
||||
let taskIds = list.map((item)=>item.taskId)
|
||||
getTaskidResult({taskIds}).then((rv)=>{
|
||||
console.log(rv)
|
||||
})
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ interface NodeData {
|
||||
disableDelete?: boolean// 是否禁用删除
|
||||
disableCopy?: boolean// 是否禁用复制
|
||||
originalImage?: string// 要进行生成的图片
|
||||
createIndexPosition?: number// 创建索引位置
|
||||
isActive?: boolean// 是否激活
|
||||
}
|
||||
interface NodeOptions {
|
||||
id?: string
|
||||
@@ -68,9 +70,11 @@ export class NodeManager {
|
||||
const options_ = {
|
||||
...(options ? options : {}),
|
||||
component: NODE_COMPONENT.RESULT_IMAGE,
|
||||
positionY: options?.positionY || 0,
|
||||
data: {
|
||||
tier: NODE_DATATIER.RESULT_IMAGE,
|
||||
type: NODE_DATATYPE.RESULT_IMAGE,
|
||||
createIndexPosition: options?.data?.createIndexPosition || 1,
|
||||
isHeader: true,
|
||||
...(options?.data || {}),
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ref, computed } from "vue";
|
||||
import { NODE_TYPE } from '../tools/index.d'
|
||||
import { NODE_TYPE, NODE_DATATYPE } from '../tools/index.d'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
import i18n from '@/lang'
|
||||
const t = i18n.global.t
|
||||
@@ -35,12 +35,14 @@ export class StateManager {
|
||||
flowManager: any
|
||||
nodeManager: any
|
||||
toolManager: any
|
||||
generateManager: any
|
||||
// 设置管理器
|
||||
setManager(options) {
|
||||
options.eventManager && (this.eventManager = options.eventManager)
|
||||
options.flowManager && (this.flowManager = options.flowManager)
|
||||
options.nodeManager && (this.nodeManager = options.nodeManager)
|
||||
options.toolManager && (this.toolManager = options.toolManager)
|
||||
options.generateManager && (this.generateManager = options.generateManager)
|
||||
}
|
||||
constructor(options) {
|
||||
this.vueFlow = options.vueFlow
|
||||
@@ -87,12 +89,14 @@ export class StateManager {
|
||||
source: source,
|
||||
target: target,
|
||||
selectable: false,
|
||||
visible: (node.data.type !== NODE_DATATYPE.RESULT_IMAGE || node.data.isActive),
|
||||
type: 'default'
|
||||
})
|
||||
}
|
||||
})
|
||||
return arr
|
||||
})
|
||||
window.nodes = this.nodes
|
||||
|
||||
}
|
||||
/** 设置激活节点 */
|
||||
@@ -131,8 +135,8 @@ export class StateManager {
|
||||
/** 获取节点 */
|
||||
getNodeById(id: string) { return this.nodes.value.find((node: NodesItem) => node.id === id) }
|
||||
/** 获取下级节点 */
|
||||
getSubordNodeById(id: string) { return this.nodes.value.find((node: NodesItem) => node.data.superiorID === id) }
|
||||
getLastNode() { return this.nodes.value[this.nodes.value.length - 1] }
|
||||
getSubordNodeByID(id: string) { return this.nodes.value.find((node: NodesItem) => node.data.superiorID === id) }
|
||||
getLastNode() { console.log(this.nodes.value); return this.nodes.value[this.nodes.value.length - 1] }
|
||||
/** 设置工具 */
|
||||
setTool(tool: string) { this.tool.value = tool }
|
||||
/** 设置光标 */
|
||||
@@ -183,6 +187,20 @@ export class StateManager {
|
||||
this.nodes.value = JSON.parse(state.nodes)
|
||||
}
|
||||
|
||||
/** 显示指定子节点和父节点连接线,隐藏父节点和其他子节点链接线, */
|
||||
showNodeConnections(id: string) {
|
||||
const node = this.getNodeById(id)
|
||||
if(node.data.component != NODE_DATATYPE.RESULT_IMAGE && node.data.superiorID) return
|
||||
let edges_ = JSON.parse(JSON.stringify(this.edges.value))
|
||||
this.nodes.value.forEach((nodeItem) => {
|
||||
if(node.data.superiorID === nodeItem.data.superiorID && nodeItem.id == id) {
|
||||
nodeItem.data.isActive = true
|
||||
}else if(node.data.superiorID == nodeItem.data.superiorID){
|
||||
nodeItem.data.isActive = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
dispose() {
|
||||
this.historyList.value = []
|
||||
this.historyIndex.value = 0
|
||||
|
||||
Reference in New Issue
Block a user