BlockGames.vue 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <template>
  2. <!-- 活力乡源 -->
  3. <HomeTitle :title="node.props?.title" />
  4. <ProvideVar :vars="{
  5. GridItemIconSize: 90,
  6. GridItemBackgroundColor: 'transparent',
  7. GridItemPaddingHorizontal: 0,
  8. GridItemPaddingVertical: 8,
  9. }">
  10. <Grid :borderGrid="false" :mainAxisCount="4">
  11. <GridItem
  12. v-for="item in node.props?.items"
  13. :key="item.title"
  14. :title="item.title"
  15. :icon="item.icon"
  16. touchable
  17. @click="() => context.getScriptEngine().execute(item.handler, node.getNodeScriptContext?.())"
  18. />
  19. </Grid>
  20. </ProvideVar>
  21. </template>
  22. <script lang="ts" setup>
  23. import HomeTitle from '@/common/components/parts/HomeTitle.vue';
  24. import type { DynamicXNode, DynamicXNodeContext } from '@/components/dynamic/DynamicX';
  25. import Grid from '@/components/layout/grid/Grid.vue';
  26. import GridItem from '@/components/layout/grid/GridItem.vue';
  27. import ProvideVar from '@/components/theme/ProvideVar.vue';
  28. const props = withDefaults(defineProps<{
  29. node: DynamicXNode;
  30. context: DynamicXNodeContext;
  31. }>(), {
  32. })
  33. </script>