index.html 5.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. </head>
  7. <body class="timo-layout-page">
  8. <div class="layui-card">
  9. <div class="layui-card-header timo-card-header">
  10. <span><i class="fa fa-bars"></i> 应用状态</span>
  11. <i class="layui-icon layui-icon-refresh refresh-btn"></i>
  12. </div>
  13. <div class="layui-card-body">
  14. <div class="layui-row timo-card-screen put-row">
  15. <div class="pull-left layui-form-pane">
  16. <div class="layui-inline">
  17. <label class="layui-form-label">环境</label>
  18. <div class="layui-input-block timo-search-status">
  19. <select id="getPageByEnv" class="timo-search-select" name="env" onchange="getPageByEnv()"
  20. mo:dict="ENVIRONMENT" mo-selected="${env}"></select>
  21. </div>
  22. </div>
  23. <div class="layui-inline timo-search-box">
  24. <label class="layui-form-label">应用名</label>
  25. <div class="layui-input-block">
  26. <input type="text" name="appName" th:value="${param.appName}" placeholder="请输入应用名"
  27. autocomplete="off" class="layui-input">
  28. </div>
  29. </div>
  30. <div class="layui-inline">
  31. <button class="layui-btn timo-search-btn">
  32. <i class="fa fa-search"></i>
  33. </button>
  34. </div>
  35. </div>
  36. <div class="pull-right screen-btn-group">
  37. <div class="btn-group-right">
  38. <a class="ajax-post" th:href="@{'/api/app/status/refresh'}">刷新状态列表</a>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="timo-table-wrap">
  43. <table class="layui-table timo-table">
  44. <thead>
  45. <tr>
  46. <th class="timo-table-checkbox">
  47. <label class="timo-checkbox"><input type="checkbox">
  48. <i class="layui-icon layui-icon-ok"></i></label>
  49. </th>
  50. <th class="sortable" data-field="appName">应用</th>
  51. <th class="sortable" data-field="machineIpv4">机器地址</th>
  52. <th class="sortable" data-field="httpPort">HTTP 端口</th>
  53. <th class="sortable" data-field="healthCheck">健康检查地址</th>
  54. <th class="sortable" data-field="packagePath">包路径</th>
  55. <th class="sortable" data-field="status">运行状态</th>
  56. <th class="sortable" data-field="startTime">启动时间</th>
  57. <th class="sortable" data-field="pid">PID</th>
  58. <th class="sortable" data-field="lastCheck">上次健康检查</th>
  59. <th>操作</th>
  60. </tr>
  61. </thead>
  62. <tbody>
  63. <tr th:each="item:${list}">
  64. <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.appId}">
  65. <i class="layui-icon layui-icon-ok"></i></label></td>
  66. <td>
  67. <a class="open-popup" data-title="应用配置详情" data-size="1000,500" href="#"
  68. th:text="${item.appName}" th:attr="data-url=@{'/app/config/app/detail/'+${item.appId}}"></a>
  69. </td>
  70. <td th:text="${item.machineIpv4}">机器地址</td>
  71. <td th:text="${item.httpPort}">HTTP 端口</td>
  72. <td th:text="${item.healthCheck}">健康检查地址</td>
  73. <td th:text="${item.packagePath}">包路径</td>
  74. <td th:text="${item.status}">运行状态</td>
  75. <td th:text="${item.startTime}">启动时间</td>
  76. <td th:text="${item.pid}">PID</td>
  77. <td th:text="${item.lastCheck}">上次健康检查</td>
  78. <td>
  79. <a class="ajax-post" th:href="@{'/api/app/status/restart/'+${item.appId}+'/'+${item.machineId}}">重启</a>
  80. <a class="ajax-post" th:href="@{'/api/app/status/stop/'+${item.appId}+'/'+${item.machineId}}">停止</a>
  81. <a class="ajax-post" th:href="@{'/api/app/status/start/'+${item.appId}+'/'+${item.machineId}}">启动</a>
  82. <a class="open-popup" data-title="应用日志"
  83. th:attr="data-url=@{'/app/status/applog/'+${item.appId}+'/'+${item.machineId}}"
  84. data-size="1000,500" href="#">日志</a>
  85. </td>
  86. </tr>
  87. </tbody>
  88. </table>
  89. </div>
  90. <div th:replace="/common/fragment :: page"></div>
  91. </div>
  92. </div>
  93. <script th:replace="/common/template :: script"></script>
  94. </body>
  95. </html>