zhangxiao
2024-08-20 e47b788ff5f5c699c682999c95da17eb284ca21d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
let timer = 0;
 
// 定位错误位置提示到指定元素
export function triggError(params: {
    id?: string;
    class?: string;
    el?: Element;
    parentEle?: string;
    scrollOptons?: ScrollIntoViewOptions;
}): void {
    nextTick(() => {
        clearTimeout(timer);
        let pel: Element | null = window.document.body;
        let el: Element | null = null;
        if (params.parentEle) {
            pel = document?.querySelector(params.parentEle);
        }
        if (params.el) {
            el = params.el;
        } else if (params.class) {
            el = pel?.querySelector(params.class) || null;
        } else if (params.id) {
            el = pel?.querySelector(params.id) || null;
        }
        if (!params.scrollOptons) {
            params.scrollOptons = { block: "center", behavior: "smooth" };
        }
        el && el.scrollIntoView(params.scrollOptons);
        const currClass = el?.getAttribute("class") || "";
        if (!currClass?.includes("trigg-error")) el?.setAttribute("class", currClass.concat(" trigg-error"));
        timer = window.setTimeout(() => {
            const afterClass = (el?.getAttribute("class") || "")?.replace(/\s*trigg-error/g, "");
            el?.setAttribute("class", afterClass);
        }, 2000);
    });
}