applog.html 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org"
  3. xmlns:mo="https://gitee.com/aun/Timo">
  4. <head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
  5. <link rel="stylesheet" th:href="@{/lib/zTree_v3/css/zTreeStyle/zTreeStyle.css}" type="text/css">
  6. <link rel="stylesheet" th:href="@{/css/xterm.css}"/>
  7. </head>
  8. <body class="timo-layout-page">
  9. <div class="layui-card">
  10. <div class="layui-card-body">
  11. <div class="layui-row timo-card-screen put-row">
  12. <div class="pull-left layui-form-pane">
  13. <div class="layui-inline">
  14. <label class="layui-form-label">环境</label>
  15. <div class="layui-input-block timo-search-status">
  16. <select id="getPageByEnv" class="timo-search-select" name="env" onchange="getPageByEnv()"
  17. mo:dict="ENVIRONMENT" mo-selected="${env}"></select>
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. <div id="terminal">
  23. </div>
  24. </div>
  25. </div>
  26. </body>
  27. <script th:replace="/common/template :: script"></script>
  28. <script type="text/javascript" th:src="@{/js/plugins/jquery-3.4.1.min.js}"></script>
  29. <script type="text/javascript" th:src="@{/js/websocket.js}"></script>
  30. <script type="text/javascript" th:src="@{/js/xterm.js}"></script>
  31. <script type="text/javascript" th:inline="javascript">
  32. function getPageByEnv() {
  33. console.log('切换机器')
  34. layer.msg('切换机器', {offset: '15px', time: 5000, icon: 1});
  35. }
  36. openTerminal();
  37. function openTerminal(){
  38. var client = new WebSocketClient();
  39. var term = new Terminal({
  40. cols: 80,
  41. rows: 30,
  42. cursorBlink: true, // 光标闪烁
  43. cursorStyle: "block", // 光标样式 null | 'block' | 'underline' | 'bar'
  44. scrollback: 50, //回滚
  45. tabStopWidth: 8, //制表宽度
  46. screenKeys: true
  47. });
  48. term.open(document.getElementById('terminal'));
  49. // 键盘输入时的回调函数
  50. /*term.on('data', function (data) {
  51. client.sendClientData(data);
  52. });*/
  53. //在页面上显示连接中...
  54. term.write('Connecting...');
  55. //执行连接操作
  56. client.connect({
  57. onError: function (error) {
  58. // 连接失败回调
  59. console.log('WebSocket 连接错误...')
  60. term.write('Error: ' + error + '\r\n');
  61. },
  62. onConnect: function () {
  63. // 连接成功回调
  64. console.log('WebSocket 连接成功...')
  65. },
  66. onClose: function () {
  67. // 连接关闭回调
  68. console.log('WebSocket 连接关闭...')
  69. term.write("\rconnection closed");
  70. },
  71. onData: function (data) {
  72. // 收到数据时回调
  73. console.log('接收到 WebSocket 的数据...')
  74. term.write(data);
  75. }
  76. });
  77. }
  78. </script>
  79. </html>