UNPKG

tdesign-mobile-vue

Version:
1 lines 35.5 kB
{"version":3,"file":"form-item.mjs","sources":["../../src/form/form-item.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue';\nimport {\n cloneDeep,\n get as lodashGet,\n set as lodashSet,\n isBoolean,\n isArray,\n isNil,\n isNumber,\n isString,\n template as lodashTemplate,\n} from 'lodash-es';\nimport { ChevronRightIcon } from 'tdesign-icons-vue-next';\nimport { validate } from './form-model';\n\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n ValidateStatus,\n} from './const';\nimport config from '../config';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport type FormItemValidateResult<T extends Data = Data> = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport default defineComponent({\n name: `${prefix}-form-item`,\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const formClass = usePrefixClass('form');\n const formItemClass = usePrefixClass('form__item');\n const { globalConfig } = useConfig('form');\n const { name } = toRefs(props);\n\n const form = inject(FormInjectionKey, undefined);\n\n const extraNode = computed(() => {\n const list = errorList.value;\n if (showErrorMessage.value && list[0]?.message) {\n return list[0]?.message;\n }\n if (successList.value.length) {\n return successList.value[0].message;\n }\n return null;\n });\n\n const formItemClasses = computed(() => [\n formItemClass.value,\n `${formItemClass.value}--bordered`,\n `${formClass.value}--${labelAlign.value}`,\n `${formClass.value}-item__${props.name}`,\n ]);\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const requiredMarkPosition = computed(() => {\n return form?.requiredMarkPosition;\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const labelClass = `${formClass.value}__label`;\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n const contentAlign = computed(() => (isNil(props.contentAlign) ? form?.contentAlign : props.contentAlign));\n\n const labelClasses = computed(() => [\n labelClass,\n {\n [`${labelClass}--required`]: needRequiredMark.value,\n [`${labelClass}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n [`${labelClass}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${labelClass}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${labelClass}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const labelStyle = computed(() => {\n if (labelWidth.value && labelAlign.value !== 'top') {\n return isNumber(labelWidth.value) ? { width: `${labelWidth.value}px` } : { width: labelWidth.value };\n }\n return {};\n });\n\n const freeShowErrorMessage = ref<boolean | undefined>(false);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (!errorList.value.length) return '';\n const type = errorList.value[0].type || 'error';\n return type === 'error' ? `${formItemClass.value}--error` : `${formItemClass.value}--warning`;\n });\n\n const contentClasses = computed(() => [`${formClass.value}__controls`, errorClasses.value]);\n const contentSlotClasses = computed(() => [\n `${formClass.value}__controls-content`,\n `${formClass.value}__controls--${contentAlign.value}`,\n ]);\n\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n\n const errorList = ref<ErrorListType[]>([]);\n const successList = ref<SuccessListType[]>([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, `${props.name}`));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType): Promise<any> => {\n if (!props.name) return null;\n\n if (resetType === 'empty') {\n // @ts-ignore\n lodashSet(form?.data, props.name, getEmptyValue());\n } else if (resetType === 'initial') {\n // @ts-ignore\n lodashSet(form?.data, props.name, initialValue.value);\n }\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed<FormErrorMessage>(\n () => form?.errorMessage ?? globalConfig.value?.errorMessage ?? {},\n );\n const innerRules = computed<FormRule[]>(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise<AnalysisValidateResult> => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item) => {\n Object.keys(item).forEach((key) => {\n const errorMsg = errorMessages.value[key as keyof FormErrorMessage];\n if (!item.message && errorMsg) {\n const compiled = lodashTemplate(errorMsg);\n const name = isString(props.label) ? props.label : props.name;\n item.message = compiled({\n name,\n validate: item[key as keyof AllValidateResult],\n });\n }\n });\n return item as ErrorListType;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n return result;\n };\n const validateHandler = async <T extends Data = Data>(\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise<FormItemValidateResult<T>> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList || [];\n errorList.value = innerErrorList || [];\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList?.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [`${name.value}`]: innerErrorList?.length === 0 ? true : resultList,\n } as FormItemValidateResult<T>;\n };\n\n const validateOnly = async <T extends Data>(trigger: ValidateTriggerType): Promise<FormItemValidateResult<T>> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult<T>;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed<ValueType>(() => form?.data && lodashGet(form?.data, `${name.value}`));\n const initialValue = ref<ValueType>(undefined);\n\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => {\n const renderRightIconContent = () => {\n if (!props.arrow) {\n return null;\n }\n return <ChevronRightIcon size=\"24px\" style={{ color: 'rgba(0, 0, 0, .4)' }} />;\n };\n const renderLabelContent = () => {\n if (Number(labelWidth.value) === 0) {\n return null;\n }\n return renderTNodeJSX('label');\n };\n const renderHelpNode = () => {\n const helpNode = renderTNodeJSX('help');\n if (!helpNode) {\n return null;\n }\n return (\n <div class={[`${formItemClass.value}-help`, `${formClass.value}__controls--${contentAlign.value}`]}>\n {helpNode}\n </div>\n );\n };\n const renderExtraNode = () => {\n if (!extraNode.value) {\n return null;\n }\n return (\n <div class={[`${formItemClass.value}-extra`, `${formClass.value}__controls--${contentAlign.value}`]}>\n {extraNode.value}\n </div>\n );\n };\n\n return (\n <div class={[...formItemClasses.value, renderHelpNode() ? `${formClass.value}__item-with-help` : '']}>\n <div class={[`${formItemClass.value}-wrap`, `${formItemClass.value}--${labelAlign.value}`]}>\n <div class={labelClasses.value} style={labelStyle.value}>\n <label for={props.for}>{renderLabelContent()}</label>\n {hasColon.value && globalConfig.value.colonText}\n </div>\n <div class={contentClasses.value} style={contentStyle.value}>\n <div class={contentSlotClasses.value}>{renderTNodeJSX('default')}</div>\n {renderHelpNode()}\n {renderExtraNode()}\n </div>\n </div>\n {renderRightIconContent()}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","formClass","usePrefixClass","formItemClass","_useConfig","useConfig","globalConfig","_toRefs","toRefs","form","inject","FormInjectionKey","extraNode","computed","_list$","list","errorList","value","showErrorMessage","message","_list$2","successList","length","formItemClasses","concat","labelAlign","needRequiredMark","_props2$requiredMark","requiredMark","isRequired","innerRules","filter","rule","required","requiredMarkPosition","hasLabel","label","hasColon","colon","labelClass","isNil","labelWidth","contentAlign","labelClasses","_defineProperty","labelStyle","isNumber","width","freeShowErrorMessage","ref","isBoolean","errorClasses","type","contentClasses","contentSlotClasses","contentStyle","marginLeft","verifyStatus","ValidateStatus","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","getEmptyValue","Object","prototype","toString","call","lodashGet","data","emptyValue","resetField","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resetType","_args","arguments","wrap","_context","prev","next","undefined","abrupt","lodashSet","initialValue","nextTick","stop","apply","errorMessages","_ref4","_form$errorMessage","_globalConfig$value","errorMessage","_props2$rules","rules","index","lastIndexOf","pRuleName","slice","analysisValidateResult","_ref5","_callee2","trigger","_result$rules","result","_context2","resultList","allowSetValue","item","validate","map","keys","forEach","key","errorMsg","compiled","lodashTemplate","isString","_x","validateHandler","_ref6","_callee3","_yield$analysisValida","innerSuccessList","innerErrorList","_context3","sent","FAIL","SUCCESS","_x2","_x3","validateOnly","_ref8","_callee4","_yield$analysisValida2","_context4","_x4","setValidateMessage","validateMessage","isArray","_objectSpread","context","reactive","onMounted","cloneDeep","children","push","onBeforeUnmount","ctx","watch","_callee5","_context5","deep","JSON","stringify","join","handleBlur","_callee6","_context6","provide","FormItemInjectionKey","renderRightIconContent","arrow","_createVNode","ChevronRightIcon","color","renderLabelContent","Number","renderHelpNode","helpNode","renderExtraNode","_toConsumableArray","for","colonText"],"mappings":"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"}