operation_node.vue 787 B

1234567891011121314151617181920212223
  1. <template>
  2. <div class="flex flex-row items-center gap-2">
  3. <Icon :icon="getIcon" :width="26" :height="26"></Icon>
  4. <div>{{ nodeData?.templateName || '常规操作' }}</div>
  5. </div>
  6. </template>
  7. <script setup lang="ts">
  8. import { Process } from '../common/process.type'
  9. const props = withDefaults(defineProps<{ node: Process.OperationNode }>(), {})
  10. const nodeData = ref<Record<string, unknown>>(props.node.nodeData || {})
  11. const roleIcon: string[] = ['role_default', 'role_substation', 'role_catenary', 'role_dispatch', 'role_isolator', 'role_supply']
  12. const getIcon = computed(() => {
  13. const role = nodeData.value?.role || 'role_default'
  14. if (roleIcon.some((item) => item === role)) {
  15. return `svg:${role}`
  16. }
  17. return 'svg:role_default'
  18. })
  19. </script>