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/lib/super-ui.css +1 -1
- package/lib/super-ui.js +48 -25
- package/lib/super-ui.umd.cjs +4 -4
- package/package.json +1 -1
- package/packages/fs-upload-list/src/fs-upload-list.vue +2 -2
- package/packages/super-grid/src/formValidatorUtil.js +73 -15
- package/packages/super-grid/src/normal-column-content.vue +0 -6
- package/packages/super-grid/src/utils.js +2 -2
- package/src/i18n/langs/cn.js +2 -1
- package/src/i18n/langs/en.js +2 -1
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
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
|
-
</
|
|
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
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
}
|
package/src/i18n/langs/cn.js
CHANGED
|
@@ -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: {
|
package/src/i18n/langs/en.js
CHANGED
|
@@ -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',
|