fix:更新拖拽数据源

This commit is contained in:
lhj
2024-11-06 00:44:08 +08:00
parent 7db26561d0
commit bc31e312fb
2 changed files with 52 additions and 44 deletions

View File

@ -1,40 +1,49 @@
import { defineStore } from 'pinia'
import { IPageComponent } from '../type/IPageComponent';
import { ref } from 'vue';
import {defineStore} from 'pinia'
import {IPageComponent} from '../type/IPageComponent';
import {ref} from 'vue';
function findObjectById(obj, targetId) {
if (Array.isArray(obj)) {
for (let item of obj) {
let found = findObjectById(item, targetId);
if (found) return found;
if (Array.isArray(obj)) {
for (let item of obj) {
let found = findObjectById(item, targetId);
if (found) return found;
}
} else if (typeof obj === 'object' && obj !== null) {
if (obj.id === targetId) {
return obj;
}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
let found = findObjectById(obj[key], targetId);
if (found) return found;
}
}
}
} else if (typeof obj === 'object' && obj !== null) {
if (obj.id === targetId) {
return obj;
}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
let found = findObjectById(obj[key], targetId);
if (found) return found;
}
}
}
return null; // 如果没有找到则返回null
return null; // 如果没有找到则返回null
}
export const useSchemeStore = defineStore('scheme', () => {
// const componnets = ref<IPageComponent[]>()
const previewData = ref<IPageComponent[]>()
const nowComponentsData = ref<IPageComponent>()
const components = ref<IPageComponent[]>()
const previewScheme = ref<IPageComponent[]>()
const nowComponentsData = ref<IPageComponent>()
function initScheme(value) {
previewData.value = value
}
function getSchemeObj(id) {
return findObjectById(previewData.value, id)
}
function updateScheme()
{
function initPreviewScheme(value) {
previewScheme.value = value
nowComponentsData.value=value[0]
}
}
return { previewData,nowComponentsData, initScheme, getSchemeObj,updateScheme }
function initComponents(value:IPageComponent[]) {
components.value = value
}
function getSchemeObj(id) {
return findObjectById(previewScheme.value, id)
}
function updateScheme() {
}
return {previewScheme, components, nowComponentsData, initComponents, initPreviewScheme, getSchemeObj, updateScheme}
})