import { ElMessageBox } from "element-plus";

enum ErrorReport {
    /**
     * 已发生类型错误
     */
    TYPE_ERROR = "TypeError",
    /**
     * 已发生语法错误
     */
    SYNTAX_ERROR = "SyntaxError",
    /**
     * 已发生非法引用
     */
    REFERENCE_ERROR = "ReferenceError",
    /**
     * 已发生超出数字范围的错误-边界错误
     */
    RANGE_ERROR = "RangeError",
    /**
     * URL错误
     */
    URI_ERROR = "URIError",
    /**
     * 请求错误
     */
    ERROR = "Error"
}

/**
 * 报错处理显示
 * @returns 
 */
export function useErrorConfirm() {

    function report(error) {
        const errorObj = {
            name: error?.name,//错误类型
            message: error?.message,//报错内容
            stack: error?.stack,//报错主体内容
            params: error?.params//关联的数据
        };
        console.log(errorObj);

        // const showError = window.sessionStorage.getItem("lyc")
        const params = JSON.stringify(errorObj.params, null, 1);
        // <div>关联参数：</div>
        // <div>
        //     <pre id='preId'>${params}</pre>
        // </div>
        ElMessageBox.alert(`
            <div>
                <div>错误类型：${errorObj.name}</div>
                <div>错误提示：${errorObj.message}</div>
                <div>报错主体内容：</div>
                <pre id='preId'>${errorObj.stack}</pre>
            </div>
        `, '错误提示', {
            confirmButtonText: 'OK',
            dangerouslyUseHTMLString: true,
        })
        // if (showError) {
        //     switch (errorObj.name) {
        //         case ErrorReport.TYPE_ERROR:
        //             break;
        //         case ErrorReport.SYNTAX_ERROR:

        //             break;
        //         case ErrorReport.REFERENCE_ERROR:

        //             break;
        //         case ErrorReport.RANGE_ERROR:

        //             break;
        //         case ErrorReport.URI_ERROR:

        //             break;
        //         case ErrorReport.ERROR:

        //             break;
        //         default:

        //             break;
        //     }
        // }
    }

    return {
        report
    }
}