• 平台功能
  • 功能介绍
    • 配置文件
    • 系统函数
    • 组态图形
    • 页面集成
    • 功能扩展
    • SSL TLS
  • 本地部署
    • 数据库备份与还原
  • 协议处理
    • WebSocket
    • 国标协议
    • JT808协议
    • MQTT协议
    • OPC网关
    • 自定义协议(my)
    • 自定义协议(di)
    • 平台主动发给终端
    • 串口功能
    • 客户端功能
  • 完整案例演示
  • 系统函数源代码
  • 简洁的Ajax代码
  • 图形或数据集成
    • 常用例子
    • 完整例子
    文档主题
    https://twuyun.com/help/doc/0/index?id=5f817925a5a79a053ca31e63
    功能
    模板管理图形管理脚本测试文档管理系统日志
    0

    页面集成

    图形或数据集成

    常用例子

    1. <html>
    2. <head>
    3. <script src="https://twuyun.com/admin/graphic/runtime/runtime.js"></script>
    4. <script>
    5. //new tw(< app来源 >,< 加载后执行函数: function(myruntime){} >, < true:取消input的平台定制样式 > );
    6. window._tw = new tw("https://twuyun.com/");
    7. </script>
    8. </head>
    9. <body>
    10. <t-data value="/admin/msg.message"></t-data>
    11. <t-data value="=/admin/msg.message+'_2222222'"></t-data>
    12. <t-symbol src="61b2b95e9f4a380da0642946" width="500" height="200" cp.a="=/this.message + '_333333'"></t-symbol>
    13. </body>
    14. <script>
    15. window._tw.load(); //或者 t.load(dom); 其中dom是包含<t-xxx>标签的dom,如果不指定,默认加载document.body
    16. //下面是常用的功能:
    17. window._tw.post("/api/getdata", //这个地址前面会加入定义的来源:https://twuyun.com/api/getdata
    18. {
    19. x: 1,
    20. y: 2
    21. }, function(data) {
    22. data = JSON.parse(data); //data是字符串,可以转为json处理数据
    23. }, function(error) {
    24. //出错的信息
    25. });
    26. window._tw.data("/admin/msg.message", //订阅一个tag(实例),数据变化也会执行
    27. function(data) {
    28. //data的结构:{tag:"/admin/msg.message",value:"msg",time:"2022/04/28 11:11:11"} 其中time为UTC时间
    29. console.log(data);
    30. })
    31. window._tw.instance("/admin/msg"); //设置数据this的实例
    32. </script>
    33. </html>

    完整例子

    1. <html>
    2. <head>
    3. <script src="https://twuyun.com/admin/graphic/runtime/runtime.js"></script>
    4. </head>
    5. <body>
    6. <b-page a="230" b=""></b-page>
    7. <div>
    8. <div>
    9. <b-data id="message" value="/this/msg.message"></b-data>
    10. </div>
    11. <div>
    12. <b-data value="=/this/msg.message+'_2222222'"></b-data>
    13. </div>
    14. <table>
    15. <tr>
    16. <td>
    17. <b-symbol name="5e868fd3776caf06542a2e90" width="500" height="200" cp.a="/a">
    18. </b-symbol>
    19. </td>
    20. <td>
    21. <b-symbol name="5f017aa7a5a79a0390cd2f77" width="200" height="100" cp.b="/a">
    22. </b-symbol>
    23. </td>
    24. <td>
    25. <b-symbol name="/admin/home/symbols/ccc/mysymbol" width="200" height="100" cp.b="/a">
    26. </b-symbol>
    27. </td>
    28. </tr>
    29. </table>
    30. </div>
    31. </body>
    32. <script>
    33. //new tw(< app来源 >,< 加载后执行函数: function(myruntime){} >, < true:取消input的平台定制样式 > );
    34. var t = new tw("https://twuyun.com/");
    35. t.load(document.body, function(myruntime) {
    36. //可以定义onchange函数,在收到数据后自定义显示
    37. document.getElementById("message").onchange = function(value, time) {
    38. //
    39. document.getElementById("message").innerHTML = value + "," + time;
    40. };
    41. //-------------------------------------------
    42. //在加载前执行,一般用作loading
    43. myruntime.oninit = function(dom) {
    44. //dom.parentElement.style.background = null;
    45. var p = dom.parentElement;
    46. p.style.background = "url(/admin/graphic/runtime/loading.gif) no-repeat 0 0";
    47. p.style.backgroundSize = "50px 50px";
    48. p.style.backgroundPositionX = "center";
    49. p.style.backgroundPositionY = "center";
    50. };
    51. //在数据加载完成后,可以取消loading
    52. myruntime.ondataready = function(dom) {
    53. //dom.parentElement.style.background = null;
    54. var p = dom.parentElement;
    55. p.style.background = null;
    56. };
    57. //在图形加载完成后,参数分别为:(展示对象,图形标题,图形用的数据模板,当前实例)
    58. myruntime.onready = function(display, title, template, instance) {
    59. document.title = "图形-" + title;
    60. var dom = display.getdom();
    61. dom.parentElement.style.background = null;
    62. //可以定义一个重新加载函数,重加载显示
    63. window.reloaddisplay = function(cps) {
    64. display.reload(cps);
    65. };
    66. //可以获取到模板下所有实例,便于操作实例的切换
    67. mxUtils.mypost("/admin/graphic/runtime/api/get_instances.ds", {
    68. "tid": template
    69. }, {},
    70. function(data) {
    71. //
    72. data = JSON.parse(data);
    73. // data = [
    74. // {
    75. // "id": "",
    76. // "name": "",
    77. // "desc": "没有实例",
    78. // "style": ""
    79. // }
    80. // ]
    81. }, function(data) {
    82. alert(data)
    83. });
    84. };
    85. //定义图形尺寸大小
    86. myruntime.getsize = function(dom) {
    87. var p = dom.parentElement;
    88. return {
    89. width: p.clientWidth,
    90. height: p.clientHeight
    91. }
    92. };
    93. //出错后的处理
    94. myruntime.onerror = function(error, dom) {
    95. alert(error);
    96. dom.parentElement.style.background = null;
    97. };
    98. //改变图形数据实例
    99. function changeinstance(iid) {
    100. myruntime.setinstance(iid);
    101. };
    102. //改变图形的自定义属性,也可设置实例:(name使用$.instance)
    103. function setprop(name, value) {
    104. myruntime.setpageprop(name, value);
    105. };
    106. //下面例子可以动态订阅数据
    107. var tag = "/604eed2a9f4a38198822d2dd.基础资料.位置"; //实例名,也可以是表达式,如:/604eed2a9f4a38198822d2dd.基础资料.位置 + 12
    108. myruntime.subscribe(tag, function(value, cp) {
    109. alert(value);
    110. //value变量是最新的值,cp中含详细信息,如cp.time可以得到更新时间
    111. })
    112. });
    113. </script>
    114. </html>