reportcommon.html.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * The report view file of execution 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 Ruogu Liu <liuruogu@chandao.com>
  7. * @package project
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $moduleList = array();
  12. foreach($lang->project->reportSettings->typeList[$browseType] as $code => $module)
  13. {
  14. $moduleList[$code] = (object)array(
  15. 'key' => $code,
  16. 'id' => $code,
  17. 'name' => $module,
  18. 'parent' => 0,
  19. 'url' => createLink('project', "report$browseType", "projectID=$projectID&type=$code")
  20. );
  21. }
  22. detailHeader
  23. (
  24. to::prefix
  25. (
  26. btn
  27. (
  28. set::icon('back'),
  29. set::type('primary-outline'),
  30. set::url(createLink('project', $browseType, "projectID=$projectID") . "#app={$app->tab}"),
  31. $lang->goback
  32. )
  33. ),
  34. to::title
  35. (
  36. div
  37. (
  38. setClass('clip'),
  39. span
  40. (
  41. setClass('text-base'),
  42. sprintf($lang->project->reportSettings->subtitle, $lang->bug->common)
  43. )
  44. )
  45. ),
  46. hasPriv('report', 'export') ? to::suffix
  47. (
  48. btn
  49. (
  50. set::type('primary'),
  51. set::text($lang->export),
  52. set::url(createLink('project', 'exportchart', array('projectID' => $projectID, 'type' => $type, 'from' => 'bug'))),
  53. setData('toggle', 'modal'),
  54. setData('size', 'sm')
  55. )
  56. ) : null
  57. );
  58. $staticData->editCanvasConfig->theme = 'light';
  59. $staticData->editCanvasConfig->previewScaleType = 'top';
  60. $staticDataJson = str_replace(array('&quot;', '&#039;'), array("\\\&quot;", "\&#039;"), json_encode($staticData));
  61. div
  62. (
  63. setClass('flex flex-nowrap report-view'),
  64. setStyle(array('height' => 'calc(100vh - 8rem)')),
  65. cell
  66. (
  67. set::width('200'),
  68. moduleMenu
  69. (
  70. set::moduleName('project'),
  71. set::title($lang->project->reportSettings->notice),
  72. set::modules($moduleList),
  73. set::showDisplay(false),
  74. set::toggleSidebar(false),
  75. set::activeKey($type),
  76. set::closeLink('')
  77. )
  78. ),
  79. cell
  80. (
  81. setID('chartContainer'),
  82. set::flex('1'),
  83. setClass('ml-4 bg-white px-2 py-2'),
  84. h4(setClass('mt-2 ml-1'), zget($lang->execution->report->typeList[$browseType], $type)),
  85. h::iframe
  86. (
  87. setID('staticScreen'),
  88. set('width', '100%'),
  89. set('height', '95%'),
  90. set('scrolling', 'no'),
  91. set('frameborder', '0'),
  92. set('marginheight', '0'),
  93. set('src', createLink('screen', 'staticDataOld')),
  94. on::init()->do(<<<JS
  95. const iframe = document.getElementById('staticScreen');
  96. iframe.onload = function()
  97. {
  98. const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
  99. iframe.contentWindow.setStaticData('{$staticDataJson}', {width: iframe.offsetWidth});
  100. const style = document.createElement('style');
  101. style.textContent = 'body {background-color: #fff !important;}';
  102. iframeDoc.head.appendChild(style);
  103. };
  104. JS
  105. )
  106. )
  107. )
  108. );