fix: 处理部分表单检测问题

This commit is contained in:
ZhuRui
2026-08-06 10:38:21 +08:00
parent 0a6d751e82
commit 8fdbf4ae06
3 changed files with 29 additions and 27 deletions
@@ -319,34 +319,36 @@ export default defineComponent({
// ---- 监听 type 变化,清理联动字段 ----
useEffect(() => {
if (!typeChanged.value) {
if (formData.type !== '1') formData.relatedEventId = undefined;
if (formData.type !== '2' && formData.type !== '3') formData.linkUrl = '';
typeChanged.value = true;
return;
}
const syncTypeFields = async () => {
if (!typeChanged.value) {
if (formData.type !== '1') formData.relatedEventId = undefined;
if (formData.type !== '2' && formData.type !== '3') formData.linkUrl = '';
typeChanged.value = true;
return;
}
if (formData.type !== '1') {
formData.relatedEventId = undefined;
formRef.value?.clearValidate('relatedEventId');
}
if (formData.type !== '2' && formData.type !== '3') {
formData.linkUrl = '';
}
const activeNames: string[] = [];
if (formData.type === '1') activeNames.push('relatedEventId');
if (formData.type === '2' || formData.type === '3') activeNames.push('linkUrl');
formRef.value?.clearValidate(['relatedEventId', 'linkUrl']);
if (activeNames.length) {
setTimeout(() => formRef.value?.validateFields(activeNames).catch(() => {}), 0);
}
if (formData.type !== '1') {
formData.relatedEventId = undefined;
formRef.value?.clearValidate('relatedEventId');
}
if (formData.type !== '2' && formData.type !== '3') {
formData.linkUrl = '';
}
const activeNames: string[] = [];
if (formData.type === '1') activeNames.push('relatedEventId');
if (formData.type === '2' || formData.type === '3') activeNames.push('linkUrl');
formRef.value?.clearValidate(['relatedEventId', 'linkUrl']);
if (activeNames.length) {
await formRef.value?.validateFields(activeNames).catch(() => {});
}
};
syncTypeFields();
}, [() => formData.type]);
/** 重新校验 Banner 图片字段,上传完成后清除或更新错误提示 */
const revalidateImageUrl = () => {
setTimeout(() => {
formRef.value?.validateFields(['imageUrl']).catch(() => {});
}, 0);
const revalidateImageUrl = async () => {
await formRef.value?.validateFields(['imageUrl']).catch(() => {});
};
// ---- 图片上传相关 ----
@@ -135,7 +135,7 @@ export function useBannerModel() {
const handleSearch = () => fetchList();
/** 重置 */
const handleReset = useThrottleFn(() => {
const handleReset = useThrottleFn(async () => {
filterForm.title = '';
filterForm.status = '';
pagination.reset();