diff --git a/packages/effects/common-ui/src/components/api-component/api-component.vue b/packages/effects/common-ui/src/components/api-component/api-component.vue index c871fe20..f4f6acd5 100644 --- a/packages/effects/common-ui/src/components/api-component/api-component.vue +++ b/packages/effects/common-ui/src/components/api-component/api-component.vue @@ -84,7 +84,7 @@ const emit = defineEmits<{ const modelValue = defineModel({ default: '' }); const attrs = useAttrs(); - +const innerParams = ref({}); const refOptions = ref([]); const loading = ref(false); // 首次是否加载过了 @@ -175,8 +175,15 @@ async function handleFetchForVisible(visible: boolean) { } } +const params = computed(() => { + return { + ...props.params, + ...unref(innerParams), + }; +}); + watch( - () => props.params, + params, (value, oldValue) => { if (isEqual(value, oldValue)) { return; @@ -189,12 +196,22 @@ watch( function emitChange() { emit('optionsChange', unref(getOptions)); } +const componentRef = ref(); +defineExpose({ + /** 获取被包装的组件实例 */ + getComponentRef: () => componentRef.value as T, + /** 更新Api参数 */ + updateParam(newParams: Record) { + innerParams.value = newParams; + }, +});