This commit is contained in:
@jyuhsin
2025-07-31 17:40:26 +08:00
parent bcca78d121
commit c3e2365f39
43 changed files with 5108 additions and 94 deletions
@@ -653,6 +653,15 @@ td.no-b {
margin: 0 auto;
}
.left-span-label {
border-left: 4px solid var(--color-primary);
font-size: 15px;
color: var(--color-black);
font-weight: 600;
padding-left: 8px;
margin: 10px 0;
}
/**********start****************设置工作流表单el-description嵌套el-form的格式 必须要使用flow-task-form!!!***********************start*****************/
.flow-task-form .el-descriptions__table {
@@ -17,47 +17,48 @@ function autoEnhanceForm(formVm) {
const originalValidate = formVm.validate
formVm.validate = function(callback) {
originalValidate(async (valid, fields) => {
if (valid) {
callback?.(valid, fields)
} else {
const firstField = Object.keys(fields)[0]
const fieldErrors = fields[firstField]
const errorMessage = fieldErrors[0].message
let capturedFields;
let finalMessage = errorMessage
const promise = new Promise((resolve) => {
originalValidate.call(this, (valid, fields) => {
capturedFields = fields;
const formItem = formVm.fields?.find(item => item.prop === firstField)
if (errorMessage === '必填' && formItem && formItem.label) {
finalMessage = `${formItem.label} 必填`
}
// 提示
if (formVm.$message) {
formVm.$message({
message: finalMessage,
type: 'error',
})
if (valid) {
resolve(true);
} else {
alert(finalMessage)
}
const firstField = Object.keys(fields)[0];
const fieldErrors = fields[firstField];
const errorMessage = fieldErrors?.[0]?.message || '校验失败';
await formVm.$nextTick()
if (formItem && formItem.$el) {
const inputEl =
formItem.$el.querySelector('input') ||
formItem.$el.querySelector('textarea') ||
formItem.$el.querySelector('.el-input__inner') ||
formItem.$el.querySelector('.el-textarea__inner')
if (inputEl) {
inputEl.focus()
let finalMessage = errorMessage;
const formItem = this.fields?.find((item) => item.prop === firstField);
if (errorMessage === '必填' && formItem && formItem.label) {
finalMessage = `${formItem.label} 必填`;
}
if (this.$message) {
this.$message({ message: finalMessage, type: 'error' });
} else {
alert(finalMessage);
}
this.$nextTick(() => {
const inputEl =
formItem?.$el?.querySelector('input, textarea, .el-input__inner, .el-textarea__inner');
if (inputEl) inputEl.focus();
});
resolve(false);
}
callback?.(valid, fields)
}
})
});
});
if (typeof callback === 'function') {
promise.then(valid => callback(valid, capturedFields));
return;
}
return promise;
}
}