From 6fe39cf08dfcdbf5a594bddfceecac404881d5cb Mon Sep 17 00:00:00 2001 From: lq <121091329@qq.com> Date: Fri, 26 Sep 2025 17:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=A0=E9=99=A4=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/draw-popup.vue | 76 ++++++++++++++++++- 1 file changed, 72 insertions(+), 4 deletions(-) diff --git a/src/views/property-marketing/assignment-management/components/draw-popup.vue b/src/views/property-marketing/assignment-management/components/draw-popup.vue index 8f20763..e55ae2d 100644 --- a/src/views/property-marketing/assignment-management/components/draw-popup.vue +++ b/src/views/property-marketing/assignment-management/components/draw-popup.vue @@ -73,14 +73,36 @@
- {{ item }} + {{ item.name || item.title || item }} +
-
+
+
@@ -199,7 +221,7 @@ import { getWorksPage } from '@/api/all/generationWorkshop.ts'; import { ref, reactive, watch, nextTick } from 'vue'; import aiIcon from '@/assets/img/media-account/icon-AI.png'; -import { SwapOutlined, DeleteOutlined } from '@ant-design/icons-vue'; +import { SwapOutlined, DeleteOutlined, CloseOutlined } from '@ant-design/icons-vue'; import { Button, DatePicker, TimePicker } from 'ant-design-vue'; import { TABS_LIST, ORIGIN_LIST, RawMaterialType } from '@/views/material-center/components/raw-material/constants'; import dayjs from 'dayjs'; @@ -368,6 +390,30 @@ const handleDelte = () => { images: [], }; }; + +// 删除文本项 +const handleDeleteText = (id) => { + selectedMaterials.value.texts = selectedMaterials.value.texts.filter((item) => item !== id); + selectedMaterials.value.keys = selectedMaterials.value.keys.filter((key) => key !== id); + + // 更新hasChoseMaterial状态 + updateHasChoseMaterial(); +}; + +// 删除图片项 +const handleDeleteImage = (id) => { + selectedMaterials.value.images = selectedMaterials.value.images.filter((item) => item.id !== id); + selectedMaterials.value.keys = selectedMaterials.value.keys.filter((key) => key !== id); + + // 更新hasChoseMaterial状态 + updateHasChoseMaterial(); +}; + +// 更新hasChoseMaterial状态 +const updateHasChoseMaterial = () => { + hasChoseMaterial.value = selectedMaterials.value.texts.length > 0 || selectedMaterials.value.images.length > 0; +}; + // 处理原料库选择确认 const handleMaterialConfirm = (result) => { console.log('handleMaterialConfirm', result); @@ -378,6 +424,28 @@ const handleMaterialConfirm = (result) => { images: result.choseImgArray, texts: result.selectedTexts || [], }; + + // 为每个文本项添加showDelete属性(如果它们是对象) + if (selectedMaterials.value.texts.length > 0 && typeof selectedMaterials.value.texts[0] === 'object') { + selectedMaterials.value.texts = selectedMaterials.value.texts.map((text) => ({ + ...text, + showDelete: false, + })); + } else { + // 如果是字符串,则包装成对象 + selectedMaterials.value.texts = selectedMaterials.value.texts.map((text, index) => ({ + id: `text_${index}`, + name: text, + showDelete: false, + })); + } + + // 为每个图片项添加showDelete属性 + selectedMaterials.value.images = selectedMaterials.value.images.map((image) => ({ + ...image, + showDelete: false, + })); + hasChoseMaterial.value = result.selectedKeys.length > 0; };