UNPKG

tdesign-mobile-vue

Version:
1 lines 19.5 kB
{"version":3,"file":"form.mjs","sources":["../../src/form/form.tsx"],"sourcesContent":["import { defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isArray, isBoolean, isEmpty, isFunction } from 'lodash-es';\nimport {\n Data,\n FormResetParams,\n FormValidateMessage,\n FormValidateParams,\n FormValidateResult,\n TdFormProps,\n ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext } from './const';\nimport { FormDisabledProvider } from './hooks';\nimport config from '../config';\nimport { renderContent } from '../shared';\nimport { preventDefault } from '../shared/dom';\nimport { FormItemValidateResult } from './form-item';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\ntype FormResetEvent = Event;\n// export type FormSubmitEvent = SubmitEvent; (for higher typescript version)\ntype FormSubmitEvent = Event;\ntype Result = FormValidateResult<TdFormProps['data']>;\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\nexport default defineComponent({\n name: `${prefix}-form`,\n props,\n setup(props, { expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const {\n disabled,\n showErrorMessage,\n labelWidth,\n labelAlign,\n contentAlign,\n data,\n colon,\n requiredMark,\n rules,\n errorMessage,\n resetType,\n } = toRefs(props);\n\n const formRef = ref<HTMLFormElement>();\n const children = ref<FormItemContext[]>([]);\n\n provide<FormDisabledProvider>('formDisabled', {\n disabled,\n });\n\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n contentAlign,\n data,\n colon,\n requiredMark,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const formClass = usePrefixClass('form');\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = <T extends Data>(validateResultList: FormItemValidateResult<T>[]) => {\n const result = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise<Result> => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n props.onValidate?.({\n validateResult: result,\n });\n return result;\n };\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = `${formClass.value}-item__${firstKey}`;\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n\n return result?.[Object.keys(result)?.[0]]?.[0]?.message || '';\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const validateOnly = async (params?: Omit<FormValidateParams, 'showErrorMessage'>) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n\n const submitParams = ref<Pick<FormValidateParams, 'showErrorMessage'>>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n preventDefault(e, true);\n }\n validate(submitParams.value).then((r) => {\n const firstError = getFirstError(r);\n // @ts-ignore\n props.onSubmit?.({\n validateResult: r,\n firstError,\n });\n });\n submitParams.value = undefined;\n };\n\n const submit = async (params?: Pick<FormValidateParams, 'showErrorMessage'>) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref<FormResetParams<Data>>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n preventDefault(e, true);\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n\n const reset = <FormData extends Data>(params?: FormResetParams<FormData>) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array<string>) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage<FormData>) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[`${child.name}`]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => {\n return (\n <form ref={formRef} class={formClass.value} onSubmit={(e) => onSubmit(e)} onReset={(e) => onReset(e)}>\n {renderTNodeJSX('default')}\n </form>\n );\n };\n },\n});\n"],"names":["prefix","config","requestSubmit","target","HTMLFormElement","Error","submitter","document","createElement","type","hidden","appendChild","click","removeChild","defineComponent","name","props","setup","expose","_ref","renderTNodeJSX","useTNodeJSX","_toRefs","toRefs","disabled","showErrorMessage","labelWidth","labelAlign","contentAlign","data","colon","requiredMark","rules","errorMessage","resetType","formRef","ref","children","provide","FormInjectionKey","reactive","renderContent","formClass","usePrefixClass","needValidate","fields","isArray","indexOf","concat","formatValidateResult","validateResultList","result","reduce","r","err","Object","assign","keys","forEach","key","isEmpty","validate","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","param","_props2$onValidate","_ref3","_ref3$trigger","trigger","showErrorMessage2","list","arr","wrap","_context","prev","next","value","filter","child","isFunction","String","map","Promise","all","sent","onValidate","validateResult","abrupt","stop","_x","apply","arguments","getFirstError","_result$Object$keys$","_Object$keys3","isBoolean","_Object$keys","_Object$keys2","_slicedToArray","firstKey","scrollToFirstError","tmpClassName","scrollTo","resArr","message","selector","_formRef$value$getEle","getElementsByClassName","_formRef$value$getEle2","dom","behavior","scrollIntoView","validateOnly","_ref4","_callee2","params","_ref5","_ref5$trigger","_context2","_x2","submitParams","onSubmit","e","preventSubmitDefault","preventDefault","then","_props2$onSubmit","firstError","submit","_ref6","_callee3","_context3","_x3","resetParams","onReset","_props2$onReset","_resetParams$value","resetField","_resetParams$value2","reset","clearValidate","resetHandler","setValidateMessage","validateMessage","length","includes","_createVNode"],"mappings":"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"}