图形页面 - 脚本

参照版本: Web 3.7.2-241227001

简介

图形页面使用JavaScript语言

JavaScript 教程: https://www.w3school.com.cn/js/index.asp

JS & DOM 参考手册: https://www.w3school.com.cn/jsref/index.asp

除了 JavaScript语言、BOM、DOM 所给出的类与方法外,还引入了很多第三方插件: jQuery、bootstrap、lobibox、highcharts、bootstrap-datetimepicker、socket.io、zTree、moment、amap。

除了这些还有一些定制函数提供使用: 获取控件属性的getAttr、设置控件属性的setAttr、获取实时数据的getPointValue、获取历史数据的getDbInfo 等。

第三方插件

  1. jQuery

    版本号: 3.7.1

    网站: https://jquery.com/

  2. bootstrap

    版本号: 3.3.7

    网站: https://v3.bootcss.com/

  3. lobibox

    版本号: 1.2.4

    网站: https://github.com/arboshiki/lobibox

  4. highcharts

    版本号: 8.2.0

    网站: https://www.highcharts.com/

  5. bootstrap-datetimepicker

    版本号: 4.17.47

    网站: https://github.com/Eonasdan/bootstrap-datetimepicker/

  6. socket.io

    版本号: 2.0.4

    网站: https://socket.io/

  7. zTree

    版本号: 3.5.29

    网站: https://tool.oschina.net/uploads/apidocs/ztree3.2/api/API_cn.html

  8. moment

    版本号: 2.19.4

    网站: http://momentjs.cn/

  9. amap

    版本号: 2.0

    网站: https://lbs.amap.com/

定制函数

控件操作

getAttr(viewId, attrId)

获取控件的属性值

参数:

  • viewId ( string ): 控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • attrId ( string ): 控件属性ID

返回值:

  • ( number | string ): 控件属性值

范例:

获取ID为"point_1"的控件的 x 属性值:

let value = getAttr("point_1", "x");

获取ID为"group_1"的控件下的"point_1"的控件的 x 属性值:

let value = getAttr("group_1 point_1", "x");

TS声明:

declare function getAttr(
    viewId: string,
    attrId: string
): number | string;

setAttr(viewId, attrId, value), setAttr(viewId, attrObj)

设置控件属性值

参数:

  • viewId ( string ): 控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • attrId ( string ): 控件属性ID
  • value ( any ): 属性值
  • attrObj ( { [attrId: string]: any } ): 需要设置的属性列表,这样可以一次设置多个属性。格式:
    {
        attrId: value,}
    

范例:

将ID为"point_1"的控件的x坐标值改为100,也就是将控件横向移动到100像素的位置:

setAttr("point_1", "x", "100");

修改ID为"point_1"的控件属性,将控件位置移动到坐标为[100, 200]的位置,并把他的大小改为20像素:

setAttr("point_1", {
    x: "100",
    y: "200",
    width: "20"
});

TS声明:

declare function setAttr(
    viewId: string,
    attrId: string,
    value: any
): void;
declare function setAttr(
    viewId: string,
    attrObj: {
        [attrId: string]: any
    }
): void;

triggerViewEvent(viewId, eventId)

主动执行控件的事件代码

参数:

  • viewId ( string ): 控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • eventId ( string ): 事件属性(屏幕刷新: onRefresh、点击事件: onclick、修改事件: onchange)的属性ID

范例:

执行ID为"table_0"的控件的点击事件代码:

triggerViewEvent("table_0", "onclick");

TS声明:

declare function triggerViewEvent(
    viewId: string,
    eventId: string
): void;

getCellList(tableId)

获取表格的单元格ID列表

参数:

  • tableId ( string ): 表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

  • ( Array<Array<string>> ): 二维数组,数组第一层是表格的行,第二层是当前行的各个单元格的ID值

范例:

获取ID为"table_0"的表格下的单元格ID列表:

let cellList = getCellList("table_0");

获取ID为"table_0"的表格下的第1行第5列的单元格ID:

let cellId = getCellList("table_0")[0][4];

TS声明:

declare function getCellList(
    tableId: string
): Array<Array<string>>;

getChartAttr(viewId)

获取图表控件的基本配置信息

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

范例:

获取ID为"chartLine_0"的基本配置信息:

let chartAttr = getChartAttr("chartLine_0");

TS声明:

declare function getChartAttr(
    viewId: string
): Highcharts.Options;

setChartAttr(viewId, chartAttr)

设置图表控件配置信息

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • chartAttr ( Highcharts.Options ): 图表控件配置信息

范例:

改变图例的背景颜色:

let chartAttr = getChartAttr("chartColumn_0");
chartAttr.legend.backgroundColor = "#FCFFC5";
setChartAttr("chartColumn_0", chartAttr);

TS声明:

declare function setChartAttr(
    viewId: string,
    chartAttr: Highcharts.Options
): void;

addSeriesForChart(viewId, seriesName, seriesData, seriesType, opt)

向图表控件添加一组数据

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • seriesName ( string ): 数据组名称,名称会显示在图例、数据点提示框等地方
  • seriesData ( Array<[number | string, number]> ): 二维数组,描述需要显示的数据
  • seriesType ( string ): 描述展示方式,使用什么方式展示数据,可省略,默认为图面类型对应图形。
    可用值:line(折线图),spline(曲线图),column(纵向柱状图),bar(横向柱状图),area(面积图),areaspline(曲线面积图),pie(饼图)
  • opt ( Highcharts.SeriesOptionsType ): 其他参数,可省略。详细参考: https://api.highcharts.com/highcharts/series

范例:

向ID为"chartLine_0"的折线图里添加一组名称为"test"的柱状图,并带有阴影效果:

addSeriesForChart(
    "chartLine_0", 
    "test",
    [
        ["Mon.", 10], ["Tues.", 23], ["Wed.", 32], ["Thur.", 45],
        ["Fri.", 34], ["Sat.", 32], ["Sun.", 10]
    ],
    "column",
    {
        shadow: true
    }
);

addSeriesForChart - 范例

TS声明:

declare function addSeriesForChart(
    viewId: string,
    seriesName: string,
    seriesData: Array<[number | string, number]>,
    seriesType?: string,
    opt?: Highcharts.SeriesOptionsType
): void;

addPointForChart(viewId, seriesNo, data)

向图表控件的一个数据组里,添加一个数据,并删除数据组中第一个数据,有动态效果

参数:

  • viewId ( string ): 图表控件ID,图表至少要存在一组数据
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • seriesNo ( number ): 指定图表中的哪组数据,从0开始
  • data ( [number, number] ): 添加的数据,包含数据的 x值(第一个数字)和 y值(第二个数字)

范例:

向ID为"chartLine_0"的折线图的第一组数据添加一个数据:

addPointForChart("chartLine_0", 0, [7, 23]);

addPointForChart - 范例

TS声明:

declare function addPointForChart(
    viewId: string,
    seriesNo: number,
    data: [number, number]
): void;

getChartObj(viewId)

获取图表控件的Chart对象

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

范例:

获取ID为"chartLine_0"的图表的Chart对象:

let chartObj = getChartObj("chartLine_0");

TS声明:

declare function getChartObj(
    viewId: string
): Highcharts.Chart;

exportCSV(viewId, fileName)

将表格、图表中的数据导出为CSV文件

参数:

  • viewId ( string ): 图表或表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • fileName ( string ): 导出文件的默认名称

范例:

导出ID为"chartColumn_0"的图表的数据,文件默认名为exportFile:

exportCSV("chartColumn_0", "exportFile");

TS声明:

declare function exportCSV(
    viewId: string,
    fileName: string
): void;

getZTreeObj(viewId)

获取树控件的zTree对象

参数:

  • viewId ( string ): 树状图控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

范例:

获取ID为"tree_0"的树控件的zTree对象:

let zTreeObj = getZTreeObj("tree_0");

TS声明:

declare function getZTreeObj(
    viewId: string
): IzTreeObj;

getMapObj(viewId)

获取地图控件的Map对象

参数:

  • viewId ( string ): 地图控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

范例:

获取ID为"map_0"的地图控件的Map对象:

let mapObj = getMapObj("map_0");

TS声明:

declare function getMapObj(
    viewId: string
): AMap.Map;

mapFuncExec(func, args)

在地图加载完成后执行代码。
因地图是一个异步加载的控件,如果直接对地图进行操作,可能在执行各种事件代码时,地图还没有加载完成。
使用该函数执行对地图的操作,可以在地图加载完成后执行参数中的函数(已经加载完成则直接执行)

参数:

  • func ( (...args: Array<any>) => any ): 需要执行的函数
  • args ( Array<any> ): 传递给函数的参数

范例:

在地图插件加载完成后计算 1 + 2,把结果在浏览器控制台中打印出来:

mapFuncExec(
    function (a, b) {
        console.log(a + b);
    },
    [1, 2]
);

TS声明:

declare function mapFuncExec(
    func: (
        ...args: Array<any>
    ) => any,
    args: Array<any>
): void;

getIFrameWindow(viewId)

获取页面控件引入的子页面的Window对象

参数:

  • viewId ( string ): 页面嵌入控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

范例:

获取ID为"iframe_0"的页面嵌入控件 打开的子页面的Window对象:

let frameWindow = getIFrameWindow("iframe_0");

如果需要在父页面中设置子页面中的控件:

getIFrameWindow("iframe_0").setAttr("point_1", "x", "100");

上面的代码 设置了ID为"iframe_0"的页面下的ID为"point_1"的点,把他的x属性设置成了"100"。

也就是说可以通过得到的Window对象对子页面进行操作,不过需要满足浏览器的同源策略( https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

另外如果要从 子页面设置父页面中的控件

window.parent.setAttr("point_1", "x", "100");

上面的代码 设置了父页面的ID为"point_1"的点,把他的x属性设置成了"100",同样需要满足浏览器的同源策略。

如果需要嵌入一个不同源的页面,还需要相互传递数据,可以用window.postMessage方法,详细使用方法可以查看链接:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

TS声明:

declare function getIFrameWindow(
    viewId: string
): Window;

ezvizPlayer.play(viewId)

控制萤石播放器播放

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 开始播放:

ezvizPlayer.play("ezvizVideo_0");

TS声明:

declare namespace ezvizPlayer {
    function play(
        viewId: string
    ): void;
}

ezvizPlayer.stop(viewId)

控制萤石播放器停止播放

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 停止播放:

ezvizPlayer.stop("ezvizVideo_0");

TS声明:

declare namespace ezvizPlayer {
    function stop(
        viewId: string
    ): void;
}

ezvizPlayer.capturePicture(viewId, fileName)

控制萤石播放器截图

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • fileName ( string ): 截图文件的默认名称

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 截图并下载,文件默认名称为"test":

ezvizPlayer.capturePicture("ezvizVideo_0", "test");

TS声明:

declare namespace ezvizPlayer {
    function capturePicture(
        viewId: string,
        fileName: string
    ): void;
}

ezvizPlayer.openSound(viewId)

控制萤石播放器开启声音

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 开启声音:

ezvizPlayer.openSound("ezvizVideo_0");

TS声明:

declare namespace ezvizPlayer {
    function openSound(
        viewId: string
    ): void;
}

ezvizPlayer.closeSound(viewId)

控制萤石播放器关闭声音

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 关闭声音:

ezvizPlayer.closeSound("ezvizVideo_0");

TS声明:

declare namespace ezvizPlayer {
    function closeSound(
        viewId: string
    ): void;
}

ezvizPlayer.startSave(viewId, fileName)

控制萤石播放器开始录制视频

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • fileName ( string ): 录制视频文件的默认名称

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 开始录制视频,文件默认名称为"test":

ezvizPlayer.startSave("ezvizVideo_0", "test");

TS声明:

declare namespace ezvizPlayer {
    function startSave(
        viewId: string,
        fileName: string
    ): void;
}

ezvizPlayer.stopSave(viewId)

控制萤石播放器结束录制视频

参数:

  • viewId ( string ): 萤石云播放器控件的ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

范例:

控制ID为"ezvizVideo_0"的萤石云播放器控件 结束录制视频:

ezvizPlayer.stopSave("ezvizVideo_0");

TS声明:

declare namespace ezvizPlayer {
    function stopSave(
        viewId: string
    ): void;
}

getEzvizAccessToken(accountName, noLoadingPrompt)

获取萤石服务AccessToken(需要先配置萤石服务)

参数:

  • accountName ( string ): 萤石服务账号名称
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<string> ): 萤石服务AccessToken

范例:

获取账号名称为"萤石账号_1"的萤石服务账号 的AccessToken:

let data = await getEzvizAccessToken("萤石账号_1");
console.log(data);

TS声明:

declare function getEzvizAccessToken(
    accountName: string,
    noLoadingPrompt?: boolean
): Promise<string>;

页面切换

jumpPage.to(pageName, para)

跳转页面

参数:

  • pageName ( string ): 页面名称
  • para ( any ): 传递到下个页面的参数,可省略,内容必须可以被序列化。可以在下个页面通过调用 getPagePara 函数获取参数

范例:

跳转到"screen_0"页面:

jumpPage.to("screen_0");

跳转到"screen_0"页面,并传递参数:

jumpPage.to("screen_0", {
    test: "测试"
});

TS声明:

declare namespace jumpPage {
    function to(
        pageName: string,
        para?: any
    ): void;
}

jumpPage.replace(pageName, para)

用新的页面替换当前页面。
与 jumpPage.to() 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中,这样用户回退时,将不会再跳转到该页面。
可以参考Location.assign()与Location.replace()的区别: https://developer.mozilla.org/zh-CN/docs/Web/API/Location/replace

参数:

  • pageName ( string ): 页面名称
  • para ( any ): 传递到下个页面的参数,可省略,内容必须可以被序列化。可以在下个页面通过调用 getPagePara 函数获取参数

范例:

跳转到"screen_0"页面,并传递参数:

jumpPage.replace("screen_0", {
    test: "测试"
});

TS声明:

declare namespace jumpPage {
    function replace(
        pageName: string,
        para?: any
    ): void;
}

jumpPage.back(num)

返回页面

参数:

  • num ( number ): 返回层数,可选参数,默认为1

范例:

返回到上一个页面:

jumpPage.back();

TS声明:

declare namespace jumpPage {
    function back(
        num?: number
    ): void;
}

getPagePara()

获取跳转页面传递过来的参数

返回值:

  • ( any ): 跳转页面传递过来的参数

范例:

获取跳转页面传递过来的参数,在浏览器控制台中打印出来:

console.log(getPagePara());

TS声明:

declare function getPagePara(): any;

getPageUrl(pageName, para)

获取页面的URL。

参数:

  • pageName ( string ): 页面名称
  • para ( any ): 传递到下个页面的参数,可省略,内容必须可以被序列化。可以在下个页面通过调用 getPagePara 函数获取参数

返回值:

  • ( string ): 页面的URL,相对路径

范例:

跳转到"screen_0"页面:

console.log(getPageUrl("screen_0"));

跳转到"screen_0"页面,并传递参数:

console.log(
    getPageUrl("screen_0", {
        test: "测试"
    })
);

TS声明:

declare function getPageUrl(
    pageName: string,
    para?: any
): string;

jumpLink(url)

打开一个新的浏览器窗口跳转链接,可以通过这个函数打开跳转到其他页面

参数:

  • url ( string ): 要跳转页面的地址

范例:

在新的浏览器窗口打开百度网页:

jumpLink("http://www.baidu.com/");

TS声明:

declare function jumpLink(
    url: string
): void;

获取点

getChannelList()

获取通道名称列表

返回值:

  • ( Array<string> ): 通道名称列表

范例:

获取通道名称列表,在浏览器控制台中打印出来:

console.log(
    getChannelList()
);

TS声明:

declare function getChannelList(): Array<string>;

getLinkList(channelName)

获取通道下的链接名称列表。
只有Net类型的通道有链接,所以只有Net类型的通道需要使用这个函数,其他通道获取会返回一个长度为0的数组。

参数:

  • channelName ( string ): 通道名称,指定获取哪个通道的链接

返回值:

  • ( Array<string> ): 链接名称列表

范例:

获取Net1通道下的链接名称列表,在浏览器控制台中打印出来:

console.log(
    getLinkList("Net1")
);

TS声明:

declare function getLinkList(
    channelName: string
): Array<string>;

getDeviceList(channelName), getDeviceList(channelName, linkName)

获取通道或链接下的设备名称列表

参数:

  • channelName ( string ): 通道名称,指定获取哪个通道下的设备
  • linkName ( string ): 链接名称,指定获取哪个链接下的设备,Net类型的通道用到,其他通道省略即可

返回值:

  • ( Array<string> ): 设备名称列表

范例:

获取"API"通道下的设备名称列表,在浏览器控制台中打印出来:

console.log(
    getDeviceList("API")
);

获取"Net1"通道的"TestLink"链接下的设备名称列表,在浏览器控制台中打印出来:

console.log(
    getDeviceList("Net1", "TestLink")
);

TS声明:

declare function getDeviceList(
    channelName: string
): Array<string>;
declare function getDeviceList(
    channelName: string,
    linkName?: string
): Array<string>;

getPointList(channelName, deviceName), getPointList(channelName, linkName, deviceName)

获取设备下全部点的点全名列表

参数:

  • channelName ( string ): 通道名称,指定要查询哪个通道下的点
  • linkName ( string ): 链接名称,指定要查询哪个链接下的点
  • deviceName ( string ): 设备名称,指定要查询哪个设备下的点

返回值:

  • ( Array<string> ): 点全名列表

范例:

获取"API"通道的"TestDevice"设备下所有点的点全名列表,在浏览器控制台中打印出来:

let data = await getPointList("API", "TestDevice");
console.log(data);

获取"Net1"通道的"TestLink"链接的"TestDevice"设备下所有点的点全名列表,在浏览器控制台中打印出来:

let data = await getPointList("Net1", " TestLink", "TestDevice");
console.log(data);

TS声明:

declare function getPointList(
    channelName: string,
    deviceName: string
): Array<string>;
declare function getPointList(
    channelName: string,
    linkName: string,
    deviceName: string
): Array<string>;

getHistoryPointList(channelName, deviceName), getHistoryPointList(channelName, linkName, deviceName)

获取设备下配置了数据存储的点的点全名列表

参数:

  • channelName ( string ): 通道名称,指定要查询哪个通道下的点
  • linkName ( string ): 链接名称,指定要查询哪个链接下的点
  • deviceName ( string ): 设备名称,指定要查询哪个设备下的点

返回值:

  • ( Array<string> ): 点全名列表

范例:

获取"API"通道的"TestDevice"设备下配置了数据存储的点全名列表,在浏览器控制台中打印出来:

let data = await getHistoryPointList("API", "TestDevice");
console.log(data);

获取"Net1"通道的"TestLink"链接的"TestDevice"设备下配置了数据存储的点全名列表,在浏览器控制台中打印出来:

let data = await getHistoryPointList("Net1", "TestLink", "TestDevice");
console.log(data);

TS声明:

declare function getHistoryPointList(
    channelName: string,
    deviceName: string
): Array<string>;
declare function getHistoryPointList(
    channelName: string,
    linkName: string,
    deviceName: string
): Array<string>;

getAlertPointList(channelName, deviceName), getAlertPointList(channelName, linkName, deviceName)

获取设备下配置了报警的点的点全名列表

参数:

  • channelName ( string ): 通道名称,指定要查询哪个通道下的点
  • linkName ( string ): 链接名称,指定要查询哪个链接下的点
  • deviceName ( string ): 设备名称,指定要查询哪个设备下的点

返回值:

  • ( Array<string> ): 点全名列表

范例:

获取"API"通道的"TestDevice"设备下配置了报警的点全名列表,在浏览器控制台中打印出来:

let data = await getAlertPointList("API", "TestDevice");
console.log(data);

获取"Net1"通道的"TestLink"链接的"TestDevice"设备下配置了报警的点全名列表,在浏览器控制台中打印出来:

let data = await getAlertPointList("Net1", "TestLink", "TestDevice");
console.log(data);

TS声明:

declare function getAlertPointList(
    channelName: string,
    deviceName: string
): Array<string>;
declare function getAlertPointList(
    channelName: string,
    linkName: string,
    deviceName: string
): Array<string>;

getDeviceObjList()

获取所有设备的信息列表。
包括设备的名称、描述,设备所在链接的名称、描述,设备所在通道的名称、描述、类型。

返回值:

  • ( Array<{ deviceName: string, deviceDesc: string, linkName?: string, linkDesc?: string, channelName: string, channelDesc: string, channelType: string }> ): 设备详细信息列表,格式:
    [
        {
            deviceName:  string类型,设备名称,
            deviceDesc:  string类型,设备描述,
            linkName:    string类型,设备所在链接的链接名称(通道类型为Net时才会有),
            linkDesc:    string类型,设备所在链接的链接描述(通道类型为Net时才会有),
            channelName: string类型,设备所在通道的通道名称,
            channelDesc: string类型,设备所在通道的通道描述,
            channelType: string类型,设备所在通道的通道类型
        },]
    

范例:

获取所有设备的详细信息列表,在浏览器控制台中打印出来:

console.log(
    getDeviceObjList()
);

TS声明:

declare function getDeviceObjList(): Array<{
    deviceName: string,
    deviceDesc: string,
    linkName?: string,
    linkDesc?: string,
    channelName: string,
    channelDesc: string,
    channelType: string
}>;

getPointName(channelName, deviceName, pointName), getPointName(channelName, linkName, deviceName, pointName)

拼接点全名,将所填写的点信息,按照点名称的拼接规则拼接(不保证该点是否存在,只是按照规则拼接)

参数:

  • channelName ( string ): 通道名称
  • linkName ( string ): 链接名称
  • deviceName ( string ): 设备名称
  • pointName ( string ): 点名称

返回值:

  • ( string ): 点全名

范例:

合成"API"通道的"TestDevice"设备的"TestPoint"点的点全名,在浏览器控制台中打印出来:

console.log(
    getPointName("API", "TestDevice", "TestPoint")
);

合成"Net1"通道的"TestLink"链接的"TestDevice"设备的"TestPoint"点的点全名,在浏览器控制台中打印出来:

console.log(
    getPointName("Net1", "TestLink", "TestDevice", "TestPoint")
);

TS声明:

declare function getPointName(
    channelName: string,
    deviceName: string,
    pointName: string
): string;
declare function getPointName(
    channelName: string,
    linkName: string,
    deviceName: string,
    pointName: string
): string;

pointNameParse(pointName)

点全名解析,将点全名拆分为通道名称、链接名称、设备名称、点名称和点类型。

参数:

  • pointName ( string ): 点全名

返回值:

  • ( { type: string, channel: string | void, link: string | void, device: string | void, point: string } | void ): 拆分信息

    信息格式:

    {
        type:     string类型,点类型,有System和Config两种类型,
        channel:  string类型,点所属通道名称,
        link:     string类型,点所属链接名称,
        device:   string类型,点所属设备名称,
        point:    string类型,点名称
    }
    

范例:

解析 API.TEST设备@YC1 :

let data = pointNameParse("API.TEST设备@YC1");
console.log(data);

TS声明:

declare function pointNameParse(
    pointName: string
): {
    type: string,
    channel: string | void,
    link: string | void,
    device: string | void,
    point: string
} | void;

getChannelInfo(channelName)

获取通道基本信息。
包括通道的名称、描述、类型、通道下的链接列表 或 设备列表。

参数:

  • channelName ( string ): 通道名称,指定要查询的通道

返回值:

  • ( { Name: string, Desc?: string, Type: string, Child: Array<string> } | void ): 通道基本信息,格式:
    {
        Name:  string类型,通道名称,
        Desc:  string类型 或 null,通道描述,
        Type:  string类型,通道类型,
        Child: Array<string>类型,通道类型为Net时,是通道下的链接名称列表;通道类型不是Net时,是通道下的设备名称列表
    }
    
    null,表示未找到

范例:

获取"Net1"通道的基本信息,在浏览器控制台中打印出来:

console.log(
    getChannelInfo("Net1")
);

TS声明:

declare function getChannelInfo(
    channelName: string
): {
    Name: string,
    Desc?: string,
    Type: string,
    Child: Array<string>
} | void;

getLinkInfo(channelName, linkName)

获取链接基本信息。
包括链接的名称、描述、链接下的设备列表。

参数:

  • channelName ( string ): 通道名称,指定要查询链接所在的通道
  • linkName ( string ): 链接名称,指定要查询的链接

返回值:

  • ( { Name: string, Desc: string, Child: Array<string> } | void ): 链接基本信息,格式:
    {
        Name:  string类型,链接名称,
        Desc:  string类型,链接描述,
        Child: Array<string>类型,链接下的设备名称列表
    }
    
    null,表示未找到

范例:

获取"Net1"通道的"TestLink"链接的基本信息,在浏览器控制台中打印出来:

console.log(
    getLinkInfo("Net1", "TestLink")
);

TS声明:

declare function getLinkInfo(
    channelName: string,
    linkName: string
): {
    Name: string,
    Desc: string,
    Child: Array<string>
} | void;

getDeviceInfo(channelName, deviceName), getDeviceInfo(channelName, linkName, deviceName)

获取设备基本信息。
包括设备的名称、描述。

参数:

  • channelName ( string ): 通道名称,指定要查询设备所在的通道
  • linkName ( string ): 链接名称,指定要查询设备所在的通道
  • deviceName ( string ): 设备名称,指定要查询的设备

返回值:

  • ( { Name: string, Desc: string } | void ): 设备基本信息,格式:
    {
        Name: string类型,设备名称,
        Desc: string类型,设备描述
    }
    
    null,表示未找到

范例:

获取"API"通道的"TestDevice"设备的基本信息,在浏览器控制台中打印出来:

console.log(
    getDeviceInfo("API", "TestDevice")
);

获取"Net1"通道的"TestLink"链接的"TestDevice"设备的基本信息,在浏览器控制台中打印出来:

console.log(
    getDeviceInfo("Net1", "TestLink", "TestDevice")
);

TS声明:

declare function getDeviceInfo(
    channelName: string,
    deviceName: string
): {
    Name: string,
    Desc: string
} | void;
declare function getDeviceInfo(
    channelName: string,
    linkName: string,
    deviceName: string
): {
    Name: string,
    Desc: string
} | void;

getPointInfo(point)

获取点配置信息

参数:

  • point ( string | Array<string> ): 点全名 或 点全名列表,指定查询的点

返回值:

  • ( Promise<{ Link: string, Name: string, Desc: string, IO: { [key: string]: any }, DB: { [key: string]: any } | void, Alert: { [key: string]: any }[] | void } | Array<{ Link: string, Name: string, Desc: string, IO: { [key: string]: any }, DB: { [key: string]: any } | void, Alert: { [key: string]: any }[] | void }>> ): 点配置信息
    当point为string类型时,参数是一个包含点信息的object类型;
    当point为Array<string>类型时,参数是Array<object>类型,包含所有点信息,长度与point参数长度相同,并且一一对应,在point的0位置的点的点信息在回调函数参数的0位置。
    点信息格式:
    {
        Link: string类型,点全名,
        Name: string类型,点名,
        Desc: string类型,点描述,
        IO: object类型,点的基本信息,
        DB: object类型,点的数据存储配置信息,
        Alert: Array<object>类型,点的报警配置信息
    }
    

范例:

获取点"API.TEST设备@YC1"的配置信息,在浏览器控制台中打印出来:

let data = await getPointInfo("API.TEST设备@YC1");
console.log(data);

获取点"API.TEST设备@YC1"和"API.TEST设备@YC2"的配置信息,在浏览器控制台中打印出来:

let data = await getPointInfo(
    ["API.TEST设备@YC1", "API.TEST设备@YC2"]
);
console.log(data);

TS声明:

declare function getPointInfo(
    point: string | Array<string>
): Promise<{
    Link: string,
    Name: string,
    Desc: string,
    IO: { [key: string]: any },
    DB: { [key: string]: any } | void,
    Alert: { [key: string]: any }[] | void
} | Array<{
    Link: string,
    Name: string,
    Desc: string,
    IO: { [key: string]: any },
    DB: { [key: string]: any } | void,
    Alert: { [key: string]: any }[] | void
}>>;

findPoint(opt, noLoadingPrompt)

根据条件查找点

参数:

  • opt ( { type?: string, channelName?: string, linkName?: string, deviceName?: string, pointGroupName?: string, pointName?: string, channelDesc?: string, linkDesc?: string, deviceDesc?: string, pointDesc?: string, dbStorage?: boolean, alert?: boolean } ): 查询条件。所有属性都是可省略的,参数格式:
    {
        type:           string类型,点的类型,可选值:"System"、"Config",分别表示:系统点、配置点,
        channelName:    string类型,点所在通道的名称,支持模糊查询,
        linkName:       string类型,点所在链接的名称,支持模糊查询,
        deviceName:     string类型,点所在设备的名称,支持模糊查询,
        pointGroupName: string类型,点所在点组的名称,支持模糊查询,
        pointName:      string类型,点的名称,支持模糊查询,
        channelDesc:    string类型,点所在通道的描述,支持模糊查询,
        linkDesc:       string类型,点所在链接的描述,支持模糊查询,
        deviceDesc:     string类型,点所在设备的描述,支持模糊查询,
        pointDesc:      string类型,点的描述,支持模糊查询,
        dbStorage:      boolean类型,点是否配置了数据存储,
        alert:          boolean类型,点是否配置了报警
    }
    
    模糊查询的属性可以使用SQL通配符(参考资料: https://www.w3school.com.cn/sql/sql_wildcards.asp ),不区分大小写。
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<{ [pointName: string]: { type?: string, channelName?: string, linkName?: string, deviceName?: string, pointGroupName?: string, pointName?: string, channelDesc?: string, linkDesc?: string, deviceDesc?: string, pointDesc?: string } }> ): 点列表信息,信息格式:

    {   [点全名]: {
            type:           string类型,点的类型,可能值:"System"、"Config",分别表示:系统点、配置点,
            channelName:    string类型,点所在通道的名称,
            linkName:       string类型,点所在链接的名称,
            deviceName:     string类型,点所在设备的名称,
            pointGroupName: string类型,点所在点组的名称,
            pointName:      string类型,点的名称,
            channelDesc:    string类型,点所在通道的描述,
            linkDesc:       string类型,点所在链接的描述,
            deviceDesc:     string类型,点所在设备的描述,
            pointDesc:      string类型,点的描述
        },}
    

    [点全名]为查询到的点的点全名,后面的值是该点信息

范例:

查找点描述是以"北京-昌平区-"为开头的所有点信息,在浏览器控制台中打印出来:

let data = await findPoint({
    pointDesc: "北京-昌平区-%"
});
console.log(data);

TS声明:

declare function findPoint(
    opt: {
        channelName?: string,
        linkName?: string,
        deviceName?: string,
        pointGroupName?: string,
        pointName?: string,
        channelDesc?: string,
        linkDesc?: string,
        deviceDesc?: string,
        pointDesc?: string,
        dbStorage?: boolean,
        alert?: boolean,
        type?: string
    },
    noLoadingPrompt?: boolean
): Promise<{
    [pointName: string]: {
        type?: string,
        channelName?: string,
        linkName?: string,
        deviceName?: string,
        pointGroupName?: string,
        pointName?: string,
        channelDesc?: string,
        linkDesc?: string,
        deviceDesc?: string,
        pointDesc?: string
    }
}>;

实时数据

listenPointValue(pointList, callback, updateCallback)

监听点的实时数据。(原getRealValue)
与getPointValue不同的是,listenPointValue获取方式为订阅的方式,调用一次函数即可持续获取点的实时数据。
需要注意的是: 一个页面只保留最后一次调用效果。如果多次调用该函数,最后一次调用会覆盖之前的调用,之前调用的效果会失效。
所以尽量一次性把页面中需要的实时数据获取到。

参数:

  • pointList ( Array<string> ): 希望获取的点名列表
  • callback ( (valueList: Array<{ Value: string, Code: string, Time: number }>) => {} ): 回调函数,获取到后台返回信息后调用的函数。函数含有一个Array类型的参数,该参数的长度与参数pointList的长度相同,并且一一对应。
    比如:pointList的0位置的点的实时数据,在回调函数参数的0位置。格式:
    [
        {
            Value: string类型,实时数据,
            Code:  string类型,数据源码,
            Time:  number类型,数据获取时间,毫秒时间戳
        },]
    
    当updateCallback参数省略时,callback函数会被调用多次,每次都携带最新实时数据,当updateCallback参数存在时,callback函数只会在最开始调用一次,之后实时数据出现变化时,由updateCallback进行处理。
  • updateCallback ( (valueObj: { [pointName: string]: { Value: string, Code: string, Time: number } }) => {} ): 回调函数,获取到后台返回的更新信息后调用的函数,可省略。含有一个Object类型参数,参数格式:

    {   [点全名]: {
            Value: string类型,实时数据,
            Code:  string类型,数据源码,
            Time:  number类型,数据获取时间,毫秒时间戳
        },}
    

    [点全名]为发生更新的点的点全名,后面的值是该点的实时数据信息

范例:

获取"API.测试@YC1"和"API.测试@YC2"的实时数据,在浏览器控制台中打印出来:

listenPointValue(
    ["API.测试@YC1", "API.测试@YC2"], 
    function (valueList) {
        console.log("API.测试@YC1 的值:" + valueList[0].Value); 
        console.log("API.测试@YC2 的值:" + valueList[1].Value);
    }
);
listenPointValue(
    ["API.测试@YC1", "API.测试@YC2"], 
    function (valueList) {
        console.log("API.测试@YC1 的值:" + valueList[0].Value); 
        console.log("API.测试@YC2 的值:" + valueList[1].Value);
    },
    function (valueObj) {
        for (let point in valueObj) {
            console.log(point + " 的值:" + valueObj[point].Value);
        }
    }
);

TS声明:

declare function listenPointValue(
    pointList: Array<string>,
    callback: (
        valueList: Array<{
            Value: string,
            Code: string,
            Time: number
        }>
    ) => {},
    updateCallback?: (valueObj: {
        [pointName: string]: {
            Value: string,
            Code: string,
            Time: number
        }
    }) => {}
): void;

getPointValue(pointList, noLoadingPrompt)

获取点的当前数据。(原getCurrentValue)
与listenPointValue不同的是,getPointValue只获取一次点的当前数据,而不是listenPointValue那种持续推送点数据。

参数:

  • pointList ( Array<string> ): 希望获取的点名列表
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ Value: string, Code: string, Time: number }>> ): 回调函数,获取到后台返回信息后调用的函数。函数含有一个Array类型的参数,该参数的长度与参数pointList的长度相同,并且一一对应。比如:pointList的0位置的点的实时数据,在回调函数参数的0位置。格式:
    [
        {
            Value: string类型,实时数据,
            Code:  string类型,数据源码,
            Time:  number类型,数据获取时间,毫秒时间戳
        },]
    

范例:

获取"API.测试@YC1"和"API.测试@YC2"的实时数据,在浏览器控制台中打印出来:

let data = await getPointValue(
    ["API.测试@YC1", "API.测试@YC2"]
);
console.log("API.测试@YC1 的值:" + data[0].Value);
console.log("API.测试@YC2 的值:" + data[1].Value);

TS声明:

declare function getPointValue(
    pointList: Array<string>,
    noLoadingPrompt?: boolean
): Promise<Array<{
    Value: string,
    Code: string,
    Time: number
}>>;

setPointValue(pointName, value, noDefaultShow), setPointValue(obj, noDefaultShow)

修改点值,发送遥控命令。(原sendYKMessage)

参数:

  • pointName ( string ): 修改的点名
  • value ( number | string ): 修改的值
  • obj ( Array<{ name: string, value: number | string }> ): 修改信息,这样可以一次控制多个点。格式:
    [
        {
            name:  string类型,修改的点名,
            value: number 或 string类型,修改的值
        },]
    
  • noDefaultShow ( boolean ): 是否不显示成功或失败的提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ name: string, value: number | string, result: boolean, err?: string }>> ): 修改结果,格式如下:
    [
        {
            name:   string类型,修改的点名,
            value:  number 或 string类型,修改的值,
            result: boolean类型,修改结果,true表示成功,false表示失败,
            err:    null 或 string类型,失败原因
        },]
    

范例:

设置"API.测试@YC1"为"101":

let data = await setPointValue("API.测试@YC1", "101");
console.log(data);

设置"API.测试@YC1"为"101","API.测试@YC2"为"102":

let data = await setPointValue(
    [
        {
            name: "API.测试@YC1",
            value: "101"
        },
        {
            name: "API.测试@YC2",
            value: "102"
        }
    ]
);
console.log(data);

TS声明:

declare function setPointValue(
    pointName: string,
    value: number | string,
    noDefaultShow: boolean
): Promise<Array<{
    name: string,
    value: number | string,
    result: boolean,
    err?: string
}>>;
declare function setPointValue(
    obj: Array<{
        name: string,
        value: number | string,
        noDefaultShow: boolean
    }>
): Promise<Array<{
    name: string,
    value: number | string,
    result: boolean,
    err?: string
}>>;

获取历史数据

获取多个点一段时间内的历史数据。(原getDBInfo)

参数:

  • link ( string | Array<string> ): 历史数据要查询的点名。
    当参数值的类型为string时,表示一个点名,例如:"API.TEST设备@YC1"。
    当参数值的类型为Array时,表示一个点列表,例如:["API.TEST设备@YC1", "API.TEST设备@YC2",…]
  • startTime ( string ): 查询历史数据的起始时间。格式:YYYY-MM-DD HH:mm:ss,例:2017-12-29 00:00:00
  • endTime ( string ): 查询历史数据的终止时间。格式:YYYY-MM-DD HH:mm:ss,例:2017-12-30 23:59:59
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ TagName: string, AcpTime: string, Value: number | string }>> ): 历史数据
    [
        {
            TagName: 点名,string类型,
            AcpTime: 历史数据记录时间,string类型,格式:YYYY-MM-DD HH:mm:ss,
            Value:   历史数据,number类型 或 string类型
        },]
    

范例:

查询"API.TEST设备@YC1"和"API.TEST设备@YC2"两个点,2017-12-29一天的历史数据:

let data = await getDbInfo(
    ["API.TEST设备@YC1", "API.TEST设备@YC2"],
    "2017-12-29 00:00:00",
    "2017-12-29 23:59:59"
);
console.log(data);

TS声明:

declare function getDbInfo(
    link: string | Array<string>,
    startTime: string,
    endTime: string,
    noLoadingPrompt?: boolean
): Promise<Array<{
    TagName: string,
    AcpTime: string,
    Value: number | string
}>>;

getDbSpec(specList, noLoadingPrompt)

历史数据查询,查询某点在某段时间内的第一个值、最后一个值、最大值、最小值。(原getDBSpec)

参数:

  • specList ( Array<[string, string, string, "first" | "last" | "max" | "min"]> ): 描述需要查询的数据。参数是一个二维数组,每个子数组都描述了一个历史数据。子数组长度为4,格式:
    [
        0: 点名,string类型,
        1: 开始时间,string类型,时间格式:YYYY-MM-DD HH:mm:ss,
        2: 结束时间,string类型,时间格式:YYYY-MM-DD HH:mm:ss,
        3: 类型,string类型,4个可选项:max、min、first、last,分别表示该点在指定时间段内的 最大值、最小值、第一个值、最后一个值
    ]
    
    例:
    [
        "API.设备_1@YC1",
        "2020-02-02 00:00:00",
        "2020-02-02 23:59:59",
        "max"
    ]
    
    表示获取 点 "API.设备_1@YC1" 在2020年02月02日记录的最大值
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ TagName: string, AcpTime: string, Value: number | string }>> ): 历史数据,与specList的长度相同,一一对应
    [
        {
            TagName: 点名,string类型,
            AcpTime: 历史数据记录时间,string类型,格式:YYYY-MM-DD HH:mm:ss,
            Value:   历史数据,number类型 或 string类型
        },]
    

范例:

获取点"API.设备_1@YC1"在2020年02月02日的最大值和最小值:

let data = await getDbSpec(
    [
        ["API.设备_1@YC1", "2020-02-02 00:00:00", "2020-02-02 01:00:00", "max"], 
        ["API.设备_1@YC1", "2020-02-02 00:00:00", "2020-02-02 23:59:59", "min"]
    ]
);
console.log(data);

TS声明:

declare function getDbSpec(
    specList: Array<[
        string,
        string,
        string,
        "first" | "last" | "max" | "min"
    ]>,
    noLoadingPrompt?: boolean
): Promise<Array<{
    TagName: string,
    AcpTime: string,
    Value: number | string
}>>;

getDbUseSQL(sql, noLoadingPrompt)

通过SQL语句查询历史数据库。(原getDBforSQL)

参数:

  • sql ( string ): 要执行的sql语句
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<{ err?: string, rows?: Array<object> }> ): 返回的数据,包含两个部分:
    {
        err:  null 或 string类型,正常情况下为null,当执行sql语句出现的错误的时候,显示错误信息,
        rows: 执行语句返回的数据
    }
    

范例:

查询TagIndex表中的所有信息:

let data = await getDbUseSQL("select * from TagIndex;");
if (data.err) {
    console.log("error: " + data.err);
}
else {
    console.log(data.rows);
}

TS声明:

declare function getDbUseSQL(
    sql: string,
    noLoadingPrompt?: boolean
): Promise<{
    err?: string,
    rows?: Array<object>
}>;

获取报警数据

getAlert(firstCallback, callback)

获取实时报警消息,设置报警触发或停止时的处理方式。

获取方式为订阅的方式,调用一次函数即可持续获报警数据。

获取实时报警的请求发送到后台时,后台会首先返回当前正在报警的报警信息;然后后台判断出现报警触发或者停止,会实时的将报警信息发送到前台。

该方法会取消当前页面的默认的页面报警方式。

需要注意的是:一个页面只保留最后一次调用效果。如果多次调用函数,最后一次调用会覆盖之前的调用,之前调用的效果会失效

参数:

  • firstCallback ( (alarmInfoOne: { ID: string, Type: 0 | 1, AlertTime: number, PointName: string, AlertName: string, AlertDesc: string, AlertType: string, AlertValue: number | string, AlertPointValue: number | string, AlertVoice: string }) => {} | false ):
    回调函数,获取到后台返回信息后调用的函数。
    当该参数为false时,表示不处理当前正在报警的报警信息。
    当该参数为Function时,该函数主要接收处理后台返回的当前正在报警的报警消息。
    如果getAlert函数的第二个参数callback为null时,当前firstCallback函数将同时处理后续的报警消息。
    每一个报警都会触发一次该函数。
    firstCallback函数有一个object类型的参数,该参数包含报警的相关信息,参数格式:
    {
        ID: string类型,报警ID,
        Type: 0 或 1,0表示该报警恢复、1表示该报警触发,
        AlertTime:       number类型,报警触发时间,毫秒时间戳,
        PointName:       string类型,报警点名,
        AlertName:       string类型,报警名称,
        AlertDesc:       string类型,报警描述,
        AlertType:       string类型,报警类型,有4种情况:"UpperLimit"、"LowerLimit"、"Open"、"Close",分别代表:上限报警、下限报警、分闸报警、合闸报警,
        AlertValue:      number 或 string类型,报警阈值,
        AlertPointValue: number 或 string类型,报警时点的值,
        AlertVoice:      string类型,报警声音代码
    }
    
  • callback ( (alarmInfoTwo: { ID: string, Type: 0 | 1, AlertTime: number, PointName: string, AlertName: string, AlertDesc: string, AlertType: string, AlertValue: number | string, AlertPointValue: number | string, AlertVoice: string }) => {} | false ):
    回调函数,获取到后台返回的后续报警消息后调用的函数,可省略。
    当该参数为Function时,该函数主要接收处理后续的报警消息。 当该参数为null(省略)时,表示使用第一个参数处理所有报警消息。
    当该参数为false时,表示不处理后续触发的报警消息。函数的参数与firstCallback的参数格式相同。

范例:

取消默认的报警处理:

getAlert(false, false);

在浏览器控制台中打印报警信息:

getAlert(
    function (AlertInfo) {
        console.log("firstCallback: ", AlertInfo);
    },
    function (AlertInfo) {
        console.log("callback: ", AlertInfo)
    }
);

TS声明:

declare function getAlert(
    firstCallback: (
        alarmInfoOne: {
            ID: string,
            Type: 0 | 1,
            AlertTime: number,
            PointName: string,
            AlertName: string,
            AlertDesc: string,
            AlertType: string,
            AlertValue: number | string,
            AlertPointValue: number | string,
            AlertVoice: string
        }
    ) => {} | false,
    callback?: (
        alarmInfoTwo: {
            ID: string,
            Type: 0 | 1,
            AlertTime: number,
            PointName: string,
            AlertName: string,
            AlertDesc: string,
            AlertType: string,
            AlertValue: number | string,
            AlertPointValue: number | string,
            AlertVoice: string
        }
    ) => {} | false
): void;

getAlertBatch(firstCallback, callback)

获取实时报警消息,设置报警触发或停止时的处理方式。

与getAlert功能基本相同,同样会覆盖之前的调用,会覆盖getAlert,也会被getAlert覆盖

不同的是,firstCallback和callback获取到的参数是一个数组,一次可以获取到多个报警,可以一次处理多个报警,函数调用频率低一些。

参数:

  • firstCallback ( ( alarmInfoOne: Array<{ ID: string, Type: 0 | 1, AlertTime: number, PointName: string, AlertName: string, AlertDesc: string, AlertType: string, AlertValue: number | string, AlertPointValue: number | string, AlertVoice: string }> ) => {} | false ):
    回调函数,获取到后台返回信息后调用的函数。 当该参数为false时,表示不处理当前正在报警的报警信息。
    当该参数为Function时,该函数主要接收处理后台返回的当前正在报警的报警消息。
    如果getAlertBatch函数的第二个参数callback为null时,当前firstCallback函数将同时处理后续的报警消息。
    每一个报警都会触发一次该函数。firstCallback函数有一个Array类型的参数,该参数包含报警的相关信息,参数格式:
    [
        {
            ID: string类型,报警ID,
            Type: number类型,0表示该报警恢复、1表示该报警触发,
            AlertTime: number类型,报警触发时间,毫秒时间戳,
            PointName: string类型,报警点名,
            AlertName: string类型,报警名称,
            AlertDesc: string类型,报警描述,
            AlertType: string类型,报警类型,有4种情况:"UpperLimit"、"LowerLimit"、"Open"、"Close",分别代表:上限报警、下限报警、分闸报警、合闸报警,
            AlertValue: string类型 或 number类型,报警阈值,
            AlertPointValue: string类型 或 number类型,报警时点的值,
            AlertVoice: string类型,报警声音代码
        },]
    
  • callback ( ( alarmInfoTwo: Array<{ ID: string, Type: 0 | 1, AlertTime: number, PointName: string, AlertName: string, AlertDesc: string, AlertType: string, AlertValue: number | string, AlertPointValue: number | string, AlertVoice: string }> ) => {} | false ):
    回调函数,获取到后台返回的后续报警消息后调用的函数,可省略。当该参数为Function时,该函数主要接收处理后续的报警消息。
    当该参数为null(省略)时,表示使用第一个参数处理所有报警消息。当该参数为false时,表示不处理后续触发的报警消息。 函数的参数与firstCallback的参数格式相同。

范例:

取消默认的报警处理:

getAlertBatch(false, false);

在浏览器控制台中打印报警信息:

getAlertBatch(
    function (AlertInfo) {
        console.log("firstCallback: ", AlertInfo);
    },
    function (AlertInfo) {
        console.log("callback: ", AlertInfo)
    }
);

TS声明:

declare function getAlertBatch(
    firstCallback: (
        alarmInfoOne: Array<{
            ID: string,
            Type: 0 | 1,
            AlertTime: number,
            PointName: string,
            AlertName: string,
            AlertDesc: string,
            AlertType: string,
            AlertValue: number | string,
            AlertPointValue: number | string,
            AlertVoice: string
        }>
    ) => {} | false,
    callback?: (
        alarmInfoTwo: Array<{
            ID: string,
            Type: 0 | 1,
            AlertTime: number,
            PointName: string,
            AlertName: string,
            AlertDesc: string,
            AlertType: string,
            AlertValue: number | string,
            AlertPointValue: number | string,
            AlertVoice: string
        }>
    ) => {} | false
): void;

getAlertStatus()

获取当前正在报警的报警信息。

与getAlert不同的是,getAlertStatus只获取一次当前正在报警的报警信息,而不是getAlert那种触发推送的方式。

返回值:

  • ( Promise<Array<{ ID: string, Type: number, AlertTime: number, PointName: string, AlertName: string, AlertDesc: string, AlertType: string, AlertValue: number | string, AlertPointValue: number | string, AlertVoice: string }>> ): 当前正在触发的报警列表信息,参数格式:
    [
        {
            ID:              string类型,报警ID,
            Type:            number类型,0(报警恢复)、1(报警触发),
            AlertTime:       number类型,报警触发时间,毫秒时间戳,
            PointName:       string类型,报警点名,
            AlertName:       string类型,报警名称,
            AlertDesc:       string类型,报警描述,
            AlertType:       string类型,报警类型,有4种情况:"UpperLimit"、"LowerLimit"、"Open"、"Close",分别代表:上限报警、下限报警、分闸报警、合闸报警,
            AlertValue:      string类型 或 number类型,报警阈值,
            AlertPointValue: string类型 或 number类型,报警时点的值,
            AlertVoice:      string类型,报警声音代码
        },]
    

范例:

在浏览器控制台中打印当前正在报警的报警信息:

let data = await getAlertStatus();
console.log(data);

TS声明:

declare function getAlertStatus(): Promise<Array<{
    ID: string,
    Type: number,
    AlertTime: number,
    PointName: string,
    AlertName: string,
    AlertDesc: string,
    AlertType: string,
    AlertValue: number | string,
    AlertPointValue: number | string,
    AlertVoice: string
}>>;

getAlertInfo(options, noLoadingPrompt)

查询报警历史信息

参数:

  • options ( { Name?: string | Array<string>, AlertType?: string | Array<string>, StartTime?: string, EndTime?: string } ): 描述查询报警的范围,格式:
    {
        Name:      string类型 或 Array类型,报警点名称或报警点名称列表,
        AlertType: string类型 或 Array类型,报警类型或报警类型数组(可选值:"UpperLimit"、"LowerLimit"、"Open"、"Close",分别代表:上限报警、下限报警、分闸报警、合闸报警),
        StartTime: string类型,开始时间,格式:YYYY-MM-DD HH:mm:ss,例:2017-12-29 00:00:00,
        EndTime:   string类型,结束时间,格式:YYYY-MM-DD HH:mm:ss,例:2017-12-30 23:59:59
    }
    
    所有的参数(Name、AlertType、StartTime、EndTime)都是可以省略的,省略的参数表示不限制该条件
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ AlertName: string, AlertType: string, LimitValue: string, Name: string, AlertValue: string, ChangeTime: string }>> ): 满足options条件的报警历史信息,格式:
    [
        {
            AlertName:  string类型,报警名称,
            AlertType:  string类型,报警类型,可能的值:"UpperLimit"、"LowerLimit"、"Open"、"Close",分别代表:上限报警、下限报警、分闸报警、合闸报警,
            LimitValue: string类型,报警阈值,
            Name:       string类型,报警点的名称,
            AlertValue: string类型,报警时点的值,
            ChangeTime: string类型,报警时的时间,格式:YYYY-MM-DD HH:mm:ss
        },]
    

范例:

查询点"API.测试@YC1"和点"API.测试@YC2"在"2017-12-30 00:00:00"到"2017-12-30 23:59:59"的上限报警和下线报警:

let data = await getAlertInfo(
    {
        Name: ["API.测试@YC1", "API.测试@YC2"],
        AlertType: ["UpperLimit", "LowerLimit"],
        StartTime: "2017-12-30 00:00:00", 
        EndTime: "2017-12-30 23:59:59"
    }
);
console.log(data);

查询所有历史报警信息:

let data = await getAlertInfo({});
console.log(data);

TS声明:

declare function getAlertInfo(
    options: {
        Name?: string | Array<string>,
        AlertType?: string | Array<string>,
        StartTime?: string,
        EndTime?: string
    },
    noLoadingPrompt?: boolean
): Promise<Array<{
    AlertName: string,
    AlertType: string,
    LimitValue: string,
    Name: string,
    AlertValue: string,
    ChangeTime: string
}>>;

用户操作

getUserInfo()

获取当前用户信息

返回值:

  • ( { Name: string, Desc: string, Power: string, DeviceList: Array<string>, FunctionBanList: Array<string>, Root: number, Project: string } ): 当前用户信息

    信息格式:

    {
        Name:             string类型,用户名称,
        Desc:             string类型,用户描述,
        Power:            string类型,用户权限,有三种admin、user、visit,分别表示管理员、普通用户、游客用户,
        DeviceList:       Array<string>类型,用户有权访问的设备列表,@ALL表示所有设备,
        FunctionBanList:  Array<string>类型,用户无权访问的功能列表,
        Root:             number类型,是否是Root用户,1表示是,0表示不是,
        Project:          string类型,用户所属工程
    }
    

范例:

获取当前用户信息,在浏览器控制台中打印出来:

let data = getUserInfo();
console.log(data);

TS声明:

declare function getUserInfo(): {
    Name: string,
    Desc: string,
    Power: string,
    DeviceList: Array<string>,
    FunctionBanList: Array<string>,
    Root: number,
    Project: string
};

getUserList(noLoadingPrompt)

获取用户信息列表。

只能获取到和自己权限相同 和 比自己权限低的用户,所以根据当前登录的用户的权限不同,获取到的列表也可能不同。

参数:

  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Array<{ Name: string, Desc: string, Power: string, PCLoginPage?: string, AppLoginPage?: string, LastLogin?: string, WeChatNickName?: string, WeChatHeadImg?: string, UserGroup: Array<string>, Root: 0 | 1 }> ):
    用户列表信息,格式如下:
    [
        {
            Name:           string类型,用户名,
            Desc:           string类型,描述,
            Power:          string类型,权限,
            PCLoginPage:    string类型 或 null,PC端登录后的首页,
            AppLoginPage:   string类型 或 null,手机端登录后的首页,
            LastLogin:      string类型 或 null,最后登录时间,时间格式:YYYY-MM-DD HH:mm:ss,
            WeChatNickName: string类型 或 null,关联微信的昵称,
            WeChatHeadImg:  string类型 或 null,关联微信的头像地址,
            UserGroup:      Array类型,所在用户组的用户组ID列表,
            Root:           number类型,指定是否是Root用户,1表示是Root用户,0表示不是
        },]
    

范例:

在浏览器控制台中打印用户信息列表:

let data = await getUserList();
console.log(data);

TS声明:

declare function getUserList(
    noLoadingPrompt?: boolean
): Promise<Array<{
    Name: string,
    Desc: string,
    Power: string,
    PCLoginPage?: string,
    AppLoginPage?: string,
    LastLogin?: string,
    WeChatNickName?: string,
    WeChatHeadImg?: string,
    UserGroup: Array<string>,
    Root: 0 | 1
}>>;

getUserGroupList(noLoadingPrompt)

获取用户组信息列表

参数:

  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Array<{ ID: string, Name: string, Remark: string, Type: number, UserList: Array<string>, DeviceList: Array<string> }> ): 用户组列表信息,格式如下:
    [
        {
            ID:         string类型,用户组ID,
            Name:       string类型,用户组名称,
            Remark:     string类型,用户组描述,
            Type:       number类型,用户组类型,0表示Root用户所在用户组无法修改,也无法将其他用户添加到该组中,1表示可以修改,
            UserList:   Array类型,包含用户的列表,
            DeviceList: Array类型,该组有权操作的设备列表
        },]
    

范例:

在浏览器控制台中打印用户组信息列表:

let data = await getUserGroupList();
console.log(data);

TS声明:

declare function getUserGroupList(
    noLoadingPrompt?: boolean
): Promise<Array<{
    ID: string,
    Name: string,
    Remark: string,
    Type: number,
    UserList: Array<string>,
    DeviceList: Array<string>
}>>;

createUser(info, noLoadingPrompt)

创建用户,管理员权限的用户可以使用,只能创建比自己权限低的用户

参数:

  • info ( { Name: string, Desc?: string, Power: string, UserGroup: Array<string>, PCLoginPage?: string, AppLoginPage?: string } ): 用户信息,包含内容:
    {  
        Name:         string类型,用户名称,
        Desc:         string类型 或 null,用户描述,
        Power:        string类型,用户权限,可选值:admin、user、visit,其中admin用户只有Root用户可以创建,
        UserGroup:    Array类型,用户所属用户组的ID列表,
        PCLoginPage:  string类型 或 null,PC端登录后的首页,
        AppLoginPage: string类型 或 null,手机端登录后的首页
    }
    
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ Name: string, Desc: string, Power: string, PCLoginPage?: string, AppLoginPage?: string, LastLogin?: string, WeChatNickName?: string, WeChatHeadImg?: string, UserGroup: Array<string>, Root: 0 | 1 }>> ): 最新的用户信息列表,格式与getUserList相同:
    [
        {
            Name:           string类型,用户名,
            Desc:           string类型,描述,
            Power:          string类型,权限,
            PCLoginPage:    string类型 或 null,PC端登录后的首页,
            AppLoginPage:   string类型 或 null,手机端登录后的首页,
            LastLogin:      string类型 或 null,最后登录时间,时间格式:YYYY-MM-DD HH:mm:ss,
            WeChatNickName: string类型 或 null,关联微信的昵称,
            WeChatHeadImg:  string类型 或 null,关联微信的头像地址,
            UserGroup:      Array类型,所在用户组的用户组ID列表,
            Root:           number类型,指定是否是Root用户,1表示是Root用户,0表示不是
        },]
    

范例:

创建一个不属于任何用户组的用户名为"test"的普通权限用户:

let data = await createUser(
    {
        Name: "test",
        Power: "user",
        UserGroup: []
    }
);
console.log(data);

TS声明:

declare function createUser(
    info: {
        Name: string,
        Desc?: string,
        Power: string,
        UserGroup: Array<string>,
        PCLoginPage?: string,
        AppLoginPage?: string
    },
    noLoadingPrompt?: boolean
): Promise<Array<{
    Name: string,
    Desc: string,
    Power: string,
    PCLoginPage?: string,
    AppLoginPage?: string,
    LastLogin?: string,
    WeChatNickName?: string,
    WeChatHeadImg?: string,
    UserGroup: Array<string>,
    Root: 0 | 1
}>>;

updateUser(info, noLoadingPrompt)

修改用户,管理员权限的用户可以使用,只能修改比自己权限低的用户

参数:

  • info ( { Name: string, Desc?: string, Power: string, UserGroup: Array<string>, PCLoginPage?: string, AppLoginPage?: string } ): 用户信息,包含内容:
    {
        Name:         string类型,指定要修改用户的用户名,
        Desc:         string类型 或 null,用户描述,
        Power:        string类型,用户权限,可选值:admin、user、visit,其中admin用户只有Root用户可以修改,
        UserGroup:    Array类型,用户所属用户组的ID列表,
        PCLoginPage:  string类型 或 null,PC端登录后的首页,
        AppLoginPage: string类型 或 null,手机端登录后的首页
    }
    
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ Name: string, Desc: string, Power: string, PCLoginPage?: string, AppLoginPage?: string, LastLogin?: string, WeChatNickName?: string, WeChatHeadImg?: string, UserGroup: Array<string>, Root: 0 | 1 }>> ): 最新的用户信息列表,格式与getUserList相同:
    [
        {
            Name:           string类型,用户名,
            Desc:           string类型,描述,
            Power:          string类型,权限,
            PCLoginPage:    string类型 或 null,PC端登录后的首页,
            AppLoginPage:   string类型 或 null,手机端登录后的首页,
            LastLogin:      string类型 或 null,最后登录时间,时间格式:YYYY-MM-DD HH:mm:ss,
            WeChatNickName: string类型 或 null,关联微信的昵称,
            WeChatHeadImg:  string类型 或 null,关联微信的头像地址,
            UserGroup:      Array类型,所在用户组的用户组ID列表,
            Root:           number类型,指定是否是Root用户,1表示是Root用户,0表示不是
        },]
    

范例:

修改用户名为"test"的用户,把他的描述改为"change Desc",权限改为普通用户,用户组改为不属于任何用户组,PC默认页面和App默认页面改为默认:

let data = await updateUser(
    {
        Name: "test",
        Desc: "change Desc",
        Power: "user",
        UserGroup: []
    }
);
console.log(data);

TS声明:

declare function updateUser(
    info: {
        Name: string,
        Desc?: string,
        Power: string,
        UserGroup: Array<string>,
        PCLoginPage?: string,
        AppLoginPage?: string
    },
    noLoadingPrompt?: boolean
): Promise<Array<{
    Name: string,
    Desc: string,
    Power: string,
    PCLoginPage?: string,
    AppLoginPage?: string,
    LastLogin?: string,
    WeChatNickName?: string,
    WeChatHeadImg?: string,
    UserGroup: Array<string>,
    Root: 0 | 1
}>>;

deleteUser(username, noLoadingPrompt)

删除用户,管理员权限的用户可以使用,只能删除比自己权限低的用户

参数:

  • username ( string ): 要删除用户的用户名
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<Array<{ Name: string, Desc: string, Power: string, PCLoginPage?: string, AppLoginPage?: string, LastLogin?: string, WeChatNickName?: string, WeChatHeadImg?: string, UserGroup: Array<string>, Root: 0 | 1 }>> ): 最新的用户信息列表,格式与getUserList相同:
    [
        {
            Name:           string类型,用户名,
            Desc:           string类型,描述,
            Power:          string类型,权限,
            PCLoginPage:    string类型 或 null,PC端登录后的首页,
            AppLoginPage:   string类型 或 null,手机端登录后的首页,
            LastLogin:      string类型 或 null,最后登录时间,时间格式:YYYY-MM-DD HH:mm:ss,
            WeChatNickName: string类型 或 null,关联微信的昵称,
            WeChatHeadImg:  string类型 或 null,关联微信的头像地址,
            UserGroup:      Array类型,所在用户组的用户组ID列表,
            Root:           number类型,指定是否是Root用户,1表示是Root用户,0表示不是
        },]
    

范例:

删除用户名为"test"的用户:

let data = await deleteUser("test");
console.log(data);

TS声明:

declare function deleteUser(
    username: string,
    noLoadingPrompt?: boolean
): Promise<Array<{
    Name: string,
    Desc: string,
    Power: string,
    PCLoginPage?: string,
    AppLoginPage?: string,
    LastLogin?: string,
    WeChatNickName?: string,
    WeChatHeadImg?: string,
    UserGroup: Array<string>,
    Root: 0 | 1
}>>;

changePassword(oldPw, newPw, noDefaultShow, noLoadingPrompt)

修改当前用户密码

参数:

  • oldPw ( string ): 原密码
  • newPw ( string ): 新密码
  • noDefaultShow ( boolean ): 是否不显示成功或失败的提示,可省略,默认为false(显示)
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<{ result: boolean, err?: string }> ): 修改结果,格式如下:
    {
        result: boolean类型,是否修改成功,
        err:    string类型 或 null,错误信息,成功时为null
    }
    

范例:

假设当前用户的密码为"123456",将当前用户的密码改为"654321":

let data = await changePassword("123456", "654321");
console.log(data);

TS声明:

declare function changePassword(
    oldPw: string,
    newPw: string,
    noDefaultShow?: boolean,
    noLoadingPrompt?: boolean
): Promise<{
    result: boolean,
    err?: string
}>;

login(username, password, remember, noDefaultHandler)

登录

参数:

  • username ( string ): 用户名
  • password ( string ): 密码
  • remember ( boolean ): 是否记住登录状态,记住的话,登录状态持续30天,可省略,省略时为不记住登录状态
  • noDefaultHandler ( boolean ): 是否不使用默认处理方法(登录成功跳转到默认的登录页面,失败做出相应提示),可省略,默认为false(使用)

返回值:

  • ( Promise<{ result: boolean, err?: string }> ): 登录结果,格式如下:
    {
        result: boolean类型,是否登录成功,
        err:    string类型 或 null,登录失败时会存在该项,描述登录失败的原因,
        url:    string类型,登录成功时存在该项,表示根据设置该用户登录后默认应跳转到的页面的地址
    }
    

范例:

登录用户名为"test",密码为"123456"的用户,并跳转到用户首页:

login("test", "123456");

登录用户名为"test",密码为"123456"的用户,把登录结果在浏览器控制台中打印出来:

let data = await login("test", "123456", false, true);
console.log(data);

TS声明:

declare function login(
    username: string,
    password: string,
    remember?: boolean,
    noDefaultHandler?: boolean
): Promise<{
    result: boolean,
    err?: string,
    url?: string
}>;

login.defCallback(data)

登录默认回调函数

参数:

  • data ( { result: boolean, err?: string, url?: string } ): 与login函数callback的参数相同

范例:

登录用户名为"test",密码为"123456"的用户,并跳转到默认页面(下面两种写法效果相同):

login("test", "123456");
let data = await login("test", "123456", false, true);
login.defCallback(data);

TS声明:

declare namespace login {
    function defCallback(data: {
        result: boolean,
        err?: string,
        url: string
    }): void;
}

logout()

注销当前用户,并返回到登录页面

范例:

注销当前用户,并返回到登录页面:

logout();

TS声明:

declare function logout(): void;

setUserLog(message, noLoadingPrompt)

添加当前用户日志信息

参数:

  • message ( string ): 需要记录的日志信息
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Promise<{ result: boolean, err?: string }> ): 返回的数据,格式:
    {
        result: boolean类型,是否添加成功,
        err:    string类型 或 null,添加失败时会存在该项,描述登录失败的原因
    }
    

范例:

添加一条信息为"修改阈值"的日志,并把结果在浏览器控制台中打印出来:

let data = await setUserLog("修改阈值");
console.log(data);

TS声明:

declare function setUserLog(
    message: string,
    noLoadingPrompt?: boolean
): Promise<{
    result: boolean,
    err?: string
}>;

getUserLog(options, noLoadingPrompt)

获取通过setUserLog函数记录的日志和登录日志信息。

只能获取到和自己权限相同 和 比自己权限低的用户。

参数:

  • options ( { User?: string, StartTime?: string, EndTime?: string } ): 描述要查询的范围。格式:
    {
        User:      string类型,用户名,指定查询特定用户的日志,
        StartTime: string类型,开始时间,时间格式:YYYY-MM-DD HH:mm:ss,
        EndTime:   string类型,结束时间,时间格式:YYYY-MM-DD HH:mm:ss
    }
    
    所有的参数(User、StartTime、EndTime)都可以省略,省略的参数不会作为查询条件。
  • noLoadingPrompt ( boolean ): 是否不显示加载提示,可省略,默认为false(显示)

返回值:

  • ( Array<{ Name: string, operatedTime: string, operation: string }> ): 日志信息,格式为:
    [
        {
            Name:         string类型,用户名,
            operatedTime: string类型,日志记录时间,时间格式:YYYY-MM-DD HH:mm:ss,
            operation:    string类型,用户操作描述
        },]
    

范例:

查询用户名为"user"的用户在"2021-06-01 00:00:00"至"2021-06-01 23:59:59"的用户日志数据,把查询的内容在浏览器控制台中打印出来:

let data = await getUserLog(
    {
        User: "user",
        StartTime: "2021-05-01 00:00:00",
        EndTime: "2021-06-07 23:59:59"
    }
);
console.log(data);

TS声明:

declare function getUserLog(
    options: {
        User?: string,
        StartTime?: string,
        EndTime?: string
    },
    noLoadingPrompt?: boolean
): Promise<Array<{
    Name: string,
    operatedTime: string,
    operation: string
}>>;

数据处理

lineOpt.nominal(viewId, addMode)

历史数据处理函数,可以将该函数的返回值作为历史数据查询函数(getDbInfo,getDbSpec)的回调函数,将数据以折线图的方式显示在图表中

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可省略,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询"API.设备_1@YC1"和"API.设备_1@YC2"两个点,在"2021-06-01 00:00:00"至"2021-06-01 00:15:00"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以折线图的形式展示出来:

let data = await getDbInfo(
    ["API.设备_1@YC1", "API.设备_1@YC2"],
    "2021-06-01 00:00:00",
    "2021-06-01 00:15:00"
);
lineOpt.nominal("chartLine_0")(data);

lineOpt.nominal - 范例

TS声明:

declare namespace lineOpt {
    function nominal(
        viewId: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

lineOpt.periodCompared(viewId, period, addMode)

时间段对比折线图,可以将该函数的返回值作为历史数据查询函数(getDbInfo,getDbSpec)的回调函数,将查询出来的历史数据,以指定的单位分组展示在图表中,但是只能查询和显示一个点的数据,如果查询多个点的数据,会出现混乱

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • period ( string ): 对比单位,可选的值:year: 以年为组,各年的数据对比;month: 以月为组对比;day: 以日为组对比;hour: 以小时为组对比
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可省略,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询点"API.设备_1@YC1",在"2021-06-01 00:00:00"至"2021-06-01 01:59:59"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以小时对比折线图的形式展示出来:

let data = await getDbInfo(
    "API.设备_1@YC1",
    "2021-06-01 00:00:00",
    "2021-06-01 01:59:59"
);
lineOpt.periodCompared("chartLine_0", "hour")(data);

lineOpt.nominal - 范例

TS声明:

declare namespace lineOpt {
    function periodCompared(
        viewId: string,
        period: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

splineOpt.nominal(viewId, addMode)

与lineOpt.nominal基本相同,不同的是这里添加的图形是曲线图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询"API.设备_1@YC1"和"API.设备_1@YC2"两个点,在"2021-06-01 00:00:00"至"2021-06-01 00:15:00"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以曲线图的形式展示出来:

let data = await getDbInfo(
    ["API.设备_1@YC1", "API.设备_1@YC2"],
    "2021-06-01 00:00:00",
    "2021-06-01 00:15:00"
);
splineOpt.nominal("chartLine_0")(data);

splineOpt.nominal - 范例

TS声明:

declare namespace splineOpt {
    function nominal(
        viewId: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

splineOpt.periodCompared(viewId, period, addMode)

与lineOpt.periodCompared基本相同,不同的是这里添加的图形是曲线图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • period ( string ): 对比单位,可选的值:year: 以年为组,各年的数据对比;month: 以月为组对比;day: 以日为组对比;hour: 以小时为组对比
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询点"API.设备_1@YC1",在"2021-06-01 00:00:00"至"2021-06-01 01:59:59"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以小时对比曲线图的形式展示出来:

let data = await getDbInfo(
    "API.设备_1@YC1",
    "2021-06-01 00:00:00",
    "2021-06-01 01:59:59"
);
splineOpt.periodCompared("chartLine_0", "hour")(data);

splineOpt.periodCompared - 范例

TS声明:

declare namespace splineOpt {
    function periodCompared(
        viewId: string,
        period: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

columnOpt.nominal(viewId, addMode)

与lineOpt.nominal基本相同,不同的是这里添加的图形是纵向柱状图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询"API.设备_1@YC1"和"API.设备_1@YC2"两个点,在"2021-06-01 00:00:00"至"2021-06-01 00:15:00"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以纵向柱状图的形式展示出来:

let data = await getDbInfo(
    ["API.设备_1@YC1", "API.设备_1@YC2"],
    "2021-06-01 00:00:00",
    "2021-06-01 00:15:00"
);
columnOpt.nominal("chartLine_0")(data);

columnOpt.nominal - 范例

TS声明:

declare namespace columnOpt {
    function nominal(
        viewId: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

columnOpt.periodCompared(viewId, period, addMode)

与lineOpt.periodCompared基本相同,不同的是这里添加的图形是纵向柱状图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • period ( string ): 对比单位,可选的值:year: 以年为组,各年的数据对比;month: 以月为组对比;day: 以日为组对比;hour: 以小时为组对比
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询点"API.设备_1@YC1",在"2021-06-01 00:00:00"至"2021-06-01 01:59:59"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以小时对比曲线图的形式展示出来:

let data = getDbInfo(
    "API.设备_1@YC1",
    "2021-06-01 00:00:00",
    "2021-06-01 01:59:59"
);
columnOpt.periodCompared("chartLine_0", "hour")(data);

columnOpt.periodCompared - 范例

TS声明:

declare namespace columnOpt {
    function periodCompared(
        viewId: string,
        period: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

barOpt.nominal(viewId, addMode)

与 lineOpt.nominal 基本相同,不同的是这里添加的图形是横向柱状图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为 false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询"API.设备_1@YC1"和"API.设备_1@YC2"两个点,在"2021-06-01 00:00:00"至"2021-06-01 00:15:00"的历史数据,并把历史数据在 ID 为"chartLine_0"的图表中以横向柱状图的形式展示出来:

let data = await getDbInfo(
    ["API.设备_1@YC1", "API.设备_1@YC2"],
    "2021-06-01 00:00:00",
    "2021-06-01 00:15:00",
);
barOpt.nominal("chartLine_0")(data);

barOpt.nominal - 范例

TS声明:

declare namespace barOpt {
    function nominal(
        viewId: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

barOpt.periodCompared(viewId, period, addMode)

与 lineOpt.periodCompared 基本相同,不同的是这里添加的图形是横向柱状图

参数:

  • viewId ( string ): 图表控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • period ( string ): 对比单位,可选的值:year: 以年为组,各年的数据对比;month: 以月为组对比;day: 以日为组对比;hour: 以小时为组对比
  • addMode ( boolean ): 是否在原有数据组的基础上添加,可选参数,默认为false

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询点"API.设备_1@YC1",在"2021-06-01 00:00:00"至"2021-06-01 01:59:59"的历史数据,并把历史数据在ID为"chartLine_0"的图表中以小时对比横向柱状图的形式展示出来:

let data = await getDbInfo(
    "API.设备_1@YC1",
    "2021-06-01 00:00:00",
    "2021-06-01 01:59:59"
);
barOpt.periodCompared("chartLine_0", "hour")(data);

barOpt.periodCompared - 范例

TS声明:

declare namespace barOpt {
    function periodCompared(
        viewId: string,
        period: string,
        addMode?: boolean
    ): (data: Array<object>) => void;
}

tableOpt.nominal(viewId)

与lineOpt.nominal基本相同,不同的是这里数据在表格中显示出来

参数:

  • viewId ( string ): 表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

  • ( (data: Array<object>) => void ): 数据处理函数,接收历史数据查询回调函数的参数

范例:

查询"API.设备_1@YC1"和"API.设备_1@YC2"两个点,在"2021-06-01 00:00:00"至"2021-06-01 00:15:00"的历史数据,并把历史数据在ID为"table_0"的表格中展示出来:

let data = await getDbInfo(
    ["API.设备_1@YC1", "API.设备_1@YC2"],
    "2021-06-01 00:00:00",
    "2021-06-01 00:15:00"
);
tableOpt.nominal("table_0")(data);

tableOpt.nominal - 范例

TS声明:

declare namespace tableOpt {
    function nominal(
        viewId: string
    ): (data: Array<object>) => void;
}

tableAlertOpt.nominal(viewId)

报警历史数据处理函数,可以将该函数的返回值作为报警历史查询函数(getAlertInfo)的回调函数,将数据在表格中显示出来

参数:

  • viewId ( string ): 表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

  • ( (data: Array<object>, opt: object) => void ): 数据处理函数,接收报警历史数据查询回调函数的参数

范例:

查询点"API.设备_1@YC1"在"2021-06-01 00:00:00"至"2021-06-01 23:59:59"的报警历史数据,并把数据在ID为"table_0"的表格中展示出来:

getAlertInfo(
    {
        Name: ["API.设备_1@YC1"],
        StartTime: "2021-06-01 00:00:00",
        EndTime: "2021-06-01 23:59:59"
    },
    tableAlertOpt.nominal("table_0")
);

tableAlertOpt.nominal - 范例

TS声明:

declare namespace tableAlertOpt {
    function nominal(
        viewId: string
    ): (data: Array<object>, opt: object) => void;
}

tableLogOpt.nominal(viewId)

日志数据处理函数,可以将该函数的返回值作为日志数据查询函数(getUserLog)的回调函数,将数据在表格中显示出来

参数:

  • viewId ( string ): 表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件

返回值:

  • ( (data: Array<object>, opt: object) => void ): 数据处理函数,接收日志数据查询函数回调函数的参数

范例:

查询用户名为"user"的用户在"2021-06-01 00:00:00"至"2021-06-01 23:59:59"的用户日志数据,并把数据在ID为"table_0"的表格中展示出来:

getUserLog(
    {
        User: "user",
        StartTime: "2021-05-01 00:00:00",
        EndTime: "2021-06-07 23:59:59"
    },
    tableLogOpt.nominal("table_0")
);

tableLogOpt.nominal - 范例

TS声明:

declare namespace tableLogOpt {
    function nominal(
        viewId: string
    ): (data: Array<object>, opt: object) => void;
}

tableRealOpt.nominal(viewId, points, varList)

在表格中显示实时数据

参数:

  • viewId ( string ): 表格控件ID
    可以在控件ID前加上父控件ID,用空格分隔
    例如: "parentViewId viewId",表示获取父控件ID为"parentViewId"的控件中ID为"viewId"的控件
  • points ( Array<string> ): 指定需要显示的点名称
  • varList ( Array<string> ): 指定需要显示信息和信息在表格中的顺序,可省略,默认: ["PointName", "Value", "Code", "Time"]。
    可选信息标识:PointName: 点名称, Value: 点值, Code: 数据源码, Time: 数据获取时间
    例如,要在第一列显示点名称、第二列显示点值、第三列显示数据时间,这个参数可写为: ["PointName", "Value", "Time"]

范例:

把点"API.设备_1@YC1"、"API.设备_1@YC2"、"API.设备_1@YC3"的实时数据在表格中显示出来:

tableRealOpt.nominal(
    "table_0",
    [
        "API.设备_1@YC1",
        "API.设备_1@YC2",
        "API.设备_1@YC3"
    ]
);

tableRealOpt.nominal - 范例

TS声明:

declare namespace tableRealOpt {
    function nominal(
        viewId: string,
        points: Array<string>,
        varList?: Array<string>
    ): void;
}

获取系统时间

getServerTime()

获取后台系统时间

返回值:

  • ( string ): 系统时间,时间格式:YYYY-MM-DD HH:mm:ss,例:2017-12-29 11:18:43

范例:

获取后台系统时间,在浏览器控制台中打印出来:

console.log(
    getServerTime()
);

TS声明:

declare function getServerTime(): string;

加载提示

loading.show(text)

在页面上显示加载提示。

加载提示会覆盖整个页面,使用 loading.hide() 可以取消加载提示。多次调用不会显示多个提示,但可以修改提示文字。

参数:

  • text ( string ): 提示文字,可省略,默认显示" 请稍后…"

范例:

显示加载提示:

loading.show("正在查询数据,请稍后……");

splineOpt.periodCompared - 范例

TS声明:

declare namespace loading {
    function show(
        text?: string
    ): void;
}

loading.hide()

取消加载提示,也可以删除其他函数生成的加载提示

范例:

取消加载提示:

loading.hide();

TS声明:

declare namespace loading {
    function hide(): void;
}

results matching ""

    No results matching ""