|
69 | 69 | </div> |
70 | 70 | <NodeCascader |
71 | 71 | v-else |
72 | | - ref="nodeCascaderRef" |
| 72 | + ref="modelReferenceCascaderRef" |
73 | 73 | :nodeModel="nodeModel" |
74 | 74 | class="w-full" |
75 | 75 | :placeholder="$t('workflow.variable.placeholder')" |
|
154 | 154 | }}<span class="color-danger">*</span></template |
155 | 155 | > |
156 | 156 | <NodeCascader |
157 | | - ref="nodeCascaderRef" |
| 157 | + ref="firstFrameCascaderRef" |
158 | 158 | :nodeModel="nodeModel" |
159 | 159 | class="w-full" |
160 | 160 | :placeholder="$t('workflow.nodes.imageToVideoGenerate.first_frame.requiredMessage')" |
|
174 | 174 | >{{ $t('workflow.nodes.imageToVideoGenerate.last_frame.label') }} |
175 | 175 | </template> |
176 | 176 | <NodeCascader |
177 | | - ref="nodeCascaderRef" |
| 177 | + ref="lastFrameCascaderRef" |
178 | 178 | :nodeModel="nodeModel" |
179 | 179 | class="w-full" |
180 | 180 | :placeholder="$t('workflow.nodes.imageToVideoGenerate.last_frame.requiredMessage')" |
@@ -248,12 +248,16 @@ const apiType = computed(() => { |
248 | 248 | const props = defineProps<{ nodeModel: any }>() |
249 | 249 | const modelOptions = ref<any>(null) |
250 | 250 | const AIModeParamSettingDialogRef = ref<InstanceType<typeof AIModeParamSettingDialog>>() |
251 | | -const nodeCascaderRef = ref() |
252 | 251 |
|
253 | 252 | const aiChatNodeFormRef = ref<FormInstance>() |
| 253 | +const firstFrameCascaderRef = ref() |
| 254 | +const lastFrameCascaderRef = ref() |
| 255 | +const modelReferenceCascaderRef = ref() |
| 256 | +
|
254 | 257 | const validate = () => { |
255 | 258 | return Promise.all([ |
256 | | - nodeCascaderRef.value ? nodeCascaderRef.value.validate() : Promise.resolve(''), |
| 259 | + firstFrameCascaderRef.value?.validate() ?? Promise.resolve(''), |
| 260 | + modelReferenceCascaderRef.value?.validate() ?? Promise.resolve(''), |
257 | 261 | aiChatNodeFormRef.value?.validate(), |
258 | 262 | ]).catch((err: any) => { |
259 | 263 | return Promise.reject({ node: props.nodeModel, errMessage: err }) |
|
0 commit comments