index.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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})"></head>
  5. <body class="timo-layout-page">
  6. <div class="layui-card" th:attr="data-url=@{'/app/build/list?env=' + ${env}}">
  7. <div class="layui-card-header timo-card-header">
  8. <span><i class="fa fa-bars"></i> 构建部署</span>
  9. <i class="layui-icon layui-icon-refresh refresh-btn"></i>
  10. </div>
  11. <div class="layui-card-body">
  12. <div class="layui-row timo-card-screen put-row">
  13. <div class="pull-left layui-form-pane">
  14. <div class="layui-inline">
  15. <label class="layui-form-label">环境</label>
  16. <div class="layui-input-block timo-search-status">
  17. <select id="getPageByEnv" class="timo-search-select" name="env" onchange="getPageByEnv()"
  18. mo:dict="ENVIRONMENT" mo-selected="${env}"></select>
  19. </div>
  20. </div>
  21. <div class="layui-inline timo-search-box">
  22. <label class="layui-form-label">应用名</label>
  23. <div class="layui-input-block">
  24. <input type="text" name="appName" th:value="${param.appName}" placeholder="请输入应用名"
  25. autocomplete="off" class="layui-input">
  26. </div>
  27. </div>
  28. <div class="layui-inline">
  29. <button class="layui-btn timo-search-btn">
  30. <i class="fa fa-search"></i>
  31. </button>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="timo-table-wrap">
  36. <table class="layui-table timo-table">
  37. <thead>
  38. <tr>
  39. <th class="timo-table-checkbox">
  40. <label class="timo-checkbox"><input type="checkbox">
  41. <i class="layui-icon layui-icon-ok"></i></label>
  42. </th>
  43. <th class="sortable" data-field="appName">应用</th>
  44. <th class="sortable" data-field="appType">类型</th>
  45. <th class="sortable" data-field="repoBranch">分支</th>
  46. <th class="sortable" data-field="httpPort">HTTP 端口</th>
  47. <th class="sortable" data-field="commitId">当前构建版本</th>
  48. <th class="sortable" data-field="commitTime">提交时间</th>
  49. <th class="sortable" data-field="result">结果</th>
  50. <th class="sortable" data-field="buildTime">构建时间</th>
  51. <th class="sortable" data-field="buildBy">构建用户</th>
  52. <th>操作</th>
  53. </tr>
  54. </thead>
  55. <tbody>
  56. <tr th:each="item:${list}">
  57. <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.appId}">
  58. <i class="layui-icon layui-icon-ok"></i></label></td>
  59. <td>
  60. <a class="open-popup" data-title="应用配置详情" data-size="1200,500" href="#"
  61. th:text="${item.appName}" th:attr="data-url=@{'/app/config/app/detail/'+${item.appId}}"></a>
  62. </td>
  63. <td th:text="${item.appType}">类型</td>
  64. <td th:text="${item.repoBranch}">分支</td>
  65. <td th:text="${item.httpPort}">HTTP 端口</td>
  66. <td th:text="${item.commitId}">当前构建版本</td>
  67. <td th:text="${item.commitTime}">提交时间</td>
  68. <td>
  69. <a class="open-popup build-result" data-title="构建结果" href="#"
  70. th:text="${item.buildResult}" th:attr="data-url=@{'/app/bd/log/build/'+${item.buildLogId} + '/result'}"></a>
  71. </td>
  72. <td th:text="${item.buildTime}">构建时间</td>
  73. <td th:text="${item.buildBy}">构建用户</td>
  74. <td>
  75. <a class="ajax-post" th:href="@{'/api/app/bd/update/'+${item.appId}}">更新</a>
  76. <a class="ajax-post" th:href="@{'/api/app/bd/build/'+${item.appId}}">构建</a>
  77. <a class="ajax-redirect" th:href="@{'/api/app/bd/dlpak/'+${item.buildLogId}}">下载</a>
  78. <!--<a th:href="@{'/api/app/bd/dl1/'+${item.buildLogId}}">下载</a>-->
  79. <a class="open-popup" data-title="应用部署状态" th:attr="data-url=@{'/app/bd/deploy/'+${item.appId}}"
  80. data-size="1000,500" href="#">部署状态</a>
  81. </td>
  82. </tr>
  83. </tbody>
  84. </table>
  85. </div>
  86. <div th:replace="/common/fragment :: page"></div>
  87. </div>
  88. </div>
  89. <script th:replace="/common/template :: script"></script>
  90. <script type="text/javascript" th:src="@{/js/plugins/jquery-2.2.4.min.js}"></script>
  91. <script type="text/javascript">
  92. function getPageByEnv() {
  93. var selectedOption = $("#getPageByEnv option:selected")
  94. var param = selectedOption.text()
  95. url = '?env=' + param
  96. window.location.href = window.location.pathname + url;
  97. }
  98. $(".build-result").each(function () {
  99. var text = $(this).text().trim()
  100. if (text === '从未构建') {
  101. $(this).css("color", "#4169e1")
  102. } else if (text === '构建中') {
  103. $(this).css("color", "#e3cf57")
  104. } else if (text === '构建成功') {
  105. $(this).css("color", "#009688")
  106. } else if (text === '构建失败') {
  107. $(this).css("color", "#ff0000")
  108. }
  109. })
  110. </script>
  111. </body>
  112. </html>