EditAttributeValue.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <edit-interaction-base v-bind="{ data }" @change="updateData">
  3. <hr />
  4. <ui-input
  5. :model-value="data.attributeName"
  6. :label="t('workflow.blocks.attribute-value.forms.name')"
  7. placeholder="name"
  8. class="w-full"
  9. @change="updateData({ attributeName: $event })"
  10. />
  11. <ui-checkbox
  12. :model-value="data.assignVariable"
  13. block
  14. class="mt-4"
  15. @change="updateData({ assignVariable: $event })"
  16. >
  17. {{ t('workflow.variables.assign') }}
  18. </ui-checkbox>
  19. <ui-input
  20. v-if="data.assignVariable"
  21. :model-value="data.variableName"
  22. :placeholder="t('workflow.variables.name')"
  23. :title="t('workflow.variables.name')"
  24. class="mt-2 w-full"
  25. @change="updateData({ variableName: $event })"
  26. />
  27. <ui-checkbox
  28. :model-value="data.saveData"
  29. class="mt-4"
  30. @change="updateData({ saveData: $event })"
  31. >
  32. {{ t('workflow.blocks.attribute-value.forms.checkbox') }}
  33. </ui-checkbox>
  34. <ui-select
  35. v-if="data.saveData"
  36. :model-value="data.dataColumn"
  37. :placeholder="t('workflow.blocks.attribute-value.forms.column')"
  38. class="w-full mt-2"
  39. @change="updateData({ dataColumn: $event })"
  40. >
  41. <option
  42. v-for="column in workflow.data.value.table"
  43. :key="column.name"
  44. :value="column.name"
  45. >
  46. {{ column.name }}
  47. </option>
  48. </ui-select>
  49. <ui-checkbox
  50. :model-value="data.addExtraRow"
  51. class="mt-4"
  52. block
  53. @change="updateData({ addExtraRow: $event })"
  54. >
  55. {{ t('workflow.blocks.attribute-value.forms.extraRow.checkbox') }}
  56. </ui-checkbox>
  57. <ui-input
  58. v-if="data.addExtraRow"
  59. :model-value="data.extraRowValue"
  60. :title="t('workflow.blocks.attribute-value.forms.extraRow.title')"
  61. :placeholder="
  62. t('workflow.blocks.attribute-value.forms.extraRow.placeholder')
  63. "
  64. class="w-full mt-2 mb-2"
  65. @change="updateData({ extraRowValue: $event })"
  66. />
  67. <ui-select
  68. v-if="data.addExtraRow"
  69. :model-value="data.extraRowDataColumn"
  70. placeholder="Select column"
  71. class="mt-1 w-full"
  72. @change="updateData({ extraRowDataColumn: $event })"
  73. >
  74. <option
  75. v-for="column in workflow.data.value.table"
  76. :key="column.name"
  77. :value="column.name"
  78. >
  79. {{ column.name }}
  80. </option>
  81. </ui-select>
  82. </edit-interaction-base>
  83. </template>
  84. <script setup>
  85. import { inject } from 'vue';
  86. import { useI18n } from 'vue-i18n';
  87. import EditInteractionBase from './EditInteractionBase.vue';
  88. const props = defineProps({
  89. data: {
  90. type: Object,
  91. default: () => ({}),
  92. },
  93. });
  94. const emit = defineEmits(['update:data']);
  95. const { t } = useI18n();
  96. const workflow = inject('workflow');
  97. function updateData(value) {
  98. emit('update:data', { ...props.data, ...value });
  99. }
  100. </script>