tav-ui
Version:
1 lines • 17.8 kB
Source Map (JSON)
{"version":3,"file":"form2.mjs","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, onMounted, reactive, ref, unref, watch } from 'vue'\nimport { Form, Row } from 'ant-design-vue'\nimport { dateUtil } from '@tav-ui/utils/dateUtil'\nimport { deepMerge } from '@tav-ui/utils/basic'\nimport { useModalContext } from '@tav-ui/components/modal/src/hooks/useModalContext'\nimport FormAction from './components/FormAction.vue'\nimport FormItem from './components/FormItem'\nimport { dateItemType } from './helper'\nimport useAdvanced from './hooks/useAdvanced'\nimport { useAutoFocus } from './hooks/useAutoFocus'\nimport { createFormContext } from './hooks/useFormContext'\nimport { useFormEvents } from './hooks/useFormEvents'\nimport { useFormValues } from './hooks/useFormValues'\nimport { formProps } from './props'\nimport type dayjs from 'dayjs'\n\nimport type { Ref } from 'vue'\nimport type { FormActionType, FormProps, FormSchema } from './types/form'\nimport type { AdvanceState } from './types/hooks'\n// import { cloneDeep } from 'lodash-es';\ntype Recordable<T = any> = Record<string, T>\ntype Nullable<T> = T | null\nexport default defineComponent({\n name: 'TaForm',\n components: { FormItem, Form, Row, FormAction },\n props: formProps,\n emits: ['advanced-change', 'reset', 'submit', 'register'],\n setup(props, { emit, attrs }) {\n const formModel = reactive<Recordable>({})\n const modalFn = useModalContext()\n\n const advanceState = reactive<AdvanceState>({\n isAdvanced: true,\n hideAdvanceBtn: false,\n isLoad: false,\n actionSpan: 6,\n })\n\n const defaultValueRef = ref<Recordable>({})\n const isInitedDefaultRef = ref(false)\n const propsRef = ref({})\n const schemaRef = ref<Nullable<FormSchema[]>>(null)\n const formElRef = ref<Nullable<FormActionType>>(null)\n\n const prefixCls = 'ta-basic-form'\n\n // Get the basic configuration of the form\n const getProps = computed((): FormProps => {\n // 这两行为了老项目做兼容,最早editable都在shcmeas上配置着,后面放到form上,为了改动小,这样兼容下\n const mergeData = { ...props, ...unref(propsRef) } as FormProps\n mergeData.editable =\n mergeData.editable || mergeData.schemas?.some((v) => v.editable !== undefined)\n return mergeData\n })\n\n const getFormClass = computed(() => {\n // ::==================== i7eo:更新 ///// start ///// ====================:: //\n const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any)\n const isEditable = unref(getProps).editable\n let hasEditableFormItemNums = 0\n if (isEditable) {\n hasEditableFormItemNums++\n } else {\n for (const schema of schemas) {\n if (Reflect.has(schema, 'editable')) hasEditableFormItemNums++\n }\n }\n\n return [\n prefixCls,\n {\n [`${prefixCls}--compact`]: unref(getProps).compact,\n [`${prefixCls}--editable`]: hasEditableFormItemNums > 0,\n },\n ]\n // ::==================== i7eo:更新 ///// end ///// ====================:: //\n })\n\n // Get uniform row style and Row configuration for the entire form\n const getRow = computed((): Recordable => {\n const { baseRowStyle = {}, rowProps } = unref(getProps)\n return {\n style: baseRowStyle,\n ...rowProps,\n }\n })\n\n const getBindValue = computed(() => ({ ...attrs, ...props, ...unref(getProps) } as Recordable))\n\n const getSchema = computed((): FormSchema[] => {\n const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any)\n for (const schema of schemas) {\n const { defaultValue, component } = schema\n\n // handle date type\n if (defaultValue && component && dateItemType.includes(component)) {\n if (!Array.isArray(defaultValue)) {\n schema.defaultValue = dateUtil(defaultValue)\n } else {\n const def: dayjs.Dayjs[] = []\n defaultValue.forEach((item) => {\n def.push(dateUtil(item))\n })\n schema.defaultValue = def\n }\n }\n\n // if (isEditable) schema.editable = true\n }\n if (unref(getProps).showAdvancedButton)\n return schemas.filter((schema) => schema.component !== 'Divider') as FormSchema[]\n else return schemas as FormSchema[]\n })\n\n const { handleToggleAdvanced } = useAdvanced({\n advanceState,\n emit,\n getProps,\n getSchema,\n formModel,\n defaultValueRef,\n })\n\n const { handleFormValues, initDefault } = useFormValues({\n getProps,\n defaultValueRef,\n getSchema,\n formModel,\n })\n\n useAutoFocus({\n getSchema,\n getProps,\n isInitedDefault: isInitedDefaultRef,\n formElRef: formElRef as Ref<FormActionType>,\n })\n\n const {\n handleSubmit,\n setFieldsValue,\n clearValidate,\n validate,\n validateFields,\n getFieldsValue,\n updateSchema,\n resetSchema,\n appendSchemaByField,\n removeSchemaByFiled,\n resetFields,\n scrollToField,\n } = useFormEvents({\n emit,\n getProps,\n formModel,\n getSchema,\n defaultValueRef,\n formElRef: formElRef as Ref<FormActionType>,\n schemaRef: schemaRef as Ref<any[]>,\n handleFormValues,\n })\n\n createFormContext({\n resetAction: resetFields,\n submitAction: handleSubmit,\n })\n\n watch(\n () => unref(getProps).model,\n () => {\n const { model } = unref(getProps)\n if (!model) return\n setFieldsValue(model)\n },\n {\n immediate: true,\n }\n )\n\n watch(\n () => unref(getProps).schemas,\n (schemas) => {\n resetSchema(schemas ?? [])\n }\n )\n\n watch(\n () => getSchema.value,\n (schema) => {\n nextTick(() => {\n // Solve the problem of modal adaptive height calculation when the form is placed in the modal\n modalFn?.redoModalHeight?.()\n })\n if (unref(isInitedDefaultRef)) return\n\n if (schema?.length) {\n initDefault()\n isInitedDefaultRef.value = true\n }\n }\n )\n\n async function setProps(formProps: Partial<FormProps>): Promise<void> {\n propsRef.value = deepMerge(unref(propsRef) || {}, formProps)\n }\n\n function setFormModel(key: string, value: any) {\n formModel[key] = value\n const { validateTrigger } = unref(getBindValue)\n if (!validateTrigger || validateTrigger === 'change')\n validateFields([key]).catch((_) => {\n // eslint-disable-next-line no-console\n // console.warn(_)\n })\n }\n\n function handleEnterPress(e: KeyboardEvent) {\n const { autoSubmitOnEnter } = unref(getProps)\n if (!autoSubmitOnEnter) return\n if (e.key === 'Enter' && e.target && e.target instanceof HTMLElement) {\n const target: HTMLElement = e.target as HTMLElement\n if (target && target.tagName && target.tagName.toUpperCase() == 'INPUT') handleSubmit()\n }\n }\n\n const formActionType: Partial<FormActionType> = {\n getFieldsValue,\n setFieldsValue,\n resetFields,\n updateSchema,\n resetSchema,\n setProps,\n removeSchemaByFiled,\n appendSchemaByField,\n clearValidate,\n validateFields,\n validate,\n submit: handleSubmit,\n scrollToField,\n }\n\n onMounted(() => {\n initDefault()\n emit('register', formActionType)\n })\n\n return {\n getBindValue,\n handleToggleAdvanced,\n handleEnterPress,\n formModel,\n defaultValueRef,\n advanceState,\n getRow,\n getProps,\n formElRef,\n getSchema,\n formActionType: formActionType as any,\n setFormModel,\n getFormClass,\n getFormActionBindProps: computed((): Recordable => ({ ...getProps.value, ...advanceState })),\n ...formActionType,\n }\n },\n})\n</script>\n<template>\n <Form\n v-bind=\"getBindValue\"\n ref=\"formElRef\"\n :class=\"getFormClass\"\n :model=\"formModel\"\n @keypress.enter=\"handleEnterPress\"\n >\n <Row v-bind=\"getRow\">\n <!-- :style=\"{ 'flex-direction': getProps.layout === 'vertical' ? 'column' : 'initial' }\" -->\n <slot name=\"formHeader\" />\n <template v-for=\"schema in getSchema\" :key=\"schema.field\">\n <FormItem\n :table-action=\"tableAction\"\n :form-action-type=\"formActionType\"\n :schema=\"schema\"\n :form-props=\"getProps\"\n :all-default-values=\"defaultValueRef\"\n :form-model=\"formModel\"\n :set-form-model=\"setFormModel\"\n >\n <template v-for=\"item in Object.keys($slots)\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\" />\n </template>\n </FormItem>\n </template>\n\n <FormAction v-bind=\"getFormActionBindProps\" @toggle-advanced=\"handleToggleAdvanced\">\n <template\n v-for=\"item in ['resetBefore', 'submitBefore', 'advanceBefore', 'advanceAfter']\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" />\n </template>\n </FormAction>\n <slot name=\"formFooter\" />\n </Row>\n </Form>\n</template>\n"],"names":["Form","_resolveComponent","_openBlock","_createBlock","_mergeProps","_createElementBlock","_Fragment","_renderList","_createSlots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}