@@ -4,6 +4,7 @@ import type { FormItemRule } from 'element-plus'
44import { get } from ' lodash'
55import type { Dict } from ' @/api/types'
66import bus from ' @/utils/bus'
7+ import { getUploadValidationMessage } from ' @/components/mk-drag-upload/validation'
78import FormItemLabel from ' ./FormItemLabel.vue'
89import type { DynamicFormTriggerMap , DynamicFormTriggerSetting , DynamicFormValue , FormField , FormFieldLabel , SerializedFormRule } from ' ./type'
910
@@ -95,7 +96,7 @@ const errorMessage = computed(() => {
9596 return fieldProps .value .err_msg
9697 }
9798 const label = isString (props .formField .label ) ? props .formField .label : props .formField .label ?.label
98- return ` ${label || props .formField .field } 不能为空 `
99+ return ` 请输入 ${label || props .formField .field }`
99100})
100101
101102function deserializeRule(rule : SerializedFormRule ): FormItemRule {
@@ -110,6 +111,20 @@ function deserializeRule(rule: SerializedFormRule): FormItemRule {
110111}
111112
112113const validationRules = computed <FormItemRule | FormItemRule []>(() => {
114+ if (props .formField .input_type === ' LocalFileUpload' ) {
115+ // 文件字段在提交时校验,错误统一由 MkDynamicsForm 使用 MsgWarning 提示。
116+ const uploadRules: FormItemRule [] = [
117+ {
118+ required: props .formField .required !== false ,
119+ validator : (_rule , value , callback ) => {
120+ const message = getUploadValidationMessage (Array .isArray (value ) ? value : [], props .formField .required !== false )
121+ callback (message ? new Error (message ) : undefined )
122+ },
123+ },
124+ ... (fieldProps .value .rules ?.map (deserializeRule ) ?? []),
125+ ]
126+ return uploadRules .map ((rule ) => ({ ... rule , trigger: [] }))
127+ }
113128 if (fieldProps .value .rules ) {
114129 return fieldProps .value .rules .map (deserializeRule )
115130 }
@@ -183,6 +198,7 @@ defineExpose({ validate })
183198 :style =" formItemStyle"
184199 :prop =" formField.field"
185200 :rules =" validationRules"
201+ :show-message =" formField.input_type !== 'LocalFileUpload'"
186202 :class =" fieldLabel && getFieldComponent(fieldLabel.input_type) ? 'mk-hide-asterisk' : ''"
187203 >
188204 <template v-if =" formField .label " #label >
0 commit comments