xyc
2025-02-21 664db98c9e8595ce4dd636a27f480e3a08b81ff5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
function getTrigger(component) {
  let trigger = ''
 
  if (component.FComponentType && component.FComponentType === 'oneText') {
    trigger = 'blur'
  } else if (component.FComponentType && component.FComponentType === 'datePicker') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'select') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'multiText') {
    trigger = 'blur'
  } else if (component.FComponentType && component.FComponentType === 'radio') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'checkbox') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'dateRange') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'timePicker') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'timeRange') {
    trigger = 'change'
  } else if (component.FComponentType && component.FComponentType === 'inputNumber') {
    trigger = 'blur'
  } else if (component.FComponentType && component.FComponentType === 'upload') {
    trigger = ''
  }
 
  return trigger
}
 
function getRules(component) {
  const config = component.__config__
  const rules = []
 
  if (config.required) {
    rules.push({
      required: true,
      message: component.placeholder ? component.placeholder : `${config.label}不能为空`,
      trigger: getTrigger(component)
    })
  }
 
  if (config.regList && Array.isArray(config.regList)) {
    config.regList.forEach(item => {
      if (item.pattern) {
        rules.push({
          pattern: item.pattern,
          message: item.message,
          trigger: 'blur'
        })
      }
    })
  }
 
  return rules
}
 
// 构建表单数据
export function buildFormData(formJson, component, data) {
  // data.formData.name = ''
  data[formJson.formModel][component.__vModel__] = component.__config__.defaultValue ? component.__config__.defaultValue : ''
}
 
// 构建表单校验规则
export function buildFormRules(formJson, component, data) {
  const rules = getRules(component)
  if (rules.length > 0) {
    // data.rules.name = [{required: true, message: '请输入姓名', trigger: 'blur'}]
    data[formJson.formRules][component.__vModel__] = rules
  }
}
 
// 构建表单数据
export function buildDialogFormData(formJson, component, dialog, data) {
  // data.cityDialogFormData.name = ''
  data[dialog.FFormDataParamName][component.__vModel__] = component.__config__.defaultValue ? component.__config__.defaultValue : ''
}
 
// 构建表单校验规则
export function buildDialogFormRules(formJson, component, dialog, data) {
  const rules = getRules(component)
  if (rules.length > 0) {
    // data.cityDialogFormRules.name = [{required: true, message: '请输入姓名', trigger: 'blur'}]
    data[dialog.FFormRulesParamName][component.__vModel__] = rules
  }
}