画布删除最后一张图更新版本图
This commit is contained in:
@@ -4,6 +4,7 @@ import { ElMessageBox } from 'element-plus'
|
||||
import i18n from '@/lang'
|
||||
import { putSketchFlowCanvas } from '@/api/flow-canvas'
|
||||
import myEvent from '@/utils/myEvent'
|
||||
import { updateVersionSketchUrlApi } from '@/api/flow-canvas'
|
||||
|
||||
const t = i18n.global.t
|
||||
|
||||
@@ -161,6 +162,8 @@ export class StateManager {
|
||||
|
||||
this.nodes.value = this.nodes.value.filter((node: NodesItem) => node.id !== id)
|
||||
}
|
||||
/** 获取初始节点 */
|
||||
getInitialNode() { return this.nodes.value.find((node: NodesItem) => node?.data?.versionImgUpdataList) }
|
||||
/** 获取节点 */
|
||||
getNodeById(id: string) { return this.nodes.value.find((node: NodesItem) => node.id === id) }
|
||||
/** 获取下级节点 */
|
||||
@@ -186,12 +189,19 @@ export class StateManager {
|
||||
if (node.data.disableDelete) return ElMessage.error(t('FlowCanvas.initialNodeProhibited'))
|
||||
|
||||
const result = [node]
|
||||
|
||||
const deleteVersionImgUpdataList = []
|
||||
node.data.data?.imageProcessTasks?.forEach((item) =>{
|
||||
deleteVersionImgUpdataList.push(item.url)
|
||||
})
|
||||
const findChildren = (parentId: string) => {
|
||||
const children = this.nodes.value.filter(item => item.data.superiorID === parentId)
|
||||
children.forEach(child => {
|
||||
if(child.data.type !== NODE_DATATYPE.RESULT_IMAGE){
|
||||
result.push(child)
|
||||
console.log(child)
|
||||
child.data.data?.imageProcessTasks?.forEach((item) =>{
|
||||
deleteVersionImgUpdataList.push(item.url)
|
||||
})
|
||||
}
|
||||
findChildren(child.id)
|
||||
})
|
||||
@@ -215,6 +225,22 @@ export class StateManager {
|
||||
}
|
||||
if(!deletePromise) return console.log('删除操作被取消')
|
||||
|
||||
// 删除如果是最后一张图,需要更新版本图url
|
||||
let initialNode = this.getInitialNode()
|
||||
let updataListIndex
|
||||
let isUpdataEndUrl = false
|
||||
deleteVersionImgUpdataList?.forEach((item) => {
|
||||
updataListIndex = initialNode.data.versionImgUpdataList.indexOf(item)
|
||||
if(updataListIndex == (initialNode.data.versionImgUpdataList.length - 1))isUpdataEndUrl = true
|
||||
if(initialNode.data.versionImgUpdataList.length > 1)initialNode.data.versionImgUpdataList = initialNode.data.versionImgUpdataList.filter((v) => v !== item)
|
||||
})
|
||||
if(isUpdataEndUrl){
|
||||
updateVersionSketchUrlApi({
|
||||
sketchId: this.sketchId.value,
|
||||
newUrl: initialNode.data.versionImgUpdataList[initialNode.data.versionImgUpdataList.length - 1],
|
||||
})
|
||||
}
|
||||
|
||||
if(node.data.data?.imageProcessTasks?.length > 1){
|
||||
node.data.data.imageProcessTasks = node.data.data.imageProcessTasks.filter((item) => item.taskId !== node.data.data.selectTaskId)
|
||||
return
|
||||
@@ -263,7 +289,7 @@ export class StateManager {
|
||||
this.historyIndex.value = this.historyList.value.length - 1
|
||||
}
|
||||
/** 画布数据存储 */
|
||||
async exportFlow (time:number = 0){
|
||||
async exportFlow (time:number = 0,loading:boolean = false){
|
||||
if(!this.sketchId.value)return
|
||||
clearTimeout(this.saveCanvasTime)
|
||||
await new Promise((resolve) => {
|
||||
@@ -272,7 +298,7 @@ export class StateManager {
|
||||
id: this.sketchId.value,
|
||||
canvasData: JSON.stringify(this.nodes.value) }).then(() => {
|
||||
resolve(true)
|
||||
}).catch(() => {
|
||||
},loading).catch(() => {
|
||||
resolve(true)
|
||||
})
|
||||
},time)
|
||||
|
||||
Reference in New Issue
Block a user