diff --git a/src/components/Select/src/Select.vue b/src/components/Select/src/Select.vue index 24b7438..767f9a3 100644 --- a/src/components/Select/src/Select.vue +++ b/src/components/Select/src/Select.vue @@ -25,7 +25,7 @@ import { getDicDetailList } from '/@/api/system/dic'; import { getDatasourceData } from '/@/api/system/datasource'; import { apiConfigFunc, camelCaseString, isValidJSON } from '/@/utils/event/design'; - import {debounce} from 'lodash-es'; + import { debounce } from 'lodash-es'; type OptionsItem = { label: string; value: string; disabled?: boolean }; @@ -79,7 +79,7 @@ const selectedValue = ref(undefined); const valChanged = ref(false); // label分开存储时,第一次懒加载会同时处罚两次fetch,所以这里延迟执行 - const fetch = debounce(_fetch, 200, {leading: false, trailing: true}); + const fetch = debounce(_fetch, 200, { leading: false, trailing: true }); const getOptions = computed(() => { const { labelField, valueField, numberToString } = props; @@ -180,8 +180,6 @@ selectedValue.value = ((typeof props.value === 'string' && !!props.value ? props.value?.split(',') : props.value) || undefined) as any; }); - - async function _fetch() { const { sepTextField } = props; if (!valChanged.value && sepTextField) { @@ -202,6 +200,7 @@ } if (props.datasourceType === 'api') { options.value = await apiConfigFunc(props.apiConfig, isCamelCase, formModel, props.index); + props.staticOptions.splice(0, props.staticOptions.length, options.value); } } else { api = props.api; diff --git a/src/components/SimpleForm/src/SimpleForm.vue b/src/components/SimpleForm/src/SimpleForm.vue index 0aeefcd..4486a78 100644 --- a/src/components/SimpleForm/src/SimpleForm.vue +++ b/src/components/SimpleForm/src/SimpleForm.vue @@ -51,6 +51,7 @@ const formRef = ref(); const formWrap = ref(); const wrapWidth = ref(960); + const formData = inject('formData', { noInject: true }); const propsRef = ref>({}); @@ -437,8 +438,8 @@ for (const eventKey in schema.componentProps['events']) { if (eventKey !== 'change') return; try { - const event = new Function('schema', 'formModel', 'formActionType', `${schema.componentProps['events'][eventKey]}`); - event(schema, formModel, formApi); + const event = new Function('schema', 'formModel', 'formActionType', 'extParams', `${schema.componentProps['events'][eventKey]}`); + event(schema, formModel, formApi, { formData }); } catch (error) { console.log('error', error); notification.error({ diff --git a/src/components/SimpleForm/src/SimpleFormSetup.vue b/src/components/SimpleForm/src/SimpleFormSetup.vue index a42b352..073346d 100644 --- a/src/components/SimpleForm/src/SimpleFormSetup.vue +++ b/src/components/SimpleForm/src/SimpleFormSetup.vue @@ -83,6 +83,7 @@ const wrapWidth = ref(960); const propsRef = ref>({}); const schemaRef = ref>(null); + const formData = inject('formData', { noInject: true }); const getSchemas = computed(() => { return (unref(getProps).schemas as any) || unref(schemaRef); @@ -438,8 +439,8 @@ for (const eventKey in schema.componentProps['events']) { if (eventKey !== 'change') return; try { - const event = new Function('schema', 'formModel', 'formActionType', `${schema.componentProps['events'][eventKey]}`); - event(schema, formModel, formApi); + const event = new Function('schema', 'formModel', 'formActionType', 'extParams', `${schema.componentProps['events'][eventKey]}`); + event(schema, formModel, formApi, { formData }); } catch (error) { console.log('error', error); notification.error({