diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index 2ab4a693..d6416ee6 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -62,6 +62,7 @@ import { basicProps } from './props'; import { useDesign } from '/@/hooks/web/useDesign'; + import { cloneDeep } from 'lodash-es'; export default defineComponent({ name: 'BasicForm', @@ -132,9 +133,11 @@ } } if (unref(getProps).showAdvancedButton) { - return schemas.filter((schema) => schema.component !== 'Divider') as FormSchema[]; + return cloneDeep( + schemas.filter((schema) => schema.component !== 'Divider') as FormSchema[], + ); } else { - return schemas as FormSchema[]; + return cloneDeep(schemas as FormSchema[]); } }); diff --git a/src/components/Form/src/hooks/useFormEvents.ts b/src/components/Form/src/hooks/useFormEvents.ts index 96c9830b..30e9f87a 100644 --- a/src/components/Form/src/hooks/useFormEvents.ts +++ b/src/components/Form/src/hooks/useFormEvents.ts @@ -39,7 +39,8 @@ export function useFormEvents({ Object.keys(formModel).forEach((key) => { const schema = unref(getSchema).find((item) => item.field === key); const isInput = schema?.component && defaultValueComponents.includes(schema.component); - formModel[key] = isInput ? defaultValueRef.value[key] || '' : defaultValueRef.value[key]; + const defaultValue = cloneDeep(defaultValueRef.value[key]); + formModel[key] = isInput ? defaultValue || '' : defaultValue; }); nextTick(() => clearValidate()); @@ -100,7 +101,7 @@ export function useFormEvents({ } catch (e) { // key not exist if (isDef(defaultValueRef.value[nestKey])) { - formModel[nestKey] = defaultValueRef.value[nestKey]; + formModel[nestKey] = cloneDeep(defaultValueRef.value[nestKey]); } } }); diff --git a/src/components/Form/src/hooks/useFormValues.ts b/src/components/Form/src/hooks/useFormValues.ts index b5492dfe..34dd9ddf 100644 --- a/src/components/Form/src/hooks/useFormValues.ts +++ b/src/components/Form/src/hooks/useFormValues.ts @@ -3,7 +3,7 @@ import { dateUtil } from '/@/utils/dateUtil'; import { unref } from 'vue'; import type { Ref, ComputedRef } from 'vue'; import type { FormProps, FormSchema } from '../types/form'; -import { set } from 'lodash-es'; +import { cloneDeep, set } from 'lodash-es'; interface UseFormValuesContext { defaultValueRef: Ref; @@ -124,7 +124,7 @@ export function useFormValues({ } } }); - defaultValueRef.value = obj; + defaultValueRef.value = cloneDeep(obj); } return { handleFormValues, initDefault }; diff --git a/src/components/Tree/index.ts b/src/components/Tree/index.ts index 7df19cf8..169035aa 100644 --- a/src/components/Tree/index.ts +++ b/src/components/Tree/index.ts @@ -1,6 +1,6 @@ -import BasicTree from './src/Tree.vue'; +import BasicTree from './src/BasicTree.vue'; import './style'; export { BasicTree }; export type { ContextMenuItem } from '/@/hooks/web/useContextMenu'; -export * from './src/tree'; +export * from './src/types/tree'; diff --git a/src/components/Tree/src/Tree.vue b/src/components/Tree/src/BasicTree.vue similarity index 97% rename from src/components/Tree/src/Tree.vue rename to src/components/Tree/src/BasicTree.vue index 5fef510a..a4af4aed 100644 --- a/src/components/Tree/src/Tree.vue +++ b/src/components/Tree/src/BasicTree.vue @@ -1,6 +1,13 @@