diff --git a/src/components/DiyEditor/components/ComponentLibrary.vue b/src/components/DiyEditor/components/ComponentLibrary.vue index e319a5c2..64b2febc 100644 --- a/src/components/DiyEditor/components/ComponentLibrary.vue +++ b/src/components/DiyEditor/components/ComponentLibrary.vue @@ -82,7 +82,9 @@ watch( // 克隆组件 const handleCloneComponent = (component: DiyComponent) => { - return cloneDeep(component) + const instance = cloneDeep(component) + instance.uid = new Date().getTime() + return instance } diff --git a/src/components/DiyEditor/index.vue b/src/components/DiyEditor/index.vue index 3b318f9e..6cb5d6bd 100644 --- a/src/components/DiyEditor/index.vue +++ b/src/components/DiyEditor/index.vue @@ -111,6 +111,7 @@ view-class="p-[var(--el-card-padding)] p-b-[calc(var(--el-card-padding)+var(--el-card-padding))] property" > @@ -296,6 +297,7 @@ const handleMoveComponent = (index: number, direction: number) => { /** 复制组件 */ const handleCopyComponent = (index: number) => { const component = cloneDeep(pageComponents.value[index]) + component.uid = new Date().getTime() pageComponents.value.splice(index + 1, 0, component) } /** diff --git a/src/components/DiyEditor/util.ts b/src/components/DiyEditor/util.ts index 606e53a2..70bee9c1 100644 --- a/src/components/DiyEditor/util.ts +++ b/src/components/DiyEditor/util.ts @@ -5,6 +5,8 @@ import { TabBarProperty } from '@/components/DiyEditor/components/mobile/TabBar/ // 页面装修组件 export interface DiyComponent { + // 用于区分同一种组件的不同实例 + uid: number // 组件唯一标识 id: string // 组件名称