Commit 11cc50c18c4ba0d21ad429c593db79cd960c4c3e
1 parent
a9490791
fix: DEFECT-1302修复组件复制功能,复制的组件布局信息为初始化布局信息
Showing
2 changed files
with
11 additions
and
4 deletions
| @@ -12,10 +12,11 @@ | @@ -12,10 +12,11 @@ | ||
| 12 | import { addDataComponent, deleteDataComponent } from '/@/api/dataBoard'; | 12 | import { addDataComponent, deleteDataComponent } from '/@/api/dataBoard'; | 
| 13 | import { useBoardId } from '../../hooks/useBoardId'; | 13 | import { useBoardId } from '../../hooks/useBoardId'; | 
| 14 | import { unref, toRaw } from 'vue'; | 14 | import { unref, toRaw } from 'vue'; | 
| 15 | - import { ApiDataBoardDataType } from '../../types'; | 15 | + import { ApiDataBoardDataType, ComponentLayoutType } from '../../types'; | 
| 16 | import { useCalcNewWidgetPosition } from '../../hooks/useCalcNewWidgetPosition'; | 16 | import { useCalcNewWidgetPosition } from '../../hooks/useCalcNewWidgetPosition'; | 
| 17 | import { Layout } from 'vue3-grid-layout'; | 17 | import { Layout } from 'vue3-grid-layout'; | 
| 18 | import { DataComponentRecord } from '/@/api/dataBoard/model'; | 18 | import { DataComponentRecord } from '/@/api/dataBoard/model'; | 
| 19 | + import { computed } from 'vue'; | ||
| 19 | 20 | ||
| 20 | const props = defineProps<{ | 21 | const props = defineProps<{ | 
| 21 | sourceInfo: WidgetDataType; | 22 | sourceInfo: WidgetDataType; | 
| @@ -72,11 +73,16 @@ | @@ -72,11 +73,16 @@ | ||
| 72 | } catch (error) {} | 73 | } catch (error) {} | 
| 73 | } | 74 | } | 
| 74 | 75 | ||
| 76 | + const getLayout = computed(() => { | ||
| 77 | + const { sourceInfo } = props; | ||
| 78 | + const { id, w, h, x, y } = sourceInfo; | ||
| 79 | + return { id, w, h, x, y } as ComponentLayoutType; | ||
| 80 | + }); | ||
| 81 | + | ||
| 75 | async function handleCopy() { | 82 | async function handleCopy() { | 
| 76 | const id = props.sourceInfo.id; | 83 | const id = props.sourceInfo.id; | 
| 77 | const copyRecord = props.rawDataSource.componentData.find((item) => item.id === id); | 84 | const copyRecord = props.rawDataSource.componentData.find((item) => item.id === id); | 
| 78 | - const copyLayout = props.rawDataSource.componentLayout.find((item) => item.id === id); | ||
| 79 | - | 85 | + const copyLayout = unref(getLayout); | 
| 80 | const raw = toRaw(copyRecord) as unknown as DataComponentRecord; | 86 | const raw = toRaw(copyRecord) as unknown as DataComponentRecord; | 
| 81 | 87 | ||
| 82 | const layout = useCalcNewWidgetPosition( | 88 | const layout = useCalcNewWidgetPosition( | 
| @@ -104,9 +104,10 @@ export const useDataSource = (propsRef: ComputedRef<Recordable>) => { | @@ -104,9 +104,10 @@ export const useDataSource = (propsRef: ComputedRef<Recordable>) => { | ||
| 104 | */ | 104 | */ | 
| 105 | const setLayoutInfo = async () => { | 105 | const setLayoutInfo = async () => { | 
| 106 | try { | 106 | try { | 
| 107 | + const layout = getLayoutInfo(); | ||
| 107 | await updateDataBoardLayout({ | 108 | await updateDataBoardLayout({ | 
| 108 | boardId: unref(getBoardId), | 109 | boardId: unref(getBoardId), | 
| 109 | - layout: getLayoutInfo(), | 110 | + layout, | 
| 110 | }); | 111 | }); | 
| 111 | } catch (error) {} | 112 | } catch (error) {} | 
| 112 | }; | 113 | }; |