From bb740dfd2e53d11dd836a1e3dd1c0d694cbaeec7 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Wed, 11 Mar 2026 10:53:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4sketch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/delete.png | Bin 0 -> 241 bytes src/assets/images/restore-sketch.png | Bin 0 -> 468 bytes src/views/home/agent/components/Agent.vue | 10 ++- src/views/home/agent/components/Preview.vue | 78 +++++++++++++++++--- src/views/home/agent/index.vue | 11 ++- 5 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 src/assets/images/delete.png create mode 100644 src/assets/images/restore-sketch.png diff --git a/src/assets/images/delete.png b/src/assets/images/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1a9992c84a5a5a2a0e7e86d4ed205e1aedca26 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^JRmj)8<3o<+3y6TI14-?iy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c@Ne7+Lbh?3y^w370~qErUA%=FyEc^juC17&hN zT^vIy7`Fx-6g(gxaK~6vK~>{u_a>#>%r-wg8xCWi6Fs#X%F5o~5!BjnO}s-#YND=X z`C@jnw#b#6_bB^EyV6OW)mTUXIs0*FVdQ&MBb@07-*RXaE2J literal 0 HcmV?d00001 diff --git a/src/assets/images/restore-sketch.png b/src/assets/images/restore-sketch.png new file mode 100644 index 0000000000000000000000000000000000000000..51a7162dd827bf674bd2d2600edf51490b9652c6 GIT binary patch literal 468 zcmV;_0W1EAP)>5D7bL_tZ_uv2g7rwFU7qIm-VU5;_6Td+cF8$U@fi^|48xwh>$-JS zRVO{(QWxL%mpHaae8#!!`#wX`P6)w(C6;BaUDsuGUH|F@SP%rOFboHr8|uysrp2tT zpyzqf4Af}cDey7^`1pb!4V^Z?zYX{gIo$<##o(7ugTRxz&L|+BbV+C`flCZ*Kj}E& zn!*z~W}y`wW1;+mjq@@ozQrU51ieycbozwi=gCBK4!TJ#?%_wpIU^2N1#jFkdTSk{ zmmxaDTkl?&l$|D0M{?X3BLz|ot9M4V9R4R`KgzN^$fSjB+bO1dBYm2tNz|HhtYr*A z3MmHdal{NyL=+sydB4CE#??ruHg=UiM~os*qbNe0u-Cbsr0gG|{hlP*Ox42x0000< KMNUMnLSTZA8M`b1 literal 0 HcmV?d00001 diff --git a/src/views/home/agent/components/Agent.vue b/src/views/home/agent/components/Agent.vue index 89c9edf..9314440 100644 --- a/src/views/home/agent/components/Agent.vue +++ b/src/views/home/agent/components/Agent.vue @@ -428,7 +428,6 @@ const setChatInfo = (info) => { const initialData = agentStore.getInitialProjectData if (isGenerating.value || initialData) return - console.log('info0----', info) const data = info.conversation let project = info.project @@ -457,7 +456,9 @@ let ancestorsIdCounter = 1 if (ancestors) { ancestors.forEach((item) => { - imgList = imgList.concat(current.sketchIDAndUrl) + if (item.sketchIDAndUrl) { + imgList = imgList.concat(item.sketchIDAndUrl) + } const list = processDialogue(item.dialogue, 0, imgList) // 重新设置 id list.forEach((el) => { @@ -467,7 +468,10 @@ }) } const currentList = processDialogue(current?.dialogue, 0, imgList) - imgList = imgList.concat(current.sketchIDAndUrl) + if (current.sketchIDAndUrl) { + imgList = imgList.concat(current.sketchIDAndUrl) + } + currentList.forEach((el, index) => { el.id = index + 1 + ancestorsList.length }) diff --git a/src/views/home/agent/components/Preview.vue b/src/views/home/agent/components/Preview.vue index 628976a..85ed2fc 100644 --- a/src/views/home/agent/components/Preview.vue +++ b/src/views/home/agent/components/Preview.vue @@ -9,7 +9,30 @@ v-for="(item, index) in sketchList" :key="'sketch-item-' + index" > - + + + +
>({}) @@ -152,6 +178,9 @@ // 获取当前显示的图片源 const getImageSrc = (item: string, index: number) => { + if (item === null) { + return null + } if (typeof item === 'string') { return loadedStatus[index] ? item : LoadingImg } @@ -160,15 +189,31 @@ } } - const handleClickEdit = (item: string) => { - const url = Object.values(item)[0] - const imgId = Object.keys(item)[0] - const nodeId = projectStore.state.nodeId + const handleClickEdit = (item: string | Object) => { + let url = '' + let imgId = '' + let nodeId = '' + if (typeof item === 'string') { + url = item + } + if (typeof item === 'object') { + url = Object.values(item)[0] + imgId = Object.keys(item)[0] + nodeId = projectStore.state.nodeId + } myEvent.emit('openFlowCanvas', { url, imgId, nodeId }) } - const handleClickMenu = () => { - // 菜单按钮点击逻辑 - console.log('Menu button clicked') + + const handleClickDelete = (item: string | Object) => { + deleteSketchFlowCanvas({ + id: Object.keys(item)[0], + versionNodeId: projectStore.state.nodeId + }).then((res) => { + if (res) { + ElMessage.success('Delete success') + emits('deleteSketch', Object.keys(item)[0]) + } + }) } @@ -191,10 +236,21 @@ height: 100%; border-radius: 1.6rem; } - .menu-btn { + :deep(.menu-btn) { position: absolute; top: 2.1rem; right: 1.5rem; + + .dropdown-icon { + &.restore { + width: 1.4rem; + height: 1.3rem; + } + &.delete { + width: 1.2rem; + height: 1.3rem; + } + } } .edit-btn { position: absolute; @@ -287,4 +343,8 @@ } } } + :deep(.el-dropdown-menu__item) { + column-gap: 1.2rem; + padding: 1.2rem 1.4rem; + } diff --git a/src/views/home/agent/index.vue b/src/views/home/agent/index.vue index 910a793..dcfe397 100644 --- a/src/views/home/agent/index.vue +++ b/src/views/home/agent/index.vue @@ -6,7 +6,7 @@
- +
{ + sketchList.value = sketchList.value.filter((item) => { + if (typeof item === 'object') { + return Object.keys(item)[0] !== deletedId + } + return true + }) + } + const versionTreeData = ref({ drawer: false })