Skip to content

Commit 704e111

Browse files
committed
fix: The same observable object cannot appear twice in the same tree
--bug=1054451 --user=王孝刚 【应用嵌套】高级编排中应用关联设置用户输入参数的应用,会报该应用不可用 https://www.tapd.cn/57709429/s/1681701
1 parent 23b4765 commit 704e111

File tree

1 file changed

+12
-5
lines changed
  • ui/src/workflow/nodes/application-node

1 file changed

+12
-5
lines changed

ui/src/workflow/nodes/application-node/index.vue

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
</template>
167167

168168
<script setup lang="ts">
169-
import { set, groupBy, create } from 'lodash'
169+
import { set, groupBy, create, cloneDeep } from 'lodash'
170170
import { app } from '@/main'
171171
import NodeContainer from '@/workflow/common/NodeContainer.vue'
172172
import { ref, computed, onMounted, onActivated } from 'vue'
@@ -224,13 +224,20 @@ const update_field = () => {
224224
applicationApi
225225
.getApplicationById(id, props.nodeModel.properties.node_data.application_id)
226226
.then((ok) => {
227-
const old_api_input_field_list = props.nodeModel.properties.node_data.api_input_field_list
228-
const old_user_input_field_list = props.nodeModel.properties.node_data.user_input_field_list
227+
const old_api_input_field_list = cloneDeep(
228+
props.nodeModel.properties.node_data.api_input_field_list
229+
)
230+
const old_user_input_field_list = cloneDeep(
231+
props.nodeModel.properties.node_data.user_input_field_list
232+
)
229233
if (isWorkFlow(ok.data.type)) {
230234
const nodeData = ok.data.work_flow.nodes[0].properties.node_data
231-
const new_api_input_field_list = ok.data.work_flow.nodes[0].properties.api_input_field_list
232-
const new_user_input_field_list =
235+
const new_api_input_field_list = cloneDeep(
236+
ok.data.work_flow.nodes[0].properties.api_input_field_list
237+
)
238+
const new_user_input_field_list = cloneDeep(
233239
ok.data.work_flow.nodes[0].properties.user_input_field_list
240+
)
234241
const merge_api_input_field_list = new_api_input_field_list.map((item: any) => {
235242
const find_field = old_api_input_field_list.find(
236243
(old_item: any) => old_item.variable == item.variable

0 commit comments

Comments
 (0)