diff --git a/ai-service-admin/src/components/common/ConfigForm.vue b/ai-service-admin/src/components/common/ConfigForm.vue index a365961..92885ac 100644 --- a/ai-service-admin/src/components/common/ConfigForm.vue +++ b/ai-service-admin/src/components/common/ConfigForm.vue @@ -92,6 +92,7 @@ const emit = defineEmits<{ const formRef = ref() const formData = ref>({}) +const isUpdating = ref(false) const schemaProperties = computed(() => { return props.schema?.properties || {} @@ -174,6 +175,7 @@ const initFormData = () => { watch( () => props.modelValue, (newVal) => { + if (isUpdating.value) return if (JSON.stringify(newVal) !== JSON.stringify(formData.value)) { initFormData() } @@ -192,8 +194,13 @@ watch( watch( formData, (val) => { + if (isUpdating.value) return if (JSON.stringify(val) !== JSON.stringify(props.modelValue)) { + isUpdating.value = true emit('update:modelValue', val) + Promise.resolve().then(() => { + isUpdating.value = false + }) } }, { deep: true } diff --git a/ai-service-admin/src/components/embedding/EmbeddingConfigForm.vue b/ai-service-admin/src/components/embedding/EmbeddingConfigForm.vue index 8e0768f..e0cd7ba 100644 --- a/ai-service-admin/src/components/embedding/EmbeddingConfigForm.vue +++ b/ai-service-admin/src/components/embedding/EmbeddingConfigForm.vue @@ -92,6 +92,7 @@ const emit = defineEmits<{ const formRef = ref() const formData = ref>({}) +const isUpdating = ref(false) const schemaProperties = computed(() => { return props.schema?.properties || {} @@ -174,6 +175,7 @@ const initFormData = () => { watch( () => props.modelValue, (newVal) => { + if (isUpdating.value) return if (JSON.stringify(newVal) !== JSON.stringify(formData.value)) { initFormData() } @@ -192,8 +194,13 @@ watch( watch( formData, (val) => { + if (isUpdating.value) return if (JSON.stringify(val) !== JSON.stringify(props.modelValue)) { + isUpdating.value = true emit('update:modelValue', val) + Promise.resolve().then(() => { + isUpdating.value = false + }) } }, { deep: true }