ErrorHandling.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <!-- 异常处理 -->
  3. <div class="space-y-2 flex items-center justify-between">
  4. <label class="text-sm font-medium text-gray-700 flex items-center gap-1">
  5. 异常处理
  6. <Icon icon="lucide:info" :height="14" :width="14" class="text-gray-400" />
  7. </label>
  8. <ElSelect v-model="config.errorHandling" @change="handleConfigChange" size="default"
  9. class="!w-[120px] text-sm bg-white !mt-0">
  10. <el-option value="none" label="无"></el-option>
  11. <el-option value="default" label="默认值"></el-option>
  12. <el-option value="errBranch" label="异常分支"></el-option>
  13. </ElSelect>
  14. </div>
  15. <div class="!mt-0">
  16. <div v-if="config.errorHandling === 'default'">
  17. <p class="text-sm text-gray-600 m-0 mb-1">当发生异常时,指定默认输出内容。( result Object )</p>
  18. <!-- 代码编辑器 -->
  19. <CodeEditor v-model="config.errorCodeReturn" v-model:language="config.language" :tools="false"
  20. theme="vs-light" />
  21. </div>
  22. <div v-else-if="config.errorHandling === 'errBranch'">
  23. <p class="text-sm m-0 mb-1 text-gray-600">在画布自定义失败分支逻辑。</p>
  24. <p class="text-sm text-gray-400 m-0">当节点发生异常时,将自动执行失败分支。失败分支允许您灵活地提供错误消息、报告、修复或跳过操作。</p>
  25. </div>
  26. </div>
  27. </template>
  28. <script lang="ts" setup>
  29. import { ref, watch } from "vue"
  30. import { Icon } from '@iconify/vue'
  31. import CodeEditor from '@/components/SetterCommon/Code/CodeEditor.vue'
  32. interface ErrorHandlerConfig {
  33. errorHandling: string
  34. errorCodeReturn: string
  35. language: string
  36. }
  37. interface Props {
  38. modelValue: ErrorHandlerConfig
  39. }
  40. interface Emits {
  41. (e: 'update:modelValue', value: ErrorHandlerConfig): void
  42. }
  43. const props = defineProps<Props>()
  44. const emit = defineEmits<Emits>()
  45. watch(
  46. () => props.modelValue,
  47. (newVal) => {
  48. config.value = newVal || {
  49. errorHandling: 'none',
  50. errorCodeReturn: '',
  51. language: 'javascript',
  52. }
  53. console.log(config.value.errorCodeReturn)
  54. }
  55. )
  56. const config = ref<ErrorHandlerConfig>(props.modelValue || {
  57. errorHandling: 'none',
  58. errorCodeReturn: '',
  59. language: 'javascript',
  60. })
  61. const handleConfigChange = () => {
  62. emit('update:modelValue', config.value)
  63. }
  64. </script>