diff --git a/src/assets/images/delete.png b/src/assets/images/delete.png new file mode 100644 index 0000000..3f1a999 Binary files /dev/null and b/src/assets/images/delete.png differ diff --git a/src/assets/images/restore-sketch.png b/src/assets/images/restore-sketch.png new file mode 100644 index 0000000..51a7162 Binary files /dev/null and b/src/assets/images/restore-sketch.png differ 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 })