图形页面 - 脚本
参照版本: 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 等。
第三方插件
jQuery
版本号: 3.7.1
bootstrap
版本号: 3.3.7
lobibox
版本号: 1.2.4
highcharts
版本号: 8.2.0
bootstrap-datetimepicker
版本号: 4.17.47
socket.io
版本号: 2.0.4
zTree
版本号: 3.5.29
网站: https://tool.oschina.net/uploads/apidocs/ztree3.2/api/API_cn.html
moment
版本号: 2.19.4
amap
版本号: 2.0
定制函数
控件操作
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 ): 控件属性IDvalue
( 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"的控件
返回值:
- ( Highcharts.Options ): 图表控件配置信息,详细参照: https://api.hcharts.cn/highcharts
范例:
获取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
}
);
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]);
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"的控件
返回值:
- ( Highcharts.Chart ): 图表控件Chart对象,详细参照: https://api.highcharts.com/class-reference/Highcharts.Chart
范例:
获取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"的控件
返回值:
- ( IzTreeObj ): 树控件zTree对象,详情参照: http://www.treejs.cn/v3/api.php 的zTreeObj部分
范例:
获取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"的控件
返回值:
- ( AMap.Map ): 地图控件Map对象,详情参照: https://lbs.amap.com/api/javascript-api/reference/map
范例:
获取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"的控件
返回值:
- ( Window ): 子页面的Window对象,详情参照: https://developer.mozilla.org/zh-CN/docs/Web/API/Window
范例:
获取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 ): 通道基本信息,格式:
null,表示未找到{ Name: string类型,通道名称, Desc: string类型 或 null,通道描述, Type: string类型,通道类型, Child: Array<string>类型,通道类型为Net时,是通道下的链接名称列表;通道类型不是Net时,是通道下的设备名称列表 }
范例:
获取"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 ): 链接基本信息,格式:
null,表示未找到{ Name: string类型,链接名称, Desc: string类型,链接描述, Child: Array<string>类型,链接下的设备名称列表 }
范例:
获取"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 ): 设备基本信息,格式:
null,表示未找到{ Name: string类型,设备名称, Desc: string类型,设备描述 }
范例:
获取"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 } ): 查询条件。所有属性都是可省略的,参数格式:
模糊查询的属性可以使用SQL通配符(参考资料: https://www.w3school.com.cn/sql/sql_wildcards.asp ),不区分大小写。{ 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类型,点是否配置了报警 }
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位置。格式:
当updateCallback参数省略时,callback函数会被调用多次,每次都携带最新实时数据,当updateCallback参数存在时,callback函数只会在最开始调用一次,之后实时数据出现变化时,由updateCallback进行处理。[ { Value: string类型,实时数据, Code: string类型,数据源码, Time: number类型,数据获取时间,毫秒时间戳 }, … ]
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, startTime, endTime, noLoadingPrompt)
获取多个点一段时间内的历史数据。(原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:00endTime
( string ): 查询历史数据的终止时间。格式:YYYY-MM-DD HH:mm:ss,例:2017-12-30 23:59:59noLoadingPrompt
( 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日记录的最大值[ "API.设备_1@YC1", "2020-02-02 00:00:00", "2020-02-02 23:59:59", "max" ]
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、AlertType、StartTime、EndTime)都是可以省略的,省略的参数表示不限制该条件{ 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 }
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、StartTime、EndTime)都可以省略,省略的参数不会作为查询条件。{ User: string类型,用户名,指定查询特定用户的日志, StartTime: string类型,开始时间,时间格式:YYYY-MM-DD HH:mm:ss, EndTime: string类型,结束时间,时间格式:YYYY-MM-DD HH:mm:ss }
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);
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);
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);
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);
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);
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);
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);
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);
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);
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")
);
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")
);
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"
]
);
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("正在查询数据,请稍后……");
TS声明:
declare namespace loading {
function show(
text?: string
): void;
}
loading.hide()
取消加载提示,也可以删除其他函数生成的加载提示
范例:
取消加载提示:
loading.hide();
TS声明:
declare namespace loading {
function hide(): void;
}