forked from integrated_whb/integrated_whb_vue
26 lines
785 B
JavaScript
26 lines
785 B
JavaScript
import { ElMessage } from "element-plus";
|
|
import { getDataType } from "@/assets/js/utils.js";
|
|
|
|
export default function (ref, message = "请补全必填项!") {
|
|
const type = ["Function", "AsyncFunction"];
|
|
if (!type.includes(getDataType(ref?.value?.validate)))
|
|
throw new Error("不是有效的Element-Plus Form组件ref!");
|
|
return new Promise((resolve, reject) => {
|
|
ref.value.validate((valid) => {
|
|
if (valid) {
|
|
resolve(valid);
|
|
} else {
|
|
reject(valid);
|
|
ElMessage.warning(message);
|
|
setTimeout(() => {
|
|
const element = document.querySelectorAll(".el-form-item__error")[0];
|
|
element.scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "center",
|
|
});
|
|
}, 100);
|
|
}
|
|
});
|
|
});
|
|
}
|