@tplc/business
Version:
40 lines (35 loc) • 926 B
text/typescript
import { FORM_KEY, PAGE_DYNAMIC_DATA } from '../constants'
import { computed, inject, Ref } from 'vue'
const useSyncForm = (dynamicScope?: string) => {
/** 上下文全局 */
const globalForm = inject(FORM_KEY) as Ref<Record<string, any>>
/** 上下文局部form */
const pageDynamicData = inject(PAGE_DYNAMIC_DATA) as Ref<Record<string, any>>
const syncForm = (params: Record<string, any>) => {
if (dynamicScope) {
pageDynamicData.value[dynamicScope] = {
...pageDynamicData.value[dynamicScope],
...params,
}
} else {
globalForm.value = {
...globalForm.value,
...params,
}
}
}
const form = computed(() => {
if (dynamicScope) {
return {
...globalForm?.value,
...pageDynamicData.value[dynamicScope],
}
}
return globalForm?.value
})
return {
syncForm,
form,
}
}
export default useSyncForm