export namespace CheckData {
    export interface DataCheck {
        scriptName: string,
        errorSysName: string,
        dataRule: string,
        deviceName: string,
        chnNum: string,
    }

    export interface PhaseCheckResult {
        // 检测源定值-标准值
        resultData: number,
        // 装置原始数据-被检值
        data: number,


        // 第几次谐波
        num?: number,
        //符合、不符合
        isData?: number,
        //最大误差值
        radius?: string,
    }

    /**
     * 用于定义 查看（设备）通道检测结果响应数据 类型
     */
    export interface ResCheckResult {
        dataA?: PhaseCheckResult | null,
        dataB?: PhaseCheckResult | null,
        dataC?: PhaseCheckResult | null,
        dataT?: PhaseCheckResult | null,

        // 第几次谐波
        //num: number | null,
        //符合、不符合
        isData?: number,
        //最大误差值
        radius?: string,
        //单位
        unit?: string,
    }

    /**
     * 用于定义 查看（设备）通道检测结果表格展示数据 类型
     */
    export interface CheckResult {
        stdA?: string,
        dataA?: string,
        errorA?: string,
        maxErrorA?: string,
        isDataA?: number,
        stdB?: string,
        dataB?: string,
        errorB?: string,
        maxErrorB?: string,
        isDataB?: number,
        stdC?: string,
        dataC?: string,
        errorC?: string,
        maxErrorC?: string,
        isDataC?: number,
        stdT?: string,
        dataT?: string,
        errorT?: string,
        maxErrorT?: string,
        isDataT?: number,

        //最大误差值
        maxError?: string,
        unit?: string,
        //符合、不符合
        result?: number,
    }

    /**
     * 用于定义 具体通道的原始数据类型
     */
    export interface RawDataItem {
        time?: string,
        harmNum?: number | null,
        dataA?: string,
        dataB?: string,
        dataC?: string,
        dataT?: string,
        unit?: string | null
    }

    export interface Device {
        deviceId: string;     //装置序号Id
        deviceName: string; //设备名称
        chnNum: number;   //设备通道数
    }

    // 用来描述检测脚本类型
    export interface ScriptItem {
        id: string,
        code: string,
        scriptName: string,
    }

    // 用来描述 检测数据-左侧树结构
    export interface TreeItem {
        scriptTypeName: string | null,
        sourceDesc: string | null,
        harmNum: number | null,
        index: number | null,
        fly: number | null,
        children: TreeItem[] | null,
    }

    // 用来描述 通道检测结果
    export enum ChnCheckResultEnum {
        UNKNOWN = -1,
        LOADING = 0,
        SUCCESS = 1,
        FAIL = 2,
        TIMEOUT = 3,
        ERRORDATA = 4
    }

    export interface DeviceCheckResult {
        deviceId: string,
        deviceName: string,
        chnResult: ChnCheckResultEnum[] //通道检测结果
    }

    //用来描述 某个脚本测试项对所有通道的检测结果
    export interface ScriptChnItem {
        scriptType: string
        scriptName?: string  //可以不要该属性，有点多余

        // 设备
        devices: Array<DeviceCheckResult>
    }

    export enum ButtonColorEnum {
        INFO = '#909399',
        LOADING = '#003078',
        SUCCESS = '#67c23a',
        WARNING = '#e6a23c',
        DANGER = '#f56c6c',
    }

    /**
     * 用于描述 （设备）通道检测结果展示的按钮类型
     */
    export interface ButtonResult {
        color: ButtonColorEnum
        icon: 'Minus' | 'Loading' | 'Close' | 'CircleCheckFilled' | 'Link' | 'WarnTriangleFilled'
    }

    /**
     * 用于描述 脚本检测结果展示的按钮类型
     */
    export interface ScriptChnViewItem {
        scriptType: string,
        scriptName?: string //脚本项名称，可以不要该属性，有点多余

        // 设备
        devices: Array<{
            deviceId: string,
            deviceName: string,
            chnResult: ButtonResult[],
        }>
    }


    /**
     * 定义检测日志类型
     */
    export interface LogItem {
        type: 'info' | 'warning' | 'error'
        log: string
    }
}




