cff74bb7创建于 2024年12月20日历史提交
<template>
  <ArrayItemConfigurator v-bind="$attrs" @update:modelValue="updateColumns"></ArrayItemConfigurator>
</template>

<script setup>
import { useProperties, useMaterial, useCanvas } from '@opentiny/tiny-engine-meta-register'
import ArrayItemConfigurator from '../array-item-configurator/ArrayItemConfigurator.vue'

const { children: schemaChildren, componentName, props } = useProperties().getSchema()
const configureMap = useMaterial().getConfigureMap()
const childComponentName =
  configureMap[componentName]?.nestingRule?.childWhitelist?.[0] || schemaChildren?.[0]?.componentName

const updateColumns = (columns) => {
  if (!columns?.length) {
    return
  }

  const children = columns.map((item) => {
    return {
      componentName: childComponentName,
      props: { ...item }
    }
  })

  useCanvas().operateNode({ type: 'updateAttributes', id: useProperties().getSchema().id, value: { children } })
}

updateColumns(props?.columns)
</script>