agilebuilder-ui 1.0.90-tmp13 → 1.0.90-tmp15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agilebuilder-ui",
3
- "version": "1.0.90-tmp13",
3
+ "version": "1.0.90-tmp15",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./lib/super-ui.js",
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <span>
3
3
  <template v-if="!disabled">
4
4
  <template v-if="!isMobile">
5
5
  <el-input
@@ -120,7 +120,7 @@
120
120
  <template v-else>
121
121
  <fs-preview :entity="row" :file-set-obj="fileSetObj" :is-sql="isSql" :label="value" />
122
122
  </template>
123
- </div>
123
+ </span>
124
124
  </template>
125
125
 
126
126
  <script>
@@ -87,41 +87,99 @@ function getValidator(listCode) {
87
87
  }
88
88
  const gridParams = store.get(listCode)
89
89
  const editFieldInfos = gridParams.columns
90
+ const customRules = gridParams.options.customRules
90
91
  const rules = {}
91
92
  if (editFieldInfos) {
92
93
  editFieldInfos.forEach((editField) => {
93
- setRules(rules, editField, listCode)
94
+ setRules(rules, editField, listCode, customRules)
94
95
  })
95
96
  }
96
97
  // console.log('rules', rules)
97
98
  return rules
98
99
  }
99
100
 
100
- function setRules(rules, editField, listCode) {
101
+ function setRules(rules, editField, listCode, customRules) {
101
102
  const prop = editField.prop
102
103
  if (editField.groupHeader && editField.children && editField.children.length > 0) {
103
104
  // 组合表头时或者动态列,递归设置规则,
104
105
  editField.children.forEach((child) => {
105
- setRules(rules, child, listCode)
106
+ setRules(rules, child, listCode, customRules)
106
107
  })
107
108
  } else {
108
- if (prop && editField.validations && !isDisableEdit(prop, listCode)) {
109
- const validations = JSON.parse(editField.validations)
110
- validations.forEach((item) => {
111
- if (item.pattern) {
112
- // 后台传递的是正则字符串,不能直接使用
113
- item.pattern = new RegExp(item.pattern)
109
+ if(prop) {
110
+ // 获得当前列的自定义校验规则
111
+ const columnCustomRules = getColumnCustomRules(editField, customRules)
112
+ if (editField.validations && !isDisableEdit(prop, listCode)) {
113
+ let validations = JSON.parse(editField.validations)
114
+ validations.forEach((item) => {
115
+ if (item.pattern) {
116
+ // 后台传递的是正则字符串,不能直接使用
117
+ item.pattern = new RegExp(item.pattern)
118
+ }
119
+ })
120
+ validations = validations.concat(columnCustomRules)
121
+ if (prop.indexOf('.') > 0) {
122
+ setObjectPropRule(editField, rules, validations)
123
+ } else {
124
+ if (validations && validations.length > 0) {
125
+ rules[prop] = [...validations]
126
+ }
114
127
  }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ /**
133
+ * 获得当前列的自定义校验规则
134
+ * @param {*} editField
135
+ * @param {*} customRules
136
+ * @returns
137
+ */
138
+ function getColumnCustomRules(editField, customRules) {
139
+ let columnCustomRules = []
140
+ let requiredRule
141
+ const allFieldsName = '_all_fields'
142
+ let columnRule
143
+ if(customRules){
144
+ columnRule = customRules[prop]? customRules[prop]: customRules[allFieldsName]
145
+ }
146
+ if(columnRule && (columnRule.required || columnRule.rules)) {
147
+ // 表示配置的必填或其它验证规则时
148
+ const mustFillMsg = getI18n().t('imatrixUIMessage.mustFill', {
149
+ label: editField.label
150
+ })
151
+ columnCustomRules = columnRule.rules? JSON.parse(JSON.stringify(columnRule.rules)): null
152
+ if(columnCustomRules && columnCustomRules.length > 0){
153
+ // 获得必填验证规则
154
+ const requiredRules = columnCustomRules.filter(item=>item.required)
155
+ if(requiredRules && requiredRules.length > 0){
156
+ requiredRule = requiredRules[0]
157
+ }
158
+ }
159
+ if(columnRule.name === allFieldsName && columnCustomRules){
160
+ // 所有字段_all_fields的验证的message更新,补充“label”
161
+ columnCustomRules.forEach(item=>{
162
+ item.message = editField.label + item.message
115
163
  })
116
- if (prop.indexOf('.') > 0) {
117
- setObjectPropRule(editField, rules, validations)
118
- } else {
119
- if (validations && validations.length > 0) {
120
- rules[prop] = [...validations]
121
- }
164
+ }
165
+ if(!requiredRule && columnRule.required) {
166
+ // 当rules中没有配置必填验证,但是有required为true时,则封装必填验证规则,到集合中
167
+ if(!columnCustomRules){
168
+ columnCustomRules = []
122
169
  }
170
+ requiredRule = {
171
+ required: true,
172
+ message: mustFillMsg,
173
+ trigger: 'blur'
174
+ }
175
+ columnCustomRules.push(requiredRule)
176
+ }
177
+ if(requiredRule && !requiredRule.message) {
178
+ // 如果必填验证规则中message为空时,封装默认的必填验证规则,'_all_fields'可能会为空
179
+ requiredRule.message = mustFillMsg
123
180
  }
124
181
  }
182
+ return columnCustomRules
125
183
  }
126
184
  /**
127
185
  * 验证实体
@@ -528,10 +528,6 @@ export default {
528
528
  // }
529
529
  // return isLineEdit
530
530
  // },
531
- // requiredClass(){
532
- // console.log('computed------requiredClass=', this.myRequiredClass)
533
- // return this.myRequiredClass
534
- // },
535
531
 
536
532
  ...mapGetters(['preventReclick'])
537
533
  },
@@ -1032,9 +1028,7 @@ export default {
1032
1028
  }
1033
1029
  },
1034
1030
  changeRequired(required) {
1035
- console.log('changeRequired------required=', required)
1036
1031
  this.requiredClass = required? 'm-requried' : ''
1037
- console.log('changeRequired------requiredClass=', this.requiredClass)
1038
1032
  }
1039
1033
  },
1040
1034
  emits: ['refresData', 'refresPortData', 'refresPortsData', 'refresMainTableFields', 'prohibitToEdit']
@@ -264,8 +264,8 @@ export function isDisableEdit(prop, listCode, row) {
264
264
  }
265
265
  if (isDiabled === false) {
266
266
  // 表示不是禁止编辑的,继续校验自定义规则中是否是禁止编辑的
267
- if(gridParams.options.customRules && gridParams.options.customRules[prop]){
268
- const columnRules = gridParams.options.customRules[prop]
267
+ if(gridParams.options.customRules && (gridParams.options.customRules[prop] || gridParams.options.customRules['_all_fields'])){
268
+ const columnRules = gridParams.options.customRules[prop]? gridParams.options.customRules[prop]: gridParams.options.customRules['_all_fields']
269
269
  if(columnRules && columnRules.disabled){
270
270
  isDiabled = true
271
271
  }
@@ -83,7 +83,8 @@ const cn = {
83
83
  forbiddenExceptionLinkUrl: '请点击进行权限申请',
84
84
  forbiddenExceptionLinkUser: '如有疑问请联系',
85
85
  uploadFileTip: '上传的文件不超过{fileSize}M',
86
- asyncExportJumpMsg: '或点击我跳转到下载页面'
86
+ asyncExportJumpMsg: '或点击我跳转到下载页面',
87
+ mustFill: '{label} 必须填写'
87
88
  },
88
89
  // 列表组件
89
90
  superGrid: {
@@ -85,7 +85,8 @@ const en = {
85
85
  forbiddenExceptionLinkUrl: 'please click to apply',
86
86
  forbiddenExceptionLinkUser: 'if you have any questions,please contact',
87
87
  uploadFileTip: 'The file size should lower {fileSize}M',
88
- asyncExportJumpMsg: 'Or click me to jump to download page.'
88
+ asyncExportJumpMsg: 'Or click me to jump to download page.',
89
+ mustFill: '{label} must fill'
89
90
  },
90
91
  superGrid: {
91
92
  columnConfig: 'Column Config',