| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <template>
- <div
- class="chart-item"
- v-for="item in groupData.groupList"
- :class="animationsClass(item.styles.animations)"
- :key="item.id"
- :style="{
- ...getComponentAttrStyle(item.attr, groupIndex),
- ...getFilterStyle(item.styles),
- ...getTransformStyle(item.styles),
- ...getStatusStyle(item.status),
- ...getBlendModeStyle(item.styles) as any
- }"
- >
- <component
- :is="item.chartConfig.chartKey"
- :id="item.id"
- :chartConfig="item"
- :themeSetting="themeSetting"
- :themeColor="themeColor"
- :style="{ ...getSizeStyle(item.attr) }"
- v-on="useLifeHandler(item)"
- ></component>
- </div>
- </template>
- <script setup lang="ts">
- import { PropType } from 'vue'
- import { CreateComponentGroupType } from '@/packages/index.d'
- import { animationsClass, getFilterStyle, getTransformStyle, getBlendModeStyle } from '@/utils'
- import { getSizeStyle, getComponentAttrStyle, getStatusStyle } from '../../utils'
- import { useLifeHandler } from '@/hooks'
- const props = defineProps({
- groupData: {
- type: Object as PropType<CreateComponentGroupType>,
- required: true
- },
- themeSetting: {
- type: Object,
- required: true
- },
- themeColor: {
- type: Object,
- required: true
- },
- groupIndex: {
- type: Number,
- required: true
- }
- })
- </script>
- <style lang="scss" scoped>
- .chart-item {
- position: absolute;
- overflow: hidden;
- }
- </style>
|