dashboard.html.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. /**
  3. * The dashboard view file of system module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Ke Zhao<zhaoke@easycorp.ltd>
  7. * @package system
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $pageInfo = usePager();
  12. jsVar('inQuickon', $config->inQuickon);
  13. jsVar('statusList', $lang->CNE->statusList);
  14. jsVar('statusIcons', $lang->CNE->statusIcons);
  15. jsVar('instanceIdList', helper::arrayColumn($instances, 'id'));
  16. jsVar('cpuUsage', $lang->system->cpuUsage);
  17. jsVar('memUsage', $lang->system->memUsage);
  18. /* 资源统计 */
  19. div
  20. (
  21. setClass('bg-white p-5'),
  22. div(setClass('text-xl font-semibold mb-5'), $lang->system->cneStatistic),
  23. div
  24. (
  25. setClass('flex'),
  26. setID('cne-statistic'),
  27. div
  28. (
  29. setClass('basis-2/5 border h-40 rounded-md row'),
  30. div
  31. (
  32. setClass('basis-1/2 justify-center pl-6 pt-10 pb-10'),
  33. div
  34. (
  35. setClass('flex row basis-2/3 justify-evenly h-full ml-5'),
  36. icon('unknown', set::id('status-icon'), set::size(30), setClass('app-status-circle status-unknown')),
  37. div
  38. (
  39. setClass('p-2 ml-8 pr-6 flex col justify-between normal'),
  40. setStyle('white-space', 'nowrap'),
  41. div(setClass('text-xl font-semibold cne-status'), zget($lang->CNE->statusList, 'unknown', '')),
  42. $lang->system->cneStatus
  43. ),
  44. div(),
  45. div(setClass('p-4 border-r'))
  46. )
  47. ),
  48. div
  49. (
  50. setClass('basis-1/2 justify-center p-6 pt-10 pb-10'),
  51. div
  52. (
  53. setClass('flex row basis-2/3 justify-evenly text-center h-full'),
  54. div
  55. (
  56. setClass('flex col justify-between'),
  57. div(setClass('text-4xl font-semibold text-primary node-quantity'), 0),
  58. span
  59. (
  60. $lang->system->nodeQuantity,
  61. icon('help node-quantity-help ml-1 text-gray-500 cursor-pointer')
  62. )
  63. ),
  64. div
  65. (
  66. setClass('flex col justify-between'),
  67. div
  68. (
  69. setClass('text-4xl font-semibold text-primary'),
  70. zget($pageInfo, 'recTotal', 0) == $instanceTotal ? $instanceTotal : zget($pageInfo, 'recTotal', 0) . '/' . $instanceTotal
  71. ),
  72. span
  73. (
  74. $lang->system->serviceQuantity,
  75. icon('help ml-1 text-gray-500 cursor-pointer', set::title($lang->system->serviceNotice))
  76. )
  77. )
  78. )
  79. )
  80. ),
  81. div
  82. (
  83. setClass('basis-3/5 h-40 flex row justify-evenly ml-3'),
  84. div
  85. (
  86. setClass(' flex row cpu-circle'),
  87. div
  88. (
  89. set::id('cpu-circle'),
  90. zui::ProgressCircle
  91. (
  92. set::percent(0),
  93. set::size(160),
  94. set::circleColor('gray'),
  95. set::circleWidth(8),
  96. set::text('')
  97. ),
  98. setClass('relative'),
  99. span
  100. (
  101. setClass('absolute text-lg'),
  102. setStyle(array('transform' => 'translate(-50%, -50%)', 'top' => '50%', 'left' => '50%', 'white-space' => 'nowrap')),
  103. icon('cpu', setClass('mr-1'), set::size(20), setStyle('color', 'gray')),
  104. $lang->system->cpuUsage
  105. )
  106. ),
  107. div(setClass('flex col justify-around p-5'), div(setClass('text-4xl font-medium cpu-rate'), '0.00', span('%', setClass('text-xl ml-1'))))
  108. ),
  109. div
  110. (
  111. setClass(' flex row memory-circle'),
  112. div
  113. (
  114. set::id('memory-circle'),
  115. zui::ProgressCircle
  116. (
  117. set::percent(0),
  118. set::size(160),
  119. set::circleColor('gray'),
  120. set::circleWidth(8),
  121. set::text('')
  122. ),
  123. setClass('relative'),
  124. span
  125. (
  126. setClass('absolute text-lg'),
  127. setStyle(array('transform' => 'translate(-50%, -50%)', 'top' => '50%', 'left' => '50%', 'white-space' => 'nowrap')),
  128. icon('memory', setClass('mr-1'), set::size(20), setStyle('color', 'gray')),
  129. $lang->system->memUsage
  130. )
  131. ),
  132. div(setClass('flex col justify-around p-5'), div(setClass('text-4xl font-medium memory-rate'), '0.00', span('%', setClass('text-xl ml-1'))))
  133. )
  134. )
  135. )
  136. );
  137. /* 运行中服务 */
  138. $instances = initTableData($instances, $config->system->dtable->instanceList->fieldList, $this->system);
  139. div
  140. (
  141. setClass('bg-white p-5 mt-5'),
  142. div(setClass('text-xl font-semibold mb-5'), $lang->instance->runningService),
  143. dtable
  144. (
  145. set::cols($config->system->dtable->instanceList->fieldList),
  146. set::data($instances),
  147. set::loadPartial(true),
  148. set::onRenderCell(jsRaw('window.renderInstanceList')),
  149. set::footPager(usePager())
  150. )
  151. );