From 01a843e71f530c0f190c78228312075b59ae1ab2 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Thu, 12 Mar 2026 17:07:04 +0800 Subject: [PATCH 1/4] fix --- src/api/flow-canvas.ts | 61 ++++++++++++++- src/assets/images/generateLoading.png | Bin 0 -> 1076 bytes .../Canvas/FlowCanvas/components/node.vue | 9 ++- .../components/nodes/cards/color-palette.vue | 13 +++- .../components/nodes/cards/index.vue | 38 ++++++---- .../nodes/cards/scene-composition.vue | 8 +- .../components/nodes/cards/to-real-style.vue | 12 ++- .../components/nodes/result-image.vue | 71 ++++++++++++++---- .../FlowCanvas/components/nodes/text.vue | 1 - .../Canvas/FlowCanvas/flow-canvas.vue | 23 +++++- .../FlowCanvas/manager/GenerateManager.ts | 66 ++++++++++++---- .../Canvas/FlowCanvas/manager/NodeManager.ts | 4 + .../Canvas/FlowCanvas/manager/StateManager.ts | 22 +++++- src/components/highlightAdmin.vue | 61 +++++++++++++++ 14 files changed, 328 insertions(+), 61 deletions(-) create mode 100644 src/assets/images/generateLoading.png create mode 100644 src/components/highlightAdmin.vue diff --git a/src/api/flow-canvas.ts b/src/api/flow-canvas.ts index d4590cc..b499d31 100644 --- a/src/api/flow-canvas.ts +++ b/src/api/flow-canvas.ts @@ -79,17 +79,17 @@ export const getTaskidResult = (data:taskIdList) => { * 图片转真是风格 * @param data 图片转真是风格的参数 * @param data.sketchId sketch id + * @param data.imageUrl 进行生成的图片。minio地址和正常地址都可以 * @param data.mode 选择的模型 * @param data.size 生成图片的大小 - * @param data.imageUrl 进行生成的图片。minio地址和正常地址都可以 * @param data.userPrompt 生成图片的提示词 * @returns 图片转真是风格 */ export interface toRealStyleData { sketchId?: string + imageUrl?: string mode?: string size?: string - imageUrl?: string userPrompt?: string } export const toRealStyleApi = (data:toRealStyleData) => { @@ -98,11 +98,66 @@ export const toRealStyleApi = (data:toRealStyleData) => { method: 'post', data:{ sketchId: data.sketchId, + imageUrl: data.imageUrl, mode: data.mode, size: data.size, - imageUrl: data.imageUrl, userPrompt: data.userPrompt } }) } +/** + * 线稿图上色 + * @param data 线稿图上色的参数 + * @param data.sketchId sketch id + * @param data.imageUrl 进行生成的图片。minio地址和正常地址都可以 + * @param data.variantCount 生成图片的数量 + * @param data.colors 生成上色的图片颜色列表 + * @returns 线稿图上色 + */ +export interface toColorPaletteData { + sketchId?: string + imageUrl?: string + variantCount?: string + colors?: Array +} +export const toColorPaletteApi = (data:toColorPaletteData) => { + return request({ + url: `/api/image/color-palette`, + method: 'post', + data:{ + sketchId: data.sketchId, + imageUrl: data.imageUrl, + variantCount: data.variantCount, + colors: data.colors + } + }) +} + +/** + * 场景构图 + * @param data 场景构图的参数 + * @param data.sketchId sketch id + * @param data.imageUrl 进行生成的图片。minio地址和正常地址都可以 + * @param data.styles 生成上色的图片颜色列表 + * @param data.userPrompt 生成上色的图片颜色列表 + * @returns 场景构图 + */ +export interface toSceneCompositionData { + sketchId?: string + imageUrl?: string + userPrompt?: string + styles?: Array +} +export const toSceneCompositionApi = (data:toSceneCompositionData) => { + return request({ + url: `/api/image/scene-composition`, + method: 'post', + data:{ + sketchId: data.sketchId, + imageUrl: data.imageUrl, + userPrompt: data.userPrompt, + styles: data.styles + } + }) +} diff --git a/src/assets/images/generateLoading.png b/src/assets/images/generateLoading.png new file mode 100644 index 0000000000000000000000000000000000000000..1df9d8bbb279ee2d5533ca91a94b899dcc47432c GIT binary patch literal 1076 zcmeAS@N?(olHy`uVBq!ia0vp^r-67L2OE%_v*TYmkm4-xh%9Dc;1&X5#!GkW{xC2w zKl5~P45^s&_HK4wv?WhN;I0{e^KX7$oUCx-iR0~XAH~gx z+iy?Ee`T-yFW|<+h#RL?tSs7pKR>BaWuwES2nA1_oa85ag%rg+gt=8ZTXlQl4k{gC z%7jX1xv_oeC-tPC=ikhaQF`gFGr4n# zK6~An*;-DOaZ^DiUglW3|8eq6!_byZ?T?cseKmdyaHoa>9mdz6`h_cP)tjd;BHV;d z)d5XUk~|Pn8Nan!_0fX}tv!bQaeck1BEhNgNekz6X-Bj~=%ucDxV?MlXoc_RjsfYO_OfWTO-HM$RbAR_ zPzd{6&;45^z#Uv#m(>_CW7%t$N&)U@$)B9oNr_$Wf`NhSv*EO{_0dBC);?3%`@f}i z+?;skhe^QX*3)k#yjo5kYAuV}xlc*#-ZrC2Gv$xziN$TJnsf$amPe$l8|(ItidU{D zuDoeY-6DGa(8t>bw<5n@(Aaq4)T!mGK_TrVy?XvlO|hs5S+ACej0H{_f=LT^Xf1T< zXg#FW3QRCvtHgj38Y_}C1n)_^DTXRn8boR=tO6-(-~%aR+O@|!7UVCl7Y4CMoFuO{ z3xbkZke0vr#sI&o33=bEPp;42Ay}^%`)}_9S>yc^SMQyt#_hlI8?Vjeh>BZl5>~BE zPFlFd>tILg^f^2FI$NjD-3BDL&k^Z~$Ve_VNP3vN{EmLoLm~AwKy`CNf$C1b*#}hN z{dNzKJpEP*s4h3nAStm!_PzK props.stateManager.nodes.value) const isSubord = computed(() => nodes.value.some((v) => v.data.superiorID === props.node.id)) const tier = computed(() => Number(props.node?.data?.tier || 0)) + const isReturned = computed(() => { + return props.node.data.type == 'result-image' && props.node.data.data.imageProcessTasks[0].status == 'RETURNED' + }) const isAdd = computed( () => !isSubord.value && NODE_DATATYPE.RESULT_IMAGE === props.node.data.type && - !(tier.value === NODE_DATATIER.TO_3VIEW) + !(tier.value === NODE_DATATIER.TO_3VIEW) && + isReturned.value ) const onAdd = () => { const tier_ = tier.value + 1 diff --git a/src/components/Canvas/FlowCanvas/components/nodes/cards/color-palette.vue b/src/components/Canvas/FlowCanvas/components/nodes/cards/color-palette.vue index a8691f7..19210ae 100644 --- a/src/components/Canvas/FlowCanvas/components/nodes/cards/color-palette.vue +++ b/src/components/Canvas/FlowCanvas/components/nodes/cards/color-palette.vue @@ -26,6 +26,7 @@ const data = reactive({ colors: [] }) + const emit = defineEmits(['update-data']) const maxColor = 5 const delColor = (i: number) => { data.colors.splice(i, 1) @@ -41,7 +42,17 @@ data.colors.push(target.value) } - defineExpose({ data }) + const getApiData = ()=>{ + return { + variantCount: '2', + colors: data.colors + } + } + + onMounted(()=>{ + }) + + defineExpose({ data, getApiData }) \ No newline at end of file From c4599b280a1e00c20b6c33d6a5854a1f15437be9 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Fri, 13 Mar 2026 10:09:15 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Canvas/FlowCanvas/manager/GenerateManager.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/components/Canvas/FlowCanvas/manager/GenerateManager.ts b/src/components/Canvas/FlowCanvas/manager/GenerateManager.ts index f422b01..a16461c 100644 --- a/src/components/Canvas/FlowCanvas/manager/GenerateManager.ts +++ b/src/components/Canvas/FlowCanvas/manager/GenerateManager.ts @@ -1,4 +1,5 @@ import { getTaskidResult } from '@/api/flow-canvas' +import { ElMessage } from 'element-plus' // interface NodeOptions { // } export class GenerateManager { @@ -27,8 +28,8 @@ export class GenerateManager { this.getTaskIdsImgTime = setInterval(()=>{ let taskIds = this.taskIds.map((item)=>item.taskId) getTaskidResult({taskIds}).then((rv:any)=>{ - //找出成功的 - let returnedTasks = rv.filter((item)=>item.status == 'RETURNED') + //找出成功和失败的任务 + let returnedTasks = rv.filter((item)=>item.status == 'RETURNED' || item.status == 'FAILED') if(returnedTasks.length == 0)return //剔除调成功的 let taskIds_ = JSON.parse(JSON.stringify(this.taskIds)) @@ -45,9 +46,14 @@ export class GenerateManager { result.forEach(item => { this.stateManager.getNodeById(item.nodeId).data.data.imageProcessTasks.forEach((nodeDataItem:any)=>{ if(item.taskId == nodeDataItem.taskId){ - nodeDataItem.url = item.url - nodeDataItem.createTime = item.createTime - nodeDataItem.status = item.status + 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 + } } }) }) From 3b320d0867a300775d5bf2a09b5e758aa2f87747 Mon Sep 17 00:00:00 2001 From: lzp Date: Fri, 13 Mar 2026 11:18:36 +0800 Subject: [PATCH 3/4] 111 --- .../components/details-panel/index.vue | 3 +- .../components/layer-panel/layer-item.vue | 10 +-- .../manager/AISelectboxToolManager.ts | 65 +++++++++++++++++++ .../DepthCanvas/manager/CanvasManager.ts | 23 +++++-- .../DepthCanvas/manager/LayerManager.ts | 48 ++++++++------ .../DepthCanvas/manager/RectToolManager.ts | 31 +++++---- .../manager/events/CanvasEventManager.js | 11 ++++ .../Canvas/DepthCanvas/tools/canvasFactory.js | 3 + .../Canvas/DepthCanvas/tools/exportMethod.js | 30 +++++++++ .../components/nodes/cards/index.vue | 2 +- .../Canvas/FlowCanvas/manager/FlowManager.ts | 2 +- .../Canvas/FlowCanvas/manager/StateManager.ts | 2 +- 12 files changed, 180 insertions(+), 50 deletions(-) create mode 100644 src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts diff --git a/src/components/Canvas/DepthCanvas/components/details-panel/index.vue b/src/components/Canvas/DepthCanvas/components/details-panel/index.vue index 3439d21..1ea4906 100644 --- a/src/components/Canvas/DepthCanvas/components/details-panel/index.vue +++ b/src/components/Canvas/DepthCanvas/components/details-panel/index.vue @@ -51,7 +51,8 @@ const activeObject = ref(null) const updateActiveObject = () => { const obj = layers.value.find((v: any) => v.info.id === activeID.value) - activeObject.value = obj?.toJSON('info') || null + // activeObject.value = obj?.toJSON('info') || null + activeObject.value = obj } watch(layers, () => updateActiveObject()) watch(activeID, () => updateActiveObject()) diff --git a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue index 7f45ef1..51f044a 100644 --- a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue +++ b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue @@ -1,7 +1,9 @@